mdadm RAID - 성장(축소) 중 재부팅 - 모양 변경 - 작동하지 않음(멈춤)

mdadm RAID - 성장(축소) 중 재부팅 - 모양 변경 - 작동하지 않음(멈춤)

Linux 소프트웨어 Raid6 어레이(mdadm)가 있습니다. 6x4TB 디스크(16TB 사용 가능)에서 7x4TB(20TB 사용 가능)로 늘렸습니다. 모양 변경은 원활하게 진행되었지만 resize2fs를 수행했을 때 잘 알려진 EXT4 16TB 파일 시스템 제한에 직면했습니다. 확인해 보니 파일 시스템에 64비트 플래그가 없습니다. 따라서 방금 어레이에 추가한 추가 드라이브를 재활용하려면 다음을 수행합니다.

johnny@debian:~$ sudo resize2fs /dev/md0 16000G
johnny@debian:~$ sudo mdadm --grow /dev/md0 --array-size=16000G
johnny@debian:~$ sudo mdadm --grow /dev/md0 --raid-devices=6 --backup-file=/tmp/backup

백업 파일 위치를 기록해 두십시오. 내가 데비안을 사용하고 있기 때문에 이것은 곧 중요해질 것입니다.

그래서 모든 일이 순조롭게, 느리지만 효과적으로 진행되고 있습니다. 진행률은 3.7%에 도달했고 크롤링 속도로 느려졌습니다. 나는 동시에 다른 배열을 재구성하고 있었기 때문이라고 생각했습니다. 다른 작업이 완료되고 이 작업의 속도가 빨라지지 않으면 정말 걱정됩니다. 완료하는 데 몇 년이 걸릴 것이라고했기 때문에 속도가 빨라지는지 확인하기 위해 재부팅하기로 결정하고 시스템을 재부팅했습니다.

이때부터 안좋은 일이 일어나기 시작하는데...

저는 데비안을 사용하고 있는데 제가 이해한 바에 따르면 시스템이 부팅될 때 /tmp 폴더가 지워지므로 재구성 백업 파일이 손실됩니다. 또한 /etc/fstab 파일이 md0을 마운트하려고 시도했지만 지금은 어셈블되지 않았기 때문에 시스템이 몇 번 부팅되지 못했습니다. 라이브 CD에서 시작하여 fstab 파일을 복구하고 시스템을 정상으로 되돌렸습니다.

이 문제를 해결하고 나면 시스템이 부팅되었고 처음으로 md0이 단순히 자체적으로 조립되어 모양이 계속 바뀌는 것이 아니라는 것을 보았습니다. 패닉이 시작된다...

다음 명령의 출력이 없지만 입력한 명령을 찾을 수 있었습니다. 다음에 무슨 일이 일어났는지에 대한 간략한 설명...

johnny@debian:~$ sudo mdadm --assemble /dev/md0
johnny@debian:~$ sudo mdadm --assemble --force /dev/md0
johnny@debian:~$ sudo mdadm --assemble --force /dev/md0 --backup-file=/tmp/backup

첫 번째 명령이 실패하여 --force 옵션을 시도했는데 역시 실패했습니다. 그러나 오류 메시지에는 --backup-file 옵션이 필요하기 때문에 실패했다는 메시지가 표시되어 세 번째 명령을 실행했습니다. 백업 파일이 아직 거기 있을 것으로 예상했지만, /tmp 폴더에 있지 않고 삭제되었습니다. 하지만 어레이를 조립한 결과에는 아무런 문제가 발생하지 않는 것 같습니다.

이제 md0의 모습은 다음과 같습니다. "제거됨"이라고 표시된 디스크를 확인하세요. 제거된 디스크 sdj1인 것 같습니다.

johnny@debian:~$ sudo mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Fri Jan 11 09:59:42 2013
     Raid Level : raid6
     Array Size : 15627548672 (14903.59 GiB 16002.61 GB)
  Used Dev Size : 3906887168 (3725.90 GiB 4000.65 GB)
   Raid Devices : 6
  Total Devices : 6
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Sat Mar  5 20:45:56 2016
          State : clean, degraded, reshaping 
 Active Devices : 6
