레이드1 있어요
/dev/sda
/dev/sdb
~처럼md0
그럼 이제 Raid5를 확장하고 싶습니다
그래서 내 생각은
sudo mdadm --add /dev/md0 /dev/sdd
sudo mdadm --grow /dev/md0 --level=raid5 --raid-devices=3
이 과정에서.
하드 드라이브의 내용이 삭제됩니까? ?
답변1
예, 이는 전적으로 가능하며 라이브 시스템에서도 수행할 수 있습니다.
중요한 팁: 변환 중에 디스크 장애가 발생하면 데이터가 유지되지 않으므로 백업해 두십시오.
다음은 일부 파일을 사용한 데모입니다.
# Two "disks", probably called /dev/loop0 ($a) and /dev/loop1 ($b)
dd bs=1M count=100 </dev/zero >/tmp/img.a
a=$(losetup --show --find /tmp/img.a)
dd bs=1M count=100 </dev/zero >/tmp/img.b
b=$(losetup --show --find /tmp/img.b)
# Create RAID 1
mdadm --create /dev/md0 --metadata=1.2 --level=raid1 --raid-devices=2 $a $b
# See what is going on
cat /proc/mdstat
# Add a filesystem and mount it
mkfs -t ext4 -L md /dev/md0
mkdir -p /mnt/dsk
mount /dev/md0 /mnt/dsk
이제 디스크 어레이를 추가하겠습니다.
# Another disk, probably /dev/loop2 ($d)
dd bs=1M count=100 </dev/zero >/tmp/img.d
d=$(losetup --show --find /tmp/img.d)
# Add it as a spare
mdadm --add /dev/md0 $d
# Convert from RAID 1 to RAID 5
mdadm --grow /dev/md0 --level=raid5 --raid-devices=3
# See what is going on
cat /proc/mdstat
프로세스가 실제로 안전하다는 것을 스스로 확인한 후에는 실제 디스크를 사용하여 프로세스를 반복할 수 있습니다. 백업이 있나요?
a=/dev/sda b=/dev/sdb` d=/dev/sdd
답변2
RAID1을 RAID5로 확장하는 것은 잘 작동합니다(단, 만일의 경우를 대비해 백업이 있어야 합니다.)
sudo mdadm --add /dev/md0 /dev/sdd
/dev/sdd
이 명령은 RAID1에 예비 드라이브를 추가합니다 ./dev/md0
메타데이터 외에는 아무것도 기록되지 않습니다 mdadm
(다른 드라이브 중 하나에 오류가 발생하지 않는 한 예비 드라이브는 중복성을 복원하는 데 사용됩니다).
sudo mdadm --grow /dev/md0 --level=raid5 --raid-devices=3
이 명령은 2디스크 RAID1을 3디스크 RAID5로 확장합니다. 이 프로세스는 모든 데이터를 재구성/재배치합니다(이전 2개 드라이브 미러에서 3개 드라이브 RAID5 레이아웃으로). 이 과정에서 이전 콘텐츠는 /dev/sdd
새 콘텐츠로 덮어쓰여집니다 /dev/md0
. 성장이 완료된 후 용량을 늘리지 않는 한 장치의 데이터는 /dev/md0
전혀 변경되지 않습니다. 증가된 용량을 활용하려면 파일 시스템을 확장해야 합니다.
이 두 명령을 하나로 결합할 수 있습니다.
mdadm --grow /dev/md0 --level=5 --raid-devices=3 --add /dev/sdd
일반적으로 말하면 --grow
안전해야 하며 데이터를 보관해야 합니다. mdadm
위험한 작업(예: 축소)을 수행하려고 하거나 추가 단계(예: 백업 파일 제공)가 필요한 경우 경고를 받아야 합니다.
예 --create
를 들어 mkfs
드라이브가 너무 많 --fail
거나 구성원 드라이브가 복잡해지면 데이터가 손실됩니다.
/dev/sdd
RAID를 확장하는 데 사용하므로 /dev/sdd
현재 콘텐츠로 덮어쓰게 되므로 무엇이든 잃게 됩니다 /dev/md0
.
데이터가 손실된 경우 --grow
이를 사용할 필요가 없으며 --create
먼저 새 데이터가 필요합니다.