6.4. CSI ボリュームグループスナップショット


このドキュメントでは、OpenShift Container Platform でのデータ損失を防ぐために、サポートされている Container Storage Interface (CSI) ドライバーでボリュームグループスナップショットを使用する方法を説明します。永続ボリューム をある程度理解していることが推奨されます。

重要

CSI ボリュームグループスナップショットは、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

このテクノロジープレビュー機能を使用するには、フィーチャーゲートを使用して有効にする 必要があります。

6.4.1. CSI ボリュームグループスナップショットの概要

スナップショット は、特定の時点におけるクラスター内のストレージボリュームの状態を表します。ボリュームスナップショットは新規ボリュームのプロビジョニングに使用できます。

ボリュームグループスナップショット は、ラベルセレクターを使用して、スナップショット用に複数の永続ボリューム要求をグループ化します。ボリュームグループスナップショットは、同じ時点で取得された複数のボリュームからのコピーを表します。これは、複数のボリュームが含まれるアプリケーションに役立ちます。

Container Storage Interface (CSI) のボリュームグループスナップショットは、CSI ドライバーによってサポートされている必要があります。OpenShift Data Foundation は、ボリュームグループスナップショットをサポートしています。

ボリュームグループスナップショットは、スナップショットを管理するための 3 つの新しい API オブジェクトを提供します。

VolumeGroupSnapshot
複数の永続ボリューム要求のボリュームグループスナップショットの作成を要求します。ボリュームグループスナップショットが作成されたタイムスタンプや、使用できる状態かどうかなど、ボリュームグループスナップショットの操作に関する情報を含んでいます。
VolumeGroupSnapshotContent
動的に作成された volumeGroupSnapshot のスナップショットコントローラーによって作成されます。ボリュームグループスナップショット ID を含むボリュームグループスナップショットに関する情報を含んでいます。このオブジェクトは、クラスターにプロビジョニングされたリソース (グループスナップショット) を表します。VolumeGroupSnapshotContent オブジェクトは、1 対 1 のマッピングを使用して作成されたボリュームグループスナップショットにバインドされます。
VolumeGroupSnapshotClass
ドライバー情報、削除ポリシーなど、ボリュームグループスナップショットを作成する方法を記述するために、クラスター管理者によって作成されます。

これら 3 種類の API は、CustomResourceDefinitions (CRD) として定義されます。CSI ドライバーがボリュームグループスナップショットをサポートできるように、これらの CRD を OpenShift Container Platform クラスターにインストールする必要があります。

6.4.2. CSI ボリュームグループスナップショットの制限

ボリュームグループスナップショットには次の制限があります。

  • 既存の永続ボリューム要求 (PVC) を、スナップショットによって表される以前の状態に戻すことはできません。サポートされているのは、スナップショットからの新しいボリュームのプロビジョニングだけです。
  • ストレージシステムによって提供されるもの以外のアプリケーションの整合性 (クラッシュ整合性など) の保証は提供されません。アプリケーションの整合性の詳細は、Quiesce and Unquiesce Hooks を参照してください。

6.4.3. ボリュームグループスナップショットクラスの作成

ボリュームグループスナップショットを作成するには、クラスター管理者が VolumeGroupSnapshotClass を作成する必要があります。

このオブジェクトは、ドライバー情報、削除ポリシーなど、ボリュームグループスナップショットを作成する方法を記述したものです。

前提条件

  • 実行中の OpenShift Container Platform クラスターに管理者権限でログインしている。
  • フィーチャーゲートを使用してこの機能を有効にした。フィーチャーゲートの使用方法は、フィーチャーゲートを使用した機能セットの有効化 を参照してください。

手順

VolumeGroupSnapshotClass を作成するには、次の手順を実行します。

  1. 次のサンプルファイルを使用して、VolumeGroupSnapshotClass YAML ファイルを作成します。

    ボリュームグループスナップショットクラスの YAML ファイルの例

    apiVersion: groupsnapshot.storage.k8s.io/v1beta1
    kind: VolumeGroupSnapshotClass 
    1
    
    metadata:
      name: csi-hostpath-groupsnapclass 
    2
    
    deletionPolicy: Delete
    driver: hostpath.csi.k8s.io
         …...
    Copy to Clipboard Toggle word wrap

    1
    VolumeGroupSnapshotClass オブジェクトを指定します。
    2
    VolumeGroupSnapshotClass の名前。
  2. 次のコマンドを実行して、'VolumeGroupSnapshotClass' オブジェクトを作成します。

    $ oc create -f <volume-group-snapshot-class-filename>.yaml
    Copy to Clipboard Toggle word wrap

