Назад | Перейти на главную страницу

mdadm raid5 начинает восстановление сразу после создания

просто для того, чтобы получить некоторый опыт работы с mdadm, я собрал несколько жестких дисков и немного попробовал. У меня 2250 ГБ и один жесткий диск на 500 ГБ. Я знаю, что это не оптимально для RAID5, и я получу всего 500 ГБ. 250 ГБ из 500 ГБ жесткого диска потрачены впустую. Но, как я уже сказал, я просто немного поиграюсь.

Сначала посмотрим размеры дисков:

lsblk /dev/sdb /dev/sdc /dev/sdd
NAME MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb    8:16   0 232.9G  0 disk
sdc    8:32   0 465.8G  0 disk
sdd    8:48   0 232.9G  0 disk

Создайте RAID5:

sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd -c 4 --auto md

Показать информацию о созданном Raid5:

cat /proc/mdstat                                     Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd[3] sdc[1] sdb[0]
      488132976 blocks super 1.2 level 5, 4k chunk, algorithm 2 [3/2] [UU_]
      [>....................]  recovery =  0.5% (1354384/244066488) finish=59.7min speed=67719K/sec
      bitmap: 0/2 pages [0KB], 65536KB chunk

unused devices: <none>

Покажи чуть подробнее:

 sudo mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Wed Feb 26 14:52:54 2020
        Raid Level : raid5
        Array Size : 488132976 (465.52 GiB 499.85 GB)
     Used Dev Size : 244066488 (232.76 GiB 249.92 GB)
      Raid Devices : 3
     Total Devices : 3
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Wed Feb 26 14:57:43 2020
             State : clean, degraded, recovering
    Active Devices : 2
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 4K

Consistency Policy : bitmap

    Rebuild Status : 7% complete

              Name : raspberrypi:0  (local to host raspberrypi)
              UUID : 3291b54e:fad8f43b:cc398574:a1845ff9
            Events : 57

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       3       8       48        2      spare rebuilding   /dev/sdd

Dmesg показывает

[ 2462.122882] md/raid:md0: device sdc operational as raid disk 1
[ 2462.122892] md/raid:md0: device sdb operational as raid disk 0
[ 2462.126278] md/raid:md0: raid level 5 active with 2 out of 3 devices, algorithm 2
[ 2462.142439] md0: detected capacity change from 0 to 499848167424
[ 2462.222689] md: recovery of RAID array md0

Так что я делаю не так с созданием RAID5? Я также запутался в выводе mdadm --detail /dev/md0 с дисковыми номерами 0, 1 и 3, а не 0, 1, 2

Это правильное поведение для вновь созданного массива RAID5: сразу после создания он потребности чтобы вычислить правильную четность для каждой полосы.

Вы можете добавить --assume-clean на ваш mdadm команду, чтобы пропустить начальную синхронизацию, но я категорически против этого: если ваша четность не совпадает, любой check сообщит о тысячах ошибок, и вы не сможете отличить настоящую ошибку от «фальшивой». Чтобы исправить эту очень неоднозначную ситуацию, вам нужно запустить repair команда, которая пересчитает четность, как и при первоначальном создании массива.