2개의 동일한 HDD(둘 다 4TB)가 있는 시스템이 있으며 서로 "결합"되어 있습니다.습격 1:
$ sudo mdadm --query --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Oct 8 22:22:53 2017
Raid Level : raid1
Array Size : 3906887488 (3725.90 GiB 4000.65 GB)
Used Dev Size : 3906887488 (3725.90 GiB 4000.65 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Fri Aug 4 19:48:49 2023
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : bitmap
Name : -------:0 (local to host -------)
UUID : -------
Events : 13519
Number Major Minor RaidDevice State
0 8 0 0 active sync /dev/sda
1 8 16 1 active sync /dev/sdb
그 위에 볼륨 그룹도 있으며 @roaima의 답변을 기반으로 이제 구성을 식별할 수 있습니다.
sda 8:0 0 3.7T 0 disk
└─md0 9:0 0 3.7T 0 raid1
└─md0p1 259:1 0 3.7T 0 part
└─lukslvm-XXXXXXXXX 253:3 0 3.7T 0 crypt
├─vg--XXXXXXXXX-AAAA 253:4 0 500G 0 lvm /media/AAAA
└─vg--XXXXXXXXX-BBBB 253:5 0 3.2T 0 lvm /media/BBBB
sdb 8:16 0 3.7T 0 disk
└─md0 9:0 0 3.7T 0 raid1
└─md0p1 259:1 0 3.7T 0 part
└─lukslvm-XXXXXXXXX 253:3 0 3.7T 0 crypt
├─vg--XXXXXXXXX-AAAA 253:4 0 500G 0 lvm /media/AAAA
└─vg--XXXXXXXXX-BBBB 253:5 0 3.2T 0 lvm /media/BBBB
이 구성을 가정하면 이러한 디스크를 더 큰 디스크(예: 8TB)로 교체하려면 어떻게 해야 합니까?아무것도 잃지 마세요(참고: 마더보드에는 더 이상 물리적 커넥터가 없습니다)?
4TB 하나를 8TB로 교체한 다음 두 하드 드라이브의 raid1 상태가 변경될 때까지 기다린 다음 active sync
다른 4TB를 8TB로 교체하고 다시 기다리십시오 active sync
. 그런 다음 분명히 VG를 확장하고 FS를 확장하시겠습니까?
답변1
파일 시스템의 맨 위에서 시작하여 논리적으로 아래로 작업하는 것이 더 쉽습니다. (그러나 이는 실제로 패스의 출력이 위쪽으로 작동한다는 것을 의미합니다 lsblk
.)
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 29.7G 0 disk
├─mmcblk0p1 179:1 0 63M 0 part /boot
├─mmcblk0p2 179:2 0 8G 0 part /
└─mmcblk0p3 179:3 0 21.7G 0 part
├─pi_p3-raid1a 254:2 0 1G 0 lvm
│ └─md1 9:1 0 1022M 0 raid1
│ └─crypt_md1 254:4 0 1006M 0 crypt
│ └─vgtest-lvtest 254:5 0 100M 0 lvm /mnt/dsk
└─pi_p3-raid1b 254:3 0 1G 0 lvm
└─md1 9:1 0 1022M 0 raid1
└─crypt_md1 254:4 0 1006M 0 crypt
└─vgtest-lvtest 254:5 0 100M 0 lvm /mnt/dsk
귀하의 경우 루트 파일 시스템에서 시작하고 싶을 수도 있습니다. 내 경우에는 SD 카드 파티션이었는데 mmcblkp02
, 그림에는 별로 도움이 되지 않았기 때문에 여기에 마운트된 ext4 파일 시스템으로 시작하는 레이어를 만들었습니다 /mnt/dsk
. 이것을 따라해보자.
/mnt/dsk
ext4
다음으로 표시된 파일 시스템 입니다 .ext4test
findmnt /mnt/dsk TARGET SOURCE FSTYPE OPTIONS /mnt/dsk /dev/mapper/vgtest-lvtest ext4 rw,relatime,data=ordered
트리 위로 이동하면 장치에서 생성된 LVM 구성 요소임을 알 수 있습니다
crypt_md1
. 실제로 파일 시스템 LV 및 VG의 이름 인lvs
LV 및 VG 이름을 사용하고 확인할 수 있습니다 .pvs
lvtest
vgtest
lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lvtest vgtest -wi-ao---- 100.00m pvs PV VG Fmt Attr PSize PFree /dev/mapper/crypt_md1 vgtest lvm2 a-- 1004.00m 904.00m
crypt_md1
트리를 한 단계 위로 이동하면 이것이 빌드된crypto_LUKS
것임을 알 수 있습니다.md1
한 단계 위로 올라가면 이것이
md1
이라는 것을 확인할 수 있습니다linux_raid_member
.cat /proc/mdstat
cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] [raid1] md1 : active raid1 dm-3[1] dm-2[0] 1046528 blocks super 1.2 [2/2] [UU] unused devices: <none>
혼란스러울 수도 있지만 이제 연기와 미러를 볼 수 있습니다. 저는
md1
다른 기존 LVM VG에서 두 개의 RAID 미러 절반을 만들었습니다pi_p3
. 이는 사실입니다. 이 예에서는 RAID1 미러를 구축 하는 데 사용한 두 개의 구성 요소raid1a
를 만들었습니다 . 즉, "물리적 → VG → 2x LV → 2x RAID → MD(RAID1) → LUKS → VG → LV → EXT4"가 됩니다! 다음은 제가 빌드하는 데 사용한 전체 명령 세트입니다. 이미 LVM VG가 있다는 점을 명심하세요 .raid1b
mdadm --create
/dev/pi_p3
lvcreate --size 1G --name raid1a /dev/pi_p3 lvcreate --size 1G --name raid1b /dev/pi_p3 mdadm --create /dev/md1 --level 1 --raid-devices 2 /dev/pi_p3/raid1{a,b} cryptsetup -c aes-xts-plain -s 512 -y luksFormat /dev/md1 # "test" cryptsetup luksOpen /dev/md1 crypt_md1 pvcreate /dev/mapper/crypt_md1 vgcreate vgtest /dev/mapper/crypt_md1 lvcreate --size 100M --name lvtest vgtest mkfs -L ext4test -t ext4 /dev/vgtest/lvtest mount /dev/vgtest/lvtest /mnt/dsk
귀하의 경우 LVM 구성 요소 대신 두 개의 물리적 장치가 표시되므로 raid1a
여기서 raid1b
분석을 중단하겠습니다.
구조가 예상한 것과 다른 경우, 즉 "RAID -> LUKS -> LVM -> FS 구성"그렇다면 이제 이 방법을 사용하여 실제 구조를 식별할 수 있을 것입니다.
이제 질문의 두 번째 부분인 더 큰 디스크로 구조를 확장하는 방법에 대해 설명합니다. 1GB raid1a
및 LV를 2GB로 대체하여 raid1b
이 예제를 구현 하겠습니다 raid1c
.raid1d
# Synthesise two "larger disks" from the VG
lvcreate --size 2G --name raid1c /dev/pi_p3
lvcreate --size 2G --name raid1d /dev/pi_p3
# Swap out the first disk
mdadm --manage /dev/md1 --add /dev/pi_p3/raid1c
mdadm --manage /dev/md1 --set-faulty /dev/pi_p3/raid1a
mdadm --manage /dev/md1 --remove /dev/pi_p3/raid1a
# Wait for synchronisation to complete!
cat /proc/mdstat
동기화가 완료될 때까지 기다리세요. 당신이 당신을 기다리지 않으면~ 할 것이다다음 단계에서는 전체 파일 시스템과 해당 데이터가 손실됩니다.
# Swap out the second disk
mdadm --manage /dev/md1 --add /dev/pi_p3/raid1d
mdadm --manage /dev/md1 --set-faulty /dev/pi_p3/raid1b
mdadm --manage /dev/md1 --remove /dev/pi_p3/raid1b
# Grow the new RAID1 array
mdadm --grow /dev/md1 --size max
# Resize the encrypted layer
cryptsetup resize /dev/mapper/crypt_md1
# Resize the PV for the LVM VG
pvresize /dev/mapper/crypt_md1
이 시점에서 PV 크기가 성공적으로 조정되었다는 확인 메시지가 표시됩니다.
Physical volume "/dev/mapper/crypt_md1" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
이제 새 크기 는 2GB(새 "디스크"의 크기)로 표시됩니다 pvs /dev/mapper/crypt_md1
.vgs vgtest
PV VG Fmt Attr PSize PFree
/dev/mapper/crypt_md1 vgtest lvm2 a-- 1.98g 1.88g
VG #PV #LV #SN Attr VSize VFree
vgtest 1 1 0 wz--n- 1.98g 1.88g
마지막으로 시스템 전원을 끄거나 재부팅하기 전에 두 번째 RAID1 동기화가 완료될 때까지 기다려야 합니다.
cat /proc/mdstat