27.21.4.2. スナップショットの作成
PV のスナップショットを作成するには、新しい VolumeSnapshot オブジェクトを以下のように作成します。
persistentVolumeClaimName は、PersistentVolume にバインドされる PersistentVolumeClaim の名前です。この特定 PV のスナップショットが作成されます。
次に、VolumeSnapshot に基づく VolumeSnapshotData オブジェクトが自動的に作成されます。VolumeSnapshot と VolumeSnapshotData の関係は PersistentVolumeClaim と PersistentVolume の関係に似ています。
PV のタイプによっては、反映される VolumeSnapshot の状態に応じ、操作が複数の段階にわたる場合があります。
-
新規
VolumeSnapshotオブジェクトが作成されます。 -
コントローラーによってスナップショット操作が開始されます。スナップショット対象の
PersistentVolumeをフリーズし、アプリケーションを一時停止する必要が生じる場合があります。 -
ストレージシステムによるスナップショットの作成が完了し (スナップショットが切り取られ)、スナップショット対象の
PersistentVolumeが通常の操作に戻ります。スナップショット自体の準備はまだできていません。ここでの状態はPendingタイプで状態の値はTrueです。実際のスナップショットを表すVolumeSnapshotDataオブジェクトが新たに作成されます。 -
新規スナップショットの作成が完成し、使用できる状態になります。ここでの状態は
Readyタイプで、状態の値はTrueです。
データの整合性の確保 (Pod/アプリケーションの停止、キャッシュのフラッシュ、ファイルシステムのフリーズなど) はユーザーの責任で行う必要があります。
エラーの場合は、VolumeSnapshot の状態が Error 状態に追加されます。
VolumeSnapshot の状態を表示するには、以下を実行します。
oc get volumesnapshot -o yaml
$ oc get volumesnapshot -o yaml
状態が以下のように表示されます。