
うまく動作する KVM/Qemu セットアップを取得しました。今度は、新しい VM のプロビジョニングを効率化したいと考えています。
2 つの明らかな方法は、既存のディスクをクローンするか、最初からインストールするか (自動化された preseed/kickstart を使用) です。
私のテストでは、preseed/kickstart を使用したインストールでは、作成から起動まで少なくとも数分かかります (ローカルミラーを使用した場合でも)。結果は素晴らしいのですが、時間がかかりすぎます。
クローン作成は明らかにはるかに高速ですが、ソースよりも大きなディスクが必要になるとすぐに問題が発生します。
さて、これが一度限りのことであれば、手動で起動してディスクを拡張するのは簡単なことでしょう。しかし、私は最初の起動時にこれを自動化したいと考えています。
基本的に実行する必要があるタスクは 3 つあります。
- ディスクを拡張する(fdisk/cfdiskなど)
- ボリュームプールのサイズを変更する(LVMの場合)
- 実際のファイルシステムを拡張する
これをスクリプト化することは可能ですが、自動化したいと考えているのは私だけではないと思うので、ここで取り上げたいと思います。私が見つけた最も近いものはラズパイ設定Raspberry Pi では、これを自動化するツールが提供されています。
もちろん、raspi-config からコードを引用することもできますが、多くの仮定が前提となっているため、より汎用的なツールが利用できるのではないかと期待していました。
答え1
libguestfsタスクは実行できるかもしれないが、その場で実行できない。引用:
Copy olddisk to newdisk, extending one of the guest's partitions to fill the extra 5GB of space.
virt-filesystems --long -h --all -a olddisk
truncate -r olddisk newdisk
truncate -s +5G newdisk
# Note "/dev/sda2" is a partition inside the "olddisk" file.
virt-resize --expand /dev/sda2 olddisk newdisk
これをクローン作成手順として実行すると機能するはずです。