RAID6 어레이 설치 문제 재구축

RAID6 어레이 설치 문제 재구축

실패한 Thecus N7700 Pro NAS에서 7개의 하드 드라이브를 성공적으로 이미징하고 백업 이미지에서 RAID6 배열을 성공적으로 재구축한 후 RAID6 배열을 설치하려고 할 때 이전 PV 헤더 경고 오류가 발생하고 설치를 시도하는 동안 오류가 발생했습니다. 볼륨 그룹 메타데이터 업데이트.

참고로 다음은 어레이를 재구축한 후 수행한 단계입니다. 이 문제를 해결하는 방법에 대한 지침/조언을 주시면 감사하겠습니다.

루프 장치에 7개의 하드 드라이브 이미지를 추가하는 명령은 다음과 같습니다.

$ sudo losetup -fPr --show /media/<target drive mount point>/recovery/hdd<id>.img
Returned output:
/dev/loop0
$ sudo losetup -fPr --show /media/<target drive mount point>/recovery/hdd<id>.img
Returned output:
/dev/loop1
$ sudo losetup -fPr --show /media/<target drive mount point>/recovery/hdd<id>.img
Returned output:
/dev/loop2
$ sudo losetup -fPr --show /media/<target drive mount point>/recovery/hdd<id>.img
Returned output:
/dev/loop3
$ sudo losetup -fPr --show /media/<target drive mount point>/recovery/hdd<id>.img
Returned output:
/dev/loop4
$ sudo losetup -fPr --show /media/<target drive mount point>/recovery/hdd<id>.img
Returned output:
/dev/loop5
$ sudo losetup -fPr --show /media/<target drive mount point>/recovery/hdd<id>.img
Returned output:
/dev/loop6

RAID6 어레이 재구축

다음 명령을 사용하여 각 RAID6 어레이 드라이브 이미지를 사용 가능한 다음 회전 장치에 추가하십시오.

$ sudo mdadm --assemble --scan
Returned output:
mdadm: /dev/md/0 has been started with 7 drives.
mdadm: /dev/md1 has been started with 7 drives.

블록 장치 확인

다음 명령을 사용하여 모든 블록 장치를 확인하십시오.

$ sudo lsblk                       
Returned output:
NAME            MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
loop0             7:0    0   1.8T  1 loop  
├─loop0p1       259:0    0   1.9G  1 part  
│ └─md0           9:0    0   1.9G  1 raid1 
└─loop0p2       259:1    0   1.8T  1 part  
  └─md1           9:1    0   9.1T  1 raid6 
    ├─vg0-syslv 254:0    0     1G  0 lvm   
    └─vg0-lv0   254:1    0   8.6T  0 lvm   
loop1             7:1    0   1.8T  1 loop  
├─loop1p1       259:2    0   1.9G  1 part  
│ └─md0           9:0    0   1.9G  1 raid1 
└─loop1p2       259:3    0   1.8T  1 part  
  └─md1           9:1    0   9.1T  1 raid6 
    ├─vg0-syslv 254:0    0     1G  0 lvm   
    └─vg0-lv0   254:1    0   8.6T  0 lvm   
loop2             7:2    0   1.8T  1 loop  
├─loop2p1       259:4    0   1.9G  1 part  
│ └─md0           9:0    0   1.9G  1 raid1 
└─loop2p2       259:5    0   1.8T  1 part  
  └─md1           9:1    0   9.1T  1 raid6 
    ├─vg0-syslv 254:0    0     1G  0 lvm   
    └─vg0-lv0   254:1    0   8.6T  0 lvm   
loop3             7:3    0   1.8T  1 loop  
├─loop3p1       259:6    0   1.9G  1 part  
│ └─md0           9:0    0   1.9G  1 raid1 
└─loop3p2       259:7    0   1.8T  1 part  
  └─md1           9:1    0   9.1T  1 raid6 
    ├─vg0-syslv 254:0    0     1G  0 lvm   
    └─vg0-lv0   254:1    0   8.6T  0 lvm   
loop4             7:4    0   1.8T  1 loop  
├─loop4p1       259:8    0   1.9G  1 part  
│ └─md0           9:0    0   1.9G  1 raid1 
└─loop4p2       259:9    0   1.8T  1 part  
  └─md1           9:1    0   9.1T  1 raid6 
    ├─vg0-syslv 254:0    0     1G  0 lvm   
    └─vg0-lv0   254:1    0   8.6T  0 lvm   
