mdadm과 데이터가 있는 디스크 1개를 사용하여 RAID 5 구축

mdadm과 데이터가 있는 디스크 1개를 사용하여 RAID 5 구축

저는 작은 수준의 데이터 보안을 위해 MDADM을 사용하여 raid-5를 수행하려는 3개의 동일한 드라이브(4TB Ironwolf)를 가지고 있습니다. 이제 문제는 드라이브 1개가 백업할 수 없는 데이터로 가득 차 있다는 것입니다.

예, 빌드와 드라이브가 실패하면 모든 데이터가 사라질 것이라는 것을 알고 있지만 여전히 최선을 다하고 싶습니다.

이해하기 쉽도록 sda1과 sdb1(비어 있음), sdc1(데이터 포함)이라고 부르겠습니다.

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=2 /dev/sda1 /dev/sdb1;
rsync -av --exclude-from=excludefile /dev/sdc1 /dev/md0;    
mkfs.ext4 /dev/sdc1;    
mdadm --add /dev/md0 /dev/sdc1;    
mdadm --grow --raid-devices=3 --spare-devices=1 /dev/md0;

이것이 올바른 접근 방식인지 확인할 수 있는 사람이 있습니까?

답변1

사용 가능한 디스크 공간이 적은 경우 루프백 장치를 사용하여 이러한 명령을 테스트할 수 있습니다.

루프백 장치 a, b, c를 생성합니다.

dd if=/dev/zero bs=1M count=50 > diska.img    # Plan for RAID5
dd if=/dev/zero bs=1M count=50 > diskb.img    # Likewise
dd if=/dev/zero bs=1M count=50 > diskc.img    # Original data will be here

la=$(losetup --find --show diska.img); echo $la
lb=$(losetup --find --show diskb.img); echo $lb
lc=$(losetup --find --show diskc.img); echo $lc

"중요한 원시 데이터"를 생성하여 세 번째 디스크에 넣습니다( $lc).

mkfs -t ext4 -L data "$lc"
mount "$lc" /mnt
cp -a /usr/share/man/man1 /mnt
umount /mnt

이제 귀하의 아이디어를 바탕으로 RAID5 어레이를 만들어 보십시오. 이 경우 두 개의 빈 디스크로 $la및 가 있으며 중요한 세 번째 디스크를 나타냅니다.$lb$lc

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=2 "$la" "$lb"

성공합니다. 두 개의 멤버로 구성된 RAID5 어레이가 생성됩니다. 개인적으로 저는 3개를 지정하겠습니다. 세 번째 요소는 word 입니다 missing. 이렇게 하면 내 의도가 더 명확해집니다.

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 "$la" "$lb" missing

그러나 다음 명령이 올바르지 않습니다. rsync장치 간이 아닌 파일 시스템 간 복사하므로 먼저 새 파일 시스템을 생성하고 두 가지를 모두 마운트해야 합니다.

mkfs -t ext4 -L data /dev/md0
mkdir -p /mnt/src /mnt/dst
mount "$lc" /mnt/src             # Here you could use mount /dev/sdc1 /mnt/src
mount /dev/md0 /mnt/dst
rsync -av --exclude-from=excludefile /mnt/src/ /mnt/dst

rsync --dry-run실행하기 전에 무엇을 할 것인지 확인 해야 합니다 .

umount /mnt/src
umount /mnt/dst

이 시점에서는 기존 디스크를 어레이에 추가하므로 원본 디스크의 데이터를 새(다운그레이드된) RAID5 어레이에 성공적으로 복사했는지 확실히 확인해야 합니다.

원래 두 개의 장치만 지정한 경우 세 번째 장치를 포함하도록 어레이를 확장해야 합니다.

mdadm --grow /dev/md0 --raid-devices=3 --add "$lc"    # /dev/sd1c when you do this for real

반면, 내 조언을 받아들여 세 개의 장치(그 중 하나는 missing)로 시작하는 경우 장치만 추가하면 됩니다.

mdadm --manage /dev/md0 --add "$lc"

마지막으로 파일 시스템의 원하는 부분에 RAID 5 어레이를 다시 마운트할 수 있습니다. cat /proc/mdstat재동기화 진행 상황을 보는 데 사용됩니다 .

테스트벤치의 경우에만 어레이를 중지하고 구성 요소를 제거하면 됩니다.

mdadm --stop /dev/md0
losetup -d "$la"
losetup -d "$lb"
losetup -d "$lc"
rm diska.img diskb.img diskc.img

관련 정보