Настроить RAID 0 | RAID 1 | RAID 10 на CentOS 8

Настроить 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 требуется всего несколько команд, и ваш массив снова станет здоровым. В зависимости от потребностей бизнеса вы можете достичь высокого уровня резервного копирования, которое поможет в резервном копировании в случае аварии.

Author: forgero

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *