내 mdadm RAID5 어레이는 5>8 디스크 성장 및 재구성을 거쳤습니다. 며칠 동안 쉬지 않고 계속되었습니다. 완료되었다고 표시되었을 때 cat /proc/mdstat
시스템을 재부팅했는데 이제 어레이가 더 이상 표시되지 않습니다.
제가 발견한 한 가지 잠재적인 문제는 새 드라이브를 추가할 때 전체 디스크를 사용하고 있다는 것입니다(즉, /dev/sda
를 사용하지 않음 ) /dev/sda1
. 그러나 이러한 드라이브에는 전체 드라이브에 걸쳐 있어야 하는 파티션이 있습니다.
나는 시도했다:
$ sudo mdadm --assemble --scan
mdadm: No arrays found in config file or automatically
새로 추가된 3개의 드라이브에는 md 슈퍼블록이 없는 것으로 보입니다.
$ sudo mdadm --examine /dev/sd[kln]
/dev/sdk:
MBR Magic : aa55
Partition[0] : 4294967295 sectors at 1 (type ee)
/dev/sdl:
MBR Magic : aa55
Partition[0] : 4294967295 sectors at 1 (type ee)
/dev/sdn:
MBR Magic : aa55
Partition[0] : 4294967295 sectors at 1 (type ee)
$ sudo mdadm --examine /dev/sd[kln]1
mdadm: No md superblock detected on /dev/sdk1.
mdadm: No md superblock detected on /dev/sdl1.
mdadm: No md superblock detected on /dev/sdn1.
다른 5명의 사람들이 이 작업을 수행하고 어레이에 대한 올바른 통계를 표시합니다.
$ sudo mdadm --examine /dev/sd[ijmop]1
/dev/sdi1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 7399b735:98d9a6fb:2e0f3ee8:7fb9397e
Name : Freedom-2:127
Creation Time : Mon Apr 2 18:09:19 2018
Raid Level : raid5
Raid Devices : 8
Avail Dev Size : 15627795456 (7451.91 GiB 8001.43 GB)
Array Size : 54697259008 (52163.37 GiB 56009.99 GB)
Used Dev Size : 15627788288 (7451.91 GiB 8001.43 GB)
Data Offset : 254976 sectors
Super Offset : 8 sectors
Unused Space : before=254888 sectors, after=7168 sectors
State : clean
Device UUID : ca3cd591:665d102b:7ab8921f:f1b55d62
Internal Bitmap : 8 sectors from superblock
Update Time : Tue Jul 14 11:46:37 2020
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : 6a1bca88 - correct
Events : 401415
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 3
Array State : AAAAAAAA ('A' == active, '.' == missing, 'R' == replacing)
...기다리다
강제 조립이 작동하지 않습니다.
$ sudo mdadm /dev/md1 --assemble --force /dev/sd[ijmop]1 /dev/sd[kln]
mdadm: /dev/sdi1 is busy - skipping
mdadm: /dev/sdj1 is busy - skipping
mdadm: /dev/sdm1 is busy - skipping
mdadm: /dev/sdo1 is busy - skipping
mdadm: /dev/sdp1 is busy - skipping
mdadm: Cannot assemble mbr metadata on /dev/sdk
mdadm: /dev/sdk has no superblock - assembly aborted
어떻게 진행해야 할지 모르겠습니다.
모든 도움에 진심으로 감사드립니다.
답변1
제가 발견한 한 가지 잠재적인 문제는 새 드라이브를 추가할 때 전체 디스크를 사용하고 있다는 것입니다(즉,
/dev/sda
를 사용하지 않음 )/dev/sda1
. 그러나 이러한 드라이브에는 전체 드라이브에 걸쳐 있어야 하는 파티션이 있습니다.
파티션 테이블 이외의 용도로 전체 디스크를 사용하는 것은 위험합니다. 파티션 테이블에 다른 내용이 기록되자마자 전체 디스크 RAID/LUKS/LVM/파일 시스템 메타데이터는 사라집니다. 사용자 오류는 제쳐두고 실제로 묻지 않고도 파티션 테이블을 작성할 수 있는 도구와 환경이 많이 있습니다.
이것이 바로 당신에게 일어난 일인 것 같습니다. 귀하 또는 다른 사람이 파티션 테이블이 있는 3개의 디스크에 메타데이터를 덮어썼습니다. 손실된 메타데이터를 복구하는 것은 일반적으로 불가능합니다. 예를 들어 parted
's는 mklabel gpt
mdadm 1.2 메타데이터(시작부터 4K)를 완전히 0으로 만듭니다.
그러므로,유일한 희망은 RAID를 다시 만드는 것입니다처음부터 새로운 메타데이터를 구축하세요.
그리고 똑같은 방식으로 다시 생성해야 하므로 파티션 대신 전체 디스크를 사용하려는 경우에도 전체 디스크를 사용하여 올바른 순서로 다시 생성해야 합니다. 데이터를 복구한 후 전체 디스크 장치가 아닌 파티션으로 마이그레이션하는 것을 고려하십시오.
드라이브 순서는 알파벳순이 아니며 mdadm --examine
어레이의 네 번째 드라이브(0부터 계산, 장치 역할 3)에 대한 출력만 표시됩니다. /dev/sdi1
성공적인 재생성을 위해서는 검사 출력을 주의 깊게 읽고 올바른 설정을 추론하십시오. 또한 데이터 오프셋이 비정상적입니다( --grow
변경되었기 때문에).
그리고기록 중 복사 덮어쓰기현재 찾고 있는 명령은 다음과 같아야 합니다.
mdadm --create /dev/md100 --assume-clean \
--level=5 --chunk=512 --data-offset=127488 --layout=left-symmetric \
--raid-devices=8 /dev/mapper/sd{?,?,?,i,?,?}1 /dev/mapper/sd{k,l,n}
(드라이브 순서를 모르기 때문에 ?
올바른 드라이브 문자로 대체했으며 {c,b,a}
구문은 순서를 유지하지 않고 순서를 유지한다는 점에 유의하십시오 [cba]
. 의심스러운 경우 쉘 확장을 사용하는 대신 작성하십시오.)
기존 GPT 파티션 테이블이 다시 간섭하지 않도록 하려면 이를 삭제해야 합니다 wipefs
(전체 디스크 멤버에서만). 이렇게 하면 디스크의 시작과 끝에서 GPT가 제거되므로 GPT를 찾고 디스크 끝에서 찾는 소프트웨어는 프로세스에서 메타데이터를 삭제하여 디스크 시작 부분에서 GPT를 복원해야 한다는 느낌을 받지 않게 됩니다.
# wipefs --no-act --all --types gpt,PMBR /dev/loop0
/dev/loop0: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20 50 41 52 54
/dev/loop0: 8 bytes were erased at offset 0x7ffffe00 (gpt): 45 46 49 20 50 41 52 54
/dev/loop0: 2 bytes were erased at offset 0x000001fe (PMBR): 55 aa
( --no-act
실제로 지우기를 수행하기 위해 제거되었습니다.)
행운을 빕니다...파티션 테이블이 유일한 문제라면 성공할 가능성이 높습니다. 다른 데이터도 변경되면(파티션이 생성되고 일부 내용이 포맷됨) RAID 자체에서 데이터 손상이 발생합니다.
첨부된:
$ sudo mdadm /dev/md1 --assemble --force /dev/sd[ijmop]1 /dev/sd[kln] mdadm: /dev/sdi1 is busy - skipping
이 메시지(Busy Skip)는 일반적으로 md
장치가 조립되었음을 의미합니다(증분 조립 방법으로 인해 어레이가 불완전할 때 발생함).
이 경우 mdadm --stop
비활성 어레이에 mdadm --assemble
액세스하기 전에 해당 어레이에 액세스해야 합니다. (이전에 드라이브가 실제로 누락된 경우 증분 조립을 계속하십시오.)