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