開発者向け機能 - OpenShift Virtualization (Storage)
開発者機能
OpenShift Container Platform
OpenShift Virtualization
- KVM/Kubevirt
- Storage
- Network
- 既存環境からの移行
OpenShiftの永続ストレージの仕組み
PVCではStorage ClassとPVの要件を指定します。指定されたStorage Classに対応するストレージシステムから論理ディスクを払い出します。論理ディスクをKubernetesリソースとして表現したものがPVです。
Persistent Volume / Persistent Volume Claim
Persistent Volume (PV)
- OpenShift の Pod が利用できる永続ストレージ
- 様々な形態のストレージを抽象化した姿です
Persistent Volume Claim (PVC)
- セルフサービスで PV を取得するためのリクエスト
- リクエスト内容に合致するPVがあれば割り当てます
Access Mode
- PVへのアクセス制御のモード
- バックエンドのストレージシステムによって、使用できるAccess Modeは異なります
- 使用できないAccess Modeを指定した場合はPVCが失敗し、PVはBindされません
Read Write Once (RWO)
- 1ノードからRead/Write可能
- ほぼ全てのストレージで利用可能
- 最も利用されることが多い基本のモード
Read Only Many (ROX)
- 複数ノードから同時にRead-Onlyでアクセス可能
- あまり使われることはなく、用途としては限定される
Read Write Many (RWX)
- 複数ノードから同時にRead/Write可能
- 基本的にはファイルストレージで利用可能
Storage Class
- バックエンドのストレージシステムを抽象化したものになります
- PVC では Storage Class を指定します
- 指定しない場合は default Storage Class が使われます
仮想マシンのストレージ
- PersistentVolume (PV) のパラダイムを使用
- 利用できる PV バックエンド
- OpenShift Data Foundation
- 3rd party ストレージ
- hostpath provisioner / LVM Operator
- ライブマイグレーションには RWX アクセスモードが必須
- VirtIO または SCSI コントローラでディスクに接続
- VM定義に依存
- Boot OrderはVMの定義で変更可能
VMディスク
- VM が使用するディスクはブロックデバイスです
- PVCのVolumeModeによってVM ディスクの実体は異なります
- Filesystem Mode
- ファイルシステム上に作られるThin-provisionedなrawイメージファイルがVMディスクとなります
- Block Mode
- PVそのものがVMディスクとなります
- Filesystem Mode
- オーバーヘッドが少ないBlock Modeが好ましい
- 多くのストレージパートナーのプロダクトは、RWXが可能なBlock modeに対応
VMスナップショット/クローン
- VM はスナップショット / クローンを取得できます
- スナップショットはVM無停止で取得できるが、クローンはVMが停止している必要がります
- VM ディスクをスナップショット / クローンするが、実態は PVC のスナップショット / クローンで実現する
- CSI ドライバによって、ストレージ側でのスナップショット / クローンにオフロードできます
- スナップショット / クローンに対応していないバックエンドストレージを使う場合は利用不可
ヘルパーディスク
- 副次的なディスクを使って、VM にデータを注入することができます
- cloud-init
- ConfigMap
- Secrets
- ServiceAccount
- これらは読み取り専用のディスクで、OS が起動時にマウントして中のデータを利用するものになります
- 起動後はアンマウントされており、取り外しも可能