부팅 할 때마다 mdadm을 자동 조립 RAID로 만들려면 어떻게해야합니까?


43

를 사용하여 RAID (미러링)를 성공적으로 만들었습니다 mdadm. 그러나 부팅 할 때마다 다음 명령을 실행해야합니다.

mdadm --stop --scan // to stop /dev/md127 - I don't know where the number 127 even comes from
mdadm --assemble --scan // to start /dev/md0

내가 뭘 잘못했는지 / 왜 부팅 할 때이 명령을 실행해야합니까? 부팅 할 때마다 RAID를 자동 시작하는 올바른 방법은 무엇입니까?

답변:


36

주의 : 루트로 로그인하거나 sudo 를 사용 하여이 모든 작업을 수행해야합니다.

  • 선호하는 편집기를 사용하여 다음과 같이 /etc/mdadm/mdadm.conf 파일 을 작성하거나 편집 하십시오.

파일이 존재하지 않으면 비어있는 새 파일에 다음을 붙여 넣습니다.

# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

DEVICE partitions

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays
  • 파일을 저장하십시오

  • 파일 끝에 배열 구성에 대한 참조를 추가하려면 다음 명령을 실행하십시오.

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

mdadm.conf 끝에 다음과 같은 줄을 추가해야합니다.

ARRAY / dev / md0 level = raid5 num-devices = 3 메타 데이터 = 00.90 UUID = a44a52e4 : 0211e47f : f15bce44 : 817d167c

mdadm 명령이 ARRAY 행 위에 다른 항목을 추가 한 경우 제거하십시오. 예를 들어 내 컴퓨터 중 하나에서이 명령은 'mdadm : 메타 데이터 형식 00.90 알 수 없음, 무시 됨'을 반환합니다. ARRAY 줄 앞에.

이제 어레이가 부팅시 자동 빌드되므로 / etc / fstab에 항목을 추가하여 마운트 할 수 있습니다 (아직없는 경우).


6
아마 추가 할 것입니다 : initramfs를 다음과 같이 업데이트해야합니다update-initramfs -u
Pablo Montepagano

1
mdadm --detail --scan은 시스템에 아무것도 인쇄하지 않지만 raid0 (미러)의 일부인 두 개의 파티션이 있음을 알고 있습니다. 이에 대한 일반적인 조언을 환영합니다.
Lennart Rolland

1
@LennartRolland- mdadm -Es대신 시도하십시오 .
slm

이것은 나를 위해 작동하지 않았다, 나는 grub-install /dev/sda그것이 작동하게하기 위해해야했다 (sda를 당신을 위해 적절한 것을 대체)
gorn

또는 커널 옵션을 사용할 수도 있습니다. md.auto=1... 실제로 이것을 철저히 테스트하지는 않았지만 아마도 그것들을 감지하고 조립합니다 (또는 적어도 그렇게하려고합니다). 그러나 kernel.org/doc/html/v4.15/admin-guide/md.html 은 다음 과 같이 약간 모호합니다. md가 모듈이 아닌 커널로 컴파일 될 때 0xfd 유형의 파티션이 스캔되고 자동으로 조립됩니다 RAID 배열로. [...] 커널 2.6.9부터 유형 0 수퍼 블록이있는 드라이브 만 자동 감지되어 부팅시 실행할 수 있습니다. 그리고 그것은 md.auto (또는 그것이 무엇이든)를 참조하지 않으므로 지금 확실하지 않습니다.
Pryftan

7

나는 이것이 오래된 질문이라는 것을 알고 있지만 32 비트 버전의 Ubuntu Server 12.04 에서이 문제에 어려움을 겪었습니다.

러닝 mdadm --detail --scan >> /etc/mdadm/mdadm.conf라인 추가

ARRAY / dev / md0 메타 데이터 = 1.2 이름 = 우분투 : 0 UUID = a8a570c6 : 96f61865 : 05abe131 : 5c2e2f7e

재부팅 후 / dev / md0을 볼 수 없었습니다. mdadm --detail --scan결과를 파일에 넣지 않고 다시 실행하면 볼 수 있습니다.

ARRAY / dev / md / ubuntu : 0 metadata = 1.2 name = ubuntu : 0 UUID = a8a570c6 : 96f61865 : 05abe131 : 5c2e2f7e

수동으로 장착 /dev/md/ubuntu:0하면됩니다. 결국, 그것은 fstab 파일에도 넣었습니다.

이것이 우분투 12.04에서 작동하는 방식이거나 이것이 나쁜 습관인지 잘못 알고 있는지 확실하지 않습니다. 나를 위해 일한 것을 나누고 싶었습니다.


같은 "문제"입니다. 문제인지 확실하지 않습니다 ..
Christophe De Troyer

3

