저는 작은 수준의 데이터 보안을 위해 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