CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
12.12.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки :: Файловые системы

Использование Btrfs на нескольких устройствах

Оригинал

Файловая система Btrfs может быть создана на нескольких устройствах, и дополнительные устройства могут быть добавлены после её создания. По умолчанию, метаданные её будут зеркалированы на два устройства, а данные будут расщепляться на все наличные устройства.

Если в наличии есть только одно устройство, то метаданные будут дублироваться на нём же.

Текущее состояние

При использовании Btrfs устройства можно добавлять и удалалять "на лету". Добавление устройств посредством mkfs со временем дает возможность использовать RAID разных уровней.

С помощью btrfs можно создавать массивы raid0, raid1, raid10, и дублировать их метаданные. По прочтении блоков, проверке их контрольных сумм и обнаружении ошибок btrfs попытается считать их с альтернативной копии.

Создание ФС на нескольких дисках

Команда mkfs.btrfs может воспринимать более одного устройства как аргументы командной строки. Это даёт возможность конфигураций RAID-массива для данных и метаданных. Доступен выбор между raid0, raid1, raid10 и единичным устройством. Выбор единичного устройства означает, что никакое дублирование метаданных не выполняется, что предпочтительно при использовании аппаратного RAID.

Для создания raid10 требуется не меньше четырёх устройств.

# Создание файловой системы поверх четырёх дисков
mkfs.btrfs /dev/sdb /dev/sdc /dev/sdd /dev/sde

# Расщепление метаданных без зеркалирования
mkfs.btrfs -m raid0 /dev/sdb /dev/sdc

# Использование raid10 как для данных, так и для метаданных
mkfs.btrfs -m raid10 -d raid10 /dev/sdb /dev/sdc /dev/sdd /dev/sde

# Без дублирования метаданных на единичном устройстве
mkfs.btrfs -m single /dev/sdb

После создания многодисковой файловой системы, любое входящее в неё устройство может быть смонтировано отдельно:

mkfs.btrfs /dev/sdb /dev/sdc /dev/sde
mount /dev/sde /mnt

После рестарта системы или перезагрузки модуля btrfs, нужно использовать команду

btrfsctl -a

для обнаружения всех многодисковых файловых систем на данной машине (см. ниже).

Поиск многодисковых файловых систем и вывод их списка

Команда btrfsctl -a используется для просмотра всех блочных устройства в каталоге /dev и поиска томов Btrfs. Это требуется после загрузки модуля btrfs, если он запускается на файловой системе, состоящей из более чем одного устройства.

# Просмотр всех устройств
btrfsctl -a

# Просмотр единичного устройства
btrfsctl -A /dev/sdb

Команда btrfs-show выводит информацию обо всех файловых системах Btrfs на данной машине.

Добавление новых устройств

Команда btrfs-show даёт список всех файловых систем btrfs и устройств, которые они включают.

Команда btrfs-vol может использоваться для добавления новых устройств к смонтированной файловой системе и для банасировки нагрузки (рестриппинга) экстентов между всеми наличными устройствами. Например:

mkfs.btrfs /dev/sdb
mount /dev/sdb /mnt
# Добавление устройства
btrfs-vol -a /dev/sdc /mnt

В /mnt у нас есть теперь файловая система на двух устройствах, но все метаданные и данные всё еще хранятся на /dev/sdb. Файловая система должна быть сбалансирована, чтобы раскидать (существующие) файлы на все устройства.

btrfs-vol -b /mnt

Операция балансировки займет некоторое время. При этом считываются все существующие данные и метаданные файловой системы и перезаписываются с учётом нового устройства.

Удаление устройств

Команда btrfs-vol может также применяться для удаления устройств "на лету". Она перераспределяет все экстенты, используемые на подлежащем удалению устройстве, на другие устройства файловой системы. Например:

mkfs.btrfs /dev/sdb /dev/sdc /dev/sdd /dev/sde
mount /dev/sdb /mnt
# Перераспределение данных по файловой системе
btrfs-vol -r /dev/sdc /mnt

Замена сбойных устройств

Команда btrfs-vol из приведённого выше примера может применяться для удаления сбойного устройства, если его суперблок ещё может быть считан. Если же устройство вышло из строя полностью или суперблок разрушен, то файловая система будет перемонтирована в деградировавшем режиме:

mkfs.btrfs -m raid1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
#
# если устройство sdd разрушено или удалено,
# используется -o degraded для
# принудительного монтирования
# с игнорирование отсутствующего устройства
#
mount -o degraded /dev/sdb /mnt
#
# 'missing' заменяет имя файла устройства
#
btrfs-vol -r missing /mnt

Команда btrfs-vol -r missing предписывает btrfs удалить первое устройство, указанное в метаданных файловой системы, но не первое в порядке монтирования её.





Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds