Начало работы с btrfs для Linux
17.11.2020 225 0

Начало работы с btrfs для Linux

Новости IT
В закладки

Файловая система B-tree - это файловая система и менеджер томов, объединенные в одно целое. Он предлагает много перспектив для доставки расширенного набора функций файловой системы в Linux.


Btrfs доступна для Linux уже несколько лет, так что вы, возможно, уже знакомы с ней. Если нет, то у вас могут возникнуть вопросы по этому поводу, особенно если вы используете Fedora Workstation (Btrfs теперь является файловой системой по умолчанию). Эта статья призвана помочь вам ознакомиться с ним и его расширенными функциями, такими как копирование при записи и контрольные суммы.


Btrfs, сокращенно от B-Tree Filesystem, на самом деле является файловой системой и менеджером томов в одном флаконе. Это часто рассматривается как ответ на ZFS, введенный в ОС Solaris Sun Microsystem еще в 2005 году, теперь в значительной степени замененный реализацией с открытым исходным кодом под названием OpenZFS. Ubuntu Linux и FreeBSD часто используют OpenZFS. Другие примеры с аналогичными функциями-это Stratis Red Hat и Linux Logical Volume Manager (LVM).


Установка

Чтобы попробовать Btrfs, я скачал ISO-файл рабочей станции Fedora 33 и установил его на новую виртуальную машину (VM). Процесс установки не изменился по сравнению с предыдущими версиями. Я не настраивал никаких настроек, включая секционирование и форматирование дисков, чтобы поддерживать точную настройку "из коробки" для этого учебника. Как только виртуальная машина заработала, я установил и запустил редактор разделов GNOME Partition Editor (GParted), чтобы получить хороший, свежий заводской вид макета диска.

Начало работы с btrfs для Linux 

С этого момента он не сильно отличается от того, к чему вы привыкли; на самом деле вы можете использовать систему нормально, и вы даже не заметите, что файловая система-это Btrfs. Однако наличие этого нового значения по умолчанию позволяет вам использовать несколько интересных функций.

Изучите файловую систему Btrfs

Я не знаю ни одного графического инструмента, специфичного для Btrfs, хотя некоторые из его функций были включены в существующие инструменты управления дисками.

Из командной строки вы можете более подробно ознакомиться с форматом Btrfs:

# btrfs filesystem show
Label: 'fedora_localhost-live'  uuid: f2bb02f9-5c41-4c91-8eae-827a801ee58a
        Total devices 1 FS bytes used 6.36GiB
        devid    1 size 10.41GiB used 8.02GiB path /dev/vda3

Изменение меток Btrfs

Первое, что я заметил, была метка файловой системы, установленная установщиком: fedora_localhost-live. Это неточно, потому что теперь это установленная система, а некомпакт-диск. Поэтому я изменил его с помощью btrfs filesystem label команды.

Изменить метку файловой системы Btrfs очень просто:

# btrfs filesystem label /
fedora_localhost-live
# btrfs filesystem label / fedora33workstation
# btrfs filesystem label /
fedora33workstation

Управление Btrfs subvolumes

Subvolume по-видимому, является стандартным каталогом, которым можно управлять с помощью Btrfs. На моей новой рабочей станции Fedora 33 есть несколько subvolume.

# btrfs subvolume list /
ID 256 gen 2458 top level 5 path home
ID 258 gen 2461 top level 5 path root
ID 265 gen 1593 top level 258 path var/lib/machines

Создать новый подраздел использование файловой системы Btrfs подраздел создать команду, или удалить подраздел подраздел с файловой системой Btrfs удалить:

# btrfs subvolume create /opt/foo
Create subvolume '/opt/foo'
# btrfs subvolume list /
ID 256 gen 2884 top level 5 path home
ID 258 gen 2888 top level 5 path root
ID 265 gen 1593 top level 258 path var/lib/machines
ID 276 gen 2888 top level 258 path opt/foo
# btrfs subvolume delete /opt/foo
Delete subvolume (no-commit): '/opt/foo'

Подразделы позволяют выполнять такие действия, как установка квоты, создание моментального снимка и репликация в другие места и узлы. Как системные администраторы могут воспользоваться этими возможностями? Как насчет домашних каталогов пользователей?


