You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

14 KiB

Задания

0. Подготовка виртуальной машины

В последующих заданиях будет полезной функция Proxmox snapshot, которая позволяет откатить состояние жёстких дисков до момента времени снимка. Если вы будете пользоваться этой функцией, чтобы ускорить процесс создания снимка, предварительно выключайте машину.

0.1

Загрузите виртуальную машину bios или uefi с подключенным диском gparted-live-*.iso и загрузите debian с gparted. Зайдите в gparted найдите в интерфейсе все подключенные диски и их разметку.

0.2

Добавьте к оборудованию виртуальной машины 15 новых дисков по 0.1ГБ, обновите список устройств в интерфейсе gparted. Создайте snapshot виртуальной машины на случай ошибок в конфигурации.

Далее создадим несколько RAID массивов и логических томов LVM. Обе техники, RAID и LVM, абстрагируют примонтированные дисковые устройства от физических дисков. В обоих случаях в системе появляются новые блочные устройства в /dev/, которые можно использовать для создания файловых систем. Решение mdadm является более специализированным для создания массивов дисков, в отличие от LVM. В последнем задании попробуем современный подход к организации хранения данных с помощью ZFS или btrfs.

Таблица 1. Типы RAID массивов

Тип Описание Количество дисков Выдерживает потерю
RAID0 Дисковый массив из двух или более жёстких дисков без резервирования (striping — «чередование»). от 2 0 дисков
RAID1 Массив из двух дисков являющихся полными копиями друг друга (mirroring — «зеркалирование»). от 2 N-1 дисков
RAID2 Данные распределяются по дискам, предназначенным для хранения информации, так же, как и в RAID 0, но требуются выделенные диски в массиве для хранения кодов Хэмминга для коррекции ошибок. от 3 1 диска
RAID3 В массиве RAID 3 из N дисков данные разбиваются на куски размером меньше сектора и распределяются по N-1 дискам. Ещё один диск используется для хранения блоков чётности. Коррекция ошибок проще, чем в RAID 2, коды коррекции занимают 1 диск, вместо log2(N) дисков. от 4 1 диска
RAID4 RAID 4 похож на RAID 3, но отличается от него тем, что данные разбиваются на блоки, а не на байты. Отчасти это решает проблему низкой скорости чтения данных небольшого объёма. от 4 1 диска
RAID5 Основным недостатком уровней RAID от 2-го до 4-го является невозможность производить параллельные операции записи, так как для хранения информации о чётности используется отдельный контрольный диск. RAID 5 не имеет этого недостатка. Дисковый массив с чередует блоки данных и блоки контроля чётности. от 3 1 диска
RAID6 Массив из четырёх или более дисков с проверкой чётности P+Q (двумя томами чётности) или DP (разработанный для защиты от потери данных при выходе из строя сразу двух жестких дисков в массиве). от 4 2 дисков
RAID01 Массив типа RAID 1, состоящий из двух вложенных массивов типа RAID 0. от 4, чётное от 1 до N/2 дисков
RAID10 Массив типа RAID 0, составленный из двух и более RAID 1 (зеркалированных пар). от 4, чётное от 1 до N/2 дисков
RAID51 Массив типа RAID 1, зеркалирующий два RAID 5. от 6, чётное 2 до N/2+1 дисков

https://ru.wikipedia.org/wiki/RAID

1. Программный RAID mdadm

1.1 RAID 0

1.1.1

Зайдите в терминал. Изучите документацию mdadm: man mdadm и mdadm --help. Создайте программный raid массив типа 0 (чередование записи разбитого на блоки потока данных) на основе первых 2 созданных дисков по 0.1GB. Используйте сырые диски, например /dev/sdc /dev/sdd.

1.1.2

Изучите документацию mkfs.ext4. Отформатируйте raid /dev/md0 командой mkfs.ext4 с опцией указания метки -L raid0.

1.1.3

Примонтируйте файловую систему на /dev/md0 в папку /raid0, предварительно её создав. Проверьте, что запись и чтение работают для этой директории. Проверьте размер диска. Общий объем должен составлять 0.2GB.

1.1.4

Отключите live диск с gparted, перезагрузите машину и зайдите в одну из ОС. Настройте сеть, если она ещё не настроена, установите mdadm, если пакет ещё не установлен.

