
RAW イメージから vm 101 のディスク イメージをインポートすると、50 GB のディスク イメージが作成されます。
# 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 はディスク サイズを 50 GB として認識し、クラウド ゲスト ツールがインストールされている場合は、使用可能な領域を使い切るためにパーティションとファイル システムのサイズが変更され、時間が経つとその領域が使い果たされる可能性があります。
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 サブボリューム サイズとして認識しているようです)。そのため、より適切なサイズのサブボリュームを作成するような、より良い解決策があれば幸いです。