데비안에서 한 단계가 필요합니다 위지 :에 /etc/default/mdadm설정 자동 시작 을 false에서 true로

#AUTOSTART :
# mdadm은 /etc/mdadm/mdadm.conf에 나열된 배열을 자동으로 시작해야합니다.
# 부팅하는 동안?
AUTOSTART = true

또한 옵션 mdadm -Es >>/etc/mdadm/mdadm.conf대신 대신 사용해야 했습니다 --scan.


3
sudo mdadm -Es >> /etc/mdadm/mdadm.conf

이제 다음 방법으로 /etc/mdadm/mdadm.conf에 추가 된 행을 편집하십시오. 기본 부분을 제외한 모든 부분을 삭제하십시오. 다음과 같아야합니다

ARRAY /dev/md5 UUID=031cea92:50a7a28c:6b077fe7:8817092a
ARRAY /dev/md6 UUID=53454954:4044eb66:9169d1ed:40905643

참고 : 편의상 mdX에서 X를 선택할 수 있습니다.

이제 재부팅

sudo update-initramfs -u
sudo reboot

편집 : 명령이 수정되었습니다.


Linker3000의 답변이 효과가 없기 때문에 thi를 썼습니다.
고른

3

Raspbian GNU / Linux 8 (jessie)을 실행하는 Raspberry Pi 2에서이 문제가 발생했습니다. RAID 어레이가 /dev/sda1있고 /dev/sdb1부팅시 어셈블하지 못했습니다. 내 /etc/mdadm/mdadm.conf파일에 항목이 있었다

ARRAY /dev/md/0  metadata=1.2 UUID=53454954:4044eb66:9169d1ed:40905643 name=raspberrypi:0 

(숫자는 다를 수 있습니다. 이것을 얻는 방법에 대한 다른 답변을 참조하십시오.)

/etc/fstab파일에 항목이 있었다

/dev/md0        /data           ext4    defaults          0       0

(물론 /data존재했습니다)

OP와 마찬가지로 부팅 후 RAID 배열을 수동으로 조립하고 마운트 할 수는 있었지만 부팅을 올바르게 설정했지만 부팅 중에 자동으로 발생하지는 못했습니다.

다음과 같이 문제를 해결할 수있었습니다. 스크립트를 조사하고 /etc/init.d/mdadm-raid디버그 코드 줄을 삽입했습니다.

ls /dev > /home/pi/devices.txt

이 파일을 재부팅하고 확인 하면 초기화가 발생 했을 때 장치 /dev/sda/dev/sdb존재 mdadm-raid했지만 파티션 /dev/sda1/dev/sdb1누락 이 있음을 알게 되었습니다. /etc/init.d/mdadm-raid파일을 편집하고 줄을 삽입했습니다.

partprobe

헤더 뒤 (즉 ### END INIT INFO, 스크립트가 시작되기 전에) 이로 인해 파티션이 감지되어 mdadm-raid스크립트가 RAID 어레이를 어셈블하여 문제를 해결할 수있었습니다. 이것이 누군가를 돕기를 바랍니다!


0

나는 Raspberry Pi에서 두 개의 외부 USB HDD를 사용하여 Raspbian에서 이와 싸우고 있습니다. USB 드라이브가 udev에 의해 인식 된 후 checkfs.sh (부팅시 파일 시스템을 검사 함) 전에 mdadm-raid가 시작되도록하려면 서비스의 시작 순서를 혼란스럽게해야했습니다. mdadm-raid가 너무 일찍 시작되면 드라이브를 사용할 수 없어서 어레이가 조립되지 않은 것입니다. 즉, fsck가 실패하고 부팅 프로세스가 유지 관리 프롬프트로 넘어갔습니다 (다른 서비스에는 RAID 어레이가 필요하기 때문).

checkroot.sh 후하지만 checkfs.sh 및 실행하기 전에 mdadm를-공격 시작 부팅 종속성을 수정 update-rc.d mdadm-raid defaults한 다음, update-initramfs -uv -k `uname -r`(주위 노트 역 따옴표 것은 uname) (마지막으로) 그것을 해결했습니다. 어쨌든 YMMV.


위의 uname -r은 백틱으로 표시되지만 여기서 어떻게 인쇄되는지 탈출 할 수는 없습니다.
Rodney

이 버전의 라즈 비안은 무엇입니까? 나는 Wheezy에서 잘 작동했지만 Jessie로 업그레이드하면 부팅시 조립이 중단되었습니다.
nwaltham

0

나는 함께 노력했다

mdadm --create /dev/md/abcdef ...

/dev/md/abcdef재부팅 할 때 소프트 링크가 지속되고 소프트 링크를 통해 장치에 액세스해야하는 경우가 있습니다.

수용 가능한 솔루션입니까?


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.