仮想マシンのディスクサイズの増加は、次の入力で発生しました。qcow2仮想ファイル形式、仮想マシンはlvmとext4を使用し、ルートパーティションは拡張パーティションにあります。 通常、アクションは負荷が最小で、ダウンタイムが神経に大きな負荷をかけない夜間に発生します。 高負荷のプロジェクトで作業しているときでも、アドレナリンは、何かをする前に10回考えるのに十分なほど目立っています。 したがって、プロセスを開始する前に、深夜に「サーバーがダウンしました」などのメッセージで同僚を怖がらせないように、SMS通知システムをオフにすることをお勧めします。
1.仮想マシンをオフにします
virt-managerの赤い電源ボタンをクリックして、GUIでこれを行いました。 virt-managerがない場合、これは仮想マシンのコマンドラインでshutdownコマンドを発行することで実行できます。
2.ハイパーバイザーで、ファイルサイズを増やします (私の場合、200ギガバイト)。
qemu-img resize /path/to/vm-disk.qcow2 +200G
3. virt-managerを使用して、管理マシンを介してディスクを別の(サービス)仮想マシンにしがみつきます。別の方法は、lvmサポートのあるCDからブートすることです。
したがって、LiveCDから起動すると、vdbはvdaに変わります
4. virt-managerを介してサービスマシンを起動します (これにはlvmも必要です)。
5.次に、サービス(またはLVM liveCD)マシンで:
parted /dev/vdb
ディスクサイズを取得します。
(parted) print Model: Virtio Block Device (virtblk) Disk /dev/vdb: 1288GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 256MB 255MB primary ext2 boot 2 257MB 1000GB 1000GB extended 5 257MB 1000GB 1000GB logical lvm
拡張パーティションを増やします。これを行わないと、エラー:重複するパーティションを作成できません。 Ubuntuは別れた-gparted
(parted) resizepart 2 End? [1000GB]? 1288Gb
論理ルートパーティションを増やす
(parted) resizepart 5 End? [1000GB]? 1288Gb (parted) q
ここで、lvmの物理ディスクのサイズを増やす必要があります
pvresize /dev/vdb5
lvmの論理ドライブのサイズを増やします
root@vm-service:/etc# lvextend /dev/vm-db-0-vg/root -l +100%FREE lvextend /dev/vm-db-0-vg/root -l +100%FREE File descriptor 7 (pipe:[7918]) leaked on lvextend invocation. Parent PID 1378: bash ( ) Extending logical volume root to 1.12 TiB Logical volume root successfully resized root@vm-service:/etc# resize2fs /dev/vm-db-0-vg/root
resize2fsの出力は次のようになります。
The filesystem on /dev/vm-db-0-vg/root is now 231278592 blocks long.
次に、ファイルシステムを確認して修正します。
fsck -f /dev/mapper/vm--db--0--vg-root
ディスクの準備ができています
6.サービスマシンをオフにし、 virt-managerでドライブを切断します
GUIを使用して仮想マシンを管理することなく、コマンドラインからvirshを使用してこれを行うことができます。使用方法については、コマンドラインから仮想マシンを管理するを参照してください。
7.サーバーを起動します
lvm2 / ext4でチェックされる最小のダウンタイムでの増加は、ほとんどその場で次のように実行できます。
1.ハイパーバイザーで200ギガバイトのファイルサイズの増加が実行されます。
qemu-img resize /path/to/vm-disk.qcow2 +200G
2.仮想マシンの再起動
3.仮想マシン内
parted /dev/vda
物理ディスクとすべての論理パーティションのサイズを見てみましょう
(parted) print Model: Virtio Block Device (virtblk) Disk /dev/vda: 1288GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 256MB 255MB primary ext2 boot 2 257MB 1000GB 1000GB extended 5 257MB 1000GB 1000GB logical lvm
拡張パーティションを増やす
(parted) resizepart 2 End? [1000GB]? 1288Gb
論理ルートパーティションを増やす
(parted) resizepart 5 End? [1000GB]? 1288Gb (parted) q
ここで、lvmの物理ディスクのサイズを増やす必要があります
pvresize /dev/vda5
lvmの論理ドライブのサイズを増やします
root@vm-db-0:/etc# lvextend /dev/vm-db-0-vg/root -l +100%FREE lvextend /dev/vm-db-0-vg/root -l +100%FREE File descriptor 7 (pipe:[7918]) leaked on lvextend invocation. Parent PID 1378: bash Extending logical volume root to 1.12 TiB Logical volume root successfully resized root@vm-db-0:/etc# resize2fs /dev/vm-db-0-vg/root
この場合、ファイルシステムを確認および修正することはできません。fsck-f / dev / mapper / vm-db-0-vg-rootはファイルシステムを強制終了します
何が起こったのか確認してください:
df -h
トピックの続き