仮想マシン
 Computer >> コンピューター >  >> ソフトウェア >> 仮想マシン

Virshを使用してCLIからKVM仮想マシンを管理する

前回の記事では、KVMハイパーバイザーをインストールして仮想マシンを作成する方法について説明しました。 1つの記事では、KVM仮想マシンの管理について詳しく説明することはできませんでした。今日は、virshを使用してコマンドラインから仮想マシンを管理する方法を紹介します。 :VM設定を変更する方法、仮想デバイスを追加する方法、およびLinuxでKVM仮想マシンを管理するために使用するコマンド。

Virsh(仮想シェル)コマンドを使用したKVM仮想マシンの管理

登録されたKVM仮想マシンを表示する方法、それらを開始、停止、または削除する方法を見てみましょう。 Virsh (libvirt APIに基づく)LinuxコンソールでKVM仮想マシンを管理するために使用できます。

# virsh list –実行中のVMのリストを表示します

# virsh list --all –登録されているすべての仮想マシン(シャットダウンされているものを含む)のリストを表示します

Virshを使用してCLIからKVM仮想マシンを管理する

スクリーンショットでわかるように、最初のケースでは、シャットダウンされたVMは表示されませんでした。

# virsh shutdown <vm name> —仮想マシンをシャットダウンします

# virsh start <vm name> —仮想マシンを起動します

# virsh suspend <vm name> —VMを一時停止します

# virsh resume <vm name> —中断された仮想マシンを起動します

# virsh reboot <vm name> —VMを再起動します

# virsh destroy <vm name> —即時の不正なシャットダウンを開始し、VMを停止します(ゲスト仮想マシンが応答しない場合は、このコマンドを使用します)

# virsh undefine <vm name> — VMの登録を解除し、そのストレージボリュームを削除します

# virsh vcpuinfo <vm name> —VMのvCPUに関する情報を表示します

Virshを使用してCLIからKVM仮想マシンを管理する

仮想マシンに関するさまざまな情報を取得するためのその他のコマンドは次のとおりです。

# virsh domid <vm name> —仮想マシンIDを取得します

# virsh domuuid <vm name> —仮想マシンのUUIDを表示する

# virsh dominfo <vm name> —仮想マシンに関する情報を表示します

# virsh domstate <vm name> —VMの状態を表示する

Virshを使用してCLIからKVM仮想マシンを管理する

# virsh dumpxml <vm name> —仮想マシンの構成ファイルをXML形式で一覧表示します

メモリとvCPUをKVM仮想マシンに追加する方法

KVMコンソールでは、次の2つの方法でVMに割り当てられたCPUまたはメモリリソースを追加または削減できます。

  • virshの使用
  • VM構成を介してXML ファイル

仮想マシンが実行されている場合は、シャットダウンします:

# virsh shutdown test-centos

Domain test-centos is being shutdown

次に、virshを使用して仮想CPU(vCPU)の数を6に変更します。

# virsh setvcpus <vm name> <vcpu_count> --config

例:

# virsh setvcpus test-centos 6 --config

コマンドを実行した後、エラーが表示されました:

error: invalid argument: requested vcpus is greater than max allowable vcpus for the persistent domain: 6 > 4

最大数を超えるコア数を設定することはできません。 VM vCPUの最大許容数を増やすには、次のコマンドを実行します。

# virsh setvcpus test-centos 6 --config --maximum

次に、前のコマンドを実行して仮想マシンを起動します。

Virshを使用してCLIからKVM仮想マシンを管理する

VM設定でvCPUの数を確認しましょう:

# virsh dumpxml test-centos

<domain type='kvm'>
<name>test-centos</name>
<uuid>3b223aa2-b322-1ff1-ab23-c1223abc1f01</uuid>
<memory unit='KiB'>2097152</memory>
<currentMemory unit='KiB'>2097152</currentMemory>
<vcpu placement='static'>6</vcpu>

同様に、仮想マシンにRAMを追加できます。

# virsh setmem <vm_name> <memsize> --config

例:

# virsh setmem test-centos 4G --config

同じ理由でエラーが発生しました:

error: invalid argument: cannot set memory higher than max memory.

メモリの最大量を増やしましょう:

# virsh setmaxmem test-centos 6G --config

次に、VMにメモリを追加できます。

変更を加える前に、必ず仮想マシンをシャットダウンしてから起動してください。

また、XML構成ファイルでKVMVMのリソースの量を変更できます。オンラインで編集するか、VM XMLファイルをバックアップして変更し、仮想マシンに適用できます。

オンラインでVMXMLファイルを編集しましょう:

# virsh edit <vm_name>

viで 表示されるエディターで、挿入を押して必要な変更を加えます ボタン。

次のブロックを変更します:

<domain type='kvm'>
<name>test-centos</name>
<uuid>3b223aa2-b322-1ff1-ab23-c1223abc1f01</uuid>
<memory unit='KiB'>6291456</memory>
<currentMemory unit='KiB'>4194304</currentMemory>
<vcpu placement='static'>6</vcpu>
<os>

たとえば、2つのプロセッサコアと1GBのメモリをVMに割り当てましょう。

