VMディスクの自動サイズ変更

VMディスクの自動サイズ変更

うまく動作する 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

これをクローン作成手順として実行すると機能するはずです。

答え2

growrootクラウド初期化これを行うことができます。これがどのように機能するかの完全な例については、私の実装をご覧ください。vmprep

関連情報