GNU/Linux >> Linux の 問題 >  >> Linux

KVM を使用してオンラインでディスクのサイズを変更できますか?

解決策 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 ドライブ名を取得します。

    1. ここで、実際に qemu モニターを使用してドライブのサイズを変更します:

      virsh qemu-monitor-command test block_resize  drive-virtio-disk0  100G --hmp
      

    filename が .img 拡張子なしで使用され、drive- がディスク エイリアスに追加されていることに注意してください。 100G は、必要なドライブの結果のサイズです

    1. マシンにログインして、実際のサイズが変更されたことを確認します:

      [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 はファイルシステムを縮小することもできます。


    Linux
    1. LinuxDDコマンド-すべてのオプションを使用した15の例

    2. Catでディスクをクローンする際のエラー?

    3. DiskPartでディスクを管理する

    1. 障害のあるRAID6ドライブをmdadmに置き換える

    2. Ansible:ext4 ファイルシステムのサイズを変更することは可能ですか?

    3. ディスク/ディスクコピーを遅くする

    1. LinuxでVDOを使用して大容量ディスクをエミュレートする

    2. Linux –ディスク/ディスクのコピーを遅くしますか?

    3. Urxvtでマウスを使用してタブをタブとして選択することは可能ですか?