5.4. Logical Volume Manager Storage を使用した永続ストレージ
論理ボリュームマネージャー (LVM) ストレージは、TopoLVM CSI ドライバーを介して LVM2 を使用して、リソースが制限されたクラスター上でローカルストレージを動的にプロビジョニングします。
LVM Storage を使用すると、ボリュームグループ、永続ボリューム要求 (PVC)、ボリュームスナップショット、およびボリュームクローンを作成できます。
5.4.1. Logical Volume Manager Storage のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスターに論理ボリュームマネージャー (LVM) ストレージをインストールし、ワークロードのストレージを動的にプロビジョニングするように設定できます。
LVM Storage は、OpenShift Container Platform CLI (oc)、OpenShift Container Platform Web コンソール、または Red Hat Advanced Cluster Management (RHACM) を使用してインストールできます。
マルチノードクラスターで LVM Storage を使用する場合、LVM Storage はローカルストレージのプロビジョニングのみをサポートします。LVM Storage は、ノード間のストレージデータレプリケーションメカニズムをサポートしていません。単一障害点を回避するために、アクティブまたはパッシブレプリケーションメカニズムを通じてストレージデータを確実にレプリケーションする必要があります。
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 のインストール リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、OpenShift CLI を使用して LVM Storage をインストールできます。
LVM Storage Operator のデフォルトの namespace は openshift-lvm-storage です。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-adminおよび Operator インストール権限を持つユーザーとして OpenShift Container Platform にログインしている。
手順
namespace を作成するための設定を含む YAML ファイルを作成します。
namespace を作成するための YAML 設定の例
apiVersion: v1 kind: Namespace metadata: labels: openshift.io/cluster-monitoring: "true" pod-security.kubernetes.io/enforce: privileged pod-security.kubernetes.io/audit: privileged pod-security.kubernetes.io/warn: privileged name: openshift-lvm-storage以下のコマンドを実行して namespace を作成します。
$ oc create -f <file_name>OperatorGroupCR YAML ファイルを作成します。OperatorGroupCR の例apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-storage-operatorgroup namespace: openshift-lvm-storage spec: targetNamespaces: - openshift-storage以下のコマンドを実行して
OperatorGroupCR を作成します。$ oc create -f <file_name>SubscriptionCR YAML ファイルを作成します。SubscriptionCR の例apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: lvms namespace: openshift-lvm-storage spec: installPlanApproval: Automatic name: lvms-operator source: redhat-operators sourceNamespace: openshift-marketplace以下のコマンドを実行して
SubscriptionCR を作成します。$ oc create -f <file_name>
検証
LVM Storage がインストールされていることを確認するには、次のコマンドを実行します。
$ oc get csv -n openshift-lvm-storage -o custom-columns=Name:.metadata.name,Phase:.status.phase出力例
Name Phase 4.13.0-202301261535 Succeeded
5.4.1.3. Web コンソールを使用した LVM Storage のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用して LVM Storage をインストールできます。
LVM Storage Operator のデフォルトの namespace は openshift-lvm-storage です。
前提条件
- クラスターにアクセスできる。
-
cluster-adminおよび Operator インストール権限で OpenShift Container Platform にアクセスできる。
手順
- OpenShift Container Platform Web コンソールにログインします。
-
Ecosystem
Software Catalog をクリックします。 - ソフトウェアカタログページで LVM Storage をクリックします。
Operator Installation ページで次のオプションを設定します。
- stable-4.20 に Channel を更新 します。
- Installation Mode を A specific namespace on the cluster に設定します。
-
Installed Namespace を Operator recommended namespace openshift-storage に設定します。
openshift-lvm-storagenamespace が存在しない場合は、Operator のインストール中に作成されます。 Update approval で Automatic または Manual を選択します。
注記Automatic (自動) 更新を選択すると、手動による介入なしで、Operator Lifecycle Manager (OLM) によって LVM Storage の実行中のインスタンスが自動的に更新されます。
Manual 更新を選択した場合、OLM は更新要求を作成します。LVM Storage を新しいバージョンに更新するには、クラスター管理者が更新要求を手動で承認する必要があります。
- オプション: Enable Operator recommended cluster monitoring on this Namespace チェックボックスを選択します。
- Install をクリックします。
検証手順
- インストールが成功したことを示す緑色のチェックマークが LVM Storage に表示されていることを確認します。
5.4.1.4. 非接続環境での LVM Storage のインストール リンクのコピーリンクがクリップボードにコピーされました!
非接続環境の OpenShift Container Platform に LVM Storage をインストールできます。「関連情報」セクションに、この手順で参照されているすべてのセクションのリンクが記載されています。
前提条件
- 「非接続インストールミラーリングについて」セクションを確認した。
- OpenShift Container Platform イメージリポジトリーにアクセスできる。
- ミラーレジストリーを作成した。
手順
「イメージセット設定の作成」手順の手順に従います。LVM Storage の
ImageSetConfigurationカスタムリソース (CR) を作成するには、次のImageSetConfigurationCR 設定の例を使用できます。LVM Storage 用の
ImageSetConfigurationCR の例kind: ImageSetConfiguration apiVersion: mirror.openshift.io/v1alpha2 archiveSize: 41 storageConfig:2 registry: imageURL: example.com/mirror/oc-mirror-metadata3 skipTLS: false mirror: platform: channels: - name: stable-4.204 type: ocp graph: true5 operators: - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.206 packages: - name: lvms-operator7 channels: - name: stable8 additionalImages: - name: registry.redhat.io/ubi9/ubi:latest9 helm: {}- 1
- イメージセット内の各ファイルの最大サイズ (GiB 単位) を設定します。
- 2
- イメージセットを保存する場所を指定します。この場所は、レジストリーまたはローカルディレクトリーにすることができます。テクノロジープレビューの OCI 機能を使用している場合を除き、
storageConfigフィールドを設定する必要があります。 - 3
- レジストリーを使用する場合は、イメージストリームのストレージ URL を指定します。詳細は、イメージストリームを使用する理由 を参照してください。
- 4
- OpenShift Container Platform イメージの取得元のチャネルを指定します。
- 5
- OpenShift Update Service (OSUS) グラフイメージを生成するには、このフィールドを
trueに設定します。詳細は、OpenShift Update Service について を参照してください。 - 6
- OpenShift Container Platform イメージの取得元の Operator カタログを指定します。
- 7
- イメージセットに含める Operator パッケージを指定します。このフィールドが空の場合、カタログ内のすべてのパッケージが取得されます。
- 8
- イメージセットに含める Operator パッケージのチャネルを指定します。Operator パッケージのデフォルトチャネルは、そのチャネルのバンドルを使用しない場合でも含める必要があります。コマンド
$ oc mirror list operators --catalog=<catalog_name> --package=<package_name>を実行すると、デフォルトチャネルを見つけることができます。 - 9
- イメージセットに含める追加のイメージを指定します。
- 「イメージセットをミラーレジストリーにミラーリングする」セクションの手順に従います。
- 「イメージレジストリーのリポジトリーミラーリングの設定」セクションの手順に従います。
5.4.1.5. RHACM を使用した LVM Storage のインストール リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Advanced Cluster Management (RHACM) を使用してクラスターに LVM Storage をインストールするには、Policy カスタムリソース (CR) を作成する必要があります。LVM Storage をインストールするクラスターを選択するための基準を設定することもできます。
LVM Storage をインストールするために作成した Policy CR は、Policy CR の作成後にインポートまたは作成したクラスターにも適用されます。
前提条件
-
cluster-adminおよび Operator のインストール権限を持つアカウントを使用して、RHACM クラスターにアクセスできる。 - 各クラスターに、LVM Storage が使用できる専用のディスクがある。
- クラスターが RHACM によって管理されている。
手順
- OpenShift Container Platform の認証情報を使用して RHACM CLI にログインします。
namespace を作成します。
$ oc create ns <namespace>PolicyCR YAML ファイルを作成します。LVM Storage をインストールして設定するための
PolicyCR の例apiVersion: apps.open-cluster-management.io/v1 kind: PlacementRule metadata: name: placement-install-lvms spec: clusterConditions: - status: "True" type: ManagedClusterConditionAvailable clusterSelector:1 matchExpressions: - key: mykey operator: In values: - myvalue --- apiVersion: policy.open-cluster-management.io/v1 kind: PlacementBinding metadata: name: binding-install-lvms placementRef: apiGroup: apps.open-cluster-management.io kind: PlacementRule name: placement-install-lvms subjects: - apiGroup: policy.open-cluster-management.io kind: Policy name: install-lvms --- apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: annotations: policy.open-cluster-management.io/categories: CM Configuration Management policy.open-cluster-management.io/controls: CM-2 Baseline Configuration policy.open-cluster-management.io/standards: NIST SP 800-53 name: install-lvms spec: disabled: false remediationAction: enforce policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: install-lvms spec: object-templates: - complianceType: musthave objectDefinition:2 apiVersion: v1 kind: Namespace metadata: labels: openshift.io/cluster-monitoring: "true" pod-security.kubernetes.io/enforce: privileged pod-security.kubernetes.io/audit: privileged pod-security.kubernetes.io/warn: privileged name: openshift-lvm-storage - complianceType: musthave objectDefinition:3 apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-storage-operatorgroup namespace: openshift-lvm-storage spec: targetNamespaces: - openshift-lvm-storage - complianceType: musthave objectDefinition:4 apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: lvms namespace: openshift-lvm-storage spec: installPlanApproval: Automatic name: lvms-operator source: redhat-operators sourceNamespace: openshift-marketplace remediationAction: enforce severity: low次のコマンドを実行して
PolicyCR を作成します。$ oc create -f <file_name> -n <namespace>PolicyCR を作成すると、PlacementRuleCR で設定された選択基準に一致するクラスターに次のカスタムリソースが作成されます。-
Namespace -
OperatorGroup -
Subscription
-
LVM Storage Operator のデフォルトの namespace は openshift-lvm-storage です。