Создать RAID 10 программно на Alma Linux 8

установил mdadm:

dnf install mdadm

подключил 4 диска по 1000 Gb. В моем случае им присвоены названия: /dev/sda, /dev/sdb, /dev/sdd, /dev/sde

просмотрел структуру дисков:

lsblk

показало:

sda                  8:0    0 931.5G  0 disk 
|-sda1               8:1    0   7.5G  0 part 
|-sda2               8:2    0   573M  0 part 
`-sda3               8:3    0 923.5G  0 part 
sdb                  8:16   0 931.5G  0 disk 
|-sdb1               8:17   0   7.5G  0 part 
|-sdb2               8:18   0   573M  0 part 
`-sdb3               8:19   0 923.5G  0 part 
sdc                  8:48   0 931.5G  0 disk 
|-sdc1               8:49   0   572M  0 part /boot
`-sdc2               8:50   0   931G  0 part 
  |-almalinux-root 253:0    0 921.6G  0 lvm  /
  `-almalinux-swap 253:1    0   9.3G  0 lvm  [SWAP]
sdd                  8:64   0 931.5G  0 disk 
|-sde1               8:65   0   7.5G  0 part 
|-sde2               8:66   0   573M  0 part 
`-sde3               8:67   0 923.5G  0 part 
sde                  8:80   0 931.5G  0 disk 
|-sdf1               8:81   0   7.5G  0 part 
|-sdf2               8:82   0   573M  0 part 
`-sdf3               8:83   0 923.5G  0 part

очищаю диски:

wipefs -a /dev/sda
wipefs -a /dev/sdb
wipefs -a /dev/sdd
wipefs -a /dev/sde

очистил от следов raid:

mdadm --zero-superblock /dev/sda
mdadm --zero-superblock /dev/sdb
mdadm --zero-superblock /dev/sdd
mdadm --zero-superblock /dev/sde

инициализировал диски:

parted --script /dev/sda "mklabel gpt"
parted --script /dev/sdb "mklabel gpt"
parted --script /dev/sdd "mklabel gpt"
parted --script /dev/sde "mklabel gpt"

создал разделы на весь диск:

parted --script /dev/sda "mkpart primary 0% 100%"
parted --script /dev/sdb "mkpart primary 0% 100%"
parted --script /dev/sdd "mkpart primary 0% 100%"
parted --script /dev/sde "mkpart primary 0% 100%"

просмотрел структуру дисков:

lsblk

показало:

NAME               MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                  8:0    0 931.5G  0 disk 
`-sda1               8:1    0 931.5G  0 part 
sdb                  8:16   0 931.5G  0 disk 
`-sdb1               8:17   0 931.5G  0 part 
sdc                  8:32   0 931.5G  0 disk 
|-sdc1               8:33   0   572M  0 part /boot
`-sdc2               8:34   0   931G  0 part 
  |-almalinux-root 253:0    0 921.6G  0 lvm  /
  `-almalinux-swap 253:1    0   9.3G  0 lvm  [SWAP]
sdd                  8:48   0 931.5G  0 disk 
`-sdd1               8:49   0 931.5G  0 part 
sde                  8:64   0 931.5G  0 disk 
`-sde1               8:65   0 931.5G  0 part

выполнил команду для создания raid10:

mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdd1 /dev/sde1

вывело в ответ:

mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

проверил созданный диск:

mdadm --detail /dev/md0

результат проверки:

