5.4. Logical Volume Manager Storage を使用した永続ストレージ
論理ボリュームマネージャーストレージ (LVM ストレージ) は、TopoLVM CSI ドライバーを使用して、シングルノード OpenShift クラスターでローカルストレージを動的にプロビジョニングします。
LVM ストレージは、論理ボリュームマネージャーを使用してシンプロビジョニングボリュームを作成し、限られたリソースのシングルノード OpenShift クラスターでブロックストレージの動的プロビジョニングを提供します。
LVM Storage を使用すると、ボリュームグループ、永続ボリューム要求 (PVC)、ボリュームスナップショット、およびボリュームクローンを作成できます。
5.4.1. Logical Volume Manager Storage のインストール リンクのコピーリンクがクリップボードにコピーされました!
単一ノードの OpenShift クラスターに論理ボリュームマネージャー(LVM)ストレージをインストールし、ワークロード用にストレージを動的にプロビジョニングするように設定できます。
OpenShift Container Platform CLI (oc)、OpenShift Container Platform Web コンソール、または Red Hat Advanced Cluster Management (RHACM)を使用して、シングルノード OpenShift クラスターに LVM ストレージをデプロイできます。
5.4.1.1. LVM Storage をインストールするための前提条件 リンクのコピーリンクがクリップボードにコピーされました!
LVM Storage をインストールするための前提条件は次のとおりです。
- 最低でも 10 ミリの CPU と 100 MiB の RAM があることを確認してください。
- すべてのマネージドクラスターに、ストレージのプロビジョニングに使用される専用のディスクがあることを確認してください。LVM Storage は、ファイルシステム署名が含まれていない空のディスクのみを使用します。確実にディスクが空で、ファイルシステム署名が含まれていないようにするには、使用する前にディスクを消去します。
以前の LVM Storage のインストールで設定したストレージデバイスを再利用できるプライベート CI 環境に LVM Storage をインストールする前に、使用されていないディスクが消去されていることを確認してください。LVM Storage をインストールする前にディスクをワイプしないと、ディスクを再利用するのに手動による介入が必要になります。
注記使用中のディスクは消去できません。
- Red Hat Advanced Cluster Management (RHACM) を使用して LVM Storage をインストールする場合は、RHACM が OpenShift Container Platform クラスターにインストールされていることを確認してください。RHACM を使用した LVM Storage のインストール セクションを参照してください。
5.4.1.2. CLI を使用した LVM Storage のインストール リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、CLI を使用して Logical Volume Manager (LVM) ストレージをインストールできます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。
手順
LVM Storage Operator の namespace を作成します。
次の YAML を
lvms-namespace.yamlファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow NamespaceCR を作成します。oc create -f lvms-namespace.yaml
$ oc create -f lvms-namespace.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
LVM Storage Operator の Operator グループを作成します。
次の YAML を
lvms-operatorgroup.yamlファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow OperatorGroupCR を作成します。oc create -f lvms-operatorgroup.yaml
$ oc create -f lvms-operatorgroup.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
LVM Storage Operator にサブスクライブします。
次の YAML を
lvms-sub.yamlファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow SubscriptionCR を作成します。oc create -f lvms-sub.yaml
$ oc create -f lvms-sub.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Operator がインストールされていることを確認するには、以下のコマンドを入力します。
oc get csv -n openshift-storage -o custom-columns=Name:.metadata.name,Phase:.status.phase
$ oc get csv -n openshift-storage -o custom-columns=Name:.metadata.name,Phase:.status.phaseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Name Phase 4.13.0-202301261535 Succeeded
Name Phase 4.13.0-202301261535 SucceededCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.1.3. Web コンソールを使用した LVM Storage のインストール リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Container Platform OperatorHub を使用して、Logical Volume Manager (LVM) Storage をインストールできます。
前提条件
- シングルノード OpenShift クラスターにアクセスできます。
-
cluster-adminおよび Operator のインストール権限を持つアカウントを使用しています。
手順
- OpenShift Container Platform Web コンソールにログインします。
-
Operators
OperatorHub をクリックします。 -
スクロールするか、
LVM Storageを Filter by keyword ボックスに入力して、LVM Storage を見つけます。 - Install をクリックします。
Install Operator ページで、以下のオプションを設定します。
- Channel を stable-4.13 として更新します。
- Installation Mode を A specific namespace on the cluster に設定します。
-
Installed Namespace を Operator recommended namespace openshift-storage に設定します。
openshift-storagenamespace が存在しない場合は、Operator のインストール中に作成されます。 Approval Strategy を Automatic または Manual に設定します。
Automatic (自動) 更新を選択すると、Operator Lifecycle Manager (OLM) は介入なしに、Operator の実行中のインスタンスを自動的にアップグレードします。
Manual 更新を選択すると、OLM は更新要求を作成します。クラスター管理者は、Operator を新しいバージョンに更新できるように更新要求を手動で承認する必要があります。
- Install をクリックします。
検証手順
- インストールが成功したことを示す緑色のチェックマークが LVM Storage に表示されていることを確認します。
5.4.1.4. CLI を使用した LVM Storage のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift CLI (oc) を使用して LVM ストレージをアンインストールできます。
前提条件
-
cluster-admin権限を持つユーザーとしてocにログインしている。 - LVM Storage によってプロビジョニングされた永続ボリューム要求 (PVC)、ボリュームスナップショット、およびボリュームクローンが削除されている。これらのリソースを使用しているアプリケーションも削除されている。
-
LVMClusterカスタムリソース (CR) が削除されている。
手順
次のコマンドを実行して、LVM Storage Operator の
currentCSVの値を取得します。oc get subscription.operators.coreos.com lvms-operator -n <namespace> -o yaml | grep currentCSV
$ oc get subscription.operators.coreos.com lvms-operator -n <namespace> -o yaml | grep currentCSVCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
currentCSV: lvms-operator.v4.15.3
currentCSV: lvms-operator.v4.15.3Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、サブスクリプションを削除します。
oc delete subscription.operators.coreos.com lvms-operator -n <namespace>
$ oc delete subscription.operators.coreos.com lvms-operator -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
subscription.operators.coreos.com "lvms-operator" deleted
subscription.operators.coreos.com "lvms-operator" deletedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ターゲット namespace 内の LVM Storage Operator の CSV を削除します。
oc delete clusterserviceversion <currentCSV> -n <namespace>
$ oc delete clusterserviceversion <currentCSV> -n <namespace>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<currentCSV>は、LVM Storage Operator のcurrentCSV値に置き換えます。
出力例
clusterserviceversion.operators.coreos.com "lvms-operator.v4.15.3" deleted
clusterserviceversion.operators.coreos.com "lvms-operator.v4.15.3" deletedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
LVM Storage Operator がアンインストールされたことを確認するには、次のコマンドを実行します。
oc get csv -n <namespace>
$ oc get csv -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow LVM Storage Operator が正常にアンインストールされた場合、このコマンドの出力には表示されません。
5.4.1.5. OpenShift Web コンソールを使用してインストールされた LVM ストレージのアンインストール リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Container Platform Web コンソールを使用して、LVM ストレージをアンインストールできます。
前提条件
- LVM Storage によってプロビジョニングされたストレージを使用しているクラスター上のすべてのアプリケーションを削除しました。
- LVM Storage を使用してプロビジョニングされた永続ボリューム要求 (PVC) と永続ボリューム (PV) を削除しました。
- LVM Storage によってプロビジョニングされたすべてのボリュームスナップショットを削除しました。
-
oc get logicalvolumeコマンドを使用して、論理ボリュームリソースが存在しないことを確認しました。 -
cluster-admin権限を持つアカウントを使用して、シングルノード OpenShift クラスターにアクセスできます。
手順
-
Operators
Installed Operators ページから、LVM Storage にスクロールするか、 LVM Storageを Filter by name に入力して検索し、クリックします。 - LVMCluster タブをクリックします。
- LVMCluster ページの右側で、Actions ドロップダウンメニューから Delete LVMCluster を選択します。
- Details タブをクリックします。
- Operator Details ページの右側で、Actions ドロップダウンメニューから Uninstall Operator を選択します。
- Remove を選択します。LVM Storage は実行を停止し、完全に削除されます。
5.4.1.6. 非接続環境での LVM ストレージのインストール リンクのコピーリンクがクリップボードにコピーされました!
非接続環境の OpenShift Container Platform 4.13 に LVM Storage をインストールできます。この手順で参照されているすべてのセクションは、追加リソース にリンクされています。
前提条件
- 非接続インストールミラーリングについて セクションを確認した。
- OpenShift Container Platform イメージリポジトリーにアクセスできる。
- ミラーレジストリーを作成した。
手順
イメージセット設定の作成 手順の手順に従います。LVM Storage の
ImageSetConfigurationリソースを作成するには、次のサンプル YAML ファイルを使用できます。LVM Storage 用の ImageSetConfiguration ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
archiveSizeを追加して、イメージセット内の各ファイルの最大サイズを GiB 単位で設定します。- 2
- イメージセットのメタデータを保存するバックエンドの場所を設定します。この場所は、レジストリーまたはローカルディレクトリーにすることができます。Technology Preview OCI 機能を使用していない場合は、
storageConfig値を指定する必要があります。 - 3
- ストレージバックエンドのレジストリー URL を設定します。
- 4
- OpenShift Container Platform イメージを取得するためのチャネルを設定します。
- 5
graph: trueを追加して OpenShift Update Service (OSUS) グラフイメージを生成し、Web コンソールを使用する際のクラスター更新エクスペリエンスを向上させます。詳細については、OpenShift Update Service について を参照してください。- 6
- OpenShift Container Platform イメージを取得するための Operator カタログを設定します。
- 7
- イメージセットに含める特定の Operator パッケージのみを指定します。カタログ内のすべてのパッケージを取得するには、このフィールドを削除してください。
- 8
- イメージセットに含める Operator パッケージの特定のチャネルのみを指定します。そのチャネルでバンドルを使用しない場合も、常に Operator パッケージのデフォルトチャネルを含める必要があります。
oc mirror list operators --catalog=<catalog_name> --package=<package_name>コマンドを実行すると、デフォルトチャネルを見つけることができます。 - 9
- イメージセットに含める追加のイメージを指定します。
- Mirroring an image set to a mirror registry セクションの手順に従います。
- Configuring image registry repository mirroring セクションの手順に従います。
5.4.1.7. RHACM を使用した LVM Storage のインストール リンクのコピーリンクがクリップボードにコピーされました!
LVM ストレージは、Red Hat Advanced Cluster Management (RHACM) を使用してシングルノード OpenShift クラスターにデプロイされます。RHACM に Policy オブジェクトを作成します。これは、PlacementRule リソースで指定されたセレクターに一致するマネージドクラスターに適用される際に Operator をデプロイおよび設定します。このポリシーは、後でインポートされ、配置ルールを満たすクラスターにも適用されます。
前提条件
-
cluster-adminおよび Operator インストール権限を持つアカウントを使用して、RHACM クラスターにアクセスします。 - LVM ストレージによって使用される各シングルノード OpenShift クラスターの専用ディスク。
- シングルノード OpenShift クラスターは、インポートまたは作成された RHACM によって管理される必要があります。
手順
- OpenShift Container Platform の認証情報を使用して RHACM CLI にログインします。
ポリシーを作成する namespace を作成します。
oc create ns lvms-policy-ns
# oc create ns lvms-policy-nsCopy to Clipboard Copied! Toggle word wrap Toggle overflow ポリシーを作成するには、次の YAML を
policy-lvms-operator.yamlなどの名前でファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- LVM ストレージをインストールするシングルノード OpenShift クラスターに設定されたラベルと一致するように、
PlacementRule.spec.clusterSelectorのキーと値を置き換えます。 - 2
- ボリュームグループを優先ディスクに制御または制限するには、
LVMClusterYAML のdeviceSelectorセクションでディスクのローカルパスを手動で指定します。 - 3
- 追加のワーカーノードのサブセットであるノードフィルターを追加するには、
nodeSelectorセクションに必要なフィルターを指定します。LVM Storage は、新しいノードが表示されると、追加のワーカーノードを検出して使用します。
重要この
nodeSelectorノードフィルターの一致は、Pod ラベルの一致と同じではありません。次のコマンドを実行して、namespace にポリシーを作成します。
oc create -f policy-lvms-operator.yaml -n lvms-policy-ns
# oc create -f policy-lvms-operator.yaml -n lvms-policy-ns1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
policy-lvms-operator.yamlは、ポリシーが保存されるファイルの名前です。
これにより、
lvms-policy-nsnamespace にPolicy、PlacementRule、およびPlacementBindingオブジェクトが作成されます。このポリシーは、配置ルールに一致するクラスター上にNamespace、OperatorGroup、Subscription、およびLVMClusterリソースを作成します。これにより、選択基準に一致するシングルノード OpenShift クラスターに Operator がデプロイされ、ストレージをプロビジョニングするために必要なリソースをセットアップするように設定されます。Operator はLVMClusterCR で指定されたすべてのディスクを使用します。ディスクが指定されていない場合、Operator はシングルノード OpenShift ノード上の未使用のディスクをすべて使用します。重要LVMClusterに追加されたデバイスは削除できません。
5.4.1.8. LVM Storage で使用するデバイスのサイズを設定する際の制限事項 リンクのコピーリンクがクリップボードにコピーされました!
LVM Storage を使用したストレージのプロビジョニングで使用できるデバイスのサイズを設定する際の制限は、次のとおりです。
- プロビジョニングできる合計ストレージサイズは、基礎となる論理ボリュームマネージャー (LVM) シンプールのサイズとオーバープロビジョニング係数によって制限されます。
論理ボリュームのサイズは、物理エクステント (PE) のサイズと論理エクステント (LE) のサイズによって異なります。
- PE および LE のサイズは、物理デバイスおよび論理デバイスの作成時に定義できます。
- デフォルトの PE および LE サイズは 4 MB です。
- PE のサイズを大きくした場合、LVM の最大サイズは、カーネルの制限とディスク領域によって決定されます。
| アーキテクチャー | RHEL 6 | RHEL 7 | RHEL 8 | RHEL 9 |
|---|---|---|---|---|
| 32 ビット | 16 TB | - | - | - |
| 64 ビット | 8 EB [1] 100 TB [2] | 8 EB [1] 500 TB [2] | 8 EB | 8 EB |
- 理論的サイズ。
- テスト済みサイズ。
5.4.2. LVM Storage を使用したストレージのプロビジョニング リンクのコピーリンクがクリップボードにコピーされました!
Operator のインストール中に作成されたストレージクラスを使用して、永続ボリューム要求 (PVC) をプロビジョニングできます。ブロックおよびファイル PVC をプロビジョニングできますが、ストレージは、PVC を使用する Pod が作成された場合にのみ割り当てられます。
LVM Storage は、PVC を 1 GiB 単位でプロビジョニングします。要求されたストレージは、最も近い GiB に切り上げられます。
手順
LVM Storage のデプロイ時に作成される
StorageClassを特定します。StorageClass名の形式はlvms-<device-class-name>です。device-class-nameは、PolicyYAML のLVMClusterで指定したデバイスクラスの名前です。たとえば、deviceClassの名前がvg1の場合、storageClassの名前はlvms-vg1です。ストレージクラスの
volumeBindingModeはWaitForFirstConsumerに設定されます。アプリケーションがストレージを必要とする PVC を作成するには、次の YAML を
pvc.yamlなどの名前でファイルに保存します。PVC を作成する YAML の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して PVC を作成します。
oc create -f pvc.yaml -ns <application_namespace>
# oc create -f pvc.yaml -ns <application_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作成された PVC は、それらを使用する Pod をデプロイするまで
pending状態のままになります。
5.4.3. PVC の拡張 リンクのコピーリンクがクリップボードにコピーされました!
容量を追加した後、新しいストレージを活用するには、LVM Storage で既存の永続ボリューム要求 (PVC) を拡張できます。
前提条件
- 動的プロビジョニングを使用している。
-
制御する側の
StorageClassオブジェクトにはallowVolumeExpansionがtrueに設定されている。
手順
次のコマンドを実行して、目的の PVC リソースの
.spec.resources.requests.storageフィールドを新しいサイズに変更します。oc patch <pvc_name> -n <application_namespace> -p '{ "spec": { "resources": { "requests": { "storage": "<desired_size>" }}}}'oc patch <pvc_name> -n <application_namespace> -p '{ "spec": { "resources": { "requests": { "storage": "<desired_size>" }}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
PVC の
status.conditionsフィールドを監視し、サイズ変更が完了したかどうかを確認します。OpenShift Container Platform は、拡張中にResizing条件を PVC に追加します。これは、拡張の完了後、削除されます。
5.4.4. シングルノード OpenShift クラスターでの LVM ストレージのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
論理ボリュームマネージャーストレージ (LVM ストレージ) Operator をアップグレードして、シングルノード OpenShift バージョンとの互換性を確保できます。
前提条件
- 単一ノードの OpenShift クラスターがアップグレードされている。
- 以前のバージョンの LVM Storage Operator がインストールされている。
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。
手順
次のコマンドを実行して、LVM Storage Operator の
Subscriptionリソースを更新します。oc patch subscription lvms-operator -n openshift-storage --type merge --patch '{"spec":{"channel":"<update-channel>"}}'$ oc patch subscription lvms-operator -n openshift-storage --type merge --patch '{"spec":{"channel":"<update-channel>"}}'1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<update-channel>を、インストールする LVM Storage Operator のバージョン (stable-4.15など) に置き換えます。
次のコマンドを実行して、アップグレードイベントを表示し、インストールが完了していることを確認します。
oc get events -n openshift-storage
$ oc get events -n openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、LVM Storage Operator のバージョンを確認します。
oc get subscription lvms-operator -n openshift-storage -o jsonpath='{.status.installedCSV}'$ oc get subscription lvms-operator -n openshift-storage -o jsonpath='{.status.installedCSV}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
lvms-operator.v4.13
lvms-operator.v4.13Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.5. シングルノード OpenShift のボリュームスナップショット リンクのコピーリンクがクリップボードにコピーされました!
LVM ストレージによってプロビジョニングされた永続ボリューム (PV) のボリュームスナップショットを取得できます。クローン作成されたボリュームのボリュームスナップショットを作成することもできます。ボリュームスナップショットは、次のことを行うのに役立ちます。
アプリケーションデータをバックアップします。
重要ボリュームスナップショットは元のデータと同じデバイスにあります。ボリュームスナップショットをバックアップとして使用するには、スナップショットをセキュアな場所に移動する必要があります。OpenShift API をデータ保護のバックアップおよび復元ソリューションに使用できます。
- ボリュームスナップショットが作成された状態に戻します。
5.4.5.1. シングルノード OpenShift でのボリュームスナップショットの作成 リンクのコピーリンクがクリップボードにコピーされました!
シンプールの使用可能な容量とオーバープロビジョニングの制限に基づいて、ボリュームスナップショットを作成できます。LVM Storage は、lvms-<deviceclass-name> という名前で VolumeSnapshotClass を作成します。
前提条件
-
永続ボリューム要求 (PVC) が
Bound状態であることを確認しました。これは、一貫性のあるスナップショットに必要です。 - スナップショットを作成する前に、PVC へのすべての I/O を停止しました。
手順
-
ocコマンドを実行する必要があるシングルノード OpenShift にログインします。 次の YAML を
lvms-vol-snapshot.yamlなどの名前でファイルに保存します。ボリュームスナップショットを作成する YAML の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PVC と同じ namespace で次のコマンドを実行して、スナップショットを作成します。
oc create -f lvms-vol-snapshot.yaml
# oc create -f lvms-vol-snapshot.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
PVC の読み取り専用コピーがボリュームスナップショットとして作成されます。
5.4.5.2. シングルノード OpenShift でのボリュームスナップショットの復元 リンクのコピーリンクがクリップボードにコピーされました!
ボリュームスナップショットを復元すると、新しい永続ボリューム要求 (PVC) が作成されます。復元される PVC はボリュームスナップショットおよびソース PVC とは切り離されています。
前提条件
- ストレージクラスは、ソース PVC のストレージクラスと同じである必要がある。
要求された PVC のサイズは、スナップショットのソースボリュームのサイズと同じである必要がある。
重要スナップショットは、スナップショットのソースボリュームと同じサイズの PVC に復元される必要があります。より大きな PVC が必要な場合は、スナップショットが正常に復元された後に PVC のサイズを変更できます。
手順
- ソース PVC のストレージクラス名とボリュームスナップショット名を特定します。
次の YAML を
lvms-vol-restore.yamlなどの名前でファイルに保存して、スナップショットを復元します。PVC を復元する YAML の例。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow スナップショットと同じ namespace で次のコマンドを実行して、ポリシーを作成します。
oc create -f lvms-vol-restore.yaml
# oc create -f lvms-vol-restore.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.5.3. シングルノード OpenShift でのボリュームスナップショットの削除 リンクのコピーリンクがクリップボードにコピーされました!
ボリュームスナップショットリソースと永続ボリューム要求 (PVC) を削除できます。
手順
次のコマンドを実行して、ボリュームスナップショットリソースを削除します。
oc delete volumesnapshot <volume_snapshot_name> -n <namespace>
# oc delete volumesnapshot <volume_snapshot_name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記永続ボリューム要求 (PVC) を削除しても、PVC のスナップショットは削除されません。
復元されたボリュームスナップショットを削除するには、次のコマンドを実行して、ボリュームスナップショットを復元するために作成された PVC を削除します。
oc delete pvc <pvc_name> -n <namespace>
# oc delete pvc <pvc_name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.6. シングルノード OpenShift のボリュームのクローン作成 リンクのコピーリンクがクリップボードにコピーされました!
クローンは、既存のストレージボリュームの複製であり、他の標準ボリュームと同じように使用できます。
5.4.6.1. シングルノード OpenShift でのボリュームクローンの作成 リンクのコピーリンクがクリップボードにコピーされました!
ボリュームのクローンを作成して、データのポイントインタイムコピーを作成します。永続ボリューム要求は別のサイズでクローンできません。
クローン作成された PVC には書き込みアクセス権限があります。
前提条件
-
PVC が
Bound状態であることを確認しました。これは、一貫性のあるスナップショットに必要です。 -
StorageClassがソース PVC のものと同じであることを確認しました。
手順
- ソース PVC のストレージクラスを特定します。
ボリュームクローンを作成するには、次の YAML を
lvms-vol-clone.yamlなどの名前でファイルに保存します。ボリュームをクローン作成する YAML の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ソース PVC と同じ namespace にポリシーを作成します。
oc create -f lvms-vol-clone.yaml
# oc create -f lvms-vol-clone.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.6.2. シングルノード OpenShift でのクローンボリュームの削除 リンクのコピーリンクがクリップボードにコピーされました!
クローン作成されたボリュームを削除できます。
手順
クローン作成されたボリュームを削除するには、次のコマンドを実行して、クローン作成された PVC を削除します。
oc delete pvc <clone_pvc_name> -n <namespace>
# oc delete pvc <clone_pvc_name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.7. LVM Storage の監視 リンクのコピーリンクがクリップボードにコピーされました!
クラスターモニタリングを有効にするには、LVM Storage をインストールした namespace に次のラベルを追加する必要があります。
openshift.io/cluster-monitoring=true
openshift.io/cluster-monitoring=true
RHACM でクラスターモニタリングを有効にする方法の詳細は、可観測性 および カスタムメトリクスの追加 を参照してください。
5.4.7.1. メトリクス リンクのコピーリンクがクリップボードにコピーされました!
メトリクスを表示することで、LVM Storage を監視できます。
次の表は、topolvm メトリクスを説明しています。
| アラート | 説明 |
|---|---|
|
| LVM シンプールで使用されているデータ領域の割合を示します。 |
|
| LVM シンプールで使用されているメタデータ領域の割合を示します。 |
|
| LVM シンプールのサイズをバイト単位で示します。 |
|
| LVM ボリュームグループ内の利用可能な領域をバイト単位で示します。 |
|
| LVM ボリュームグループのサイズをバイト単位で示します。 |
|
| LVM シンプールの利用可能なオーバープロビジョニングサイズをバイト単位で示します。 |
メトリクスは 10 分ごとに、または変更 (シンプールに新しい論理ボリュームが作成されるなど) があったときに更新されます。
5.4.7.2. アラート リンクのコピーリンクがクリップボードにコピーされました!
シンプールとボリュームグループが最大ストレージ容量に達すると、それ以降の操作は失敗します。これにより、データ損失が発生する可能性があります。
LVM Storage は、シンプールとボリュームグループの使用量が特定の値を超えると、次のアラートを送信します。
| アラート | 説明 |
|---|---|
|
| このアラートは、ボリュームグループとシンプールの両方の使用量がノード上で 75% を超えるとトリガーされます。データの削除またはボリュームグループの拡張が必要です。 |
|
| このアラートは、ボリュームグループとシンプールの両方の使用量がノード上で 85% を超えるとトリガーされます。この場合、ボリュームグループは、かなりいっぱいになっています。データの削除またはボリュームグループの拡張が必要です。 |
|
| このアラートは、ボリュームグループ内のシンプールのデータ使用量がノード上で 75% を超えるとトリガーされます。データの削除またはシンプールの拡張が必要です。 |
|
| このアラートは、ボリュームグループ内のシンプールのデータ使用量がノード上で 85% を超えるとトリガーされます。データの削除またはシンプールの拡張が必要です。 |
|
| このアラートは、ボリュームグループ内のシンプールのメタデータ使用量がノード上で 75% を超えるとトリガーされます。データの削除またはシンプールの拡張が必要です。 |
|
| このアラートは、ボリュームグループ内のシンプールのメタデータ使用量がノード上で 85% を超えるとトリガーされます。データの削除またはシンプールの拡張が必要です。 |
5.4.8. must-gather を使用したログファイルおよび診断情報のダウンロード リンクのコピーリンクがクリップボードにコピーされました!
LVM Storage が問題を自動的に解決できない場合、must-gather ツールを使用してログファイルと診断情報を収集し、ユーザーまたは Red Hat サポートが問題を確認して解決策を決定できるようにします。
手順
LVM Storage クラスターに接続されているクライアントから
must-gatherコマンドを実行します。oc adm must-gather --image=registry.redhat.io/lvms4/lvms-must-gather-rhel8:v4.13 --dest-dir=<directory_name>
$ oc adm must-gather --image=registry.redhat.io/lvms4/lvms-must-gather-rhel8:v4.13 --dest-dir=<directory_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.9. LVM ストレージ参照 YAML ファイル リンクのコピーリンクがクリップボードにコピーされました!
サンプルの LVMCluster カスタムリソース (CR) では、YAML ファイルのすべてのフィールドについて説明しています。
LVMCluster CR の例
- 1
- クラスター上に作成される LVM ボリュームグループ。現在、1 つの
deviceClassのみがサポートされています。 - 2
- ノード上に作成される LVM ボリュームグループの名前。
- 3
- LVM ボリュームグループを作成するノード。フィールドが空の場合、すべてのノードが考慮されます。
- 4
- ノードセレクター要件のリスト。
- 5
- LVM ボリュームグループの作成に使用されるデバイスパスのリスト。このフィールドが空の場合、ノード上のすべての未使用ディスクが使用されます。
- 6
- LVM シンプールの設定。
- 7
- LVM ボリュームグループに作成されるシンプールの名前。
- 8
- シンプールの作成に使用する LVM ボリュームグループの残りの領域の割合。
- 9
- シンプールで使用可能なストレージと比較して、追加のストレージをプロビジョニングできる係数。
- 10
deviceClassのステータス。- 11
- 各ノードの LVM ボリュームグループのステータス。
- 12
- LVM ボリュームグループの作成に使用されるデバイスのリスト。
- 13
deviceClassが作成されたノード。- 14
- ノード上の LVM ボリュームグループのステータス。
- 15
- このフィールドは非推奨です。
- 16
LVMClusterのステータス。
5.4.10. 永続ストレージのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
論理ボリュームマネージャー (LVM) ストレージを使用して永続ストレージを設定するときに、トラブルシューティングが必要ないくつかの問題が発生する可能性があります。
5.4.10.1. 保留状態でスタックしている PVC を調査する リンクのコピーリンクがクリップボードにコピーされました!
永続ボリューム要求 (PVC) は、次の理由により Pending 状態のままになることがあります。
- コンピューティングリソースが足りない
- ネットワークの問題
- ストレージクラスまたはノードセレクターが一致していない
- 利用可能な永続ボリューム (PV) がない
-
PV を持つノードが
Not Ready状態にある
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとして OpenShift CLI (oc) にログインしている。
手順
次のコマンドを実行して、PVC のリストを取得します。
oc get pvc
$ oc get pvcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lvms-test Pending lvms-vg1 11s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE lvms-test Pending lvms-vg1 11sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
Pending状態のままになっている PVC に関連するイベントを検査します。oc describe pvc <pvc_name>
$ oc describe pvc <pvc_name>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<pvc_name>を PVC の名前に置き換えます。たとえば、lvms-vg1です。
出力例
Type Reason Age From Message ---- ------ ---- ---- ------- Warning ProvisioningFailed 4s (x2 over 17s) persistentvolume-controller storageclass.storage.k8s.io "lvms-vg1" not found
Type Reason Age From Message ---- ------ ---- ---- ------- Warning ProvisioningFailed 4s (x2 over 17s) persistentvolume-controller storageclass.storage.k8s.io "lvms-vg1" not foundCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.10.2. ストレージクラスがない状態からの回復 リンクのコピーリンクがクリップボードにコピーされました!
storage class not found というエラーが発生した場合は、LVMCluster カスタムリソース (CR) をチェックし、すべての論理ボリュームマネージャー (LVM) ストレージ Pod が Running 状態であることを確認します。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとして OpenShift CLI (oc) にログインしている。
手順
以下のコマンドを実行して、
LVMClusterCR が存在することを確認します。oc get lvmcluster -n openshift-storage
$ oc get lvmcluster -n openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME AGE my-lvmcluster 65m
NAME AGE my-lvmcluster 65mCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
LVMClusterCR が存在しない場合は、LVMClusterCR を作成します。詳細は、シングルノード OpenShift ワーカーノードでの論理ボリュームマネージャークラスターの作成を参照してください。 openshift-storagenamespace で、次のコマンドを実行して、すべての LVM ストレージ Pod がRunning状態であることを確認します。oc get pods -n openshift-storage
$ oc get pods -n openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE lvms-operator-7b9fb858cb-6nsml 3/3 Running 0 70m topolvm-controller-5dd9cf78b5-7wwr2 5/5 Running 0 66m topolvm-node-dr26h 4/4 Running 0 66m vg-manager-r6zdv 1/1 Running 0 66m
NAME READY STATUS RESTARTS AGE lvms-operator-7b9fb858cb-6nsml 3/3 Running 0 70m topolvm-controller-5dd9cf78b5-7wwr2 5/5 Running 0 66m topolvm-node-dr26h 4/4 Running 0 66m vg-manager-r6zdv 1/1 Running 0 66mCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドの出力には、以下の Pod の実行中のインスタンスが含まれている必要があります。
-
lvms-operator -
vg-manager -
topolvm-controller topolvm-nodetopolvm-nodePod がInit状態のままになっている場合は、LVM ストレージが使用できるディスクが見つからないことが原因です。この問題のトラブルシューティングに必要な情報を取得するには、以下のコマンドを実行してvg-managerPod のログを確認します。oc logs -l app.kubernetes.io/component=vg-manager -n openshift-storage
$ oc logs -l app.kubernetes.io/component=vg-manager -n openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
5.4.10.3. ノード障害からの回復 リンクのコピーリンクがクリップボードにコピーされました!
クラスター内のノード障害が原因で、永続ボリューム要求 (PVC) が Pending 状態のままになることがあります。
障害が発生したノードを特定するには、topolvm-node Pod の再起動回数を調べることができます。再起動回数の増加は、基礎となるノードに潜在的な問題があることを示しており、さらなる調査とトラブルシューティングが必要になる場合があります。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとして OpenShift CLI (oc) にログインしている。
手順
次のコマンドを実行して、
topolvm-nodePod インスタンスの再起動回数を調べます。oc get pods -n openshift-storage
$ oc get pods -n openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のステップ
-
ノードの問題を解決した後も PVC が
Pending状態のままになっている場合は、強制クリーンアップを実行する必要があります。詳細は、「強制クリーンアップの実行」を参照してください。
5.4.10.4. ディスク障害からの回復 リンクのコピーリンクがクリップボードにコピーされました!
永続ボリューム要求 (PVC) に関連するイベントの検査中にエラーメッセージが表示された場合は、基になるボリュームまたはディスクに問題がある可能性があります。
ディスクおよびボリュームのプロビジョニングの問題が発生すると、Failed to provision volume with storage class <storage_class_name> などの一般的なエラーメッセージが表示されます。一般的なエラーメッセージの後には、特定のボリューム障害のエラーメッセージが続きます。
以下の表は、ボリューム障害のエラーメッセージを説明しています。
| Error message | 説明 |
|---|---|
|
| ボリュームがすでに存在するかどうかを確認する際に問題が発生したことを示します。ボリューム検証の失敗は、ネットワーク接続の問題やその他の障害によって発生する可能性があります。 |
|
| 使用可能な永続ボリューム (PV) が PVC の要件と一致しない場合、ボリュームのバインドに失敗する可能性があります。 |
|
| このエラーは、ボリュームをノードにマウントしようとしたときに問題が発生したことを示します。ディスクに障害が発生した場合、Pod が PVC を使用しようとしたときにこのエラーが表示されることがあります。 |
|
| このエラーは、ノードからボリュームをアンマウントしようとしたときに問題が発生したことを示します。ディスクに障害が発生した場合、Pod が PVC を使用しようとしたときにこのエラーが表示されることがあります。 |
|
|
このエラーは、 |
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとして OpenShift CLI (oc) にログインしている。
手順
次のコマンドを実行して、PVC に関連付けられたイベントを検査します。
oc describe pvc <pvc_name>
$ oc describe pvc <pvc_name>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<pvc_name>を PVC の名前に置き換えます。
- 問題が発生しているホストへの直接接続を確立します。
- ディスクの問題を解決します。
次のステップ
- ディスクの問題を解決した後もボリューム障害メッセージが続く場合や再発する場合は、強制クリーンアップを実行する必要があります。詳細は、「強制クリーンアップの実行」を参照してください。
5.4.10.5. 強制クリーンアップの実行 リンクのコピーリンクがクリップボードにコピーされました!
トラブルシューティング手順を完了した後もディスクまたはノード関連の問題が解決しない場合は、強制クリーンアップを実行する必要があります。強制クリーンアップは、永続的な問題に対処し、論理ボリュームマネージャー (LVM) ストレージが確実に適切に機能するために使用されます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとして OpenShift CLI (oc) にログインしている。 - LVM ストレージを使用して作成されたすべての永続ボリューム要求 (PVC) が削除されている。
- LVM ストレージを使用して作成された PVC を使用している Pod を停止している。
手順
次のコマンドを実行して、
openshift-storagenamespace に切り替えます。oc project openshift-storage
$ oc project openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、
LogicalVolumeカスタムリソース (CR) が存在するか確認します。oc get logicalvolume
$ oc get logicalvolumeCopy to Clipboard Copied! Toggle word wrap Toggle overflow LogicalVolumeCR が存在する場合は、以下のコマンドを実行して削除します。oc delete logicalvolume <name>
$ oc delete logicalvolume <name>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<name>をLogicalVolumeCR の名前に置き換えます。
LogicalVolumeCR を削除した後、以下のコマンドを実行してファイナライザーを削除します。oc patch logicalvolume <name> -p '{"metadata":{"finalizers":[]}}' --type=merge$ oc patch logicalvolume <name> -p '{"metadata":{"finalizers":[]}}' --type=merge1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<name>をLogicalVolumeCR の名前に置き換えます。
以下のコマンドを実行して、
LVMVolumeGroupCR が存在するか確認します。oc get lvmvolumegroup
$ oc get lvmvolumegroupCopy to Clipboard Copied! Toggle word wrap Toggle overflow LVMVolumeGroupCR が存在する場合は、以下のコマンドを実行して削除します。oc delete lvmvolumegroup <name>
$ oc delete lvmvolumegroup <name>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<name>をLVMVolumeGroupCR の名前に置き換えます。
LVMVolumeGroupCR を削除した後、以下のコマンドを実行してファイナライザーを削除します。oc patch lvmvolumegroup <name> -p '{"metadata":{"finalizers":[]}}' --type=merge$ oc patch lvmvolumegroup <name> -p '{"metadata":{"finalizers":[]}}' --type=merge1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<name>をLVMVolumeGroupCR の名前に置き換えます。
以下のコマンドを実行して、
LVMVolumeGroupNodeStatusCR を削除します。oc delete lvmvolumegroupnodestatus --all
$ oc delete lvmvolumegroupnodestatus --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
LVMClusterCR を削除します。oc delete lvmcluster --all
$ oc delete lvmcluster --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow LVMClusterCR を削除した後、以下のコマンドを実行してファイナライザーを削除します。oc patch lvmcluster <name> -p '{"metadata":{"finalizers":[]}}' --type=merge$ oc patch lvmcluster <name> -p '{"metadata":{"finalizers":[]}}' --type=merge1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<name>をLVMClusterCR の名前に置き換えます。