다운그레이드된 mdadm RAID5에서 예비 장치를 활성화하는 방법

다운그레이드된 mdadm RAID5에서 예비 장치를 활성화하는 방법

먼저 약간의 역사. 4개의 디스크 RAID5가 있는데 디스크 중 하나에 오류가 발생했습니다. 어레이에서 이를 제거하고 잠시 동안 성능이 저하된 상태로 둡니다.

mdadm --manage /dev/md127 --fail /dev/sde1 --remove /dev/sde1

데이터가 갑자기 삭제되어야 하므로 어레이를 디스크 3개로 영구적으로 줄이기로 결정했습니다. 그런 다음 파일 시스템을 새 배열 크기보다 훨씬 작게 축소합니다.

mdadm --grow /dev/md127 --array-size 35156183040 # reduces array size
mdadm --grow --raid-devices=3 /dev/md127 --backup-file /store/4TB_WD/md127.backup # reshape array removing 1 disk.

이제 끝났습니다:

cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md127 : active raid5 sdd1[1] sdc1[3](S) sdb1[2]
      35156183040 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/2] [_UU]
      bitmap: 103/131 pages [412KB], 65536KB chunk

unused devices: <none>

하지만 2개의 활성 디스크와 예비 디스크가 포함된 3개의 디스크 성능이 저하된 RAID5가 남아 있습니다.

mdadm -D /dev/md127
/dev/md127:
           Version : 1.2
     Creation Time : Fri Sep  9 22:39:53 2022
        Raid Level : raid5
        Array Size : 35156183040 (32.74 TiB 36.00 TB)
     Used Dev Size : 17578091520 (16.37 TiB 18.00 TB)
      Raid Devices : 3
     Total Devices : 3
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Fri Jan 20 11:12:10 2023
             State : active, degraded
    Active Devices : 2
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 64K

Consistency Policy : bitmap

              Name : oldserver-h.oldserver.lan:127
              UUID : 589dd683:d9945b24:768d9b2b:28441f90
            Events : 555962

    Number   Major   Minor   RaidDevice State
       -       0        0        0      removed
       1       8       49        1      active sync   /dev/sdd1
       2       8       17        2      active sync   /dev/sdb1

       3       8       33        -      spare   /dev/sdc1

어레이가 정상 상태로 재구축될 수 있도록 이 예비 디스크를 활성화하려면 어떻게 해야 합니까? 그것을 cat /sys/block/md127/md/sync_action보여주고 idle반향하는 repair것은 아무 일도 하지 않습니다.

후속 조치로 처음에 어디에서 잘못 되었습니까?

lsblk[편집] 요청에 따라 출력을 추가했습니다.

lsblk
NAME             MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                8:0    0   100G  0 disk
├─sda1             8:1    0     1G  0 part  /boot
└─sda2             8:2    0    99G  0 part
  ├─clearos-root 253:0    0  91.1G  0 lvm   /
  └─clearos-swap 253:1    0   7.9G  0 lvm   [SWAP]
sdb                8:16   0  16.4T  0 disk
└─sdb1             8:17   0  16.4T  0 part
  └─md127          9:127  0  32.8T  0 raid5 /store/RAID_A
sdc                8:32   0  16.4T  0 disk
└─sdc1             8:33   0  16.4T  0 part
  └─md127          9:127  0  32.8T  0 raid5 /store/RAID_A
sdd                8:48   0  16.4T  0 disk
└─sdd1             8:49   0  16.4T  0 part
  └─md127          9:127  0  32.8T  0 raid5 /store/RAID_A
sde                8:64   0   3.7T  0 disk
└─sde1             8:65   0   3.7T  0 part  /store/4TB_WD
sdf                8:80   0 931.5G  0 disk
└─sdf1             8:81   0 931.5G  0 part  /store/1TB1
sdg                8:96   0 931.5G  0 disk
└─sdg1             8:97   0 931.5G  0 part  /store/1TB2
sr0               11:0    1   1.2G  0 rom

[/편집하다]

답변1

백업이 자동으로 사용됩니다. 이상하게도 그렇지 않습니다.

백업을 제거하고 다시 추가해 볼 수 있습니다.

mdadm -f /dev/md127 /dev/sdc1
mdadm -r /dev/md127 /dev/sdc1
mdadm --zero-superblock /dev/sdc1
mdadm -a /dev/md127 /dev/sdc1

작동하지 않으면 dmesg문제를 설명하는 오류 메시지가 표시되어야 합니다.

관련 정보