/dev/md0:
           Version : 1.2
     Creation Time : Sat Feb 17 09:35:06 2024
        Raid Level : raid10
        Array Size : 1953257472 (1862.77 GiB 2000.14 GB)
     Used Dev Size : 976628736 (931.39 GiB 1000.07 GB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Sat Feb 17 09:35:27 2024
             State : clean, resyncing 
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : bitmap

     Resync Status : 0% complete

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : b8ad77d9:36dc2c56:2fc4f22a:966a5ecf
            Events : 4

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync set-A   /dev/sda1
       1       8       17        1      active sync set-B   /dev/sdb1
       2       8       49        2      active sync set-A   /dev/sdd1
       3       8       65        3      active sync set-B   /dev/sde1

для того, чтобы массивы автоматически запускались после перезагрузки системы нужно сгенерировать конфигурационный файл из текущей запущенной конфигурации mdadm:

mdadm --verbose --detail --scan > /etc/mdadm.conf

создал файловую систему ext4:

mkfs.ext4 /dev/md0

результат в консоли на создание файловой системы:

mke2fs 1.45.6 (20-Mar-2020)
Discarding device blocks: done                            
Creating filesystem with 488314368 4k blocks and 122085376 inodes
Filesystem UUID: 90ea4a21-1ba8-437b-9e06-0ce8c831af7a
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
	102400000, 214990848

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done

пример монтирования дистка:

mount /dev/md0 /mnt/raid0

добавление монтирования в автозагрузку, нужно добавить строку в /etc/fstab:

/dev/md0 /mnt/raid0 ext4 defaults 1 2

и еще раз просмотрел структуру дисков:

lsblk

показало:

NAME               MAJ:MIN RM   SIZE RO TYPE   MOUNTPOINT
sda                  8:0    0 931.5G  0 disk   
`-sda1               8:1    0 931.5G  0 part   
  `-md0              9:0    0   1.8T  0 raid10 /mnt/raid0
sdb                  8:16   0 931.5G  0 disk   
`-sdb1               8:17   0 931.5G  0 part   
  `-md0              9:0    0   1.8T  0 raid10 /mnt/raid0
sdc                  8:32   0 931.5G  0 disk   
|-sdc1               8:33   0   572M  0 part   /boot
`-sdc2               8:34   0   931G  0 part   
  |-almalinux-root 253:0    0 921.6G  0 lvm    /
  `-almalinux-swap 253:1    0   9.3G  0 lvm    [SWAP]
sdd                  8:48   0 931.5G  0 disk   
`-sdd1               8:49   0 931.5G  0 part   
  `-md0              9:0    0   1.8T  0 raid10 /mnt/raid0
sde                  8:64   0 931.5G  0 disk   
`-sde1               8:65   0 931.5G  0 part   
  `-md0              9:0    0   1.8T  0 raid10 /mnt/raid0

все успешно заработало

 

в будущем, если какойто диск выдет из строя и понять какой есть команда посмотреть серийники:

lsblk --raw -o name,type,serial

пример результата:

NAME TYPE SERIAL
sda disk S6PVNX0TC1XXXXX
sda1 part 
md0 raid10 
sdb disk S6PVNX0TCXXXXX
sdb1 part 
md0 raid10 
sdc disk S6P5NL0TB2XXXXX
sdc1 part 
sdc2 part 
almalinux-root lvm 
almalinux-swap lvm 
sdd disk S6PVNX0TCXXXXX
sdd1 part 
md0 raid10 
sde disk S6PVNX0W10XXXXX
sde1 part 
md0 raid10

или вот пример детальной информации о дисках:

hdparm -i /dev/sda /dev/sdb

результат:

/dev/sda:

 Model=Samsung SSD 870 EVO 1TB, FwRev=SVT02B6Q, SerialNo=S6PVNX0TCXXXXX
 Config={ Fixed }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=unknown, BuffSize=unknown, MaxMultSect=1, MultSect=1
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=1953525168
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4 
 DMA modes:  mdma0 mdma1 mdma2 
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: unknown:  ATA/ATAPI-2,3,4,5,6,7

 * signifies the current active mode


/dev/sdb:

 Model=Samsung SSD 870 EVO 1TB, FwRev=SVT02B6Q, SerialNo=S6PVNX0TC1XXXXX
 Config={ Fixed }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=unknown, BuffSize=unknown, MaxMultSect=1, MultSect=1
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=1953525168
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4 
 DMA modes:  mdma0 mdma1 mdma2 
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: unknown:  ATA/ATAPI-2,3,4,5,6,7

 * signifies the current active mode