그래서 저는 최근 Virsh KVM에서 사용하는 디스크와 함께 LVM 스토리지 풀에서 여러 LV(논리 볼륨)를 실행하는 서버를 물려받았습니다.
문제는 디스크 중 하나가 최근에 손상되었고 그 이후로 백업 이미지를 사용하여 호스팅해 왔지만 자동 백업이 실행 중이기 때문에 해당 이미지를 LVM 스토리지 풀로 반환하고 그대로 다시 호스팅하고 싶습니다. .
기존 LV의 출력으로 원시 파일을 가져오는 방법을 찾고 싶습니다. 하지만 무엇을 해야할지 모르겠습니다.
LV 저장소 사진과 LV 디스크로 다시 변환하고 싶은 이미지를 첨부했는데 어떻게 해야할지 모르겠습니다.
답변1
"디스크 중 하나가 최근에 손상되었습니다"라고 말하면 VM의 가상 디스크 또는 LV를 호스팅하는 물리적 디스크를 의미합니까? 물리적 디스크가 손상되면 안정적으로 계속 사용할 수 없으므로 교체해야 할 수도 있습니다. 이 작업을 수행했습니까? 이 작업을 수행하려면 아래를 참조하세요.
파일 크기로 볼 때, 귀하의 /backup/rdnsrv2
이미지는 LV 전체의 완전한 이미지인 것 같습니다.
실제 LV에 다시 쓰려면 다음을 수행할 수 있습니다.
dd if=/backup/rdnsrv2 of=/dev/VG-sda/rdnsrv2 bs=1024k
심지어:
cat /backup/rdnsrv2 > /dev/VG-sda/rdnsrv2
VG의 이름은 /dev/sda
물리적 디스크와 연결되어 있음을 나타냅니다. 이는 불필요한 제한 사항입니다. VG와 그 안에 있는 LV도 여러 물리적 디스크에 걸쳐 있을 수 있습니다. LV를 사용하는 동안 LVM 데이터를 한 디스크에서 다른 디스크로 이동할 수도 있습니다. 예를 들어, 현재 디스크를 다른 디스크로 교체하려면 /dev/sda
(이라고 가정 /dev/sdX
) 다음을 수행합니다.
먼저 새 파티션이
/dev/sdX
일치합니다sda
. 이는 분명히 호스트 시스템의 현재 부팅 디스크이므로 세 개의 파티션을 생성해야 합니다.부팅 파일 시스템 초기화 및 내용 복사 - 시스템이 실제로 부팅되거나 커널/부트 로더 업데이트를 설치할 때만 사용되므로 이 작업
/boot/efi
을 수행할 수 있습니다./boot
부팅할 수 없는 디스크에서는 이 단계를 건너뛸 수 있습니다.
mkfs.vfat -F 32 /dev/sdX1
mount /dev/sdX1 /mnt
cp -a /boot/efi/* /mnt/
umount /mnt
umount /boot/efi
mkfs.<appropriate type> /dev/sdX2
mount /dev/sdX2 /mnt
cp -a /boot/* /mnt/
umount /mnt
umount /boot
lsblk -o +uuid /dev/sdX # note the UUIDs of sdX1 and sdX2
<exit /etc/fstab to update the UUIDs of /boot/efi and /boot>
systemctl daemon-reload
mount /boot
mount /boot/efi
<verify that sdX1 is now at /boot/efi and sdX2 at /boot>
grub-install /dev/sdX # ensures GRUB is up to date and EFI boot variable points to the correct disk
- LVM 데이터 마이그레이션(LV가 사용 중인 경우에도):
pvcreate /dev/sdX3
vgextend VG-sda /dev/sdX3
pvmove /dev/sda3
이렇게 하면 모든 LVM 데이터가 동일한 VG의 다른 PV pvmove /dev/sda3
에서 마이그레이션됩니다 (= 다른 대안이 없으므로 안으로). 모든 것을 이동할 수 없으면 가능한 모든 것을 이동한 다음 중지합니다./dev/sda3
/dev/sdX3
- 분해 및 제거
/dev/sda
:
vgreduce VG-sda /dev/sda3
# this will harmlessly fail if there is still LV data on sda3
lsblk /dev/sda
# verify no mounted filesystems and no LVs in use
echo 1 > /sys/block/sda/device/delete
# /dev/sda* device nodes will vanish!
# /dev/sda is now ready for hot-unplugging