5.5. CSI ボリュームのクローン作成
ボリュームのクローン作成により、既存の永続ボリュームが複製されます。これは OpenShift Container Platform におけるデータ損失からの保護に役立ちます。この機能は、サポートされている Container Storage Interface (CSI) ドライバーでのみ利用できます。CSI ボリュームクローンをプロビジョニングする前に、永続ボリューム を理解しておく必要があります。
5.5.1. CSI ボリュームのクローン作成の概要 リンクのコピーリンクがクリップボードにコピーされました!
Container Storage Interface (CSI) ボリュームクローンは、特定の時点における既存の永続ボリュームの複製です。
ボリュームのクローン作成はボリュームのスナップショットに似ていますが、より効率的な方法です。たとえば、クラスター管理者は、既存のクラスターボリュームの別のインスタンスを作成してクラスターボリュームを複製できます。
クローン作成により、バックエンドのデバイスでは、新規の空のボリュームが作成されるのではなく、指定したボリュームの複製が作成されます。動的プロビジョニングの後には、標準のボリュームを使用するのと同じように、ボリュームクローンを使用できます。
クローン作成に必要な新しい API オブジェクトはありません。PersistentVolumeClaim
オブジェクトの既存の dataSource
フィールドは、同じ namespace の既存の PersistentVolumeClaim の名前を許可できるように拡張されます。
5.5.1.1. サポートの制限 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトで、OpenShift Container Platform は以下の制限の下で CSI ボリュームのクローン作成をサポートします。
- 宛先永続ボリューム要求 (PVC) はソース PVC と同じ namespace に存在する必要があります。
クローン作成は、別のストレージクラスでサポートされています。
- 宛先ボリュームは、ソースと異なるストレージクラスでも同じにすることができます。
-
デフォルトのストレージクラスを使用し、
spec
でstorageClassName
を省略できます。
- サポートは CSI ドライバーでのみ利用可能です。インツリーおよび FlexVolumes はサポートされません。
- CSI ドライバーは、ボリュームのクローン作成機能を実装していない可能性もあります。詳細は、CSI ドライバーのドキュメントを参照してください。
5.5.2. CSI ボリュームクローンのプロビジョニング リンクのコピーリンクがクリップボードにコピーされました!
CSI ボリュームクローンのプロビジョニングは、クローン作成された永続ボリューム要求 (PVC) API オブジェクトの作成によってトリガーされます。クローンは、他の永続ボリュームと同じルールに従って、別の PVC の内容を事前に設定します。例外として、同じ namespace の既存 PVC を参照する dataSource
を追加する必要があります。
前提条件
- 実行中の OpenShift Container Platform クラスターにログインしている。
- PVC がボリュームのクローン作成をサポートする CSI ドライバーを使用して作成されている。
- ストレージバックエンドが動的プロビジョニング用に設定されている。静的プロビジョナーのクローン作成のサポートは利用できません。
手順
既存の PVC から PVC のクローンを作成するには、以下を実行します。
以下の YAML によって記述される
PersistentVolumeClaim
オブジェクトを使用してファイルを作成し、保存します。pvc-clone.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ストレージのバックエンドをプロビジョニングするストレージクラスの名前。デフォルトのストレージクラスを使用でき、
storageClassName
は仕様で省略できます。
以下のコマンドを実行して、直前の手順で保存されたオブジェクトを作成します。
oc create -f pvc-clone.yaml
$ oc create -f pvc-clone.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規の PVC
pvc-1-clone
が作成されます。以下のコマンドを実行して、ボリュームクローンが作成され、準備状態にあることを確認します。
oc get pvc pvc-1-clone
$ oc get pvc pvc-1-clone
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pvc-1-clone
は、これがBound
であることを示します。これで、新たにクローン作成された PVC を使用して Pod を設定する準備が整いました。
YAML によって記述される
Pod
オブジェクトと共にファイルを作成し、保存します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- CSI ボリュームのクローン作成の操作時に作成されるクローン作成された PVC。
作成された
Pod
オブジェクトは、元のdataSource
PVC とは別に、クローンされた PVC の使用、クローン、スナップショット、または削除を実行できるようになりました。