Введение
Утилита mdadm
может быть использована для создания и управления массивами хранения с использованием возможностей программного RAID Linux. Администраторы имеют большую гибкость в координации своих индивидуальных накопителей и создании логических устройств хранения, обладающих более высокой производительностью или характеристиками избыточности.
В этом руководстве вы выполните различные конфигурации RAID, которые могут быть настроены с использованием сервера Ubuntu 22.04.
Предварительные требования
Для выполнения шагов в этом руководстве вам понадобятся:
- A non-root user with
sudo
privileges on an Ubuntu 22.04 server. To learn how to set up an account with these privileges, follow our Ubuntu 22.04 initial server setup guide. - A basic understanding of RAID terminology and concepts. To learn more about RAID and what RAID level is right for you, read our introduction to RAID article.
- Несколько накопителей на вашем сервере. Примеры в этом учебнике демонстрируют, как настроить различные типы массивов на сервере. Следовательно, вам понадобятся некоторые диски для настройки.
- В зависимости от типа массива вам понадобятся от двух до четырех накопителей. Эти диски не нужно форматировать перед выполнением данного руководства.
Информация: Из-за неэффективности настроек RAID на виртуальных частных серверах мы не рекомендуем развертывать настройки RAID на каплях DigitalOcean. Эффективность репликации дисков в центре обработки данных делает выгоды RAID незначительными по сравнению с настройкой на оборудовании baremetal. Это руководство направлено на то, чтобы быть справочником для обычной настройки RAID.
Сброс существующих устройств RAID (по желанию)
Вы можете пропустить этот раздел сейчас, если еще не настроили массивы. В этом руководстве будет представлено несколько различных уровней RAID. Если вы хотите следовать за руководством и завершить каждый уровень RAID для ваших устройств, вам, вероятно, захочется повторно использовать ваши накопители после каждого раздела. Этот конкретный раздел Сброс существующих устройств RAID может быть использован для сброса ваших компонентов накопителей перед тестированием нового уровня RAID.
Предупреждение: Этот процесс полностью уничтожит массив и любые данные, записанные на него. Убедитесь, что вы работаете с правильным массивом и скопировали любые данные, которые вам нужно сохранить, перед уничтожением массива.
Начните с поиска активных массивов в файле /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid0 sdc[1] sdd[0]
209584128 blocks super 1.2 512k chunks
unused devices: <none>
Затем отмонтируйте массив из файловой системы:
- sudo umount /dev/md0
Теперь остановите и удалите массив:
- sudo mdadm --stop /dev/md0
Найдите устройства, которые были использованы для создания массива с помощью следующей команды:
Предупреждение: Имейте в виду, что имена /dev/sd*
могут измениться при каждой перезагрузке. Проверяйте их каждый раз, чтобы убедиться, что вы работаете с правильными устройствами.
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G linux_raid_member disk
sdb 100G linux_raid_member disk
sdc 100G disk
sdd 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
После обнаружения устройств, использованных для создания массива, обнулите их суперблок, который содержит метаданные для настройки RAID. Обнуление этого удаляет метаданные RAID и сбрасывает их в нормальное состояние:
- sudo mdadm --zero-superblock /dev/sda
- sudo mdadm --zero-superblock /dev/sdb
Рекомендуется также удалить все постоянные ссылки на массив. Отредактируйте файл /etc/fstab
и закомментируйте или удалите ссылку на свой массив. Вы можете закомментировать его, вставив символ хештега #
в начале строки, используя nano
или ваш текстовый редактор по умолчанию:
- sudo nano /etc/fstab
. . .
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0
Также закомментируйте или удалите определение массива из файла /etc/mdadm/mdadm.conf
:
- sudo nano /etc/mdadm/mdadm.conf
. . .
# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91
Наконец, обновите initramfs
снова, чтобы ранний процесс загрузки не пытался подключить недоступный массив в сеть:
- sudo update-initramfs -u
Отсюда вы должны быть готовы повторно использовать устройства хранения индивидуально или в качестве компонентов другого массива.
Создание массива RAID 0
Массив RAID 0 работает путем разбиения данных на части и размещения их по дискам. Это означает, что каждый диск содержит часть данных, и что для получения информации будут использоваться несколько дисков.
- Требования: Минимум 2 устройства хранения.
- Основное преимущество: Производительность в терминах чтения/записи и объема.
- Вещи, которые следует иметь в виду: Убедитесь, что у вас есть рабочие резервные копии. Отказ одного устройства уничтожит все данные в массиве.
Определение компонентных устройств
Для начала найдите идентификаторы необработанных дисков, которые вы собираетесь использовать:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
В этом примере у вас есть два диска без файловой системы, каждый размером 100 ГБ. Этим устройствам были назначены идентификаторы /dev/sda
и /dev/sdb
для этой сессии и они будут использоваться в качестве необработанных компонентов для создания массива.
Создание массива
Чтобы создать массив RAID 0 с этими компонентами, передайте их в команду mdadm --create
. Вам нужно будет указать имя устройства, которое вы хотите создать, уровень RAID и количество устройств. В этом примере команды вы назовете устройство /dev/md0
и включите два диска, которые будут использоваться для создания массива:
- sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb
Убедитесь, что RAID успешно создан, проверив файл /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid0 sdb[1] sda[0]
209584128 blocks super 1.2 512k chunks
unused devices: <none>
Этот вывод показывает, что устройство /dev/md0
было создано в конфигурации RAID 0 с использованием устройств /dev/sda
и /dev/sdb
.
Создание и монтирование файловой системы
Затем создайте файловую систему на массиве:
- sudo mkfs.ext4 -F /dev/md0
Затем создайте точку монтирования для подключения новой файловой системы:
- sudo mkdir -p /mnt/md0
Вы можете монтировать файловую систему с помощью следующей команды:
- sudo mount /dev/md0 /mnt/md0
Затем проверьте, доступно ли новое пространство:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 196G 61M 186G 1% /mnt/md0
Новая файловая система теперь смонтирована и доступна.
Сохранение конфигурации массива
Чтобы убедиться, что массив собирается автоматически при загрузке, вам придется настроить файл /etc/mdadm/mdadm.conf
. Вы можете автоматически сканировать активный массив и добавить файл с помощью следующего:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Затем вы можете обновить initramfs
, или начальную файловую систему RAM, чтобы массив был доступен во время начального процесса загрузки:
- sudo update-initramfs -u
Добавьте новые параметры монтирования файловой системы в файл /etc/fstab
для автоматического монтирования при загрузке:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Ваш массив RAID 0 теперь будет автоматически собираться и монтироваться при каждой загрузке.
Теперь вы завершили настройку вашего набора RAID. Если вы хотите попробовать другой RAID, следуйте инструкциям по сбросу в начале этого руководства, чтобы продолжить создание нового типа массива RAID.
Создание массива RAID 1
Массив типа RAID 1 реализуется путем зеркалирования данных по всем доступным дискам. Каждый диск в массиве RAID 1 получает полную копию данных, обеспечивая избыточность в случае отказа устройства.
- Требования: Минимум 2 устройства хранения.
- Основное преимущество: Избыточность между двумя устройствами хранения.
- Что следует иметь в виду: Поскольку поддерживаются две копии данных, будет использоваться только половина дискового пространства.
Определение компонентных устройств
Для начала найдите идентификаторы необработанных дисков, которые вы будете использовать:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
В этом примере у вас есть два диска без файловой системы, каждый размером 100 ГБ. Этим устройствам были присвоены идентификаторы /dev/sda
и /dev/sdb
для этой сессии и будут использоваться в качестве необработанных компонентов для создания массива.
Создание массива
Для создания массива RAID 1 с этими компонентами передайте их в команду mdadm --create
. Вам нужно будет указать имя устройства, которое вы хотите создать, уровень RAID и количество устройств. В этом примере команды вы назовете устройство /dev/md0
и включите диски, которые будут составлять массив:
- sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
Если используемые вами компоненты не являются разделами с включенным флагом boot
, вероятно, вы получите следующее предупреждение. Безопасно отвечать y
и продолжить:
Outputmdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
mdadm: size set to 104792064K
Continue creating array? y
Инструмент mdadm
начнет зеркалирование дисков. Это может занять некоторое время, но массив можно использовать во время этого процесса. Вы можете отслеживать прогресс зеркалирования, проверив файл /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb[1] sda[0]
104792064 blocks super 1.2 [2/2] [UU]
[====>................] resync = 20.2% (21233216/104792064) finish=6.9min speed=199507K/sec
unused devices: <none>
На первой выделенной строке устройство /dev/md0
было создано в конфигурации RAID 1 с использованием устройств /dev/sda
и /dev/sdb
. Вторая выделенная строка показывает прогресс зеркалирования. Вы можете перейти к следующему шагу, пока этот процесс завершается.
Создание и монтирование файловой системы
Затем создайте файловую систему на массиве:
- sudo mkfs.ext4 -F /dev/md0
Затем создайте точку монтирования для подключения новой файловой системы:
- sudo mkdir -p /mnt/md0
Вы можете смонтировать файловую систему, выполнив следующее:
- sudo mount /dev/md0 /mnt/md0
Проверьте, доступно ли новое пространство:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 99G 60M 94G 1% /mnt/md0
Новая файловая система смонтирована и доступна.
Сохранение макета массива
Чтобы убедиться, что массив автоматически собирается при загрузке, вам нужно настроить файл /etc/mdadm/mdadm.conf
. Вы можете автоматически сканировать активный массив и добавить в файл следующее:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
После этого вы можете обновить initramfs
, или файловую систему начальной загрузки, чтобы массив был доступен во время начального этапа загрузки:
- sudo update-initramfs -u
Добавьте новые параметры монтирования файловой системы в файл /etc/fstab
для автоматического монтирования при загрузке:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Ваш массив RAID 1 теперь будет автоматически собираться и монтироваться при каждой загрузке.
Теперь вы завершили настройку вашего набора RAID. Если вы хотите попробовать другой тип RAID, следуйте инструкциям по сбросу в начале этого руководства, чтобы приступить к созданию нового типа массива RAID.
Создание массива RAID 5
Тип массива RAID 5 реализуется путем полосового распределения данных по доступным устройствам. Одним из компонентов каждой полосы является рассчитанный блок четности. Если устройство выходит из строя, блок четности и оставшиеся блоки могут быть использованы для вычисления отсутствующих данных. Устройство, которое получает блок четности, вращается так, чтобы каждое устройство имело сбалансированное количество информации о четности.
- Требования: Минимум 3 устройства хранения.
- Основное преимущество: Запас по емкости с повышенной отказоустойчивостью.
- Что нужно иметь в виду: Несмотря на распределение информации о четности, одна единица дисковой емкости будет использоваться для четности. Массив RAID 5 может испытывать существенное снижение производительности в деградированном состоянии.
Определение компонентных устройств
Для начала найдите идентификаторы необработанных дисков, которые вы собираетесь использовать:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
sdc 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
У вас есть три диска без файловой системы, каждый размером 100 ГБ. Этим устройствам были присвоены идентификаторы /dev/sda
, /dev/sdb
и /dev/sdc
для этой сессии, и они будут необработанными компонентами, используемыми для построения массива.
Создание массива
Для создания массива RAID 5 с этими компонентами передайте их в команду mdadm --create
. Вам нужно будет указать имя устройства, которое вы хотите создать, уровень RAID и количество устройств. В этом примере команды вы будете называть устройство /dev/md0
и включите диски, которые будут формировать массив:
- sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc
Инструмент mdadm
начнет настройку массива. Он использует процесс восстановления для построения массива в целях повышения производительности. Это может занять некоторое время, но массив можно использовать во время этого процесса. Вы можете отслеживать прогресс зеркалирования, проверив файл /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdc[3] sdb[1] sda[0]
209582080 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
[>....................] recovery = 0.9% (957244/104791040) finish=18.0min speed=95724K/sec
unused devices: <none>
На первой выделенной строке было создано устройство /dev/md0
в конфигурации RAID 5 с использованием устройств /dev/sda
, /dev/sdb
и /dev/sdc
. На второй выделенной строке показан прогресс сборки.
Предупреждение: Из-за того, как mdadm
создает массивы RAID 5, во время сборки массива количество запасных дисков в нем будет неправильно отображаться. Это означает, что вы должны дождаться завершения сборки массива перед обновлением файла /etc/mdadm/mdadm.conf
. Если вы обновите файл конфигурации, пока массив еще собирается, система получит неверную информацию о состоянии массива и не сможет автоматически собрать его при загрузке с правильным именем.
Вы можете продолжить руководство, пока этот процесс завершится.
Создание и монтирование файловой системы
Затем создайте файловую систему на массиве:
- sudo mkfs.ext4 -F /dev/md0
Создайте точку монтирования для присоединения новой файловой системы:
- sudo mkdir -p /mnt/md0
Вы можете смонтировать файловую систему следующим образом:
- sudo mount /dev/md0 /mnt/md0
Проверьте, доступно ли новое пространство:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 197G 60M 187G 1% /mnt/md0
Новая файловая система смонтирована и доступна.
Сохранение раскладки массива
Чтобы убедиться, что массив собирается автоматически при загрузке, вам необходимо настроить файл /etc/mdadm/mdadm.conf
.
Предупреждение: Как уже упоминалось ранее, перед тем как настраивать конфигурацию, еще раз убедитесь, что массив собран. Выполнение следующих шагов до построения массива предотвратит его правильную сборку при перезагрузке системы.
Вы можете отслеживать процесс зеркалирования, проверив файл /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdc[3] sdb[1] sda[0]
209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
Этот вывод показывает, что перестройка завершена. Теперь вы можете автоматически сканировать активный массив и добавить файл:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
После этого вы можете обновить initramfs
, или начальную файловую систему RAM, чтобы массив был доступен во время начального процесса загрузки:
- sudo update-initramfs -u
Добавьте новые параметры монтирования файловой системы в файл /etc/fstab
для автоматического монтирования при загрузке:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Теперь ваш массив RAID 5 будет автоматически собираться и монтироваться при каждой загрузке.
Вы завершили настройку вашего RAID. Если вы хотите попробовать другой тип RAID, выполните инструкции по сбросу в начале этого руководства, чтобы создать новый массив RAID.
Создание массива RAID 6
Тип массива RAID 6 реализуется путем полосного размещения данных по доступным устройствам. Два компонента каждой полосы вычисляют блоки четности. Если отказывается одно или два устройства, блоки четности и оставшиеся блоки могут быть использованы для вычисления отсутствующих данных. Устройства, которые получают блоки четности, ротируются так, чтобы каждое устройство имело сбалансированное количество информации о четности. Это аналогично массиву RAID 5, но позволяет отказаться от двух дисков.
- Требования: Минимум 4 устройства хранения.
- Основное преимущество: Двойная избыточность с большей доступной емкостью.
- Важно помнить: Хотя информация о четности распределена, два диска емкости будут использоваться для четности. RAID 6 может столкнуться с очень плохой производительностью в деградированном состоянии.
Определение Компонентных Устройств
Для начала найдите идентификаторы необработанных дисков, которые вы собираетесь использовать:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
sdc 100G disk
sdd 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
В этом примере у вас четыре диска без файловой системы, каждый размером 100 ГБ. Этим устройствам были присвоены идентификаторы /dev/sda
, /dev/sdb
, /dev/sdc
и /dev/sdd
для данной сессии и они будут использоваться в качестве необработанных компонентов для создания массива.
Создание Массива
Чтобы создать массив RAID 6 с этими компонентами, передайте их в команду mdadm --create
. Вам нужно указать имя устройства, которое вы хотите создать, уровень RAID и количество устройств. В следующем примере команды вы назовете устройство /dev/md0
и включите диски, которые будут использоваться для построения массива:
- sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Инструмент mdadm
начнет настройку массива. Он использует процесс восстановления для построения массива в целях повышения производительности. Это может занять некоторое время, но массив можно использовать во время этого процесса. Вы можете отслеживать процесс зеркалирования, проверив файл /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid6 sdd[3] sdc[2] sdb[1] sda[0]
209584128 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU]
[>....................] resync = 0.6% (668572/104792064) finish=10.3min speed=167143K/sec
unused devices: <none>
В первой выделенной строке устройство /dev/md0
создано в конфигурации RAID 6 с использованием устройств /dev/sda
, /dev/sdb
, /dev/sdc
и /dev/sdd
. Вторая выделенная строка показывает прогресс сборки. Вы можете продолжить руководство, пока этот процесс завершается.
Создание и монтирование файловой системы
Затем создайте файловую систему на массиве:
- sudo mkfs.ext4 -F /dev/md0
Создайте точку монтирования для присоединения новой файловой системы:
- sudo mkdir -p /mnt/md0
Вы можете примонтировать файловую систему следующим образом:
- sudo mount /dev/md0 /mnt/md0
Проверьте, доступно ли новое пространство:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 197G 60M 187G 1% /mnt/md0
Новая файловая система смонтирована и доступна.
Сохранение конфигурации массива
Чтобы убедиться, что массив автоматически собирается при загрузке, вам нужно настроить файл /etc/mdadm/mdadm.conf
. Вы можете автоматически сканировать активный массив и добавить в файл, набрав:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
После этого вы можете обновить initramfs
, или начальную файловую систему RAM, чтобы массив был доступен во время начального процесса загрузки:
- sudo update-initramfs -u
Добавьте новые параметры монтирования файловой системы в файл /etc/fstab
для автоматического монтирования при загрузке:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Ваш массив RAID 6 теперь будет автоматически собираться и монтироваться при каждой загрузке.
Вы завершили настройку вашего RAID. Если вы хотите попробовать другой RAID, следуйте инструкциям по сбросу в начале этого руководства, чтобы продолжить создание нового типа массива RAID.
Создание сложного массива RAID 10
Тип массива RAID 10 традиционно реализуется путем создания полосового массива RAID 0, состоящего из наборов массивов RAID 1. Этот вложенный тип массива обеспечивает как избыточность, так и высокую производительность за счет большого объема дискового пространства. Утилита mdadm
имеет собственный тип RAID 10, который предоставляет те же преимущества с увеличенной гибкостью. Он не создается путем вложения массивов, но имеет множество тех же характеристик и гарантий. Здесь вы будете использовать RAID 10 от mdadm
.
- Требования: Минимум 3 устройства хранения.
- Основное преимущество: Производительность и избыточность.
- Важные моменты: Объем уменьшения емкости массива определяется количеством копий данных, которые вы выбираете для сохранения. Количество копий, хранящихся в стиле
mdadm
RAID 10, можно настраивать.
По умолчанию две копии каждого блока данных будут сохранены в так называемой компоновке near. Возможные компоновки, которые определяют, как будет храниться каждый блок данных, следующие:
- near: Расположение по умолчанию. Копии каждого фрагмента записываются последовательно при полосовке, что означает, что копии блоков данных будут записаны вокруг той же части нескольких дисков.
- far: Первая и последующие копии записываются в разные части устройств хранения в массиве. Например, первый фрагмент может быть записан близко к началу диска, в то время как второй фрагмент будет записан на середине другого диска. Это может дать некоторый выигрыш в производительности при чтении для традиционных вращающихся дисков за счет производительности записи.
- offset: Каждая полоса копируется и смещается на один диск. Это означает, что копии смещены друг относительно друга, но все еще близки друг к другу на диске. Это помогает минимизировать чрезмерное перемещение при некоторых рабочих нагрузках.
Больше информации о этих компоновках можно найти, ознакомившись с разделом RAID10
в этой странице man
:
- man 4 md
Вы также можете найти эту страницу руководства онлайн.
Идентификация компонентных устройств
Для начала найдите идентификаторы необработанных дисков, которые вы собираетесь использовать:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINT
sda 100G disk
sdb 100G disk
sdc 100G disk
sdd 100G disk
vda 25G disk
├─vda1 24.9G ext4 part /
├─vda14 4M part
└─vda15 106M vfat part /boot/efi
vdb 466K iso9660 disk
В этом примере у вас есть четыре диска без файловой системы, каждый размером 100 ГБ. Этим устройствам были присвоены идентификаторы /dev/sda
, /dev/sdb
, /dev/sdc
и /dev/sdd
для этой сессии и будут использоваться в качестве необработанных компонентов для создания массива.
Создание массива
Для создания массива RAID 10 с этими компонентами передайте их в команду mdadm --create
. Вам нужно указать имя устройства, которое вы хотите создать, уровень RAID и количество устройств. В следующем примере команды вы назовете устройство /dev/md0
и включите диски, которые будут использоваться для создания массива:
Вы можете настроить две копии, используя близкий макет, не указывая макет и количество копий:
- sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Если вы хотите использовать другой макет или изменить количество копий, вам придется использовать опцию --layout=
, которая принимает идентификатор макета и копии. Макеты: n
для близкого, f
для дальнего и o
для смещенного. Количество копий для сохранения добавляется после этого.
Например, чтобы создать массив, содержащий три копии в макете смещения, команда будет выглядеть следующим образом:
- sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Инструмент mdadm
начнет настройку массива. Он использует процесс восстановления для построения массива в целях повышения производительности. Это может занять некоторое время, но массив можно использовать в течение этого времени. Вы можете отслеживать процесс зеркалирования, проверив файл /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active raid10 sdd[3] sdc[2] sdb[1] sda[0]
209584128 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
[===>.................] resync = 18.1% (37959424/209584128) finish=13.8min speed=206120K/sec
unused devices: <none>
На первой выделенной строке устройство /dev/md0
было создано в конфигурации RAID 10 с использованием устройств /dev/sda
, /dev/sdb
, /dev/sdc
и /dev/sdd
. Второй выделенный участок показывает используемую в этом примере конфигурацию (два копирования в ближней конфигурации). Третий выделенный участок показывает прогресс построения. Вы можете продолжать выполнение руководства, пока этот процесс завершается.
Создание и монтирование файловой системы
Затем создайте файловую систему на массиве:
- sudo mkfs.ext4 -F /dev/md0
Создайте точку монтирования для подключения новой файловой системы:
- sudo mkdir -p /mnt/md0
Вы можете монтировать файловую систему следующим образом:
- sudo mount /dev/md0 /mnt/md0
Проверьте, доступно ли новое пространство:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 1.4G 23G 6% /
/dev/vda15 105M 3.4M 102M 4% /boot/efi
/dev/md0 197G 60M 187G 1% /mnt/md0
Новая файловая система смонтирована и доступна.
Сохранение конфигурации массива
Чтобы убедиться, что массив автоматически собирается при загрузке, вам нужно настроить файл /etc/mdadm/mdadm.conf
. Вы можете автоматически сканировать активный массив и добавить файл, выполнив следующее:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Затем вы можете обновить initramfs
, или начальную файловую систему RAM, чтобы массив был доступен в начальном процессе загрузки:
- sudo update-initramfs -u
Добавьте новые параметры монтирования файловой системы в файл /etc/fstab
для автоматического монтирования при загрузке:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Ваш массив RAID 10 теперь будет автоматически собираться и монтироваться при каждой загрузке.
Заключение
В этом руководстве вы узнали, как создавать различные типы массивов с использованием программного обеспечения RAID mdadm
в Linux. Массивы RAID предлагают привлекательные варианты избыточности и улучшения производительности по сравнению с использованием нескольких дисков индивидуально.
После того как вы определитесь с типом массива, необходимым для вашей среды, и создадите устройство, вы можете узнать, как проводить повседневное управление с помощью mdadm
. Наше руководство по управлению массивами RAID с использованием mdadm
на Ubuntu может помочь вам начать.