仮想シェル(virsh)は、仮想化プラットフォームを管理するためのツールキットおよびAPIであるlibvirtによって制御される仮想マシン(VM)を管理するための柔軟なコマンドラインユーティリティです。これは、Linuxカーネルベースの仮想マシン(KVM)のデフォルトの管理ツールであり、Xen、VMware、およびその他のプラットフォームもサポートしています。
virsh
コマンドを使用すると、VMをインタラクティブにまたはバッチで管理できます。また、LinuxシェルからVMを制御するのにも役立ち、スクリプトや自動化ツールと統合できます。 virsh
を使用する 、セキュアシェル(SSH)を使用してサーバーにすばやく接続し、グラフィカルインターフェースにアクセスせずにVMで操作を実行できます。
virsh
を実行するとき オプションなしで、ローカルハイパーバイザーに接続しようとします。 Linuxの場合、デフォルトの接続は、ローカルKVMマシンを管理するためのローカルQEMUシステムを指します。オプション-c
を使用して、リモートハイパーバイザーに接続することもできます。 または--connect
libvirtの構文を使用して、リモートハイパーバイザーのURI(Uniform Resource Identifier)を指定します。詳細については、libvirtのURI仕様を参照してください。
デフォルトでは、 virsh
仮想化プラットフォームまたはVMのあらゆる側面を管理できるようにする数百のサブコマンドとオプションを提供します。この記事では、8つの virsh
を共有します 私が最も頻繁に使用するサブコマンド。日常業務の性質上、これらのサブコマンドのほとんどはVM(またはドメイン)に直接適用されます。 libvirtの用語では)ただし、 virsh
ストレージプールやネットワークの追加など、プラットフォーム自体を管理するコマンドもあります。
virshリスト
virshリスト
実行中のすべてのドメイン(VM)を一覧表示する基本的なコマンドです。 -all
を追加して、構成済みのすべてのVMを一覧表示することもできます。 オプション。これは、後続のコマンドで使用できる、ターゲットハイパーバイザーで構成されているすべてのVMを確認する場合に役立ちます。たとえば、ローカルLinux KVMハイパーバイザーで使用可能なすべての仮想マシンを一覧表示するには:
# virsh list --all
Id Name State
------------------------------
3 rh8-vm01 running
- crc shut off
- rh8-tower01 shut off
IDまたはドメイン名を後続のコマンドの入力として使用できます。
virsh start / restart / shutdown
それらは異なりますが、 start
をグループ化しました 、再起動コード> 、および
shutdown
サブコマンドは、VMの電源状態を管理するのと同じ基本操作を実行するためです。
VMをシャットダウンするにはrh8-vm01
( list
から 上記のコマンド):
# virsh shutdown rh8-vm01
Domain 'rh8-vm01' is being shutdown
# virsh list
Id Name State
--------------------
start
を使用して再起動できます サブコマンド:
# virsh start rh8-vm01
Domain 'rh8-vm01' started
# virsh list
Id Name State
--------------------------
4 rh8-vm01 running
これらのサブコマンドを使用すると、重いグラフィカルアプリケーションを起動しなくても、VMをすばやく起動、再起動、またはシャットダウンできます。
[Bashスクリプトを使用してsshd_configを編集する方法を学ぶことにも興味があるかもしれません。 ]
virsh dumpxml
dumpxml
サブコマンドは、指定されたドメインのXML構成をダンプします。これを使用して、構成をファイルにエクスポートして既存のVMに変更を加えたり、テンプレートとして使用して、同様の構成で別のVMを作成したりできます。デフォルトでは、構成を STDOUTにダンプします 、シェルリダイレクト演算子>
を使用してファイルにリダイレクトします ファイルに保存するには:
#virshをdumpxml RH8-VM01 <ドメインタイプ='KVM' ID ='4'> <名前> RH8-VM01 名前>
# virsh dumpxml rh8-vm01
<domain type='kvm' id='4'>
<name>rh8-vm01</name>
<uuid>53b92c48-fce3-4464-95bf-6f442e988c94</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://redhat.com/rhel/8.4"/>
</libosinfo:libosinfo>
</metadata>
<memory unit='KiB'>4194304</memory>
<currentMemory unit='KiB'>4194304</currentMemory>
<vcpu placement='static'>2</vcpu>
... TRUNCATED OUTPUT ...
</domain>
スクリプトおよび自動化ツールでXML出力を使用して、VMの作成を自動化できます。
virsh domifaddr
domifaddr
サブコマンドは、特定のVMのすべての仮想インターフェイスに設定されているすべてのIPアドレスを一覧表示します。割り当てられたIPアドレスを確認してVMに接続できるため、VMが動的IPアドレスを使用する場合に便利です。
# virsh domifaddr rh8-vm01
Name MAC address Protocol Address
-------------------------------------------------------------------------------
vnet6 52:54:00:c8:17:6e ipv4 192.168.122.19/24
vnet7 52:54:00:04:4d:ac ipv4 192.168.64.210/24
デフォルトでは、DHCPサーバーによってリースされたIPアドレスが一覧表示されます。ハイパーバイザーがこの情報を提供しない場合は、オプション-source agent
を使用することもできます 仮想化エージェントを介してゲストオペレーティングシステム(OS)に直接クエリを実行します。これには、ゲストOSに仮想化エージェントがインストールされている必要があります。
virsh edit
編集コード> サブコマンドは、デフォルトの $ EDITOR
で現在のXML構成を開きます 、VMでライブ変更を行うことができます:
# virsh edit rh8-vm01
<domain type='kvm'>
<name>rh8-vm01</name>
<uuid>53b92c48-fce3-4464-95bf-6f442e988c94</uuid>
<metadata>
... TRUNCATED OUTPUT ...
</domain>
変更を加えたら、ファイルを保存して適用します。一部の変更は、再起動後にのみ有効になる場合があります。
virsh net-edit
net-edit
サブコマンドを使用すると、仮想ネットワーク構成にライブ変更を加えることができます。標準のlibvirt
を使用して特定のMACアドレスをIPアドレスに関連付けるなど、オプションを仮想ネットワークに変更する場合に役立ちます。 DHCP構成。これは、私が定期的に使用するより高度なコマンドです。 edit
のように サブコマンドでは、デフォルトの $ EDITOR
で構成ファイルを開きます 変更を加えるため。ファイルを保存して変更を適用します:
# virsh net-edit --network hostonly
<network>
<name>hostonly</name>
<uuid>eddd03ff-5825-42ef-bc99-968bddf773c2</uuid>
<bridge name='virbr1' stp='on' delay='0'/>
<mac address='52:54:00:67:75:b1'/>
<domain name='hostonly'/>
<ip address='192.168.64.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.64.128' end='192.168.64.254'/>
</dhcp>
</ip>
</network>
net-
で始まる他のネットワーク関連のサブコマンドを使用することもできます ハイパーバイザー仮想ネットワークのさまざまな側面を管理します。
[今すぐダウンロード:Bashスクリプトのシステム管理者ガイド。 ]
次は何ですか?
virshは、Linux仮想化およびその他のプラットフォームのあらゆる側面を管理できる強力で柔軟なユーティリティです。詳細については、マニュアルページを参照するか、オンラインドキュメントを確認してください。
Linux