6.4.4. ボリュームグループスナップショットの作成

VolumeGroupSnapshot オブジェクトを作成すると、OpenShift Container Platform によってボリュームグループスナップショットが作成されます。

前提条件

  • 実行中の OpenShift Container Platform クラスターにログインしている。
  • フィーチャーゲートを使用してこの機能を有効にした。フィーチャーゲートの使用方法は、フィーチャーゲートを使用した機能セットの有効化 を参照してください。
  • スナップショット用にグループ化する永続ボリューム要求 (PVC) が、VolumeGroupSnapshot オブジェクトをサポートする CSI ドライバーを使用して作成されている。
  • ストレージバックエンドをプロビジョニングするストレージクラス。
  • 管理者が VolumeGroupSnapshotClass オブジェクトを作成した。

手順

ボリュームグループスナップショットを作成するには、次の手順を実行します。

  1. ボリュームグループスナップショットに含める PVC を検索 (または作成) します。

    $ oc get pvc
    Copy to Clipboard Toggle word wrap

    コマンド出力例

    NAME        STATUS    VOLUME                                     CAPACITY   ACCESSMODES   AGE
    pvc-0       Bound     pvc-a42d7ea2-e3df-11ed-b5ea-0242ac120002   1Gi        RWO           48s
    pvc-1       Bound     pvc-a42d81b8-e3df-11ed-b5ea-0242ac120002   1Gi        RWO           48S
    Copy to Clipboard Toggle word wrap

    この例では 2 つの PVC を使用します。

  2. PVC にラベルを付けて、スナップショットグループに属するようにします。

    1. 次のコマンドを実行して、pvc-0 という PVC にラベルを付けます。

      $ oc label pvc pvc-0 group=myGroup
      Copy to Clipboard Toggle word wrap

      出力例

      persistentvolumeclaim/pvc-0 labeled
      Copy to Clipboard Toggle word wrap

    2. 次のコマンドを実行して、pvc-1 という PVC にラベルを付けます。

      $ oc label pvc pvc-1 group=myGroup
      Copy to Clipboard Toggle word wrap

      出力例

      persistentvolumeclaim/pvc-1 labeled
      Copy to Clipboard Toggle word wrap

      この例では、PVC "pvc-0" と "pvc-1" がグループ "myGroup" に属するようにラベルを付けます。

  3. ボリュームグループスナップショットを指定する VolumeGroupSnapshot オブジェクトを作成します。

    1. 次のサンプルファイルを使用して、VolumeGroupSnapshot オブジェクトの YAML ファイルを作成します。

      VolumeGroupSnapshot の YAML ファイルの例

      apiVersion: groupsnapshot.storage.k8s.io/v1beta1
      kind: VolumeGroupSnapshot 
      1
      
      metadata:
        name: <volume-group-snapshot-name> 
      2
      
        namespace: <namespace> 
      3
      
      spec:
        volumeGroupSnapshotClassName: <volume-group-snapshot-class-name> 
      4
      
        source:
          selector:
            matchLabels:
              group: myGroup 
      5
      Copy to Clipboard Toggle word wrap

      1
      VolumeGroupSnapshot オブジェクトは、複数の PVC のボリュームグループスナップショットの作成を要求します。
      2
      ボリュームグループスナップショットの名前。
      3
      ボリュームグループスナップショットの namespace。
      4
      VolumeGroupSnapshotClass の名前。このオブジェクトは、管理者によって作成され、ボリュームグループスナップショットを作成する方法を記述したものです。
      5
      スナップショットの目的の PVC をグループ化するために使用するラベルの名前。この例では、"myGroup" です。
    2. 次のコマンドを実行して、VolumeGroupSnapshot オブジェクトを作成します。

      $ oc create -f <volume-group-snapshot-filename>.yaml
      Copy to Clipboard Toggle word wrap

