Настроить RAID 0 | RAID 1 | RAID 10 на CentOS 8
RAID означает избыточный массив независимых дисков. Он был в основном разработан, чтобы позволить объединить множество дисков (таких как HDD, SSD и NVMe) в массив для реализации избыточности. Этот массив устройств представляется компьютеру как единый логический накопитель или диск. Избыточность не может быть достигнута с помощью одного огромного диска, подключенного к вашему проекту, потому что восстановление данных будет практически невозможно в случае аварии. В RAID, даже если массив состоит из нескольких дисков, компьютер « видит » его как один диск или единое логическое устройство хранения, что довольно удивительно.
Определение терминов
- Горячий резерв: — Если у вас есть диск, который не используется в массиве RAID и находится в режиме ожидания на случай сбоя диска, то у вас есть «Горячий» резерв. Данные с неисправного диска будут автоматически перенесены на этот запасной диск.
- Зеркалирование: — Как вы уже догадались, зеркалирование — это копирование тех же данных на другой диск. Эта функция делает возможной идею резервного копирования данных.
- Чередование: — функция, позволяющая произвольно записывать данные на все доступные диски. Это похоже на обмен данными между всеми дисками, поэтому все они заполняются одинаково.
- Четность: — метод восстановления потерянных данных из сохраненной информации о четности.
Используя такие методы, как чередование дисков (уровень RAID 0), зеркалирование дисков (уровень RAID 1) и чередование дисков с контролем четности (уровни RAID 5, 4 и 6), RAID может обеспечить избыточность, более низкую задержку, увеличенную пропускную способность и максимальную производительность. возможность восстановления после сбоев жесткого диска.
Основные причины, по которым вам следует рассмотреть возможность развертывания RAID в своих проектах, включают следующее:
- Достижение лучших скоростей
- Увеличивает емкость хранилища с помощью одного виртуального диска
- Минимизирует потерю данных из-за отказа диска. В зависимости от типа RAID вы сможете добиться избыточности, которая впоследствии спасет вас в случае потери данных.
Технология RAID бывает трех видов: микропрограммный RAID, аппаратный RAID и программный RAID. Аппаратный RAID обрабатывает свои массивы независимо от хоста и по-прежнему предоставляет хосту по одному диску на массив RAID. Он использует карту аппаратного RAID-контроллера, которая прозрачно для операционной системы обрабатывает задачи RAID. Программный RAID, с другой стороны, реализует различные уровни RAID в коде диска ядра (блочного устройства) и предлагает самое дешевое решение, поскольку не требуются дорогие карты контроллера диска или шасси с горячей заменой. В нынешнюю эпоху существуют более быстрые процессоры, поэтому программный RAID обычно превосходит аппаратный RAID.
Кардинальные особенности программного RAID. Источник (access.redhat.com)
- Переносимость массивов между машинами Linux без реконструкции
- Реконструкция фонового массива с использованием неработающих системных ресурсов
- Поддержка дисков с возможностью горячей замены
- Автоматическое определение ЦП для использования некоторых функций ЦП, таких как поддержка потоковой передачи SIMD
- Автоматическое исправление сбойных секторов на дисках в массиве
- Регулярные проверки целостности данных RAID для обеспечения работоспособности массива.
- Упреждающий мониторинг массивов с оповещениями по электронной почте, отправляемыми на указанный адрес электронной почты о важных событиях
- Растровые изображения с намерением записи, которые резко увеличивают скорость событий повторной синхронизации, позволяя ядру точно знать, какие части диска необходимо повторно синхронизировать, вместо повторной синхронизации всего массива
Настройка RAID на CentOS 8
Сделав краткое введение, давайте рассмотрим суть вопроса и настроим различные уровни RAID в CentOS 8. Прежде чем продолжить, нам понадобится инструмент mdadm, который поможет в настройке различных уровней RAID.
sudo dnf -y update
sudo dnf -y install mdadm
Настройка RAID уровня 0 в CentOS 8
Как уже упоминалось, RAID 0 обеспечивает чередование без четности и требует как минимум двух жестких дисков. Он хорошо работает, когда его скорость сравнивается с остальными, потому что он не хранит никаких данных четности и выполняет операции чтения и записи одновременно.
Посмотрим, какие диски есть на нашем сервере:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 128G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 127G 0 part
├─cl_centos8-root 253:0 0 50G 0 lvm /
├─cl_centos8-swap 253:1 0 2G 0 lvm [SWAP]
└─cl_centos8-home 253:2 0 75G 0 lvm /home
sdb 8:16 0 1G 0 disk
sdc 8:32 0 1G 0 disk
sdd 8:48 0 1G 0 disk
Как показано выше, к серверу подключены три необработанных диска ( sdb, sdc и sdd ). Мы начнем с очистки дисков, а затем разбиваем их на разделы, прежде чем создавать на них RAID.
for i in sdb sdc sdd; do
sudo wipefs -a /dev/$i
sudo mdadm --zero-superblock /dev/$i
done
Создайте по одному разделу на каждом из дисков и установите флаг RAID.
for i in sdb sdc sdd; do
sudo parted --script /dev/$i "mklabel gpt"
sudo parted --script /dev/$i "mkpart primary 0% 100%"
sudo parted --script /dev/$i "set 1 raid on"
done
Вы должны увидеть созданные новые разделы (sdb1, sdc1, sdd1):
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 128G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 127G 0 part
├─cl_centos8-root 253:0 0 50G 0 lvm /
├─cl_centos8-swap 253:1 0 2G 0 lvm [SWAP]
└─cl_centos8-home 253:2 0 75G 0 lvm /home
sdb 8:16 0 1G 0 disk
└─sdb1 8:17 0 1022M 0 part
sdc 8:32 0 1G 0 disk
└─sdc1 8:33 0 1022M 0 part
sdd 8:48 0 1G 0 disk
└─sdd1 8:49 0 1022M 0 part
После того, как разделы будут готовы, перейдите к созданию устройства RAID 0. Чередование уровней аналогично RAID 0, поскольку предлагает только чередование данных.
sudo mdadm --create /dev/md0 --level=stripe --raid-devices=3 /dev/sd[b-d]1
Узнайте статус вашего RAID-устройства, используя любую из следующих команд:
$ cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 sdd1[2] sdc1[1] sdb1[0]
3133440 blocks super 1.2 512k chunks
unused devices: <none>
Или
$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Aug 26 21:20:57 2020
Raid Level : raid0
Array Size : 3133440 (2.99 GiB 3.21 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Wed Aug 26 21:20:57 2020
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : -unknown-
Chunk Size : 512K
Consistency Policy : none
Name : centos8.localdomain:0 (local to host centos8.localdomain)
UUID : 2824d400:1967473c:dfa0938f:fbb383ae
Events : 0
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
2 8 49 2 active sync /dev/sdd1
Если все выглядит красиво, создайте файловую систему по вашему выбору на новом устройстве RAID.
sudo mkfs.ext4 /dev/md0
Затем нам нужно смонтировать новое устройство в файловой системе, чтобы оно начало хранить файлы и каталоги. Создайте новую точку монтирования:
sudo mkdir /mnt/raid0
Настроить монтирование в /etc/fstab:
echo "/dev/md0 /mnt/raid0 ext4 defaults 0 0" | sudo tee -a /etc/fstab
Если вы не уверены в типе файловой системы, введите команду ниже и измените ext4 на ТИП, который будет показан.
sudo blkid /dev/md0
/dev/md0: UUID="e6fe86e5-d241-4208-ab94-3ca79e59c8b6" TYPE="ext4"
Убедитесь, что он может быть установлен правильно:
$ sudo mount -a
$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 865M 0 865M 0% /dev
tmpfs tmpfs 882M 0 882M 0% /dev/shm
tmpfs tmpfs 882M 17M 865M 2% /run
tmpfs tmpfs 882M 0 882M 0% /sys/fs/cgroup
/dev/mapper/cl_centos8-root xfs 50G 2.1G 48G 5% /
/dev/sda1 ext4 976M 139M 770M 16% /boot
/dev/mapper/cl_centos8-home xfs 75G 568M 75G 1% /home
tmpfs tmpfs 177M 0 177M 0% /run/user/1000
/dev/md0 ext4 2.9G 9.0M 2.8G 1% /mnt/raid0 ##Our New Device.
Настройка RAID уровня 1 в CentOS 8
RAID 1 обеспечивает зеркалирование дисков или четность без чередования. Он просто записывает все данные на два диска, и поэтому, если один диск выходит из строя или извлекается, все данные будут доступны на другом диске. Поскольку он записывает на два диска, RAID 1 требует двойных жестких дисков, так что, если вы хотите использовать 2 диска, вам придется установить 4 диска для установки.
Прежде чем мы начнем, давайте очистим все диски перед тем, как мы начнем конфигурации RAID, чтобы убедиться, что мы начинаем с чистых дисков.
for i in sdb sdc sdd; do
sudo wipefs -a /dev/$i
sudo mdadm --zero-superblock /dev/$i
done
Создайте по одному разделу на каждом из дисков и установите флаг RAID.
for i in sdb sdc sdd; do
sudo parted --script /dev/$i "mklabel gpt"
sudo parted --script /dev/$i "mkpart primary 0% 100%"
sudo parted --script /dev/$i "set 1 raid on"
done
Создать устройство RAID 1:
sudo mdadm --create /dev/md1 --level=raid1 --raid-devices=2 /dev/sd[b-c]1 --spare-devices=1 /dev/sdd1
Проверьте статус нового массива:
$ sudo mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Wed Aug 26 21:32:52 2020
Raid Level : raid1
Array Size : 1045504 (1021.00 MiB 1070.60 MB)
Used Dev Size : 1045504 (1021.00 MiB 1070.60 MB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Wed Aug 26 21:33:02 2020
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Consistency Policy : resync
Name : centos8.localdomain:1 (local to host centos8.localdomain)
UUID : 9ca1da1d:a0c0a26b:6dd27959:a84dec0e
Events : 17
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
2 8 49 - spare /dev/sdd1
Когда устройство RAID будет готово, мы не сможем использовать его, если на нем нет файловой системы. Чтобы исправить это, создайте файловую систему, которая вам нужна. Ниже показан пример настройки xfs.
sudo mkfs.xfs /dev/md1
После этого создайте точку монтирования, в которую будет монтироваться устройство:
sudo mkdir /mnt/raid1
Снова настройте монтирование в /etc/fstab:
echo "/dev/md1 /mnt/raid1 xfs defaults 0 0" | sudo tee -a /etc/fstab
Убедитесь, что он может быть установлен правильно:
$ sudo mount -a
$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 865M 0 865M 0% /dev
tmpfs tmpfs 882M 0 882M 0% /dev/shm
tmpfs tmpfs 882M 17M 865M 2% /run
tmpfs tmpfs 882M 0 882M 0% /sys/fs/cgroup
/dev/mapper/cl_centos8-root xfs 50G 2.1G 48G 5% /
/dev/sda1 ext4 976M 139M 770M 16% /boot
/dev/mapper/cl_centos8-home xfs 75G 568M 75G 1% /home
tmpfs tmpfs 177M 0 177M 0% /run/user/1000
/dev/md1 xfs 1016M 40M 977M 4% /mnt/raid1
Настройка RAID уровня 10 в CentOS 8
RAID 10 сочетает в себе зеркалирование дисков (запись на два диска одновременно) и чередование дисков для защиты данных. При наличии как минимум 4 дисков RAID 10 распределяет данные по зеркальным парам. В этой конфигурации данные могут быть извлечены, пока работает один диск в каждой зеркальной паре.
Как и предыдущие уровни RAID, начните с очистки всех ваших сырых дисков.
for i in sdb sdc sdd sde; do
sudo wipefs -a /dev/$i
sudo mdadm --zero-superblock /dev/$i
done
Создайте по одному разделу на каждом из дисков и установите флаг RAID.
for i in sdb sdc sdd sde; do
sudo parted --script /dev/$i "mklabel gpt"
sudo parted --script /dev/$i "mkpart primary 0% 100%"
sudo parted --script /dev/$i "set 1 raid on"
done
Затем создайте устройство RAID 10 и проверьте его состояние:
sudo mdadm --create /dev/md10 --level=10 --raid-devices=4 dev/sd[b-e]1
sudo mdadm -–query --detail /dev/md10
После настройки устройства RAID создайте файловую систему, которая вам нужна. Ниже показан пример настройки xfs.
sudo mkfs.xfs /dev/md10
После этого создайте точку монтирования, в которую будет монтироваться устройство:
sudo mkdir /mnt/raid10
Настроить монтирование в /etc/fstab:
echo "/dev/md10 /mnt/raid10 xfs defaults 0 0" | sudo tee -a /etc/fstab
Убедитесь, что он может быть установлен правильно:
$ sudo mount -a
$ df -hT
Остановить и удалить массив RAID
Если вы хотите удалить устройство RAID из своей системы, просто отключите точку монтирования, остановите ее и удалите с помощью приведенных ниже команд. Не забудьте заменить /mnt/raid0 своей точкой монтирования, а /dev/md0 вашим устройством RAID.
sudo umount /mnt/raid0
sudo mdadm --stop /dev/md0
sudo mdadm --remove /dev/md0
Праздничная конечная записка
Программный RAID замечателен своей универсальностью и простотой настройки. Как вы видели, для настройки RAID требуется всего несколько команд, и ваш массив снова станет здоровым. В зависимости от потребностей бизнеса вы можете достичь высокого уровня резервного копирования, которое поможет в резервном копировании в случае аварии.