loop5             7:5    0   1.8T  1 loop  
├─loop5p1       259:10   0   1.9G  1 part  
│ └─md0           9:0    0   1.9G  1 raid1 
└─loop5p2       259:11   0   1.8T  1 part  
  └─md1           9:1    0   9.1T  1 raid6 
    ├─vg0-syslv 254:0    0     1G  0 lvm   
    └─vg0-lv0   254:1    0   8.6T  0 lvm   
loop6             7:6    0   1.8T  1 loop  
├─loop6p1       259:12   0   1.9G  1 part  
│ └─md0           9:0    0   1.9G  1 raid1 
└─loop6p2       259:13   0   1.8T  1 part  
  └─md1           9:1    0   9.1T  1 raid6 
    ├─vg0-syslv 254:0    0     1G  0 lvm   
    └─vg0-lv0   254:1    0   8.6T  0 lvm   
sda               8:0    0 953.9G  0 disk  
├─sda1            8:1    0   512M  0 part  /boot/efi
├─sda2            8:2    0  23.3G  0 part  /
├─sda3            8:3    0   9.3G  0 part  /var
├─sda4            8:4    0   977M  0 part  [SWAP]
├─sda5            8:5    0   1.9G  0 part  /tmp
└─sda6            8:6    0   918G  0 part  /home
sdb               8:16   0  10.9T  0 disk  
└─sdb1            8:17   0  10.9T  0 part  /media/<user>/7DFF-F49D
sdc               8:32   0  16.4T  0 disk  
└─sdc1            8:33   0  16.4T  0 part  /media/<user>/data
sr0              11:0    1  1024M  0 rom                                                                                                                                                                  

재구축된 RAID6 어레이 세부 정보 확인

다음 명령을 사용하여 재구성된 RAID6 어레이 세부 정보를 확인하십시오.

$ sudo mdadm --detail /dev/md1                
Returned output:
/dev/md1:
           Version : 0.90
     Creation Time : Tue Apr 27 16:44:08 2010
        Raid Level : raid6
        Array Size : 9757760000 (9.09 TiB 9.99 TB)
     Used Dev Size : 1951552000 (1861.15 GiB 1998.39 GB)
      Raid Devices : 7
     Total Devices : 7
   Preferred Minor : 1
       Persistence : Superblock is persistent

       Update Time : Sun Mar 26 02:00:20 2023
             State : clean 
    Active Devices : 7
   Working Devices : 7
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 64K

Consistency Policy : resync

              UUID : ea8bd249:df05f100:4d76e077:2dd3364e
            Events : 0.23046

    Number   Major   Minor   RaidDevice State
       0     259        1        0      active sync   /dev/loop0p2
       1     259        3        1      active sync   /dev/loop1p2
       2     259        5        2      active sync   /dev/loop2p2
       3     259        7        3      active sync   /dev/loop3p2
       4     259        9        4      active sync   /dev/loop4p2
       5     259       11        5      active sync   /dev/loop5p2
       6     259       13        6      active sync   /dev/loop6p2

Mdadm 구성 파일 만들기 및 확인

참고: 이 작업을 실행하려면 루트 권한이 필요합니다. 다음 명령을 사용하여 mdadm.conf 파일을 만듭니다.

$ sudo mdadm --detail --scan > /etc/mdadm.conf

다음 명령을 사용하여 생성된 mdadm.conf 파일을 확인합니다.

$ sudo cat /etc/mdadm.conf                    
Returned output:
ARRAY /dev/md/0 metadata=1.0 name=RCLSVR01:0 UUID=a87e6315:d3fe49fe:3a2d39f8:7977760a
ARRAY /dev/md1 metadata=0.90 UUID=ea8bd249:df05f100:4d76e077:2dd3364e

RAID6 어레이 마운트 및 재구축 시도

다음 명령을 사용하여 데이터 복구 마운트 지점을 생성합니다.

$ sudo mkdir /mnt/RCLSVR

다음 명령을 사용하여 RAID6 어레이를 마운트해 보십시오:

$ sudo mount -r /dev/md1 /mnt/RCLSVR
Returned output:
mount: /mnt/RCLSVR: unknown filesystem type 'LVM2_member'.
       dmesg(1) may have more information after failed mount system call.

다음 명령을 사용하여 논리 볼륨 그룹을 확인하십시오.