結果

個別のボリュームスナップショットが、ボリュームグループスナップショットの一部として指定した PVC の数に応じて作成されます。

これらの個別のボリュームスナップショットには、<hash of VolumeGroupSnaphotContentUUID+volumeHandle> という形式で名前が付けられます。

個別のボリュームのスナップショットの例

apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
  name: snapshot-4dc1c53a29538b36e85003503a4bcac5dbde4cff59e81f1e3bb80b6c18c3fd03
  namespace: default
  ownerReferences:
  - apiVersion: groupsnapshot.storage.k8s.io/v1beta1
    kind: VolumeGroupSnapshot
    name: my-groupsnapshot
    uid: ba2d60c5-5082-4279-80c2-daa85f0af354
  resourceVersion: "124503"
  uid: c0137282-f161-4e86-92c1-c41d36c6d04c
spec:
  source:
    persistentVolumeClaimName:pvc-1
status:
  volumeGroupSnapshotName: volume-group-snapshot-name
Copy to Clipboard Toggle word wrap

上記の例では、ボリュームグループスナップショットの一部として 2 つの個別のボリュームスナップショットが作成されます。

snapshot-4dc1c53a29538b36e85003503a4bcac5dbde4cff59e81f1e3bb80b6c18c3fd03
snapshot-fbfe59eff570171765df664280910c3bf1a4d56e233a5364cd8cb0152a35965b
Copy to Clipboard Toggle word wrap

6.4.5. ボリュームグループスナップショットの復元

VolumeGroupSnapshot カスタムリソース定義 (CRD) の内容を使用して、既存のボリュームを以前の状態に復元できます。

既存のボリュームを復元するには、VolumeGroupSnapshot の一部である VolumeSnapshot オブジェクトから新しい永続ボリューム要求 (PVC) を作成することを要求します。これにより、指定したスナップショットからのデータが入力された新しいボリュームのプロビジョニングがトリガーされます。ボリュームグループスナップショットの一部であるすべてのスナップショットからすべてのボリュームを作成するまで、このプロセスを繰り返します。

前提条件

  • 実行中の OpenShift Container Platform クラスターにログインしている。
  • ボリュームグループスナップショットをサポートする Container Storage Interface (CSI) ドライバーを使用して PVC を作成した。
  • ストレージバックエンドをプロビジョニングするストレージクラス。
  • ボリュームグループスナップショットが作成され、使用できる状態である。

手順

ボリュームグループスナップショットから既存のボリュームを以前の状態に復元するには、次の手順を実行します。

  1. 次の例に示すように、PVC のボリュームグループスナップショットから VolumeSnapshot データソースを指定します。

    PVC 復元 YAML ファイルの例

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: <pvc-restore-name> 
    1
    
      namespace: <namespace> 
    2
    
    spec:
      storageClassName: csi-hostpath-sc
      dataSource:
        name: snapshot-fbfe59eff570171765df664280910c3bf1a4d56e233a5364cd8cb0152a35965b 
    3
    
        kind: VolumeSnapshot 
    4
    
        apiGroup: snapshot.storage.k8s.io 
    5
    
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
    Copy to Clipboard Toggle word wrap

    1
    PVC 復元の名前。
    2
    namespace の名前。
    3
    ソースとして使用するボリュームグループスナップショットの一部である個別のボリュームスナップショットの名前。
    4
    VolumeSnapshot の値に設定する必要があります。
    5
    snapshot.storage.k8s.io の値に設定する必要があります。
  2. 以下のコマンドを実行して PVC を作成します。

    $ oc create -f <pvc-restore-filename>.yaml 
    1
    Copy to Clipboard Toggle word wrap
    1
    前のステップで指定した PVC 復元ファイルの名前。
  3. 次のコマンドを実行して、復元された PVC が作成されたことを確認します。

    $ oc get pvc
    Copy to Clipboard Toggle word wrap

    最初のステップで指定した名前の新しい PVC が表示されます。

  4. 必要に応じて、ボリュームグループスナップショットの一部であるすべてのスナップショットからすべてのボリュームを作成するまで、この手順を繰り返します。

6.4.6. 関連情報

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat