내 RAID5 어레이는 3개의 디스크로 구성되어 있으며 예비 디스크는 없습니다. 정전 후 재부팅 후 어레이를 복구할 수 없습니다. 실제로 /dev/md127 장치는 완전히 사라지고 잘못된 /dev/md0으로 대체됩니다. 이는 시스템의 유일한 어레이입니다. 세 가지 구성 요소 장치에서 재조립을 시도했지만 어셈블리에서 raid5 대신 raid0 어레이가 계속 생성되었습니다.
3개 디스크의 세부정보는 다음과 같습니다.
root@bragi ~ # mdadm -E /dev/sdc1
/dev/sdc1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 002fa352:9968adbd:b0efdfea:c60ce290
Name : bragi:0 (local to host bragi)
Creation Time : Sun Oct 30 00:10:47 2011
Raid Level : raid5
Raid Devices : 3
Avail Dev Size : 2930269954 (1397.26 GiB 1500.30 GB)
Array Size : 2930269184 (2794.52 GiB 3000.60 GB)
Used Dev Size : 2930269184 (1397.26 GiB 1500.30 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
Unused Space : before=1968 sectors, after=770 sectors
State : clean
Device UUID : a8a1b48a:ec28a09c:7aec4559:b839365e
Update Time : Sat Oct 11 09:20:36 2014
Checksum : 7b1ad793 - correct
Events : 15084
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 2
Array State : AAA ('A' == active, '.' == missing, 'R' == replacing)
root@bragi ~ # mdadm -E /dev/sdd1
/dev/sdd1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 002fa352:9968adbd:b0efdfea:c60ce290
Name : bragi:0 (local to host bragi)
Creation Time : Sun Oct 30 00:10:47 2011
Raid Level : raid5
Raid Devices : 3
Avail Dev Size : 2930269954 (1397.26 GiB 1500.30 GB)
Array Size : 2930269184 (2794.52 GiB 3000.60 GB)
Used Dev Size : 2930269184 (1397.26 GiB 1500.30 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
Unused Space : before=1968 sectors, after=770 sectors
State : clean
Device UUID : 36c08006:d5442799:b028db7c:4d4d33c5
Update Time : Wed Oct 15 08:09:37 2014
Checksum : 7e05979e - correct
Events : 15196
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 1
Array State : .A. ('A' == active, '.' == missing, 'R' == replacing)
root@bragi ~ # mdadm -E /dev/sde1
/dev/sde1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x8
Array UUID : 002fa352:9968adbd:b0efdfea:c60ce290
Name : bragi:0 (local to host bragi)
Creation Time : Sun Oct 30 00:10:47 2011
Raid Level : raid5
Raid Devices : 3
Avail Dev Size : 2930275057 (1397.26 GiB 1500.30 GB)
Array Size : 2930269184 (2794.52 GiB 3000.60 GB)
Used Dev Size : 2930269184 (1397.26 GiB 1500.30 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
Unused Space : before=1960 sectors, after=5873 sectors
State : clean
Device UUID : b048994d:ffbbd710:8eb365d2:b0868ef0
Update Time : Wed Oct 15 08:09:37 2014
Bad Block Log : 512 entries available at offset 72 sectors - bad blocks present.
Checksum : bdbc6fc4 - correct
Events : 15196
Layout : left-symmetric
Chunk Size : 512K
Device Role : spare
Array State : .A. ('A' == active, '.' == missing, 'R' == replacing)
기존 어레이를 중지하고 다음과 같이 재조립했습니다. (명확성을 위해 빈 줄을 삽입했습니다.)
root@bragi ~ # mdadm -S /dev/md0
mdadm: stopped /dev/md0
root@bragi ~ # mdadm -A /dev/md0 /dev/sdd1 /dev/sdc1 /dev/sde1
mdadm: /dev/md0 assembled from 1 drive and 1 spare - not enough to start the array.
root@bragi ~ # cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : inactive sdd1[1](S) sde1[3](S) sdc1[2](S)
4395407482 blocks super 1.2
unused devices: <none>
root@bragi ~ # mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Raid Level : raid0
Total Devices : 3
Persistence : Superblock is persistent
State : inactive
Name : bragi:0 (local to host bragi)
UUID : 002fa352:9968adbd:b0efdfea:c60ce290
Events : 15084
Number Major Minor RaidDevice
- 8 33 - /dev/sdc1
- 8 49 - /dev/sdd1
- 8 65 - /dev/sde1
root@bragi ~ # mdadm -Q /dev/md0
/dev/md0: is an md device which is not active
어셈블리의 슈퍼블록에서 알 수 있듯이 이것이 raid5 장치 대신 raid0 장치로 어셈블되는 이유는 무엇입니까? /dev/sde1이 무료로 표시되어 있기 때문인가요?
편집하다:@wurtel의 제안에 따라 다음을 시도했으며 결과는 다음과 같습니다.
# mdadm --create -o --assume-clean --level=5 --layout=ls --chunk=512 --raid-devices=3 /dev/md0 missing /dev/sdd1 /dev/sde1
mdadm: /dev/sdd1 appears to contain an ext2fs file system
size=1465135936K mtime=Sun Oct 23 13:06:11 2011
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sun Oct 30 00:10:47 2011
mdadm: /dev/sde1 appears to be part of a raid array:
level=raid5 devices=3 ctime=Sun Oct 30 00:10:47 2011
mdadm: partition table exists on /dev/sde1 but will be lost or
meaningless after creating array
Continue creating array? no
mdadm: create aborted.
#
따라서 /dev/sde1이 다시 문제를 일으키는 것 같습니다. 예비용으로 표시되었기 때문인 것 같습니다. 어쨌든 해당 역할을 다시 활성 상태로 강제 변경할 수 있나요? 이 경우 어셈블리 배열이 작동할 수 있다고 생각됩니다.
답변1
꽤 혼란스러워 보이는 시스템이 있습니다. 출력의 주요 요소 mdadm --examine
:
/dev/sdc1:
Update Time : Sat Oct 11 09:20:36 2014
Events : 15084
Device Role : Active device 2
/dev/sdd1:
Update Time : Wed Oct 15 08:09:37 2014
Events : 15196
Device Role : Active device 1
/dev/sde1:
Update Time : Wed Oct 15 08:09:37 2014
Bad Block Log : 512 entries available at offset 72 sectors - bad blocks present.
Events : 15196
Device Role : spare
/dev/sdc1
어레이 는 다른 두 어레이보다 이벤트 수가 적고(데이터가 오래됨) 예 /dev/sde1
비용으로 표시되므로(데이터가 어레이 상태와 아무 관련이 없음) 어레이를 다시 어셈블할 수 없습니다 . 이는 데이터가 포함된 하나의 드라이브만 제공하는 반면, 3개 디스크 RAID 5는 작동을 시작하려면 최소 두 개의 드라이브가 필요합니다. 전형적인 두 개의 드라이브 오류처럼 보이지 않기 때문에 어떻게 여기까지 오셨는지 모르겠습니다.
이벤트가 중요 /dev/sdc1
하고 /dev/sdd1
크게 다르지 않기 때문에 mdadm
어레이를 두 볼륨에서 강제로 재조립하여 대부분 또는 모든 데이터를 복구할 수 있습니다. 다음 단계를 따라야 할 수도 있습니다.리눅스 RAID 위키그러나 모든 것을 잃을 가능성을 염두에 두지 않는다면 핵심 단계는 mdadm --assemble --force --run /dev/sdc1 /dev/sdd1
이것이 fsck
작동하거나 어레이를 완전히 파괴하는 것입니다. 확장 프로세스의 요점은 실제로 손상시키지 않고 어레이가 무엇인지 알아내는 것입니다. 데이터.
또는 동일한 이벤트 개수를 갖기 /dev/sdd1
때문에/dev/sde1
가능한"활성 장치 0"의 장치 역할을 갖도록 메타데이터를 변경하여 모든 것을 복원하는 것이 가능 /dev/sde
하지만, 이를 위해서는 전문 지식과 디스크 내용의 직접적인 16진수 편집이 필요합니다.
답변2
mdadm RAID5에서 장치가 누락된 경우 이전 설정을 사용하여 RAID 장치를 다시 "생성"하고 이를 missing
누락된 장치로 만듭니다. 예를 들어 귀하의 경우 다음과 같습니다.
mdadm --create --level=5 --layout=ls --chunk=512 --raid-devices=3 /dev/md0 missing /dev/sdd1 /dev/sdc1
참고: "장치 역할"이 0 기반이라고 가정하고 이전 mdadm -E 출력 형식에 익숙합니다. 즉, 첫 번째 장치가 손실되었습니다. 1에서 시작하면 분명히 세 번째 장치가 누락된 것이므로 missing
장치 목록의 처음이 아닌 끝에 배치됩니다.