9.16.3. 仮想マシン用の共有ボリュームを設定する
複数の仮想マシンが同じストレージボリュームにアクセスできるように共有ディスクを設定することで、Windows Failover Clustering などの高可用性シナリオを実現できます。共有ディスクのボリュームは、ブロックモードである必要があります。
ディスク共有を設定するには、ストレージを次のいずれかのタイプとして公開します。
- 通常の仮想マシンディスク
- 共有ボリュームの Windows Failover Clustering に必要な、SCSI 接続と RAW デバイスマッピングを備えた論理ユニット番号 (LUN) ディスク
ディスク共有を設定するだけでなく、通常の仮想マシンディスクまたは LUN ディスクごとにエラーポリシーを設定することもできます。エラーポリシーは、ディスクの読み取りまたは書き込み時に入出力エラーが発生した場合のハイパーバイザーの動作を制御します。
9.16.3.1. 仮想マシンディスクを使用してディスク共有を設定する リンクのコピーリンクがクリップボードにコピーされました!
複数の仮想マシン (VM) がストレージを共有できるようにブロックボリュームを設定できます。
ゲストオペレーティングシステムで実行されているアプリケーションに応じて、仮想マシンに設定する必要があるストレージオプションが決まります。disk タイプのディスクは、ボリュームを通常のディスクとして仮想マシンに公開します。
ディスクごとにエラーポリシーを設定できます。エラーポリシーは、ディスクの書き込み中または読み取り中に入出力エラーが発生した場合のハイパーバイザーの動作を制御します。デフォルトの動作では、仮想マシンが停止され、Kubernetes イベントが生成されます。
デフォルトの動作を受け入れることも、エラーポリシーを次のいずれかのオプションに設定することもできます。
-
report、ゲスト内のエラーを報告します。 -
ignore、エラーを無視します。読み取りまたは書き込みの障害は検出されません。 -
enospace、ディスク容量が不足していることを示すエラーを生成します。
前提条件
ディスクを共有している仮想マシンが異なるノードで稼働している場合、ボリュームアクセスモードは
ReadWriteMany(RWX) である必要があります。ディスクを共有している仮想マシンが同じノード上で稼働している場合、ボリュームアクセスモードは
ReadWriteOnce(RWO) で問題ありません。- ストレージプロバイダーは、必要な Container Storage Interface (CSI) ドライバーをサポートする必要があります。
手順
次の例のように、仮想マシンの
VirtualMachineマニフェストを作成して必要な値を設定します。apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: <vm_name> spec: template: # ... spec: domain: devices: disks: - disk: bus: virtio name: rootdisk errorPolicy: report - disk: bus: virtio name: cluster shareable: true interfaces: - masquerade: {} name: default-
spec.template.spec.domain.devices.disks.errorPolicyは、IO エラーが発生した際のハイパーバイザーの動作を定義します。 -
spec.template.spec.domain.devices.disks.shareableは、複数の仮想マシン (VM) が同じ基盤となるディスクを使用できるかどうかを定義します。
-
-
VirtualMachineマニフェストファイルを保存して変更を適用します。