lvm에 대한 'dd' 원시 드라이브는 비효율적입니다. 더 좋은 방법이 있나요?

lvm에 대한 'dd' 원시 드라이브는 비효율적입니다. 더 좋은 방법이 있나요?

Proxmox를 설치했습니다. vmdk를 lvm으로 가져오려고 하는데 절차는 다음과 같습니다.

$ qemu-img convert -p -f vmdk "IE11 - Win7-disk1.vmdk" -O raw "IE11 - Win7-disk1.raw"

그런 다음:

$ dd if="IE11 - Win7-disk1.raw" bs=1M|pv| dd of=/dev/mapper/pve-vm--103--disk--1

그리고 그것은 잘 작동합니다.

그러나 127GB 가상 드라이브에는 8.8GB의 데이터가 있습니다.

$ qemu-img info "IE11 - Win7-disk1.raw"
image: IE11 - Win7-disk1.raw
file format: raw
virtual size: 127G (136365211648 bytes)
disk size: 8.8G

그리고 원시 드라이브를 "dd"하면 8.8G만 중요한데 127GB가 복사되는 것을 볼 수 있습니다. 그리고 그것은 매우 느립니다.

더 좋은 방법이 있나요?

답변1

더 빠른 방법은 사용하지 않는 것입니다dd

pv < "IE11 - Win7-disk1.raw" > /dev/mapper/pve-vm--103--disk--1

cat직접 사용하는 것이 가장 빠릅니다.

cat "IE11 - Win7-disk1.raw" > /dev/mapper/pve-vm--103--disk--1

호출에서는 dd512바이트 블록을 사용하고 있었으며 이로 인해 KB당 2개의 시스템 호출 읽기 또는 MB당 ~2000이 발생했습니다. 당신 은 cat아마도 MB 당 하나씩 도망 갈 것입니다.

답변2

XenServer에서 Proxmox로 마이그레이션하던 중에 이 솔루션을 알아냈습니다.

아직 없는 경우 먼저 qcow2 파일을 가져옵니다. (소스 파일이 원시 디스크 이미지가 아닌 경우 여기에서 다른 명령을 사용해야 할 수도 있습니다. 중요한 것은 결과적으로 qcow2 파일을 가져오는 것입니다.)

qemu-img convert rawimage.img -O qcow2 thinimage.qcow2

qcow2 이미지를 raw로 변환스파스 파일:

qemu-img convert -p -f qcow2 -O raw -t none -T none thinimage.qcow2 rawsparce.raw

VM의 Thin LV에 스파스 파일을 작성합니다.

dd if=rawsparce.raw of=/dev/mapper/pve-vm--100--disk--1 bs=8M conv=sparse status=progress

답변3

RAW 형식은 사전 할당만 지원하므로 qemu-img.

vmdk이미지 파일을 형식으로 변환해 보세요 qcow2. 사전 할당 없이 작업할 수 있습니다.

관련 정보