解決策 1:
これは古い質問であることは承知していますが、Google で解決策を探しているときに見つけたので、他の人の助けになることを願っています。
今日は マシンのハード ドライブのサイズを変更できます。ここで有効な方法を見つけました:
https://bugzilla.redhat.com/show_bug.cgi?id=648594
次の手順を実行する必要があります:
<オール>サイズを変更するハード ドライブのファイル名と KVM デバイス名を見つけます:
[email protected]:/data# virsh dumpxml test | xpath -e /domain/devices/disk
Found 2 nodes in stdin:
-- NODE --
<disk type="file" device="disk">
<driver name="qemu" type="qcow2" />
<source file="/data/test.img" />
<backingStore />
<target dev="vda" bus="virtio" />
<alias name="virtio-disk0" />
<address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0" />
</disk>
-- NODE --
<disk type="file" device="cdrom">
<driver name="qemu" type="raw" />
<source file="/data/images/debian-8.2.0-amd64-netinst.iso" />
<backingStore />
<target dev="hda" bus="ide" />
<readonly />
<alias name="ide0-1-1" />
<address type="drive" controller="0" bus="1" target="0" unit="1" />
</disk>
私たちにとって興味深いのはディスクです。 source
を探す必要があります と alias
ブロック。私の場合、ファイル名は test.img
です エイリアス名は virtio-disk0
です .この名前の前に drive-
を追加する必要があります qemu ドライブ名を取得します。
-
ここで、実際に qemu モニターを使用してドライブのサイズを変更します:
virsh qemu-monitor-command test block_resize drive-virtio-disk0 100G --hmp
filename が .img 拡張子なしで使用され、drive- がディスク エイリアスに追加されていることに注意してください。 100G は、必要なドライブの結果のサイズです
-
マシンにログインして、実際のサイズが変更されたことを確認します:
[email protected]:~# fdisk -l Disk /dev/vda: 100 GiB, 107374182400 bytes, 209715200 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x7e6e7f71 Device Boot Start End Sectors Size Id Type /dev/vda1 * 2048 499711 497664 243M 83 Linux /dev/vda2 501758 167770111 167268354 79.8G 5 Extended /dev/vda5 501760 167770111 167268352 79.8G 8e Linux LVM
それでおしまい!これで、新しいパーティションを作成するか、既存のパーティションのサイズを変更できます。
解決策 2:
私の知る限り、これは不可能です。新しいディスク イメージを追加できます。ご指摘のとおり、新しいイメージを LVM ボリュームに追加することもできますが、アクティブで起動可能なディスク イメージのサイズを変更するには、それをシャットダウンできる必要があります。パーティションをダウンして編集します。
これは、画像を拡大するための良い説明です。シャットダウンが必要ですが、特に --nonsparse イメージ オプションを使用せず、gparted ディスクを iso ファイルに dd し、事前に KVM ゲストにマウントする場合は、おそらく数分のダウンタイムで済むでしょう。これがお役に立てば幸いです。
解決策 3:
マシンをダウンさせずにやりたいのなら、あなたが言ったことをするのに行き詰まっていると思います。
仮想マシンに SAN から直接 LUN を与えて、そこでスペースを管理しないのはなぜですか?とにかくライブ マイグレーションなどの機能を使用したい場合は、これがうまく機能します。
KVM は QEMU に基づいているため、イメージ形式のサポートはすべてそのプロジェクトから提供されます。 Qemu/KVM がサポートするさまざまな形式のサイズを変更する方法は次のとおりです。しかし、ここで確実な回答が得られない場合は、Qemu フォーラムでこの質問をするのがよいでしょう。
理想的ではない可能性がある別のオプションは、ドライブに非常に大きな qcow2 またはその他のスパース イメージ フォーマットを使用することです。したがって、各マシンに OS 用の小さなドライブと、LVM の下のデータ用の大きなスパース イメージを与えることができます。これにより、少なくとも管理しなければならない仮想ドライブ/イメージの数が維持されます。しかし、このシン プロビジョニングは問題になる可能性があります。ただし、これを 1000 台のマシンに対して行うと、誰もが目にする空き容量を占有してしまいます。
XEN には現在、同じ制限があると思います。
解決策 4:
実行中に Linux システムをディスク間で移動することができます。制限は、パーティションを変更できないことです パーティションのあるディスク
これを行うには、ルート ファイルシステムが LVM 上にある必要があります。これは、多くの場合、別のブート ファイルシステムが必要であることを意味します (ただし、これは必須ではありません。作業が簡単になるだけです)。
新しいディスクをプラグインした後、vgextend を使用して LVM に追加し、pvmove を使用して rootfs を新しいディスクに移動し、lvextend と resize2fs を使用して論理ボリュームとファイルシステムをそれぞれ拡張し、vgreduce を使用して古いディスクをボリュームから削除します。グループ。削除したら、古いボリュームを取り外すことができます。
単純なケースでは、起動ファイルシステム用の小さなディスクがあり、まったく触る必要はありません。しかし、単独であれば簡単です アンマウントするには、プラグを抜き、新しいものを差し込んで、システムを停止せずにブート ディスクを再構築します。 (実行中にクラッシュしないでください)
注:resize2fs はファイルシステムを縮小することもできます。