시작 시 다른 mdadm 배열을 사용하는 mdadm 배열을 자동으로 어셈블합니다.

시작 시 다른 mdadm 배열을 사용하는 mdadm 배열을 자동으로 어셈블합니다.

내 시스템에는 두 개의 mdadm 배열이 있습니다.

alex@fileserver:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdc1[0] md0[3] sde1[1]
      7759197184 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

md0 : active raid0 sdd1[1] sdb1[0]
      3907019776 blocks super 1.2 512k chunks

unused devices: <none>

자세히 살펴보면 배열에서 md1사용되는 것을 볼 수 있습니다. md0(4TB 디스크 2개와 2TB 디스크 2개가 있는데, 이것이 함께 작동하는 방법입니다...)

이것은 시작할 때를 제외하고는 훌륭하게 작동합니다. 내 것에도 mdadm.conf다음 줄이 있습니다.

ARRAY /dev/md/0 metadata=1.2 UUID=ba271258:3f18f660:1d5d19aa:2bd0d8e3 name=fileserver:0
ARRAY /dev/md/1 metadata=1.2 UUID=262a6823:3fafb521:75e315ab:f2de4329 name=fileserver:1

그것은 잘 결합되었지만 md0그 배열 속에서 md1길을 잃고 md0결국 예비품 sdc1처럼 거기에 앉아 있게 되었습니다. sde1mdadm이 배열을 병렬로 조립하려고 시도하는 것 같나요?

부팅 후 mdadm --stop /dev/md1이렇게 하면 mdadm --assemble --scan어레이가 올바르게 결합됩니다.

내 시나리오는 표준이 아닐 수 있지만 이 문제에 대한 간단한 해결책이 있습니까? 예를 들어 mdadm.conf에 이를 알리는 방법은 무엇 md1입니까 md0? mdadm 이후에 중지/어셈블 명령을 수행하는 작은 init 스크립트를 언제든지 작성할 수 있지만 적절한 솔루션이 존재하는 경우 이러한 해킹을 피하는 것이 좋습니다. 특히 md1시스템 서비스를 적절하게 작동하기 위한 존재 및 설치에 대한 종속성이 있기 때문입니다.

답변1

이는 12.04(커널 ~3.2.0.40)에 나타나고 16.04에서 수정될 때까지 존재했던 Ubuntu 버그입니다. Debian 버전에서는 동일한 문제가 발생하지 않습니다.

우분투에서의 대화버그 추적기:

(타란토가 사용자):

[Debian] Wheezy는 md에 대해 udev를 비활성화하고 rc 스크립트를 사용하여 부팅 시 어셈블하므로 부팅 후 어레이를 자동으로 어셈블하지 않습니다. Trusty는 부팅 중 및 부팅 후에 실제 장치를 조립하지만 /dev/md0과 같은 가상 장치는 무시하는 것 같습니다.

Tarantoga는 udev 규칙 파일에 한 줄을 추가하여 간단한 해결책을 찾았습니다.

/etc/udev/rules.d/85-mdadm.rules:

SUBSYSTEM=="block", ACTION=="add|change", ENV{ID_FS_TYPE}=="linux_raid_member", DEVPATH=="*/virtual/*", RUN+="/sbin/mdadm --incremental $tempnode"

이 솔루션은 저에게 효과적입니다. 두 개의 줄무늬가 있는 거울이 있는데 시작 시 줄무늬만 조립됩니다. 이 규칙을 적용하면 모든 것이 제대로 조립될 수 있습니다.

(예, 스트라이프 미러가 스트라이프 미러보다 더 나은 특정 사용 사례가 있습니다 :-))

관련 정보