
원시 이미지에서 vm 101의 디스크 이미지를 가져오면 50GB 디스크 이미지가 생성됩니다.
# qm importdisk 101 disk.img local-zfs
importing disk '446-jenkinsmite.img' to VM 101 ...
transferred 0.0 B of 50.0 GiB (0.00%)
transferred 512.0 MiB of 50.0 GiB (1.00%)
transferred 1.0 GiB of 50.0 GiB (2.00%)
transferred 1.5 GiB of 50.0 GiB (3.00%)
...
transferred 49.9 GiB of 50.0 GiB (99.76%)
transferred 50.0 GiB of 50.0 GiB (100.00%)
transferred 50.0 GiB of 50.0 GiB (100.00%)
Successfully imported disk as 'unused0:local-zfs:vm-101-disk-0'
명령
qm create 101 --scsi0 local-zfs:0,import-from=/root/disk.img,size=13G
여전히 50GiB 디스크를 생성합니다.
이미지가 (아직) 50GB를 차지하지 않으며 희소 파일처럼 동작해야 한다는 것을 알고 있습니다.
# zfs list rpool/data/vm-101-disk-0
NAME USED AVAIL REFER MOUNTPOINT
rpool/data/vm-101-disk-0 12.2G 2.50T 12.2G -
그러나 VM은 디스크 크기를 50GB로 인식하며 일부 클라우드 게스트 도구가 설치된 경우 파티션과 파일 시스템의 크기를 조정하여 사용 가능한 공간을 모두 사용하게 되며 시간이 지나면 해당 공간을 모두 사용할 수 있습니다.
아직 50GiB보다 큰 디스크 이미지를 가져오려고 시도하지 않았지만 이로 인해 문제가 발생할 수도 있습니다...
이미지를 가져오는 동안 대상 디스크의 크기를 어떻게 설정합니까?
답변1
해결 방법을 꽤 빨리 찾았습니다. 다음과 같이 실행하여 ZFS 하위 볼륨 크기를 설정할 수 있습니다.
zfs set volsize=1GiB rpool/data/vm-101-disk-0
조심하세요!
- 원본 이미지보다 작은 크기를 설정하면 데이터가 손실됩니다!
- 볼륨 이름을 잘못 입력하면 데이터가 손실됩니다!
경고나 확실한지 묻는 메시지가 없으므로 크기를 잘 계산하고 적절한 볼륨의 크기를 조정하는지 확인하는 것이 좋습니다.
또한 proxmox는 여전히 디스크 크기를 50GiB로 표시합니다.
# qm list
VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID
101 VM 101 running 512 50.00 2128896
이로 인해 불쾌한 부작용이 발생하는지 알 수 없으므로(VM이 디스크를 ZFS 하위 볼륨 크기로 인식하는 것 같음) 더 나은 솔루션, 바람직하게는 적절한 크기의 하위 볼륨을 생성하는 솔루션을 갖고 싶습니다.