3.2. virtctl および libguestfs CLI ツールの使用
virtctl
コマンドラインツールを使用して、OpenShift Virtualization リソースを管理できます。
libguestfs
コマンドラインツールを使用すると、仮想マシンのディスクイメージにアクセスして変更できます。libguestfs
をデプロイするには、virtctl libguestfs
コマンドを使用します。
3.2.1. virtctl のインストール
Red Hat Enterprise Linux (RHEL) 9、Linux、Windows、および MacOS オペレーティングシステムに virtctl
をインストールするには、virtctl
バイナリーファイルをダウンロードしてインストールします。
RHEL 8 に virtctl
をインストールするには、OpenShift Virtualization リポジトリーを有効にしてから、kubevirt-virtctl
パッケージをインストールします。
3.2.1.1. RHEL 9、Linux、Windows、macOS への virtctl バイナリーのインストール
OpenShift Container Platform Web コンソールからオペレーティングシステムの virtctl
バイナリーをダウンロードし、それをインストールできます。
手順
-
Web コンソールの Virtualization
Overview ページに移動します。 -
Download virtctl リンクをクリックして、オペレーティングシステム用の
virtctl
バイナリーをダウンロードします。 virtctl
をインストールします。RHEL 9 およびその他の Linux オペレーティングシステムの場合:
アーカイブファイルを解凍します。
$ tar -xvf <virtctl-version-distribution.arch>.tar.gz
次のコマンドを実行して、
virtctl
バイナリーを実行可能にします。$ chmod +x <path/virtctl-file-name>
virtctl
バイナリーをPATH 環境変数
にあるディレクトリーに移動します。次のコマンドを実行して、パスを確認できます。
$ echo $PATH
KUBECONFIG
環境変数を設定します。$ export KUBECONFIG=/home/<user>/clusters/current/auth/kubeconfig
Windows の場合:
- アーカイブファイルを展開します。
-
展開したフォルダー階層に移動し、
virtctl
実行可能ファイルをダブルクリックしてクライアントをインストールします。 virtctl
バイナリーをPATH 環境変数
にあるディレクトリーに移動します。次のコマンドを実行して、パスを確認できます。
C:\> path
macOS の場合:
- アーカイブファイルを展開します。
virtctl
バイナリーをPATH 環境変数
にあるディレクトリーに移動します。次のコマンドを実行して、パスを確認できます。
echo $PATH
3.2.1.2. RHEL 8 への virtctl RPM のインストール
OpenShift Virtualization リポジトリーを有効にし、kubevirt-virtctl
パッケージをインストールすることで、Red Hat Enterprise Linux (RHEL) 8 に virtctl
RPM をインストールできます。
前提条件
- クラスター内の各ホストは Red Hat Subscription Manager (RHSM) に登録されており、アクティブな OpenShift Container Platform サブスクリプションを持つ必要があります。
手順
subscription-manager
CLI ツールを使用して次のコマンドを実行し、OpenShift Virtualization リポジトリーを有効にします。# subscription-manager repos --enable cnv-4.14-for-rhel-8-x86_64-rpms
次のコマンドを実行して、
kubevirt-virtctl
パッケージをインストールします。# yum install kubevirt-virtctl
3.2.2. virtctl コマンド
virtctl
クライアントは、OpenShift Virtualization リソースを管理するためのコマンドラインユーティリティーです。
特に指定がない限り、仮想マシンコマンドは仮想マシンインスタンスにも適用されます。
3.2.2.1. virtctl 情報コマンド
virtctl
information コマンドを使用して、virtctl
クライアントに関する情報を表示します。
コマンド | 説明 |
---|---|
|
|
|
|
| 特定のコマンドのオプションのリストを表示します。 |
|
任意の |
3.2.2.2. 仮想マシン情報コマンド
virtctl
を使用すると、仮想マシンおよび仮想マシンインスタンス (VMI) に関する情報を表示できます。
コマンド | 説明 |
---|---|
| ゲストマシンで使用可能なファイルシステムを表示します。 |
| ゲストマシンのオペレーティングシステムに関する情報を表示します。 |
| ゲストマシンにログインしているユーザーを表示します。 |
3.2.2.3. 仮想マシン管理コマンド
virtctl
仮想マシン管理コマンドを使用して、仮想マシンおよび仮想マシンインスタンスを管理および移行します。
コマンド | 説明 |
---|---|
|
|
| 仮想マシンを開始します。 |
| 仮想マシンを一時停止状態で起動します。このオプションを使用すると、VNC コンソールからブートプロセスを中断できます。 |
| 仮想マシンを停止します。 |
| 仮想マシンを強制停止します。このオプションは、データの不整合またはデータ損失を引き起こす可能性があります。 |
| 仮想マシンを一時停止します。マシンの状態がメモリーに保持されます。 |
| 仮想マシンの一時停止を解除します。 |
| 仮想マシンを移行します。 |
| 仮想マシンの移行をキャンセルします。 |
| 仮想マシンを再起動します。 |
|
|
|
|
3.2.2.4. 仮想マシン接続コマンド
virtctl
接続コマンドを使用してポートを公開し、仮想マシンおよび仮想マシンインスタンスに接続します。
コマンド | 説明 |
---|---|
| 仮想マシンのシリアルコンソールに接続します。 |
| 仮想マシンの指定されたポートを転送するサービスを作成し、ノードの指定されたポートでサービスを公開します。
例: |
| マシンから仮想マシンにファイルをコピーします。このコマンドは、SSH キーペアの秘密キーを使用します。仮想マシンは公開キーを使用して設定する必要があります。 |
| 仮想マシンからマシンにファイルをコピーします。このコマンドは、SSH キーペアの秘密キーを使用します。仮想マシンは公開キーを使用して設定する必要があります。 |
| 仮想マシンとの SSH 接続を開きます。このコマンドは、SSH キーペアの秘密キーを使用します。仮想マシンは公開キーを使用して設定する必要があります。 |
| 仮想マシンの VNC コンソールに接続します。
|
| ポート番号を表示し、VNC 接続を介してビューアーを使用して手動で VM に接続します。 |
| ポートが利用可能な場合、その指定されたポートでプロキシーを実行するためにポート番号を指定します。 ポート番号が指定されていない場合、プロキシーはランダムポートで実行されます。 |
3.2.2.5. 仮想マシンエクスポートコマンド
virtctl vmexport
コマンドを使用して、仮想マシン、仮想マシンスナップショット、または永続ボリューム要求 (PVC) からエクスポートされたボリュームを作成、ダウンロード、または削除できます。特定のマニフェストには、OpenShift Virtualization が使用できる形式でディスクイメージをインポートするためのエンドポイントへのアクセスを許可するヘッダーシークレットも含まれています。
コマンド | 説明 |
---|---|
|
仮想マシン、仮想マシンスナップショット、または PVC からボリュームをエクスポートするには、
|
|
|
|
オプション:
|
|
|
| 既存のエクスポートのマニフェストを取得します。マニフェストにはヘッダーシークレットが含まれていません。 |
| 仮想マシンサンプルの仮想マシンエクスポートを作成し、マニフェストを取得します。マニフェストにはヘッダーシークレットが含まれていません。 |
| 仮想マシンスナップショットの例の仮想マシンエクスポートを作成し、マニフェストを取得します。マニフェストにはヘッダーシークレットが含まれていません。 |
| 既存のエクスポートのマニフェストを取得します。マニフェストにはヘッダーシークレットが含まれています。 |
| 既存のエクスポートのマニフェストを json 形式で取得します。マニフェストにはヘッダーシークレットが含まれていません。 |
| 既存のエクスポートのマニフェストを取得します。マニフェストにはヘッダーシークレットが含まれており、指定されたファイルにそれを書き込みます。 |
3.2.2.6. 仮想マシンメモリーダンプコマンド
virtctl memory-dump
コマンドを使用して、PVC に仮想マシンのメモリーダンプを出力できます。既存の PVC を指定するか、--create-claim
フラグを使用して新しい PVC を作成できます。
前提条件
-
PVC ボリュームモードは
FileSystem
である必要があります。 PVC は、メモリーダンプを格納するのに十分な大きさである必要があります。
PVC サイズを計算する式は
(VMMemorySize + 100Mi) * FileSystemOverhead
です。ここで、100Mi
はメモリーダンプのオーバーヘッドです。次のコマンドを実行して、
HyperConverged
カスタムリソースでホットプラグフィーチャーゲートを有効にする必要があります。$ oc patch hyperconverged kubevirt-hyperconverged -n openshift-cnv \ --type json -p '[{"op": "add", "path": "/spec/featureGates", \ "value": "HotplugVolumes"}]'
メモリーダンプのダウンロード
メモリーダンプをダウンロードするには、virtctl vmexport download
コマンドを使用する必要があります。
$ virtctl vmexport download <vmexport_name> --vm|pvc=<object_name> \ --volume=<volume_name> --output=<output_file>
コマンド | 説明 |
---|---|
|
仮想マシンのメモリーダンプを PVC に保存します。メモリーダンプのステータスは、 オプション:
|
|
同じ PVC で このコマンドは、以前のメモリーダンプを上書きします。 |
| メモリーダンプを削除します。 ターゲット PVC を変更する場合は、メモリーダンプを手動で削除する必要があります。
このコマンドは、 |
3.2.2.7. ホットプラグおよびホットアンプラグコマンド
virtctl
を使用して、実行中の仮想マシンおよび仮想マシンインスタンス (VMI) にリソースを追加または削除します。
コマンド | 説明 |
---|---|
| データボリュームまたは永続ボリューム要求 (PVC) をホットプラグします。 オプション:
|
| 仮想ディスクをホットアンプラグします。 |
| Linux ブリッジネットワークインターフェイスをホットプラグします。 |
| Linux ブリッジネットワークインターフェイスをホットアンプラグします。 |
3.2.2.8. イメージアップロードコマンド
virtctl image-upload
コマンドを使用して、VM イメージをデータボリュームにアップロードできます。
コマンド | 説明 |
---|---|
| VM イメージを既存のデータボリュームにアップロードします。 |
| 指定された要求されたサイズの新しいデータボリュームに VM イメージをアップロードします。 |
3.2.3. virtctl を使用した libguestfs のデプロイ
virtctl guestfs
コマンドを使用して、libguestfs-tools
および永続ボリューム要求 (PVC) がアタッチされた対話型コンテナーをデプロイできます。
手順
libguestfs-tools
でコンテナーをデプロイして PVC をマウントし、シェルを割り当てるには、以下のコマンドを実行します。$ virtctl guestfs -n <namespace> <pvc_name> 1
- 1
- PVC 名は必須の引数です。この引数を追加しないと、エラーメッセージが表示されます。
3.2.3.1. Libguestfs および virtctl guestfs コマンド
Libguestfs
ツールは、仮想マシン (VM) のディスクイメージにアクセスして変更するのに役立ちます。libguestfs
ツールを使用して、ゲスト内のファイルの表示および編集、仮想マシンのクローンおよびビルド、およびディスクのフォーマットおよびサイズ変更を実行できます。
virtctl guestfs
コマンドおよびそのサブコマンドを使用して、PVC で仮想マシンディスクを変更して検査し、デバッグすることもできます。使用可能なサブコマンドの完全なリストを表示するには、コマンドラインで virt-
と入力して Tab を押します。以下に例を示します。
コマンド | 説明 |
---|---|
| ターミナルでファイルを対話的に編集します。 |
| ゲストに ssh キーを挿入し、ログインを作成します。 |
| 仮想マシンによって使用されるディスク容量を確認します。 |
| 詳細のリストを含む出力ファイルを作成して、ゲストにインストールされたすべての RPM の詳細リストを参照してください。 |
|
ターミナルで |
| テンプレートとして使用する仮想マシンディスクイメージをシールします。 |
デフォルトでは、virtctl guestfs
は、仮想ディスク管理に必要な項目を含めてセッションを作成します。ただし、動作をカスタマイズできるように、コマンドは複数のフラグオプションもサポートしています。
フラグオプション | 説明 |
---|---|
|
|
| 特定の namespace から PVC を使用します。
|
|
|
|
デフォルトでは、
クラスターに
設定されていない場合、 |
|
|
このコマンドは、PVC が別の Pod によって使用されているかどうかを確認します。使用されている場合には、エラーメッセージが表示されます。ただし、libguestfs-tools
プロセスが開始されると、設定では同じ PVC を使用する新規 Pod を回避できません。同じ PVC にアクセスする仮想マシンを起動する前に、アクティブな virtctl guestfs
Pod がないことを確認する必要があります。
virtctl guestfs
コマンドは、インタラクティブな Pod に割り当てられている PVC 1 つだけを受け入れます。