Выведите список устройств в директории /dev, среди которых должно присутствовать устройство /dev/md0. Если его нет, после установки mdadm перезагрузите систему.

Вызовите команды mdadm --query и mdadm --detail для /dev/md0.

1.1.5

Изучите документацию fstab man fstab. Добавьте запись в /etc/fstab для автоматического монтирования raid при загрузке ОС в ту же директорию /raid0. Используйте UUID для указания на /dev/md0 (вывести таблицу UUID можно командой blkid). Последние два значения установите в 0 2. После перезагрузки системы, проверьте, что директория примонтировалась, доступна для записи и чтения.

1.2 RAID 1

1.2.1

Проделайте аналогичные инструкции для создания raid 1 (дублирование записи) на 2-х следующих дисках по 0.1ГБ.

Загрузите в gparted live диск. Запишите из меню Device таблицу разметки типа GPT на каждый диск. Создайте по одному не отформатированному разделу на дисках.

Примечание. Если вы используете сырые диски без разметки, заменять диски можно только на идентичного размера диск. Предварительная разметка диска позволяет заменить диск на диск большего размера, при сохранении размеров разделов.

Примонтируйте сконфигурированный raid в fstab, используя метку файловой системы.

1.2.2

Сэмулируйте отказ одного из дисков:

mdadm /dev/md1 --fail /dev/sdd

Проверьте сообщения /var/log/messages и содержимое /proc/mdstat. Проверьте, что запись и чтение в raid всё ещё работают.

Добавьте диск обратно:

mdadm /dev/md1 --re-add /dev/sdd

Повторите проверки.

2. Менеджер логических томов LVM

Архитектура верхнего уровня LVM заключается в том, что отдельные диски и разделы (физические тома) собираются в пулы хранения, называемые группами томов. Затем группы томов подразделяются на логические тома, представляющие собой блочные устройства, содержащие файловые системы.

У физического тома (physical volume) должна быть метка LVM, созданная командой pvcreate. Создание метки — это первый шаг к доступу к устройству через LVM. В дополнение к мета информации метка содержит уникальный идентификатор для идентификации устройства.

Термин «физический том» (physical volume) может вводит в заблуждение, поскольку физические тома не обязательно должны иметь прямое соответствие с физическими устройствами. Это могут быть диски, разделы диска или RAID массивы.

Вы можете управлять LVM либо с помощью большой группы простых команд (перечисленных в таблице 1), либо с помощью одной команды lvm и ее различных подкоманд. Отдельные команды — это просто ссылки на lvm.

man lvm — хорошее введение в систему и её инструменты.

Таблица1. Команды LVM

Сущность Команды
Physical volume pvcreate pvdisplay pvchange pvck
Volume group vgcreate vgchange vgextend vgdisplay vgck vgscan
Logical volume lvcreate lvchange lvresize lvdisplay

Установите lvm2 пакет, если он не установлен в системе.

2.1

Создайте логический диск с чередованием загрузки (striping, аналог raid 0). Примонтируйте в систем, проверьте работу логического тома.

В начале разметьте диски в gparted, создайте по одному разделу GPT. Затем установите метки lvm каждом диске командой pvcreate. Добавьте диски в группу (Volume group) с названием RAID0 командой vgcreate. Посмотрите на свойства группы командой vgdisplay. И создайте логический том командой lvcreate. Задайте ему название raid0, размер 0.2ГБ и количеством полосок для чередования записи равным 2.

Проинициализируйте на логическом диске файловую систему, примонтируйте и проверьте её работоспособность.

2.2

Создайте логический диск с дублированием данных (аналог raid 1). Используйте параметры --mirrors и --type.

Для созданных сущностей выведите свойства командами pvdisplay, vgdisplay, lvdisplay.

3. Интегрированные подходы к управлению хранилищем btrfs и zfs

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

3.1

Создайте аналоги RAID-10 (4 диска) и RAID-5 (3 диска) в одной из файловых систем: btrfs или zfs.

Установите пакет:

  • btrfs-progs, если он ещё не установлен для работы с btrfs,
  • zfsutils-linux (contrib ветка), если он ещё не установлен для работы с zfs.

Релевантная литература

  1. Nemeth E. et al. UNIX and Linux system administration handbook. Chapter 5, Chapter 20.
  2. Lukas, Jude. FreeBSD Mastery: ZFS
  3. BTRFS documentation. https://btrfs.readthedocs.io/en/latest/