第7章 ボリュームスナップショットの使用


クラスター管理者は、ボリュームスナップショットを使用すると、サポート対象の MicroShift 論理ボリュームマネージャーストレージ (LVMS) Container Storage Interface (CSI) プロバイダーを使用してデータ損失を防ぐことができます。永続ボリューム に関する知識が必要です。

スナップショットは、特定の時点でのクラスター内のストレージボリュームの状態を表します。ボリュームスナップショットを使用して、新しいボリュームをプロビジョニングすることもできます。スナップショットは、元のデータと同じデバイス上にある読み取り専用の論理ボリューム (LV) として作成されます。

クラスター管理者は、CSI ボリュームスナップショットを使用して以下のタスクを実行できます。

  • 既存の永続ボリューム要求 (PVC) のスナップショットを作成します。
  • ボリュームスナップショットを安全な場所にバックアップします。
  • ボリュームスナップショットを別の PVC として復元します。
  • 既存のボリュームスナップショットを削除します。
重要

MicroShift では、Logical Volume Manager Storage (LVMS) プラグイン CSI ドライバーのみがサポートされています。

7.1. LVM シンボリュームについて

ボリュームスナップショットの作成やボリュームクローン作成などの高度なストレージ機能を使用するには、以下のアクションを実行する必要があります。

  • 論理ボリュームマネージャーストレージ (LVMS) プロバイダーとクラスターの両方を設定します。
  • RHEL for Edge 上に論理ボリュームマネージャー (LVM) シンプールをプロビジョニングします。
  • LVM シンプールをボリュームグループに接続します。
重要

Container Storage Interface (CSI) スナップショットを作成するには、RHEL for Edge ホスト上でシンボリュームを設定する必要があります。CSI はボリュームの縮小をサポートしていません。

LVMS がシン論理ボリューム (LV) を管理するには、etc/lvmd.yaml 設定ファイルでシンプールの デバイスクラス アレイを指定する必要があります。複数のシンプールデバイスクラスが許可されます。

追加のストレージプールがデバイスクラスで設定されている場合、ストレージプールをユーザーおよびワークロードに公開するには、追加のストレージクラスも存在する必要があります。シンプールで動的プロビジョニングを有効にするには、StorageClass リソースがクラスター上に存在する必要があります。StorageClass リソースは、topolvm.io/device-class パラメーターでソース device-class クラス配列を指定します。

シンプール用の単一のデバイスクラスを指定する lvmd.yaml ファイルの例

socket-name: 1
device-classes: 2
  - name: thin 3
    default: true
    spare-gb: 0 4
    thin-pool:
      name: thin
      overprovision-ratio: 10 5
    type: thin 6
    volume-group: ssd 7

1
String。gRPC の UNIX ドメインソケットエンドポイント。デフォルトは /run/lvmd/lvmd.socket です。
2
device-class の設定のマップのリスト。
3
String。device-class の一意の名前。
4
未署名の 64 ビット整数ボリュームグループに未割り当てのままにする GB 単位のストレージ容量。デフォルトは 0 です。
5
同じプールを共有する複数のシンプロビジョニングされたデバイスがある場合に、これらのデバイスは過剰にプロビジョニングされる可能性があります。オーバープロビジョニングには、1 以上の浮動小数点値が必要です。
6
ボリュームのスナップショットの作成には、シンプロビジョニングが必要です。
7
String。device-class が論理ボリュームを作成するグループ。
重要

複数の PVC が同時に作成されると、競合状態が原因で、LVMS は割り当てられた領域を正確に追跡してデバイスクラスのストレージ容量を保持できなくなります。個別のボリュームグループとデバイスクラスを使用して、非常に動的なワークロードのストレージを相互に保護します。

7.1.1. ストレージクラス

ストレージクラスは、デバイスクラスを選択するためのワークロード層インターフェイスを提供します。MicroShift では、次のストレージクラスパラメーターがサポートされています。

  • csi.storage.k8s.io/fstype パラメーターは、ファイルシステムタイプを選択します。xfs および ext4 の両方のファイルシステムタイプがサポートされています。
  • topolvm.io/device-class パラメーターは、デバイスクラスの名前です。デバイスクラスが指定されていない場合は、デフォルトのデバイスクラスが使用されます。

複数のストレージクラスが同じデバイスクラスを参照できます。xfsext4 バリアントなど、同じバッキングデバイスクラスに、さまざまなパラメーターセットを指定できます。

MicroShift のデフォルトのストレージクラスリソースの例

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true" 1
  name: topolvm-provisioner
parameters:
  "csi.storage.k8s.io/fstype": "xfs" 2
provisioner: topolvm.io 3
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer 4
allowVolumeExpansion: 5

1
デフォルトのストレージクラスの例。PVC がストレージクラスを指定しない場合、このクラスが使用されます。クラスター内に存在できるデフォルトのストレージクラスは 1 つだけです。このアノテーションに値を割り当てないというオプションもサポートされています。
2
ボリューム上にプロビジョニングするファイルシステムを指定します。オプションは "xfs" および "ext4" です。
3
このクラスを管理するプロビジョナーを識別します。
4
クライアント Pod が存在するか、または即時にボリュームをプロビジョニングするかどうかを指定します。オプションは WaitForFirstConsumer および Immediate です。スケジュール可能な Pod に対してのみストレージがプロビジョニングされるようにするには、WaitForFirstConsumer を使用することを推奨します。
5
StorageClass からプロビジョニングされる PVC で拡張を許可するかどうかを指定します。MicroShift の LVMS CSI プラグインはボリューム拡張をサポートしますが、この値が false に設定されている場合、拡張はブロックされます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.