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
状態が以下のように表示されます。