다음 명령을 사용하여 RAID-0을 만들었습니다.
mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/disk/by-id/ata-Samsung_SSD_750_EVO_500GB_ABC /dev/disk/by-id/ata-Samsung_SSD_750_EVO_500GB_XYZ
mkfs.ext4 -F /dev/md0
mount /dev/md0 /data1
하지만 시스템을 부팅할 때마다 mdadm 명령을 다시 실행해야 한다는 사실을 발견했습니다. mdadm.conf를 시도했지만 도움이 되지 않습니다.
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
편집하다: 댓글에 답합니다.
#1 /etc/mdadm/mdadm.conf에 추가 항목이 없습니다. 저는 기본 설정으로 Ubuntu 18.04.2를 실행하고 있으므로 부팅 이미지의 FS는 ext4입니다(그렇다면).
#2 dmesg의 유일한 RAID 관련 항목은 "raid6: avx2x2 복구 알고리즘 사용"과 같은 것입니다. 무엇을 찾아야 할지 잘 모르겠습니다. 출력에서 "mdadm"을 찾을 수 없습니다.
$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
unused devices: <none>
#3 파티션을 사용해 본 적은 없습니다. 이 목적으로 전체 디스크를 사용할 계획이기 때문에 그렇게 했습니다. 처음에는 ZFS에서도 같은 작업을 수행했지만 어떤 이유에서인지 성능이 매우 좋지 않아 지금은 mdadm을 사용합니다. 소프트웨어 RAID를 사용하고 있으므로 마더보드와 관련된 것이 아니어야 합니까?
참고로, RAID를 다시 생성했을 때 다행히 데이터가 보존되었습니다. 그러나 당연히 이전에 mdadm.conf에 저장한 것과는 다른 새로운 UUID를 얻습니다. 한 가지 해킹은 루트의 cron에 create 문을 추가하는 것일 수 있지만 이는 위험한 해킹인 것 같습니다.
편집 2: 아 둘지도 시간그리고 /etc/mdadm/mdadm.conf에서 update-initramfs를 언급했지만 어떻게 든 나는 이것을 간과했습니다. 그러나 이를 실행하고 /etc/fstab에 배치한 후에도 여전히 자동으로 마운트되지 않았습니다.
/dev/md0 /data1 ext4 defaults,nofail,discard 0 2
또한 "options md_mod start_ro=1" 줄만 있는 /etc/modprobe.d/mdadm.conf도 찾았습니다. mdadm이 두 파일을 모두 읽도록 하고 싶습니다. /etc/mdadm/mdadm.conf에 추가된 줄은 다음과 같습니다.
ARRAY /dev/md0 metadata=1.2 name=myname:0 UUID=3fc...
재부팅 후 dmesg에서 흥미로운 내용을 찾지 못했습니다. 어레이를 다시 생성하기 전의 추가 출력:
$ sudo mdadm -Q /dev/disk/by-id/ata-Samsung_SSD_750_EVO_500GB_ABC
/dev/disk/by-id/ata-Samsung_SSD_750_EVO_500GB_ABC: is not an md array
$ sudo mdadm --examine /dev/disk/by-id/ata-Samsung_SSD_750_EVO_500GB_ABC
/dev/disk/by-id/ata-Samsung_SSD_750_EVO_500GB_ABC:
MBR Magic : aa55
Partition[0] : 976773167 sectors at 1 (type ee)
$ sudo mdadm --assemble --verbose /dev/md0 2>&1 | grep -v /loop
mdadm: looking for devices for /dev/md0
mdadm: No super block found on /dev/sdd3 (Expected magic a92b4efc, got 00000000)
mdadm: no RAID superblock on /dev/sdd3
mdadm: No super block found on /dev/sdd2 (Expected magic a92b4efc, got 00000401)
mdadm: no RAID superblock on /dev/sdd2
mdadm: No super block found on /dev/sdd1 (Expected magic a92b4efc, got 00000000)
mdadm: no RAID superblock on /dev/sdd1
mdadm: No super block found on /dev/sdd (Expected magic a92b4efc, got 00000000)
mdadm: no RAID superblock on /dev/sdd
mdadm: No super block found on /dev/sdc9 (Expected magic a92b4efc, got 00000000)
mdadm: no RAID superblock on /dev/sdc9
mdadm: No super block found on /dev/sdc1 (Expected magic a92b4efc, got 00008101)
mdadm: no RAID superblock on /dev/sdc1
mdadm: No super block found on /dev/sdc (Expected magic a92b4efc, got 00000000)
mdadm: no RAID superblock on /dev/sdc
mdadm: No super block found on /dev/sdb (Expected magic a92b4efc, got 000004ea)
mdadm: no RAID superblock on /dev/sdb
mdadm: No super block found on /dev/sda9 (Expected magic a92b4efc, got 00000000)
mdadm: no RAID superblock on /dev/sda9
mdadm: No super block found on /dev/sda1 (Expected magic a92b4efc, got 00008101)
mdadm: no RAID superblock on /dev/sda1
mdadm: No super block found on /dev/sda (Expected magic a92b4efc, got 00000000)
mdadm: no RAID superblock on /dev/sda
lsblk의 출력에 따르면 올바른 드라이브는 /dev/sda 및 /dev/sdc입니다. 이상한 점은 두 개의 파티션이 표시된다는 것입니다. sda9는 8MB이고 sda1은 드라이브의 나머지 부분입니다. /dev/sdc의 경우에도 마찬가지입니다.