재부팅 후 CentOS 7에서 생성된 mdadm 배열이 사라짐

재부팅 후 CentOS 7에서 생성된 mdadm 배열이 사라짐

다음 디스크와 명령을 사용하여 raid1을 만들었습니다.

$ ls -l /dev/disk/by-id/ata-ST3000*
lrwxrwxrwx 1 root root 9 Sep 19 07:27 /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F04NR1 -> ../../sdc
lrwxrwxrwx 1 root root 9 Sep 19 07:27 /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F190E3 -> ../../sda

$ mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F190E3 /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F04NR1

mdadm.conf에 관련 정보를 추가했습니다. ARRAY 라인에 "mdadm --detail --scan >> /etc/mdadm.conf"를 사용했습니다.

$ cat /etc/mdadm.conf
DEVICE /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F190E3
DEVICE /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F04NR1
ARRAY /dev/md0 metadata=1.2 name=jaime.WORKGROUP:0 UUID=93f2cb73:2d124630:562f1dd9:bf189029
MAILADDR your@address

파일 시스템을 생성하고 마운트했습니다.

$ mkfs -t xfs /dev/md0
$ mount -t xfs /dev/md0 /data

재부팅 후에는 /dev/md0이 더 이상 존재하지 않으며 어레이를 어셈블할 수 없습니다.

$ mdadm --assemble /dev/md0 /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F190E3 /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F04NR1
mdadm: Cannot assemble mbr metadata on /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F190E3
mdadm: /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F190E3 has no superblock - assembly aborted



$ blkid
/dev/sda: PTTYPE="gpt"
/dev/sdb1: UUID="5c7d3f2b-c975-46a3-a116-e9fc156c1de5" TYPE="xfs"
/dev/sdb2: UUID="JhoqjI-N6R6-O9zt-Xumq-TnFX-OUCd-Lg9YHy" TYPE="LVM2_member"
/dev/sdc: PTTYPE="gpt"
/dev/mapper/centos-swap: UUID="3b882d4d-b900-4c59-9912-60a413699db4" TYPE="swap"
/dev/mapper/centos-root: UUID="08df953d-d4f4-4e83-bf4b-41f14a98a12e" TYPE="xfs"
/dev/mapper/centos-home: UUID="2358f723-5e7f-49ed-b207-f32fe34b1bbc" TYPE="xfs"

답변1

저는 여러분 모두에게 적합한 해결 방법을 찾았습니다. 어쩌면 이것이 여러분에게 도움이 될 수도 있습니다. 여기 있습니다:

시스템이 부팅 또는 시작 중에 mdadm.conf 파일을 읽지 않기 때문에 Raid 마운트가 사라집니다. 그래서 제가 한 일은 /etc/rc.d/rc.local다음 명령을 포함하도록 파일을 편집하는 것이었습니다.

sleep 10
mdadm --assemble --scan
sleep 10
mount -a

이제 시스템을 재부팅할 때마다 이 파일을 읽고 여기에 언급된 명령을 실행하고 RAID 마운트를 마운트합니다.

답변2

이론상으로는 "베어 드라이브"(파티션되지 않은 드라이브)에서 습격하는 것이 가능하지만 디스크가 md 드라이브가 아닌 gpt 파티션으로 나타나는 것을 확인했습니다. 일반적으로 디스크를 분할한 다음 md 배열의 파티션을 사용하면 더 나은 성공/안정성을 발견했습니다.

파티션 테이블을 생성하고 파티션 유형을 Linux raid 자동 감지(제대로 기억한다면 fdisk의 fd)로 설정해 보겠습니다. 그런 다음 배열을 다시 만듭니다.

또한 mdadm.conf를 사용하지 않으면 더 나은 성공을 거둘 수 있다는 것을 알았습니다. 최신 버전의 md 도구는 해당 파티션의 슈퍼블록에서 필요한 모든 정보를 얻습니다.

답변3

이 문제를 발견했는데 문제 해결 중에 많은 도움이 되었습니다. 그러나 어떤 대답도 내 문제를 해결하지 못합니다.

어쩌면 이것은 같은 문제를 가진 누군가에게 도움이 될 수 있습니다. 제 경우에는 RedHat Linux 7.2에 두 개의 NVME 드라이브가 있습니다.

SELinux에는 nvme에 문제가 있어 mdadm이 해당 문제와 함께 작동하지 못하게 합니다.

징후:

이 스레드의 질문에 설명된 대로 소프트웨어 RAID를 생성합니다. 재부팅 후 RAID가 사라집니다.

  • /proc/mdstat비어 있고 /dev/md0존재 하지 않습니다.
  • mdadm --assemble --scanRAID를 시작합니다.

해결책:

내 예에서는 selinux를 비활성화했습니다. 모든 시스템에서 이것이 가능하지는 않다는 것을 알고 있습니다. 하지만 아마도 당신은 내 게시물에서 올바른 방향을 찾았을 것입니다.

답변4

이는 fd 유형(Linux raid 자동 감지)을 사용하여 디스크 파티션을 포맷하는 더 좋은 방법인 것 같지만, fdisk의 정렬 메시지에 유의하세요! 이러한 경고를 받고 파티션을 생성하는 데 사용한 분리 도구를 사용하여 문제를 해결한 다음 "fd"를 입력하는 fdisk를 사용하여 설정했습니다. 그런 다음 단계를 따르면 부팅 시 RAID 장치가 자동으로 형성됩니다. /etc/fstab의 항목을 통해 마운트될 수도 있습니다...

참고: /etc/mdadm.conf를 사용하면 RHEL7 3.10.0-514.6.1.el7.x86_6 시스템이 손상되었습니다.

관련 정보