Добавление пользователя

Как и в прежние времена, добавление новой учетной записи пользователя создает домашний каталог для использования этой учетной записи:

# useradd student1
# getent passwd student1
student1:x:1006:1006::/home/student1:/bin/bash
# ls -l /home
drwx------. 1 student1 student1  80 Oct 29 00:21 student1

Традиционно домашний каталог пользователя является подкаталогом /home. Собственность и привилегии адаптированы к владельцу, но нет никаких специальных функций для управления ими. Среда enterprise server - это другой сценарий. Часто каталог зарезервирован для использования конкретным приложением и его пользователем. Вы можете воспользоваться преимуществами Btrfs для управления и применения ограничений к этим каталогам.


Чтобы приспособить ее подразделов в коталогах пользователей, появилась возможность с помощью команды useradd: ---btrfs-subvolume-home. Хотя справочные страницы не были обновлены (на момент написания этой статьи), вы можете увидеть эту опцию, запустив useradd --help. При передаче этой опции при добавлении нового пользователя будет создан новый подкаталог Btrfs. Он функционирует точно так же, как параметр -d для создания обычного каталога:

# useradd --btrfs-subvolume-home student2
Create subvolume '/home/student2'

Проверьте пользователя с помощью getent passwd student2, и он будет выглядеть нормально. Однако выполните команду btrfs subvolume, чтобы вывести список subvolumes, и вы увидите кое-что интересное: домашний каталог нового пользователя!

# btrfs subvolume list /
ID 256 gen 2458 top level 5 path home
ID 258 gen 2461 top level 5 path root
ID 265 gen 1593 top level 258 path var/lib/machines
ID 272 gen 2459 top level 256 path home/student2

Рассмотрим второй сценарий среды корпоративного сервера. Предположим, вам нужно установить сервер WildFly в /opt и развернуть веб-приложение Java. Часто первым шагом является создание пользователя wildfly. Сделайте это с помощью новой опции --btrfs-subvolume-home вместе с параметром -b, чтобы указать /opt в качестве базового каталога:

Create subvolume '/opt/wildfly'

Теперь пользователь wildfly может войти в систему и завершить установку в /opt/wildfly.

Удаление пользователя

Когда вы удаляете пользователя, иногда вы хотите удалить файлы этого пользователя и домашний каталог одновременно. Команда userdel имеет для этого параметр -r, а также удаляет подкаталоги Btrfs:

# userdel -r student2
Delete subvolume (commit): '/home/student2'

Установите квоты использования диска

На одном из моих занятий по информатике студент запустил программу на языке Си, которая вышла из-под контроля и записывала на диск до тех пор, пока весь /home не был заполнен в системе Unix кафедры! Сервер стал недоступен до тех пор, пока администратор не убил запущенный процесс и не очистил некоторое пространство. То же самое верно и для описанного выше сценария: корпоративное приложение Wildfly будет иметь все большее число файлов журналов и хранилищ контента для своих пользователей. Как вы можете предотвратить остановку сервера из-за того, что диск заполнен? Установка ограничений на использование диска-это хорошая идея. К счастью, Btrfs поддерживает…

# btrfs quota enable /

Убедитесь, что вы знаете ID номер группы квот (qgroup) каждого подраздел, который отображается командой btrfs subvolume list. Каждый подраздел должен связанный на основе его ID. Это можно сделать на индивидуальной основе с помощью btrfs qgroup create, но, что удобно, Btrfs wiki предоставляет следующую команду для ускорения создания qgroups для вложенных файлов в файловой системе:

>btrfs subvolume list \<path> | cut -d' ' -f2 | xargs -I{} -n1 btrfs qgroup destroy 0/{} \<path>

В недавно установленной системе Fedora 33 workstation вы работаете с корневым путем файловой системы,/. замените \<path> корневым путем:

# btrfs subvolume list / | cut -d' ' -f2 | xargs -I{} -n1 btrfs qgroup create 0/{} /

Затем запустите btrfs quota rescan и посмотреть на новый qgroups:

