В данной статье рассматриваются основные операции с программными RAID-массивами для хранения данных в Линуксе с помощью утилиты mdadm.
В этой статье рассказывается о том, как сконфигурировать программный RAID массив с помощью мастера установки и настройки Ubuntu Server на примере RAID 1 (зеркало).
Во время установки системы в разделе Guided storage configuration необходимо выбрать пункт Custom storage layout
Попадаем в раздел Storage configuration. Здесь у нас отображаются 2 наших жёстких диска
Жмём на первый и выбираем пункт Use As Boot Device
Также жмём на второй и выбираем пункт Add As Another Boot Device
Теперь в пункте USED DEVICES у нас отображаются оба жёстких диска с разделом bios_grub — 1MB
Затем снова жмём на первый и выбираем пункт Add GPT Partition
Создаём раздел диска 256M для /boot, но оставим его неформатированным
Затем также создадим ещё 2 раздела для swap и корня — 1GB и оставшееся место на диске, и тоже оставим их неформатированными
Эти же действия проделаем и со вторым диском
Теперь переходим в пункт Create software RAID (md) и здесь настроим MD диск md0. В устройствах выберем partition 2 на обоих жёстких дисках, и режим у них должен быть active.
Таким же образом создадим диск md1 для partition 3 и md2 для partition 4 и на выходе получим связанные разделы software RAID 1
Далее жмём на md0 (new) и выбираем пункт Add GPT Partition
выбираем формат ext4 и Mount /boot
Таким же образом сделаем для md1 (new) с форматом swap и md2 (new) с форматом ext4 и Mount / (корень).
Таким образом мы объединили разделы жётских дисков в массив RAID 1 (зеркало)
Затем жмём Готово
и подтверждаем изменения, нажав Продолжить
После этого продолжаем установку системы как обычно.
Когда установка системы завершится и машина перезагрузится, запустим команду:
# cat /proc/mdstat
Консоль покажет, что массив работает в активном состоянии.
— Advertisement —
RAID introduces: (Redundant Array of Inexpensive Disks or Drives, or Redundant Array of Independent Disks) is a data storage virtualization technology that combines multiple physical disk drive components into one or more logical units for the purposes of data redundancy, performance improvement, or both. This was in contrast to the previous concept of highly reliable mainframe disk drives referred to as “single large expensive disk” (SLED).
- The test environment
- Conclusion
- Создание программного RAID в Linux
- Шаг 2. Подготовка дисков
- Шаг 3. Создание RAID 0
- Шаг 4. Тестирование RAID 0
- Шаг 5. Информация о RAID
- Шаг 6. Сохранение RAID массива
- Шаг 7. Переименование RAID массива
- Шаг 8. Удаление RAID массива
- Шаг 10. Создание массива RAID 1
- Разбор массива
- Создание и сборка массива
- Сборка существующих ранее созданных массивов
- Выводы
The test environment
disk partition info
You can see that sdb and sdc are not in use
Because RAID requires the same size of each hard disk, sdb and sdc are partitioned respectively, and each hard disk is partitioned into a 16G partition, and Hex code is modified as fd
partition for sdc
yum install madadm
sdb1, sdc1 form a group of raid-1, RAID device named /dev/md0
Check the progress:
View RAID information:
mdadm -D /dev/md0
Here we create a RAID1 disk array from mdadm
mkfs.xfs /dev/md0
mkdir /raid1
mount /dev/md0 /raid1
df -h
At this time we can go to /raid1 directory to store our files
Conclusion
Save A file to display of RAID 1, RAID will cut into A1, A2, A3, branch of two pieces of written to disk, can make the disk write speed slightly down, because this way is written to disk, one of the hard disk is broken, another have the same backup hard disk, so the RAID 1 is redundant support, but the cost is quite high, also only 1/2 of the disk space can be used
В высоконагруженных производственных серверах жесткие диски и SSD подключены не по отдельности, а объединены в специальные массивы, внутри которых данные физически хранятся на нескольких дисках одновременно, что обеспечивает лучшую сохранность данных при выходе дисков из строя, а также увеличивает скорость записи, так как данные можно записывать не на один диск, а сразу на несколько обходя ограничение скорости каждого диска. Такие массивы называются RAID.
Для создания RAID массивов используются аппаратные специальные контроллеры. Однако создать RAID массив можно и без такого контролера. Такие массивы называются программными. В этой статье мы рассмотрим как создать программный RAID Linux.
Аббревиатура RAID расшифровывается как Redundant Array of Inexpensive Disks. С помощью этой технологии вы можете превратить несколько реальных жестких дисков в один виртуальный диск с увеличенным объемом и скоростью передачи данных. Но объем полученного диска и параметры его работы уже зависят от выбранного режима работы RAID. Доступны такие режимы:
Конечно, существуют и другие режимы работы, но эти самые популярные. В сегодняшней статье мы рассмотрим как создать программный RAID уровней 0 и 1.
This article will learn how to configure centos 8 in a Linux system with a RAID setup. R AID was initially developed to allow disks such as HDD, NVMe, and SSD to be combined into an array to realize redundancy. However, the Redundant Array of Independent Disk is the full form of the word “RAID”.
During the installation of CentOS, the software RAID configuration worked. R AID also has several levels, and in this article, we will use RAID1 with 2 HDDs disks, named sda and sdb, respectively.
Step 1: Start CentOS from the installation disc.
Step 2: The second step is to choose “Install the basic video driver.”
Step 3: Whenever prompted, skip media tests.
Step 4: Continue by clicking “Next.”
Step 5: Click “Next” to select our preferred system language.
Step 6: To continue, select our preferred keyboard layout and click “Next.”
Step 7: Click “Next” to continue after selecting “Basic Storage Device.”
Step 8: Select the server’s hostname (localhost.local domain is the default), then click “Next” to proceed.
Step 9: We must select a time zone and then click “Next” to proceed.
Step 10: Select a password for the root account of our server, and click “Next.”
Step 11: We’ll need to enter our root password and click the “Next.” button.
Step 12: We should delete existing data and partitions from our hard drive (if blank).
Step 13: For sda, create a RAID partition
Step 14: Then select “Hard Drives” and click “Create.” To create a software RAID, click on “RAID Device” under “Create Software RAID.”
Step 16: (Ignore swap partition warning) On the “Next” screen, click “Yes” to continue.
Step 17: When prompted, click “Write changes to disk.”
Step 18: You have to start the installation by clicking on “Next” and wait till the installation is complete.
Step 19: Finally, click on “Reboot” when the installation is complete.
This article tried to explain how to configure centos 8 in the Linux operating system with a RAID setup. We tried to explain very well from our side and even told the whole process step by step. We hope you will understand this article of ours and you will be able to configure centos 8 easily with its help.
Создание программного RAID в Linux
Для управления программными RAID массивами в Linux используется утилита mdadm. Для того чтобы установить её в Ubuntu или Debian выполните такую команду:
sudo apt install mdadm
Для установки утилиты в CentOS/Fedora/RedHat необходимо выполнить:
sudo yum install mdadm
Шаг 2. Подготовка дисков
Посмотреть список дисков, подключённых к системе можно с помощью команды lsblk:
В этой статье я покажу как объединить три диска в RAID на примере дисков /dev/sda, /dev/sdb и /dev/sdc. Сначала необходимо определиться стоит ли размещать RAID непосредственно на диски или на разделы. Лучше выбрать разделы, так как это дает больше гибкости и безопасности. Во первых, операционная система может перезаписать суперблок RAID если он размещён прямо на диске. Во вторых, если вы выделяете весь диск под RAID, то у вас могут возникнуть проблемы при замене диска. Диски одинакового объема, обычно, немного отличаются у разных производителей. Поэтому для замены вам придется искать точно такой же диск с точно таким же реальным объемом. Если же у вас будет раздел, вы просто сможете создать раздел нужного объема.
Сначала нужно создать таблицу разделов на всех выбранных дисках:
sudo parted /dev/sda mklabel msdos
sudo parted /dev/sdb mklabel msdos
sudo parted /dev/sdc mklabel msdos
Если на диске уже существует таблица разделов программа предупредит о том, что создание новой сотрёт все данные с диска. После создания таблицы разделов следует создать по разделу на каждом диске. Например, создадим разделы размером 460 гигабайт. Для этого можно воспользоваться той же командой parted:
sudo parted /dev/sda mkpart primary ext4 2048 460Gb
sudo parted /dev/sdb mkpart primary ext4 2048 460Gb
sudo parted /dev/sdc mkpart primary ext4 2048 460Gb
Теперь диски готовы к размещению на них RAID:
Шаг 3. Создание RAID 0
Для создания RAID массива надо выполнить команду mdadm с опцией —create, указать режим работы массива, количество дисков и сами диски. Синтаксис команды такой:
$ sudo mdadm
sudo mdadm —create /dev/md0 —level=0 —raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1
После выполнения этой команды вы увидите раздел raid в lsblk. С этим разделом можно работать как с любым обычным разделом в вашей системе.
Шаг 4. Тестирование RAID 0
Давайте для примера отформатируем полученный раздел в файловую систему Ext4, смонтируем и попробуем записывать туда файлы:
sudo mkfs -t ext4 /dev/md0
sudo mount /dev/md0 /mnt
Затем можно тестировать скорость с помощью dd:
sudo dd if=/dev/zero of=/mnt/file bs=1G count=5
Как видите, при записи 5 Гб данных мы получаем скорость 400 Мб/сек, это уже на уровне обычного SSD.
Шаг 5. Информация о RAID
Найти информацию обо всех созданных в системе RAID массивах вы можете в файле /proc/mdstat:
Именно так можно посмотреть RAID Linux. Посмотреть более детальную информацию о массиве /dev/md0 можно с помощью самой утилиты mdadm:
sudo mdadm —detail /dev/md0
Здесь в том числе отображается состояние RAID Linux. Посмотреть детальную информацию о каждом устройстве, которое входит в RAID можно с помощью опции —examine:
sudo mdadm —examine /dev/sda1 /dev/sdb1 /dev/sdc1
Шаг 6. Сохранение RAID массива
В принципе, уже сейчас RAID массив работает и продолжит работать после перезагрузки, потому что mdadm просканирует все диски, найдёт метаданные массива и построит его. Но неизвестно какое имя программа присвоит полученному массиву и неизвестно все ли параметры будут восстановлены верно. Поэтому конфигурацию массива лучше сохранить. Для этого используйте такую команду:
Затем нужно пересоздать initramfs с поддержкой этого массива:
sudo update-initramfs -u
С полученным массивом можно обращаться как с обычным разделом диска. Например, для того чтобы автоматически монтировать его в систему добавьте такую строчку в /etc/fstab:
sudo vi /etc/fstab
/dev/md0 /mnt/ ext4 defaults 0 0
На этом создание raid массива linux завершено.
Шаг 7. Переименование RAID массива
Если вы не выполните предыдущий пункт и перезагрузите компьютер, то можете получить RAID массив с именем md127 вместо md0, такое имя также может быть присвоено второму RAID массиву. Для того чтобы переименовать массив, его придется пересобрать. Для этого сначала остановите существующий массив:
sudo mdadm —stop /dev/md127
Затем выполните команду переименования. Синтаксис у неё такой:
sudo mdadm —assemble —update=name —name=0 /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1
После этого следует повторить предыдущий шаг для уже правильного сохранения RAID устройства.
Шаг 8. Удаление RAID массива
Если вы не хотите чтобы ваши диски и дальше были объединены в RAID, его можно удалить. Для этого выполните такую команду:
sudo mdadm —remove /dev/md0
Она удалит все метаданные с дисков /dev/md0. Дальше останется только удалить или закомментировать секцию данного RAID массива в /etc/mdadm/mdadm.conf
sudo vi /etc/mdadm/mdadm.conf
Шаг 10. Создание массива RAID 1
Теперь вы знаете как создать raid linux на примере RAID 0. Давайте ещё разберемся с RAID 1. Для создания RAID 1 используется такая же команда как и для RAID 0, но указывается другой уровень работы массива:
sudo mdadm —create /dev/md0 —level=1 —raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1
Затем вы можете убедится что RAID создан посмотрев информацию о нём:
Ну и с помощью lsblk можно оценить размер устройства:
Как и ожидалось, размер не увеличился, поскольку копии данных будут записываться на все три диска. Теперь давайте посмотрим на скорость:
Скорость записи данных такая же как и у одного диска. Это цена сохранности данных. Если вы отключите один из дисков, то все данные всё равно будут вам доступны.
Разбор массива
Внимание! Данные действия могут привести к полной или частичной потере данных, поэтому рекомендуется сначала скопировать их в другое место.
В первую очередь необходимо размонтировать массивы
Затем убрать записи с /etc/fstab
/dev/md1 /mnt/data/part1 ext4 noatime 1 0
/dev/md2 /mnt/data/part2 ext4 noatime 1 0
Потом остановить работающие массивы
# mdadm —stop /dev/md1
# mdadm —stop /dev/md2
Чтобы система не смогла автоматически собрать массивы снова, необходимо обнулить суперблоки каждого диска массивов:
а также стереть подписи и метаданные с дисков:
# wipefs —all —force /dev/sdb
# wipefs —all —force /dev/sdc
И ещё нужно убрать или закомментировать ссылки в mdadm.conf.
Создание и сборка массива
Весь этот процесс состоит из нескольких этапов:
В первую очередь необходимо установить mdadm.
# emerge sys-fs/mdadm
В CentOS Stream:
# yum install mdadm
# apt install mdadm
В Ubuntu Server 20.10 уже есть, здесь ничего дополнительно устанавливать не нужно.
Теперь переходим к разметке диска sdb:
# cfdisk /dev/sdb
Зададим таблицу разделов GPT, создаём 2 раздела sdb1 и sdb2 и тип этих разделов Linux RAID
Теперь копируем структуру диска sdb на диск sdc утилитой sfdisk:
# fdisk -l /dev/sdb
# fdisk -l /dev/sdc
Затем создаём массивы md1 и md2 с первым и вторым разделами каждого диска соответственно:
# mdadm —create —verbose /dev/md1 -l 1 -n 2 /dev/sdb1 /dev/sdc1
# mdadm —create —verbose /dev/md2 -l 1 -n 2 /dev/sdb2 /dev/sdc2
Теперь необходимо подождать, когда закончится синхронизация. Промониторить это можно командой
После окончания синхронизации запишем конфиг массивов.
Для Gentoo и CentOS:
а для Debian и Ubuntu Server:
После этого отформатируем созданные массивы в ext4:
# mkfs.ext4 /dev/md1
# mkfs.ext4 /dev/md2
Теперь создадим каталоги /mnt/data, /mnt/data/part1 и /mnt/data/part2
примонтируем массивы: /dev/md1 — в /mnt/data/part1, а /dev/md2 -в /mnt/data/part2
# mount /dev/md1 /mnt/data/part1
# mount /dev/md2 /mnt/data/part2
Получить подробную информацию по массиву можно с помощью команды:
# mdadm —detail /dev/md1
# mdadm —detail /dev/md2
Размонтировать массивы можно командой:
Для того, чтобы массивы автоматически монтировались при загрузке системы, пропишем их в файл /etc/fstab:
# nano /etc/fstab
Замена диска в массиве
# mdadm /dev/md1 —fail /dev/sdc1
# mdadm /dev/md1 —remove /dev/sdc1
# mdadm /dev/md1 —add /dev/sdd1
Сборка существующих ранее созданных массивов
# mdadm —assemble /dev/md1 /dev/sdb1 /dev/sdc1
# mdadm —assemble /dev/md2 /dev/sdb2 /dev/sdc2
Выводы
В этой статье мы рассмотрели как создать программный RAID в Linux. Как видите здесь нет ничего очень сложного. Может и программный RAID не такой производительный, как аппаратный, зато полностью решает задачи объединения дисков.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.