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. OpenShift Container Platform Web コンソールを使用した LVM ストレージのインストール リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Container Platform OperatorHub を使用して LVM ストレージをインストールできます。
前提条件
- シングルノード OpenShift クラスターにアクセスできます。
-
cluster-adminおよび Operator のインストール権限を持つアカウントを使用しています。
手順
- OpenShift Container Platform Web コンソールにログインします。
-
Operators
OperatorHub をクリックします。 -
スクロールするか、
LVM Storageを Filter by keyword ボックスに入力して、LVM Storage を見つけます。 - Install をクリックします。
Install Operator ページで、以下のオプションを設定します。
- stable-4.12 としての Update Channel。
- クラスター上の特定の namespace としての Installation Mode。
-
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.3. 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.4. 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 ストレージのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
現在、シングルノード OpenShift クラスターで、OpenShift Data Foundation Logical Volume Manager Operator 4.11 から LVM Storage 4.12 にアップグレードすることはできません。
このプロセス中、データは保持されません。
手順
- 永続ボリューム要求 (PVC) で保持するデータをバックアップします。
- OpenShift Data Foundation Logical Volume Manager Operator とその Pod によってプロビジョニングされたすべての PVC を削除します。
- OpenShift Container Platform 4.12 に LVM ストレージを再インストールします。
- ワークロードを再作成します。
- 4.12 へのアップグレード後に作成された PVC にバックアップデータをコピーします。
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-rhel9:v4.12 --dest-dir=<directory_name>
$ oc adm must-gather --image=registry.redhat.io/lvms4/lvms-must-gather-rhel9:v4.12 --dest-dir=<directory_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.8.1. 保留状態でスタックしている PVC を調査する リンクのコピーリンクがクリップボードにコピーされました!
Persistent Volume Claim (PVC) は、さまざまな理由で Pending 状態になることがあります。以下に例を示します。
- コンピューティングリソースが不十分
- ネットワークの問題
- ストレージクラスまたはノードセレクターが一致していない
- 利用可能なボリュームがない
-
永続ボリューム (PV) を持つノードは
Not Ready状態です
oc description コマンドを使用してスタック PVC の詳細を確認し、原因を特定します。
手順
次のコマンドを実行して、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.8.2. 不足している LVMS または Operator コンポーネントからの回復 リンクのコピーリンクがクリップボードにコピーされました!
ストレージクラスが「見つからない」エラーが発生した場合は、LVMCluster リソースをチェックし、すべての論理ボリュームマネージャーストレージ (LVMS) Pod が実行していることを確認してください。LVMCluster リソースが存在しない場合は作成できます。
手順
次のコマンドを実行して、LVMCluster リソースの存在を確認します。
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 クラスターに
LVMClusterリソースがない場合は、次のコマンドを実行して LVMCluster リソースを作成します。oc create -n openshift-storage -f <custom_resource>
$ oc create -n openshift-storage -f <custom_resource>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<custom_resource>を、要件に合わせたカスタムリソース URL またはファイルに置き換えます。
カスタムリソースの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、LVMS のすべての Pod が
openshift-storagenamespace で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 予期される出力は、
lvms-operatorおよびvg-managerの 1 つの実行インスタンスです。各ノードには、topolvm-controllerおよびtopolvm-nodeのインスタンスが 1 つ必要です。topolvm-nodeがInit状態でスタックしている場合は、LVMS が使用できるディスクを見つけることができません。トラブルシューティングに必要な情報を取得するには、次のコマンドを実行して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.8.4. ディスク障害からの回復 リンクのコピーリンクがクリップボードにコピーされました!
Persistent Volume Claim (PVC) に関連するイベントの検査中にエラーメッセージが表示された場合は、基になるボリュームまたはディスクに問題がある可能性があります。ディスクとボリュームのプロビジョニングの問題は、多くの場合、最初に Failed to provision volume with StorageClass <storage_class_name> などの一般的なエラーが発生します。通常、2 番目のより具体的なエラーメッセージが続きます。
手順
次のコマンドを実行して、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 の名前に置き換えます。ディスクまたはボリューム障害のエラーメッセージとその原因の例をいくつか示します。- ボリュームの存在を確認できない: ボリュームがすでに存在するかどうかの確認で問題が発生したことを示します。ボリューム検証の失敗は、ネットワーク接続の問題やその他の障害によって発生する可能性があります。
- バインドボリュームへの失敗: 利用可能な永続ボリューム (PV) が PVC の要件と一致しない場合、ボリュームのバインドに失敗する可能性があります。
- FailedMount または FailedUnMount: このエラーは、ボリュームをノードにマウントしようとしたとき、またはノードからボリュームをアンマウントしようとしたときの問題を示します。ディスクに障害が発生した場合、Pod が PVC を使用しようとしたときにこのエラーが表示されることがあります。
-
ボリュームはすでに 1 つのノードに排他的に接続されており、別のノードには接続できない: このエラーは、
ReadWriteManyアクセスモードをサポートしていないストレージソリューションで発生する可能性があります。
- 問題が発生しているホストへの直接接続を確立します。
- ディスクの問題を解決します。
ディスクの問題を解決した後、エラーメッセージが続くか再発する場合は、強制クリーンアップ手順の実行が必要になる場合があります。
5.4.8.5. 強制クリーンアップの実行 リンクのコピーリンクがクリップボードにコピーされました!
トラブルシューティング手順を完了した後もディスクまたはノード関連の問題が解決しない場合は、強制クリーンアップ手順の実行が必要になる場合があります。強制クリーンアップは、永続的な問題に包括的に対処し、LVMS が適切に機能することを保証するために使用されます。
前提条件
- 論理ボリュームマネージャーストレージ (LVMS) ドライバーを使用して作成された永続ボリュームクレーム (PVC) はすべて削除されました。
- これらの PVC を使用する Pod は停止されました。
手順
次のコマンドを実行して、
openshift-storagenamespace に切り替えます。oc project openshift-storage
$ oc project openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
Logical Volumeのカスタムリソース (CR) が残っていないことを確認します。oc get logicalvolume
$ oc get logicalvolumeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
No resources found
No resources foundCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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>を CR の名前に置き換えます。
ファイナライザーを削除した後、次のコマンドを実行して CR を削除します。
oc delete logicalvolume <name>
$ oc delete logicalvolume <name>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<name>を CR の名前に置き換えます。
次のコマンドを実行して、
LVMVolumeGroupCR が残っていないことを確認します。oc get lvmvolumegroup
$ oc get lvmvolumegroupCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
No resources found
No resources foundCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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>を CR の名前に置き換えます。
ファイナライザーを削除した後、次のコマンドを実行して CR を削除します。
oc delete lvmvolumegroup <name>
$ oc delete lvmvolumegroup <name>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<name>を CR の名前に置き換えます。
次のコマンドを実行して、
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