Virshを使用してCLIからKVM仮想マシンを管理する

メモリサイズはキロバイトで表示されることに注意してください。

変更をファイルに保存し、VMを再起動します:

# virsh reboot <vm_name>

XMLファイルをバックアップする場合も同じことができます:

# virsh dumpxml <vm_name> > /root/test.xml
# vi /root/test.xml

必要な設定を変更し、ファイルを保存して仮想マシンに適用します。

# virsh shutdown test-centos

Domain test-centos is being shutdown

# virsh define /root/test.xml

Domain test-centos defined from /root/test.xml

# virsh start test-centos

Domain test-centos started
オンラインでVM構成ファイルを変更すると、再起動後に割り当てられたリソースがリセットされることがあります。この場合、仮想マシンを停止してから起動します。 既存のKVMVMにディスクを追加する

記事の1つで、KVM仮想マシンのディスクサイズを拡張または縮小する方法について説明しました。ただし、ディスクを追加する方法については説明していません。

まず、仮想マシン用の新しいディスクファイルを作成します。

# qemu-img create -f qcow2 -o size=20G /vz/disk/test.img

qcow2の代わりに、必要なディスクフォーマットを使用できます。ファイルパスも指定します。私のディスクストレージは/vz/disk/にあります。

次に、仮想ディスクデバイスをVMに追加できます。

# virsh attach-disk <vm_name> /vz/disk/test.img vdb --type disk --persistent

VMをシャットダウンして再起動し、取得したものを確認します。

# virsh shutdown test-centos

Domain test-centos is being shutdown

# virsh start test-centos

Domain test-centos started

# virsh dumpxml test-centos

<domain type='kvm' id='14'>
<name>test-centos</name>
<uuid>3b223aa2-b322-1ff1-ab23-c1223abc1f01</uuid>
<memory unit='KiB'>2097152</memory>
<currentMemory unit='KiB'>2097152</currentMemory>
<vcpu placement='static'>6</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
<boot dev='cdrom'/>
<boot dev='hd'/>
<bootmenu enable='yes'/>
</os>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/vz/disk/test.img'/>
<backingStore/>
<target dev='vdb' bus='virtio'/>
<alias name='virtio-disk1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
</disk>

ご覧のとおり、ディスクが追加されました。

KVM仮想マシンに2番目のNICを追加する方法

別のネットワークインターフェイスをVMに追加してみましょう。まず、Linuxホストのネットワークインターフェイスを確認します。

# brctl show

Virshを使用してCLIからKVM仮想マシンを管理する

KVMホスト上に1つのネットワークインターフェイスを備えた1つの仮想マシンがあります。別の仮想ネットワークインターフェイスをbr0に追加したいと思います。次のコマンドを実行します:

# virsh shutdown test-centos
# virsh attach-interface test-centos --type bridge --source br0 --persistent
# virsh start test-centos

別のネットワークインターフェースがVMに表示されていることを確認してください:

Virshを使用してCLIからKVM仮想マシンを管理する

<interface type='bridge'>
<mac address='52:54:00:7e:c1:9f'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='52:54:00:2f:23:79'/>
<source bridge='br0'/>
<model type='rtl8139'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
</interface>

また、XMLファイルを介して仮想マシンのネットワーク設定を直接変更することもできます:

# virsh edit test-centos

最初のネットワークインターフェイスの後に、次の行を追加します。

<interface type='bridge'>
<source bridge='br0'/>
</interface>

ファイルを保存してVMを起動します。 KVMは残りの構成(MACアドレスなど)自体を追加します。

この記事では、LinuxサーバーコンソールからKVM仮想マシンを管理するために必要となる可能性のある主な事項について説明しました。次の記事では、virt-managerを使用して仮想マシンを管理する方法を示します。 GUI。


  1. 仮想マシンでの 3D アクセラレーション - パート 2:VirtualBox &OpenGL - チュートリアル

    これは、仮想マシンでの 3D 仮想化の構成と使用に特化した 3 つの記事の 2 番目です。今日は、Windows または Linux ホストにインストールされた VirtualBox で実行されている Windows 仮想マシンの OpenGL アプリケーション (およびゲーム) の 3D アクセラレーションを有効にする方法を学習します。 最初の記事では、VMware 製品を使用して、Windows で DirectX プログラムの 3D アクセラレーションを有効にする方法について説明しました。ホスト プラットフォームの選択は問題ではありませんでした。 Windows ホストと Linux

  2. 仮想マシンでの 3D アクセラレーション - パート 1:VMware &DirectX - チュートリアル

    仮想化されたオペレーティング システムを既存のホスト上で実行することは、優れたアイデアです。楽しく、クールで、実際のプラットフォームにコミットする前にソフトウェアを試すことができ、通常はあえてしないことを行うことができ、非常に大きな柔軟性が得られ、展開のコストが大幅に削減されます。 しかし、ほとんどの仮想化ソフトウェアに欠けているのは、ゲスト オペレーティング システムの 3D アクセラレーションです。または不足していた...仮想マシンでの 3D アクセラレーションが現実のものになりました。 はじめに この一連の記事では、ゲスト OS で 3D アクセラレーションを有効にする