Working Devices : 6
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

 Reshape Status : 3% complete
  Delta Devices : -1, (7->6)

           Name : BigRaid6
           UUID : 45747bdc:ba5a85fe:ead35e14:24c2c7b2
         Events : 4339739

    Number   Major   Minor   RaidDevice State
      11       8      224        0      active sync   /dev/sdo
       2       0        0        2      removed
       6       8       80        2      active sync   /dev/sdf
       7       8      176        3      active sync   /dev/sdl
      12       8       16        4      active sync   /dev/sdb
       8       8       32        5      active sync   /dev/sdc

       9       8      128        6      active sync   /dev/sdi

현재 리모델링 진행상황입니다. 정확히 0K/초로 멈춰 있습니다.

johnny@debian:~$ cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4] 
md0 : active raid6 sdo[11] sdi[9] sdc[8] sdb[12] sdl[7] sdf[6]
      15627548672 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/5] [U_UUUU]
      [>....................]  reshape =  3.7% (145572864/3906887168) finish=284022328345.0min speed=0K/sec
      bitmap: 5/30 pages [20KB], 65536KB chunk

unused devices: <none>

아래에는 여전히 어레이에 있는 개별 디스크가 있습니다.

johnny@debian:~$ sudo mdadm --examine /dev/sd[oflbci]
/dev/sdb:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x5
     Array UUID : 45747bdc:ba5a85fe:ead35e14:24c2c7b2
           Name : BigRaid6
  Creation Time : Fri Jan 11 09:59:42 2013
     Raid Level : raid6
   Raid Devices : 6

 Avail Dev Size : 7813775024 (3725.90 GiB 4000.65 GB)
     Array Size : 15627548672 (14903.59 GiB 16002.61 GB)
  Used Dev Size : 7813774336 (3725.90 GiB 4000.65 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=688 sectors
          State : clean
    Device UUID : 99b0fbcc:46d619bb:9ae96eaf:840e21a4

Internal Bitmap : 8 sectors from superblock
  Reshape pos'n : 15045257216 (14348.28 GiB 15406.34 GB)
  Delta Devices : -1 (7->6)

    Update Time : Sat Mar  5 20:45:56 2016
       Checksum : fca445bd - correct
         Events : 4339739

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 4
   Array State : A.AAAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdc:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x5
     Array UUID : 45747bdc:ba5a85fe:ead35e14:24c2c7b2
           Name : BigRaid6
  Creation Time : Fri Jan 11 09:59:42 2013
     Raid Level : raid6
   Raid Devices : 6

 Avail Dev Size : 7813775024 (3725.90 GiB 4000.65 GB)
     Array Size : 15627548672 (14903.59 GiB 16002.61 GB)
  Used Dev Size : 7813774336 (3725.90 GiB 4000.65 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=688 sectors
          State : clean
    Device UUID : b8d49170:06614f82:ad9a38a4:e9e06da5

Internal Bitmap : 8 sectors from superblock
  Reshape pos'n : 15045257216 (14348.28 GiB 15406.34 GB)
  Delta Devices : -1 (7->6)

    Update Time : Sat Mar  5 20:45:56 2016
       Checksum : 5d867810 - correct
         Events : 4339739

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 5
   Array State : A.AAAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdf:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x5
     Array UUID : 45747bdc:ba5a85fe:ead35e14:24c2c7b2
           Name : BigRaid6
  Creation Time : Fri Jan 11 09:59:42 2013
     Raid Level : raid6
   Raid Devices : 6

 Avail Dev Size : 7813775024 (3725.90 GiB 4000.65 GB)
     Array Size : 15627548672 (14903.59 GiB 16002.61 GB)
  Used Dev Size : 7813774336 (3725.90 GiB 4000.65 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=688 sectors
          State : clean
    Device UUID : dd56062c:4b55bf16:6a468024:3ca6bfd0

Internal Bitmap : 8 sectors from superblock
  Reshape pos'n : 15045257216 (14348.28 GiB 15406.34 GB)
  Delta Devices : -1 (7->6)

    Update Time : Sat Mar  5 20:45:56 2016
       Checksum : 59045f87 - correct
         Events : 4339739

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 2
   Array State : A.AAAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdi:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x5
     Array UUID : 45747bdc:ba5a85fe:ead35e14:24c2c7b2
           Name : BigRaid6
  Creation Time : Fri Jan 11 09:59:42 2013
     Raid Level : raid6
   Raid Devices : 6

 Avail Dev Size : 7813775024 (3725.90 GiB 4000.65 GB)
     Array Size : 15627548672 (14903.59 GiB 16002.61 GB)
  Used Dev Size : 7813774336 (3725.90 GiB 4000.65 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=688 sectors
          State : clean
    Device UUID : 92831abe:86de117c:710c368e:8badcef3

Internal Bitmap : 8 sectors from superblock
  Reshape pos'n : 15045257216 (14348.28 GiB 15406.34 GB)
  Delta Devices : -1 (7->6)

    Update Time : Sat Mar  5 20:45:56 2016
       Checksum : dd2fe2d1 - correct
         Events : 4339739

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 6
   Array State : A.AAAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdl:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x5
     Array UUID : 45747bdc:ba5a85fe:ead35e14:24c2c7b2
           Name : BigRaid6
  Creation Time : Fri Jan 11 09:59:42 2013
     Raid Level : raid6
   Raid Devices : 6

 Avail Dev Size : 7813775024 (3725.90 GiB 4000.65 GB)
     Array Size : 15627548672 (14903.59 GiB 16002.61 GB)
  Used Dev Size : 7813774336 (3725.90 GiB 4000.65 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=688 sectors
          State : clean
    Device UUID : 8404647a:b1922fed:acf71f64:18dfd448

Internal Bitmap : 8 sectors from superblock
  Reshape pos'n : 15045257216 (14348.28 GiB 15406.34 GB)
  Delta Devices : -1 (7->6)

    Update Time : Sat Mar  5 20:45:56 2016
       Checksum : 358734b4 - correct
         Events : 4339739

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 3
   Array State : A.AAAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdo:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x5
     Array UUID : 45747bdc:ba5a85fe:ead35e14:24c2c7b2
           Name : BigRaid6
  Creation Time : Fri Jan 11 09:59:42 2013
     Raid Level : raid6
   Raid Devices : 6

 Avail Dev Size : 7813775024 (3725.90 GiB 4000.65 GB)
     Array Size : 15627548672 (14903.59 GiB 16002.61 GB)
  Used Dev Size : 7813774336 (3725.90 GiB 4000.65 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=688 sectors
          State : clean
    Device UUID : d7e84765:86fb751a:466ab0de:c26afc43

Internal Bitmap : 8 sectors from superblock
  Reshape pos'n : 15045257216 (14348.28 GiB 15406.34 GB)
  Delta Devices : -1 (7->6)

    Update Time : Sat Mar  5 20:45:56 2016
       Checksum : c3698023 - correct
         Events : 4339739

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 0
   Array State : A.AAAAA ('A' == active, '.' == missing, 'R' == replacing

여기에는 "전체 디스크" 구성원이 아닌 어레이의 유일한 구성원이었던 /dev/sdj1이 있습니다. 이는 모양 변경 프로세스 중에 배열에서 제거되는 것입니다. 재구성 전의 데이터가 있기 때문에 현재 배열의 구성원이 아니더라도 재구성을 계속 수행해야 한다고 생각합니다.

johnny@debian:~$ sudo mdadm --examine /dev/sdj1
mdadm: No md superblock detected on /dev/sdj1.

제 질문은 다음과 같습니다...
1. 모양 변경을 완료할 수 없습니다.
2. 어레이를 마운트할 수 없습니다. 내가 그것을 시도했을 때, 나는 그것을 얻었다.

johnny@debian:~$ sudo mount /dev/md0 /media/BigRaid6
mount: wrong fs type, bad option, bad superblock on /dev/md0,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.
johnny@debian:~$ sudo dmesg | tail
[42446.268089] sd 15:0:0:0: [sdk]  
[42446.268091] Add. Sense: Unrecovered read error - auto reallocate failed
[42446.268092] sd 15:0:0:0: [sdk] CDB: 
[42446.268093] Read(10): 28 00 89 10 bb 00 00 04 00 00
[42446.268099] end_request: I/O error, dev sdk, sector 2299575040
[42446.268131] ata16: EH complete
[61123.788170] md: md1: data-check done.
[77423.597923] EXT4-fs (md0): bad geometry: block count 4194304000 exceeds size of device (3906887168 blocks)
[77839.250590] EXT4-fs (md0): bad geometry: block count 4194304000 exceeds size of device (3906887168 blocks)
[78525.085343] EXT4-fs (md0): bad geometry: block count 4194304000 exceeds size of device (3906887168 blocks)

리모델링이 완료되면 설치가 성공할 것이라고 확신하므로 그것이 가장 중요할 것입니다. 참고로 이 어레이의 데이터는 너무 커서 백업할 수 없으므로 손실되면 데이터가 사라집니다. 도와주세요!

편집 1:

1000달러(또는 그 이상)를 지출하고 모든 것을 복사할 만큼 충분한 디스크를 얻을 수 있지만 작동하려면 어레이를 마운트할 수 있어야 합니다.

또한, 어레이를 마운트하려고 할 때 나타나는 "잘못된 형상" 오류 메시지에 몇 가지 흥미로운 정보가 포함되어 있다는 사실을 방금 확인했습니다.

[146181.331566] EXT4-fs (md0): bad geometry: block count 4194304000 exceeds size of device (3906887168 blocks)

장치 3906887168의 크기는 정확히 md0 배열 크기 15627548672의 1/4입니다. "mdadm --detail /dev/md0"에서

Array Size : 15627548672 (14903.59 GiB 16002.61 GB)

4194304000 숫자가 어디서 왔는지는 모르겠지만... 이는 어레이의 크기가 이러한 디스크에 적합하다는 의미입니까? 아니면 이러한 크기에 mdadm 메타데이터가 고려되지 않습니까? 4194304000 메타데이터가 포함되어 있나요?

변형이 시작되기 직전에 크기를 맞추는 데 몇 번의 시도가 필요했기 때문에 모든 것이 괜찮다고 생각했습니다. 어쩌면 내가 틀렸을 수도 있습니다.

답변1

오류는 이미 첫 번째 명령에 있습니다. 16000GiB6x4TB 디스크에서는 전혀 오류가 아니며 메타데이터 등을 위한 16000GB일부 공간을 잃어버렸기 때문에 스트레칭이 될 수도 있습니다. mdadm마지막 오류 메시지는 이 경우와 매우 유사합니다( bad geometry파일 시스템은 장치가 더 큰 장치를 제공한다고 생각하고 파일 시스템은 절대적으로증오저것).

그래서 당신은 이제 많은 문제에 직면하게 되었습니다:

  • 파일 시스템이 너무 큽니다.
  • 당신의 정신과 의사가 갇혀있습니다
  • 디스크 중 하나 이상에 오류가 발생했습니다( /dev/sdk).
  • 백업 파일이 손실되었습니다
  • 가능한 파일 시스템 불일치 (분명히)

문제의 해결책은 수축이 어떻게든 끝나도록 두는 것이 아니라, 손상 없이 이전 상태로 복원하는 것입니다...이것은가능한다행히 수축이 크게 진행되지 않았기 때문에 아직까지는 가능합니다.

이 경우에는

일반적으로 RAID를 다시 만드는 것은 거의 항상 잘못될 것이기 때문에 매우 나쁜 생각입니다. 그러나 귀하의 경우에는 다른 방법으로 수축 과정을 되돌리려는 것보다 손상이 덜할 수 있다고 생각합니다. 7-디스크 RAID 6에서 이 16GiB영역은 여전히 ​​영향을 받지 않을 수 있습니다...RAID가 축소될 때 파일 시스템이 유휴 상태라고 가정합니다. 그렇지 않으면 파일 시스템 불일치가 더 많이 발생하게 됩니다.

RAID를 다시 생성할 때 다음을 얻어야 합니다.모두올바른 변수: 메타데이터 버전, 데이터 오프셋, raid 수준, raid 레이아웃, 블록 크기, 디스크 순서... 그리고 중복 디스크를 누락된 상태로 두어 재동기화를 방지해야 합니다.

다음과 같이 보일 수 있습니다:

mdadm --create /dev/md0 --assume-clean \
    --metadata=1.2 --data-offset=128M --level=6 --layout=ls --chunk=512 \
    --raid-devices=7 missing missing /dev/mapper/overlay-{sdf,sdl,sdb,sdc,sdi}

보장할 수는 없습니다. 분명히 직접 시도해 본 적은 없습니다.


작동하는지 확인한 후 변경 사항을 디스크에 커밋할 수 있습니다(덮어쓰지 않고 작동하는 것으로 확인된 단계 적용). 그러면 이번에는 resize2fs파일 시스템이 올바르고( 14G작동해야 함) RAID를 축소하고 다시 멈추지 않기를 바랍니다. 백업 파일은 필요하지 않을 수 mdadm --grow있으며, 사용하는 경우 잃어버리지 않도록 주의하세요.

관련 정보