처음에 내가 어떻게 이런 상황에 빠졌는지:
각 디스크(외부 USB 디스크)가 2TB인 RAID5 어레이가 있고 더 큰 암호화 어레이를 만들고 싶습니다. 그래서 2개의 추가 디스크(각각 2TB)를 얻었고 계획은 성능 저하 모드에서 원래 어레이를 실행하고, 새로운 암호화된 어레이를 설정하고, 일부 데이터를 복사한 다음 성능 저하 모드에서 원래 어레이를 디스크 2개로 축소하는 것입니다. 새로 확장하고 나머지 데이터를 복사한 다음 마지막으로 다운그레이드되지 않은 RAID5 디스크 7개로 확장합니다. /dev/loopX
주의 사항이 있는지 계획을 테스트하기 위해 각 장치마다 2GB를 사용하여 전체 프로세스를 진행했습니다 .
새 디스크 중 하나가 고장날 때까지 실제 어레이에서는 모든 것이 잘 작동했습니다. 이 디스크를 교체했을 때 다음 재부팅 이후에 커널이 디스크를 인식하는 순서가 바뀌었습니다( /dev/sdb
, /dev/sdc
, ... 모두 이전과 다른 디스크입니다). 모든 것이 풀렸고 디스크 중 하나가 잘못된 어레이의 구성원으로 재동기화될 때까지 나는 그것을 깨닫지 못했습니다. 나는 이 이야기를 자세히 다루지 않고 바로 요점으로 들어가겠습니다.
이제 암호화된 어레이, 3개의 디스크 RAID5가 있고 /dev/sdc1
다운그레이드되어 완벽하게 실행되며 지금까지 /dev/sdd1
모든 데이터가 그대로 유지됩니다 .fsck -f
이제 전체 문제는 3개의 디스크로 귀결됩니다. 이 암호화되지 않은 어레이를 다시 작동시킬 수 없습니다. 데이터가 확실해요가지다이것은 작동하는 어레이였기 때문에 /dev/sdf1
디스크 중 하나가 엉망이 되기 직전에(앞서 언급한 것처럼 실수로 다른 암호화된 어레이의 구성원으로 재동기화됨). 그렇다면 세 개의 디스크 중 하나에 대한 배열 데이터가 올바르지 않을 수 있습니다. 그런데 어떤 디스크입니까? 그 중 두 개는 양호해야 합니다. 그런데 어떻게 수정합니까?/dev/sdg1
/dev/sdh1
예를 들어... 와 "누락" 의 모든 mdadm --create
순열을 시도했습니다 ./dev/sdf1
/dev/sdg1
/dev/sdh1
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdf1 /dev/sdg1 missing
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdf1 missing /dev/sdg1
...
물론 매번 확인하지만
fsck /dev/md0
잘못된 슈퍼블록에 대해 불평합니다.
mdadm이 배열을 생성할 때마다 이를 읽을 파일 시스템이 없고 쓰레기만 포함되며 mdadm이 사용하는 모든 순열은 결국 작동하지 않게 됩니다. 이제 제 질문은 이렇습니다. 어떤 옵션이 있나요? 물론, 데이터가 손실되고 어레이를 처음부터 재구축하는 경우는 제외됩니다.
다음은 몇 가지 추가 정보입니다(모든 디스크).
mdadm --examine /dev/sdb1
/dev/sdb1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : cfee26c0:414eee94:e470810c:17141589
Name : merlin:0 (local to host merlin)
Creation Time : Sun Oct 28 11:38:32 2012
Raid Level : raid5
Raid Devices : 3
Avail Dev Size : 3906760704 (1862.89 GiB 2000.26 GB)
Array Size : 3906759680 (3725.78 GiB 4000.52 GB)
Used Dev Size : 3906759680 (1862.89 GiB 2000.26 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : f4f0753e:56b8d6a5:84ec2ce8:dbc933f0
Update Time : Sun Oct 28 11:38:32 2012
Checksum : 60093b72 - correct
Events : 0
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 1
Array State : AA. ('A' == active, '.' == missing)
mdadm --examine /dev/sdc1
/dev/sdc1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 5cb45bae:7a4843ba:4ad7dbfb:5c129d2a
Name : merlin:1 (local to host merlin)
Creation Time : Wed Sep 26 07:32:32 2012
Raid Level : raid5
Raid Devices : 3
Avail Dev Size : 3906760704 (1862.89 GiB 2000.26 GB)
Array Size : 3905299456 (3724.38 GiB 3999.03 GB)
Used Dev Size : 3905299456 (1862.19 GiB 1999.51 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 9e2f9ae6:6c95d05e:8d83970b:f1308de0
Update Time : Fri Oct 26 03:26:37 2012
Checksum : 79d4964b - correct
Events : 220
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 0
Array State : AA. ('A' == active, '.' == missing)
mdadm --examine /dev/sdd1
/dev/sdd1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 5cb45bae:7a4843ba:4ad7dbfb:5c129d2a
Name : merlin:1 (local to host merlin)
Creation Time : Wed Sep 26 07:32:32 2012
Raid Level : raid5
Raid Devices : 3
Avail Dev Size : 3906760704 (1862.89 GiB 2000.26 GB)
Array Size : 3905299456 (3724.38 GiB 3999.03 GB)
Used Dev Size : 3905299456 (1862.19 GiB 1999.51 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 98b07c41:ff4bea98:2a765a6b:63d820e0
Update Time : Fri Oct 26 03:26:37 2012
Checksum : 6e2767e8 - correct
Events : 220
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 1
Array State : AA. ('A' == active, '.' == missing)
mdadm --examine /dev/sde1
/dev/sde1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 6db9959d:3cdd4bc3:32a241ad:a9f37a0c
Name : merlin:0 (local to host merlin)
Creation Time : Sun Oct 28 12:12:59 2012
Raid Level : raid5
Raid Devices : 3
Avail Dev Size : 3905299943 (1862.19 GiB 1999.51 GB)
Array Size : 3905299456 (3724.38 GiB 3999.03 GB)
Used Dev Size : 3905299456 (1862.19 GiB 1999.51 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 677a4410:8931e239:2c789f83:e130e6f7
Update Time : Sun Oct 28 12:12:59 2012
Checksum : 98cb1950 - correct
Events : 0
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 2
Array State : A.A ('A' == active, '.' == missing)
mdadm --examine /dev/sdf1
/dev/sdf1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 3700a0a6:3fadfd73:bc74b618:a5526767
Name : merlin:0 (local to host merlin)
Creation Time : Sun Oct 28 11:28:30 2012
Raid Level : raid5
Raid Devices : 3
Avail Dev Size : 3905392640 (1862.24 GiB 1999.56 GB)
Array Size : 3905391616 (3724.47 GiB 3999.12 GB)
Used Dev Size : 3905391616 (1862.24 GiB 1999.56 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 5a8a5423:10b7a542:26b5e2b3:f0887121
Update Time : Sun Oct 28 11:28:30 2012
Checksum : 8e90495f - correct
Events : 0
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 1
Array State : AA. ('A' == active, '.' == missing)
mdadm --examine /dev/sdg1
/dev/sdg1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 202255c9:786f474d:ba928527:68425dd6
Name : merlin:0 (local to host merlin)
Creation Time : Sun Oct 28 11:24:36 2012
Raid Level : raid5
Raid Devices : 3
Avail Dev Size : 3905299943 (1862.19 GiB 1999.51 GB)
Array Size : 3905299456 (3724.38 GiB 3999.03 GB)
Used Dev Size : 3905299456 (1862.19 GiB 1999.51 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 4605c729:c290febb:92901971:9a3ed814
Update Time : Sun Oct 28 11:24:36 2012
Checksum : 38ba4d0a - correct
Events : 0
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 1
Array State : AA. ('A' == active, '.' == missing)
mdadm --examine /dev/sdh1
/dev/sdh1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 682356f5:da2c442e:7bfc85f7:53aa9ea7
Name : merlin:0 (local to host merlin)
Creation Time : Sun Oct 28 12:13:44 2012
Raid Level : raid5
Raid Devices : 3
Avail Dev Size : 3906761858 (1862.89 GiB 2000.26 GB)
Array Size : 3906760704 (3725.78 GiB 4000.52 GB)
Used Dev Size : 3906760704 (1862.89 GiB 2000.26 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 489943b3:d5e35022:f52c917a:9ca6ff2a
Update Time : Sun Oct 28 12:13:44 2012
Checksum : f6947a7d - correct
Events : 0
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 1
Array State : AA. ('A' == active, '.' == missing)
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdc1[0] sdd1[1]
3905299456 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
unused devices: <none>
어떤 도움이라도 대단히 감사하겠습니다!
답변1
디스크 1개만 분실한 경우~해야 한다매우 안전한 방법을 사용하여 복구할 수 있었습니다 --assemble
.
이제 create를 여러 번 실행하여 모든 UUID가 달라졌습니다. UUID를 공유 sdc1
합니다 sdd1
(작업 어레이이므로 예상됨). 나머지 디스크는 이름을 공유하지만 모두 다른 UUID를 갖습니다. 그래서 나는 이것이 원래의 슈퍼블록이 아니라고 생각합니다. 너무 끔찍해...
어쨌든, 나는 당신이 잘못된 디스크를 사용하려고 하거나 잘못된 블록 크기를 사용하려고 시도하고 있다고 추측합니다(기본값은 시간이 지남에 따라 변경되었다고 생각합니다). 이전 어레이는 다른 슈퍼블록 버전을 사용할 수도 있으며(기본값은 확실히 변경됨) 모든 섹터가 지워지고 일부 데이터도 손상될 수 있습니다. 마지막으로, 그럴 가능성은 적지만 잘못된 레이아웃을 사용하고 있을 수도 있습니다.
테스트 배열이 읽기-쓰기(md의 관점에서)이고 ext3을 사용하려고 시도하면 실제로 일부 쓰기가 수행될 수도 있습니다. 예를 들어 일기 재생. 하지만 내 생각에 그것은 어느 시점에서 슈퍼블록을 발견한다고 가정한 것입니다.
참고: 제 생각에는 을 사용해야 한다고 생각합니다 --assume-clean
. 물론 성능이 저하된 어레이는 재구축을 시작하려고 시도하지 않을 것입니다. 그런 다음 지금 읽기 전용으로 설정할 수 있습니다.
답변2
다음과 같은 이유로 포기하고 저장할 수 있는 어레이에 모든 디스크를 추가하는 일이 한 단계 남았습니다.
1) 다른 수단을 통해 얻을 수 있는 대부분의 중요한 데이터와 많은 손실된 파일이 포함된 오래된 백업을 찾았습니다.
2) 나는 결심한다하나가능한 솔루션이 작동하지 않습니다.
나를 괴롭히는 것은 드라이브 중 하나가 누락될 수 있는 어레이를 생성한다는 것입니다.~해야 한다작동하지만 어떤 슈퍼블록을 사용하려고 하든 유효한 파일 시스템을 제공하지 않습니다(ext3 파일 시스템입니다). 나는 mdadm의 관리자에게 이 질문을 하려고 생각했는데, 그 사람도 나와 같은 어리석은 질문을 많이 받는 것 같습니다. ;)
결론: 내 문제에 대해 생각하는 것은 끝났습니다. 그래도 정말 재미있다는 건 알아왜하나의 드라이브가 누락된 어레이를 다시 생성하는 것은 작동하지 않습니다.
답변3
여기 사람들은 의도적으로 RAID 6에 대해 몇 가지 스트레스 테스트를 수행한 다음 복구를 시도합니다. 그것은 당신을 더 발전시킬 수도 있습니다. 너무 늦을 수도 있지만 UDEV 규칙을 사용하여 장치 이름을 /dev/rsda 등으로 구체적으로 지정합니다. RAID sda....
몇 가지 복구 단계를 시도했지만 RAID6에서 3개의 디스크가 손실되지 않았습니다. 그러나 어쩌면 약간의 조각이 도움이 될 수도 있습니다.
참고로 extN FS는 XFS만큼 안정적이지 않을 수 있습니다. YMMV.