$ sudo lvdisplay
Returned output:
  WARNING: PV /dev/md1 in VG vg0 is using an old PV header, modify the VG to update.
  --- Logical volume ---
  LV Path                /dev/vg0/syslv
  LV Name                syslv
  VG Name                vg0
  LV UUID                e5ZreA-S8TO-2x0x-4pfw-Zh6h-Cs5X-EH8FVc
  LV Write Access        read/write
  LV Creation host, time , 
  LV Status              available
  [#] open                 0
  LV Size                1.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     16384
  Block device           254:0
   
  --- Logical volume ---
  LV Path                /dev/vg0/lv0
  LV Name                lv0
  VG Name                vg0
  LV UUID                bkVNXL-2FI6-61z7-4UzW-Erwu-0sHA-oiHxbq
  LV Write Access        read/write
  LV Creation host, time , 
  LV Status              available
  [#] open                 0
  LV Size                8.63 TiB
  Current LE             4525773
  Segments               1
  Allocation             inherit
  Read ahead sectors     16384
  Block device           254:1

다음 명령을 사용하여 RAID6 어레이를 마운트해 보십시오:

$ sudo mount -r /dev/vg0/lv0 /mnt/RCLSVR
Returned output:
mount: /mnt/RCLSVR: can't read superblock on /dev/mapper/vg0-lv0.
       dmesg(1) may have more information after failed mount system call.

RAID6 어레이에 대한 슈퍼블록 정보를 찾으려면 다음 명령을 사용해 보십시오.

$ sudo dumpe2fs /dev/vg0/lv0 | grep superblock                                                                
Returned output:
dumpe2fs 1.47.0 (5-Feb-2023)
dumpe2fs: Bad magic number in super-block while trying to open /dev/vg0/lv0
Couldn't find valid filesystem superblock.
$ sudo dumpe2fs /dev/vg0/syslv | grep superblock                                                                 
Returned output:
dumpe2fs 1.47.0 (5-Feb-2023)
  Primary superblock at 0, Group descriptors at 1-1
  Backup superblock at 32768, Group descriptors at 32769-32769
  Backup superblock at 98304, Group descriptors at 98305-98305
  Backup superblock at 163840, Group descriptors at 163841-163841
  Backup superblock at 229376, Group descriptors at 229377-229377

다음 명령을 사용하여 RAID6 어레이를 마운트해 보십시오:

$ sudo mount -r /dev/vg0/syslv /mnt/RCLSVR
Returned output:
mount: /mnt/RCLSVR: can't read superblock on /dev/mapper/vg0-syslv.
       dmesg(1) may have more information after failed mount system call.

다음 명령을 사용하여 RAID6 어레이 볼륨 그룹의 활동 상태를 확인하십시오.

$ sudo lvscan
Returned output:
WARNING: PV /dev/md1 in VG vg0 is using an old PV header, modify the VG to update.
  ACTIVE            '/dev/vg0/syslv' [1.00 GiB] inherit
  ACTIVE            '/dev/vg0/lv0' [8.63 TiB] inherit

다음 명령을 사용하여 RAID6 어레이를 마운트해 보십시오:

$ sudo mount -o ro /dev/vg0/syslv /mnt/RCLSVR
Returned output:
mount: /mnt/RCLSVR: can't read superblock on /dev/mapper/vg0-syslv.
       dmesg(1) may have more information after failed mount system call.

다음 명령을 사용하여 RAID6 어레이의 볼륨 그룹 메타데이터를 업데이트해 보십시오.

$ sudo vgck --updatemetadata vg0
Returned output:
  WARNING: PV /dev/md1 in VG vg0 is using an old PV header, modify the VG to update.
  WARNING: updating PV header on /dev/md1 for VG vg0.
  Error writing device /dev/md1 at 4096 length 512.
  WARNING: bcache_invalidate: block (7, 0) still dirty.
  Failed to write mda header to /dev/md1.
  Failed to write VG.

답변1

@frostschutz - 복구하기 위해 파일 시스템에 쓸 수 있어야 한다는 점은 문제 해결에 도움이 됩니다. 내 댓글에 사용자 이름의 철자가 틀린 점에 대해 사과드립니다. 원래 루프 장치가 생성되기 전의 위치로 돌아가 루프 장치를 성공적으로 다시 생성하고 RAID6 어레이를 재조립 및 마운트하기 위해 다음 단계를 수행합니다.

LV 그룹 비활성화
$ sudo vgchange -an /dev/vg0

Mdadm 구성 및 데이터 삭제
$ sudo apt-get -y 자동 제거 --purge mdadm

분리순환설비
$ sudo losstup -a
$ sudo losstup -D
$ sudo losstup -l
$ sudo dmsetup 삭제 /dev/loop0 dev/loop1 dev/loop2 dev/loop3 dev/loop4 dev/loop5 dev/loop6
컴퓨터를 다시 시작합니다.
다시 로그인하여 루핑 장치가 없어졌는지 확인하세요.
$ sudo losstup -a

디스크 이미지 파일 권한 변경
$ sudo chmod +w /media//recovery/*.img

쓰기 가능 모드에서 이미지 추가
$ sudo losstup -fP --show /media/[대상 드라이브 마운트 지점]/recovery/hdd[id].img
반환 출력:
/dev/loop0
$ sudo losstup -fP --show /media/[대상 드라이브 마운트 지점] /recovery/hdd[id].img
반환된 출력:
/dev/loop1
$ sudo losstup -fP --show /media/[대상 드라이브 마운트 지점]/recovery/hdd[id].img
반환된 출력:
/dev/loop2
$ sudo losstup -fP --show /media/[대상 드라이브 마운트 지점]/recovery/hdd[id].img
반환 출력:
/dev/loop3
$ sudo losstup -fP --show /media/[ 대상 드라이브 마운트
에서 반환된 출력 :
/dev/loop4
$ sudo losstup -fP --show /media/[대상 드라이브 마운트 지점]/recovery/hdd[id].img
반환된 출력:
/dev/loop5
$ sudo losstup -fP --show /media/[대상 드라이브 마운트 지점]/recovery/hdd[id].img
반환된 출력:
/dev/loop6

mdadm 재설치
$ sudo apt-get 설치 mdadm

RAID6 어레이 재구축
다음 명령을 사용하여 각 RAID6 어레이 드라이브 이미지를 사용 가능한 다음 루프 장치에 추가합니다.
$ sudo mdadm --assemble
--scan에서 반환된 출력:
mdadm: /dev/md/0 7개 드라이브가 시작되었습니다.
mdadm:/dev/md1은 7개의 드라이브로 시작됩니다.

논리 볼륨 상태 확인
$ sudo lvscan
에서 반환된 출력 :
경고: VG vg0의 PV /dev/md1은 이전 PV 헤더를 사용하고 있습니다. 업데이트하려면 VG를 수정하십시오.
ACTIVE '/dev/vg0/syslv' [1.00 GiB] 상속됨ACTIVE
'/dev/vg0/lv0' [8.63 TiB] 상속됨

논리 볼륨 세부 정보 표시
$ sudo lvdisplay
에서 반환된 출력 :
경고: VG vg0의 PV /dev/md1이 이전 PV 헤더를 사용하고 있습니다. 업데이트하려면 VG를 수정하십시오.
--- 논리 볼륨 ---
LV 경로 /dev/vg0/syslv
LV 이름 syslv
VG 이름 vg0
LV UUID e5ZreA-S8TO-2x0x-4pfw-Zh6h-Cs5X-EH8FVc
LV 쓰기 액세스 읽기/쓰기
LV 호스트, 시간,
LV 생성 사용 가능한 상태
[#] 열기 0
LV 크기 1.00 GiB
현재 LE 512
세그먼트 1
할당 상속된
미리 읽기 섹터 16384
블록 장치 254:0

--- 논리 볼륨 ---
LV 경로 /dev/vg0/lv0
LV 이름 lv0
VG 이름 vg0
LV UUID bkVNXL-2FI6-61z7-4UzW-Erwu-0sHA-oiHxbq
LV 쓰기 액세스 읽기/쓰기
LV 생성 호스트, 시간,
LV 상태 사용 가능
[#] 열기 0
LV 크기 8.63TiB
현재 LE 4525773
세그먼트 1
할당 상속됨
미리 읽기 섹터 영역 16384
블록 장치 254:1

볼륨 그룹 메타데이터 업데이트
$ sudo vgck --updatemetadata vg0
에서 반환된 출력 :
경고: VG vg0의 PV /dev/md1이 이전 PV 헤더를 사용하고 있습니다. 업데이트하려면 VG를 수정하십시오.
경고: /dev/md1에서 VG vg0에 대한 PV 헤더를 업데이트하십시오.

복원된 RAID6 어레이 마운트
$ sudo 마운트 -o ro /dev/vg0/lv0 /mnt/RCLSVR

그런 다음 데이터에 액세스하고 복원할 수 있습니다.
이것이 다른 누군가에게 도움이 되기를 바라며 @frostschutz의 도움에 다시 한번 감사드립니다.

관련 정보