# btrfs quota rescan /
quota rescan started
# btrfs qgroup show /
qgroupid         rfer         excl
--------         ----         ----
0/5          16.00KiB     16.00KiB
0/256       272.04MiB    272.04MiB
0/258         6.08GiB      6.08GiB
0/265        16.00KiB     16.00KiB
0/271        16.00KiB     16.00KiB
0/273        16.00KiB     16.00KiB

Теперь вы можете назначить квоту одной из групп, которая, в свою очередь, применяется к связанному с ней каталогу. Итак, если вы хотите ограничить использование домашнего каталога student3 до 1 ГБ, используйте команду btrfs qgroup limit:

# btrfs qgroup limit 1G /home/student3


Подтвердить квоту на конкретный подраздел:

# btrfs qgroup show -reF /home/student3
qgroupid         rfer         excl     max_rfer     max_excl
--------         ----         ----     --------     --------
0/271        16.00KiB     16.00KiB      1.00GiB         none

Немного отличающиеся параметры будут показывать все qgroups и любые установленные квоты:

# btrfs qgroup show -re /
qgroupid         rfer         excl     max_rfer     max_excl
--------         ----         ----     --------     --------
0/5          16.00KiB     16.00KiB         none         none
0/256       272.04MiB    272.04MiB         none         none
0/258         6.08GiB      6.08GiB         none         none
0/265        16.00KiB     16.00KiB         none         none
0/271        16.00KiB     16.00KiB      1.00GiB         none
0/273        16.00KiB     16.00KiB         none         none

Другие функции

Эти примеры дают некоторое представление об особенностях Btrfs. Запустите btrfs --help, чтобы увидеть полный список команд. Существует много других примечательных возможностей; например, моментальные снимки и отправка/получение-это две вещи, которые стоит изучить.


Последняя мысль

Btrfs предлагает многообещающие возможности для доставки расширенного набора функций файловой системы в Linux. Это было не первое; я отдаю должное ZFS за мое знакомство с этим типом файловой системы около 15 лет назад, но Btrfs полностью открыта и не обременена патентами.

Я хотел бы увидеть некоторые графические утилиты управления, созданные для системных администраторов, которые любят работать в мире графического интерфейса. К счастью, Btrfs имеет сильную активность в области разработки, о чем свидетельствует решение проекта Fedora сделать его дефолтным на рабочей станции 33.

Комментарии (0)
Добавить комментарий
Прокомментировать
  • Смайлы и люди
    Животные и природа
    Еда и напитки
    Активность
    Путешествия и места
    Предметы
    Символы
    Флаги
Linux (видео уроки)
Linux (видео уроки)
Linux (видео уроки)
11.11.17 Новости IT / Наука
Linux (видео уроки) Обзор Linux видео уроки 1. Введение в ОС Linux/Unix Ubuntu. Видео linux уроки 2017 года. gnu linux operating system. Linux администрирование и linux
RFRemix 26 основанный на Fedora 26 (Russian Fedora)
RFRemix 26 основанный на Fedora 26 (Russian Fedora) Официально объявили о выходе Fedora 26. Это проект по поддержке пользователей и разработчиков открытого ПО в России.
Linux mint 19.1
Linux mint 19.1
Linux mint 19.1
15.12.18 Новости IT
Linux mint 19.1 (скачать) Развиваемый сообществом дистрибутив Linux mint, основанный на Ubuntu и Debian, который ставит целью предоставить пользователю «современную,
Linux Deepin OS
Linux Deepin OS
Linux Deepin OS
03.12.18 Новости IT
Новая версия Deepin 15 включает в себя новый дизайн Центра Управления и компьютера, он имеет новый размытый и прозрачный стиль, также включены новые взаимодействия для
Финальная версия Linux Mint 19
Стала доступна для скачивания финальная версия Linux Mint 19 сразу со всеми основными вариантами рабочих столов: Cinnamon, MATE и Xfce. Если вы только начинаете
Ubuntu 17.10
Ubuntu 17.10
Ubuntu 17.10
04.01.18 Новости IT
Ubuntu 17.10 Новости Ubuntu 17.10, что будет с Unity и многое другое. Ubuntu — это операционная система, идеально подходящая для использования на персональных
Войти через: