3.2. virtctl および libguestfs CLI ツールの使用
virtctl コマンドラインツールを使用して、OpenShift Virtualization リソースを管理できます。
libguestfs コマンドラインツールを使用すると、仮想マシン (VM) のディスクイメージにアクセスして変更できます。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
$ tar -xvf <virtctl-version-distribution.arch>.tar.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
virtctlバイナリーを実行可能にします。chmod +x <path/virtctl-file-name>
$ chmod +x <path/virtctl-file-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow virtctlバイナリーをPATH環境変数内のディレクトリーに移動します。次のコマンドを実行して、パスを確認できます。
echo $PATH
$ echo $PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow KUBECONFIG環境変数を設定します。export KUBECONFIG=/home/<user>/clusters/current/auth/kubeconfig
$ export KUBECONFIG=/home/<user>/clusters/current/auth/kubeconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Windows の場合:
- アーカイブファイルを展開します。
-
展開したフォルダー階層に移動し、
virtctl実行可能ファイルをダブルクリックしてクライアントをインストールします。 virtctlバイナリーをPATH環境変数内のディレクトリーに移動します。次のコマンドを実行して、パスを確認できます。
path
C:\> pathCopy to Clipboard Copied! Toggle word wrap Toggle overflow
macOS の場合:
- アーカイブファイルを展開します。
virtctlバイナリーをPATH環境変数内のディレクトリーに移動します。次のコマンドを実行して、パスを確認できます。
echo $PATH
echo $PATHCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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-managerCLI ツールを使用して次のコマンドを実行し、OpenShift Virtualization リポジトリーを有効にします。subscription-manager repos --enable cnv-4.14-for-rhel-8-x86_64-rpms
# subscription-manager repos --enable cnv-4.14-for-rhel-8-x86_64-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
kubevirt-virtctlパッケージをインストールします。yum install kubevirt-virtctl
# yum install kubevirt-virtctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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"}]'$ oc patch hyperconverged kubevirt-hyperconverged -n openshift-cnv \ --type json -p '[{"op": "add", "path": "/spec/featureGates", \ "value": "HotplugVolumes"}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
メモリーダンプのダウンロード
メモリーダンプをダウンロードするには、virtctl vmexport download コマンドを使用する必要があります。
virtctl vmexport download <vmexport_name> --vm|pvc=<object_name> \ --volume=<volume_name> --output=<output_file>
$ 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>
$ virtctl guestfs -n <namespace> <pvc_name>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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 つだけを受け入れます。