7.15. 仮想マシンディスク
7.15.1. 仮想マシンディスクのホットプラグ
仮想マシン (VM) または仮想マシンインスタンス (VMI) を停止することなく、仮想ディスクを追加または削除できます。
データボリュームおよび永続ボリューム要求 (PVC) のみをホットプラグおよびホットアンプラグできます。コンテナーディスクのホットプラグおよびホットアンプラグはできません。
ホットプラグされたディスクは、再起動後も仮想マシンに接続されたままになります。仮想マシンからディスクを削除するには、ディスクを切断する必要があります。
ホットプラグされたディスクを永続的に作成して、仮想マシンに永続的にマウントできます。
各仮想マシンには virtio-scsi
コントローラーがあり、ホットプラグされたディスクが SCSI
バスを使用できるようになります。virtio-scsi
コントローラーは、パフォーマンス上の利点を維持しながら、virtio
の制限を克服します。スケーラビリティーが高く、400 万台を超えるディスクのホットプラグをサポートします。
通常の virtio
はスケーラブルではないため、ホットプラグされたディスクには使用できません。各 virtio
ディスクは、仮想マシン内の限られた PCI Express (PCIe) スロットの 1 つを使用します。PCIe スロットは他のデバイスでも使用されるため、事前に予約する必要があります。したがって、スロットはオンデマンドで利用できない場合があります。
7.15.1.1. Web コンソールを使用したディスクのホットプラグとホットアンプラグ
OpenShift Container Platform Web コンソールを使用して、仮想マシンの実行中にディスクを仮想マシンに接続することで、ディスクをホットプラグできます。
ホットプラグされたディスクは、プラグを抜くまで仮想マシンに接続されたままになります。
ホットプラグされたディスクを永続的に作成して、仮想マシンに永続的にマウントできます。
前提条件
- ホットプラグに使用できるデータボリュームまたは永続ボリュームクレーム (PVC) が必要です。
手順
-
Web コンソールで Virtualization
VirtualMachines に移動します。 - 実行中の仮想マシンを選択して、その詳細を表示します。
-
VirtualMachine details ページで、Configuration
Disks をクリックします。 ホットプラグされたディスクを追加します。
- ディスクの追加をクリックします。
- Add disk (hot plugged) ウィンドウで、Source リストからディスクを選択し、Save をクリックします。
オプション: ホットプラグされたディスクを取り外します。
- ディスクの横にあるオプションメニュー をクリックし、Detach を選択します。
- Detach をクリックします。
オプション: ホットプラグされたディスクを永続的にします。
- ディスクの横にあるオプションメニュー をクリックし、Make persistent を選択します。
- 仮想マシンを再起動して変更を適用します。
7.15.1.2. コマンドラインを使用したディスクのホットプラグとホットアンプラグ
コマンドラインを使用して、仮想マシンの実行中にディスクのホットプラグおよびホットアンプラグを行うことができます。
ホットプラグされたディスクを永続的に作成して、仮想マシンに永続的にマウントできます。
前提条件
- ホットプラグ用に 1 つ以上のデータボリュームまたは永続ボリューム要求 (PVC) が利用可能である必要があります。
手順
次のコマンドを実行して、ディスクをホットプラグします。
$ virtctl addvolume <virtual-machine|virtual-machine-instance> \ --volume-name=<datavolume|PVC> \ [--persist] [--serial=<label-name>]
-
オプションの
--persist
フラグを使用して、ホットプラグされたディスクを、永続的にマウントされた仮想ディスクとして仮想マシン仕様に追加します。仮想ディスクを永続的にマウントするために、仮想マシンを停止、再開または再起動します。--persist
フラグを指定しても、仮想ディスクをホットプラグしたり、ホットアンプラグしたりできなくなります。--persist
フラグは仮想マシンに適用され、仮想マシンインスタンスには適用されません。 -
オプションの
--serial
フラグを使用すると、選択した英数字の文字列ラベルを追加できます。これは、ゲスト仮想マシンでホットプラグされたディスクを特定するのに役立ちます。このオプションを指定しない場合、ラベルはデフォルトでホットプラグされたデータボリュームまたは PVC の名前に設定されます。
-
オプションの
次のコマンドを実行して、ディスクをホットアンプラグします。
$ virtctl removevolume <virtual-machine|virtual-machine-instance> \ --volume-name=<datavolume|PVC>
7.15.2. 仮想マシンディスクの拡張
ディスクの永続ボリューム要求 (PVC) を拡張することで、仮想マシンディスクのサイズを増やすことができます。
ストレージプロバイダーがボリューム拡張をサポートしていない場合は、空のデータボリュームを追加することで、仮想マシンの利用可能な仮想ストレージを拡張できます。
仮想マシンディスクのサイズを減らすことはできません。
7.15.2.1. 仮想マシンディスク PVC の拡張
ディスクの永続ボリューム要求 (PVC) を拡張することで、仮想マシンディスクのサイズを増やすことができます。
PVC がファイルシステムボリュームモードを使用する場合、ディスクイメージファイルは、ファイルシステムのオーバーヘッド用にスペースを確保しながら、利用可能なサイズまで拡張されます。
手順
拡張する必要のある仮想マシンディスクの
PersistentVolumeClaim
マニフェストを編集します。$ oc edit pvc <pvc_name>
ディスクサイズを更新します。
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: vm-disk-expand spec: accessModes: - ReadWriteMany resources: requests: storage: 3Gi 1 # ...
- 1
- 新しいディスクサイズを指定します。
7.15.2.2. 空のデータボリュームを追加して利用可能な仮想ストレージを拡張する
空のデータボリュームを追加することで、仮想マシンの利用可能なストレージを拡張できます。
前提条件
- 少なくとも 1 つの永続ボリュームが必要です。
手順
次の例に示すように、
DataVolume
マニフェストを作成します。DataVolume
マニフェストの例apiVersion: cdi.kubevirt.io/v1beta1 kind: DataVolume metadata: name: blank-image-datavolume spec: source: blank: {} storage: resources: requests: storage: <2Gi> 1 storageClassName: "<storage_class>" 2
以下のコマンドを実行してデータボリュームを作成します。
$ oc create -f <blank-image-datavolume>.yaml
データボリューム用の関連情報