シングルノード OpenShift クラスターでの OpenShift Data Foundation のデプロイと管理
シングルノード OpenShift クラスターに OpenShift Data Foundation をデプロイおよび管理するための手順。
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
Red Hat ドキュメントへのフィードバック (英語のみ)
Red Hat ドキュメントに対するご意見をお聞かせください。ドキュメントの改善点があれば、ぜひお知らせください。フィードバックをお寄せいただくには、以下をご確認ください。
特定の部分についての簡単なコメントをお寄せいただく場合は、以下をご確認ください。
- ドキュメントの表示が Multi-page HTML 形式になっていていることを確認してください。ドキュメントの右上隅に Feedback ボタンがあることを確認してください。
- マウスカーソルを使用して、コメントを追加するテキストの部分を強調表示します。
- 強調表示されたテキストの下に表示される Add Feedback ポップアップをクリックします。
- 表示される指示に従ってください。
より詳細なフィードバックをお寄せいただく場合は、Bugzilla のチケットを作成してください。
- Bugzilla の Web サイトに移動します。
- Component セクションで、documentation を選択します。
- Description フィールドに、ドキュメントの改善に向けたご提案を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- Submit Bug をクリックします。
はじめに
Red Hat OpenShift Data Foundation は、単一ノードの OpenShift (SNO) クラスターで Red Hat OpenShift Data Foundation Logical Volume Manager Operator を使用した OpenShift Data Foundation のデプロイをサポートします。この Operator は、TopoLVM CSI ドライバーを使用して、ローカルストレージを動的にプロビジョニングします。
Red Hat OpenShift Data Foundation Logical Volume Manager Operator は、論理ボリュームマネージャーを使用してシンプロビジョニングされたボリュームを作成し、単一ノードの限られたリソースの SNO クラスターでブロックストレージの動的プロビジョニングを提供します。
Red Hat OpenShift Data Foundation Logical Volume Manager Operator を単一ノードの Openshift ベアメタルまたはユーザーによってプロビジョニングされたインフラストラクチャークラスターにデプロイし、ワークロードのストレージを動的にプロビジョニングするように設定できます。
オペレーターは、使用可能なすべての未使用ディスクを使用してボリュームグループを作成し、ボリュームグループが 90% のサイズで単一のシンプールを作成します。ボリュームグループの残りの 10% は、必要に応じてシンプールを拡張することにより、データ回復を可能にするために自由に使用できます。このようなリカバリーは手動で実行する必要がある場合があります。
永続ボリュームクレーム (PVC) と Logical Volume Manager Operator によってプロビジョニングされたボリュームスナップショットを使用して、ストレージをリクエストし、ボリュームスナップショットを作成できます。
Red Hat OpenShift Data Foundation Logical Volume Manager Operator は、シンプロビジョニング機能を利用するためにデフォルトのオーバープロビジョニングの制限を 10 に設定します。シングルノード OpenShift クラスターで作成できるボリュームとボリュームスナップショットの合計サイズは、シンプールのサイズの 10 倍です。
以下のいずれかを使用して、単一ノードの OpenShift クラスターに OpenShift Data Foundation をデプロイできます。
- Red Hat Advanced Cluster Management for Kubernetes (RHACM)
- OpenShift Web コンソール
第1章 RHACM を使用した単一ノードの OpenShift クラスターへの OpenShift Data Foundation のデプロイ
1.1. RHACM を使用したデプロイの要件
OpenShift Data Foundation Logical Volume Manager Operator の単一ノード Openshift クラスターへのデプロイを開始する前に、以下の要件を満たしていることを確認してください。
- OpenShift クラスターに Red Hat Advanced Cluster Management for Kubernetes (RHACM) がインストールされている。詳細は、 Red Hat Advanced Cluster Management for Kubernetes: Install を参照してください。
- すべてのマネージド SNO クラスターには、ストレージのプロビジョニングに使用される専用のディスクがあります。
1.2. RHACM を使用した OpenShift Data Foundation Logical Volume Manager Operator のインストール
OpenShift Data Foundation Logical Volume Manager Operator は、Red Hat Advanced Cluster Management for Kubernetes (RHACM) を使用して単一ノード OpenShift (SNO) クラスターにデプロイされます。RHACM に Policy を作成して、PlacementRule
で指定したセレクターに一致するマネージドクラスターに適用される場合に Operator をデプロイし、設定します。このポリシーは、後にインポートされ、PlacementRule
を満たすクラスターにも適用されます。
前提条件
-
cluster-admin
および Operator のインストールパーミッションを持つアカウントを使用して RHACM クラスターにアクセスできる。 - OpenShift Data Foundation Logical Volume Manager Operator で使用される各 SNO クラスター上の専用ディスク。
他のストレージプロビジョナーが SNO クラスターにインストールされていないことを確認します。OpenShift Data Foundation Logical Volume Manager Operator は、ノード上の利用可能なすべてのディスクを使用するため、唯一のストレージプロビジョナーである必要があります。
手順
OpenShift 認証情報を使用して RHACM CLI にログインします。
詳細は、Install Red Hat Advanced Cluster Management for Kubernetes を参照してください。
ポリシーを作成する namespace を作成します。
# oc create ns lvm-policy-ns
次の YAML を
policy-lvm-operator.yaml
などの名前でファイルに保存して、ポリシーを作成します。# This policy verifies the installation of the official version of the {product-name-short} # Logical Volume Manager Operator on the managed clusters. # If set to "enforce" it installs the operator. # Used APIs: OLM, ODF-LVMO #https://github.com/operator-framework/operator-lifecycle-manager # https://github.com/red-hat-storage/lvm-operator apiVersion: apps.open-cluster-management.io/v1 kind: PlacementRule metadata: name: placement-install-odf-lvm-operator spec: clusterConditions: - status: "True" type: ManagedClusterConditionAvailable clusterSelector: matchExpressions: - key: vendor operator: In values: - OpenShift --- apiVersion: policy.open-cluster-management.io/v1 kind: PlacementBinding metadata: name: binding-install-odf-lvm-operator placementRef: apiGroup: apps.open-cluster-management.io kind: PlacementRule name: placement-install-odf-lvm-operator subjects: - apiGroup: policy.open-cluster-management.io kind: Policy name: install-odf-lvm-operator --- 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-odf-lvm-operator spec: disabled: false remediationAction: enforce policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: install-odf-lvm-operator spec: object-templates: - complianceType: musthave objectDefinition: 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-storage - complianceType: musthave objectDefinition: apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-storage-operatorgroup namespace: openshift-storage spec: targetNamespaces: - openshift-storage - complianceType: musthave objectDefinition: apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: odf-lvm-operator namespace: openshift-storage spec: installPlanApproval: Automatic name: odf-lvm-operator source: redhat-operators sourceNamespace: openshift-marketplace remediationAction: enforce severity: low - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: odf-lvmcluster spec: object-templates: - complianceType: musthave objectDefinition: apiVersion: lvm.topolvm.io/v1alpha1 kind: LVMCluster metadata: name: odf-lvmcluster namespace: openshift-storage spec: storage: deviceClasses: - name: vg1 thinPoolConfig: name: thin-pool-1 sizePercent: 90 overprovisionRatio: 10 remediationAction: enforce severity: low
次のコマンドを実行して、namespace にポリシーを作成します。
# oc create -f policy-lvm-operator.yaml -n lvm-policy-ns
ここで、
policy-lvm-operator.yaml
は、ポリシーが保存されるファイルの名前です。これにより、namespace
lvm-policy-ns
にPolicy
、PlacementRule
、およびPlacementBinding
が作成されます。Policy
は、PlacementRule に一致するクラスター上にNamespace
、OperatorGroup
、Subscription
、およびLVMCluster
リソースを作成します。これにより、選択基準に一致する SNO クラスターで Operator をデプロイし、ストレージをプロビジョニングするのに必要なリソースを設定するように設定します。operator は、インストール後に未使用のディスクをすべて使用します。
1.3. RHACM を使用してインストールされた OpenShift Data Foundation Logical Volume Manager Operator のアンインストール
RHACM を使用して Operator をインストールした際に、OpenShift Data Foundation Logical Volume Manager Operator をアンインストールするには、Operator のデプロイおよび設定用に作成した ACM ポリシーを削除する必要があります。ただし、ACM ポリシーを削除しても、ポリシーが作成したリソースは削除されません。リソースを削除する追加のポリシーを作成する必要があります。
ポリシーを削除しても作成されたリソースは削除されないため、次の手順を実行する必要があります。
- Logical Volume Manager Operator によってプロビジョニングされたすべての PVC およびボリュームスナップショットを削除します。
-
LVMCluster
リソースを削除して、ディスク上に作成された Logical Volume Manager リソースをクリーンアップします。 - operator をアンインストールするための追加のポリシーを作成します。
前提条件
ポリシーを削除する前に、以下が削除されていることを確認してください。
- OpenShift Data Foundation Logical Volume Manager Operator によってプロビジョニングされたストレージを使用するマネージドクラスター上のすべてのアプリケーション。
- OpenShift Data Foundation Logical Volume Manager Operator を使用してプロビジョニングされた Persistent Volume Claim(永続ボリューム要求、PVC) および永続ボリューム (PV)。
- OpenShift Data Foundation Logical Volume Manager Operator によってプロビジョニングされたすべてのボリュームスナップショット。
-
oc get logicalvolume
コマンドを使用して、論理ボリュームリソースが存在しないことを確認します。 -
cluster-admin
ロールを持つアカウントを使用した RHACM クラスターへのアクセス。
手順
OpenShift コマンドラインインターフェイスで、次のコマンドを使用して、ハブクラスターに OpenShift Data Foundation Logical Volume Manager Operator をデプロイおよび設定するのに作成した ACM ポリシーを削除します。
# oc delete -f policy-lvm-operator.yaml -n lvm-policy-ns
次の YAML を
odf-lvmcluster-deletion.yaml
などの名前でファイルに保存して、LVMCluster
を削除するためのポリシーを作成します。これにより、operator はクラスター上に作成したすべての Logical Volume Manager リソースをクリーンアップできます。apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: policy-lvmcluster-delete annotations: policy.open-cluster-management.io/standards: NIST SP 800-53 policy.open-cluster-management.io/categories: CM Configuration Management policy.open-cluster-management.io/controls: CM-2 Baseline Configuration spec: remediationAction: enforce disabled: false policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: policy-lvmcluster-removal spec: remediationAction: enforce # the policy-template spec.remediationAction is overridden by the preceding parameter value for spec.remediationAction. severity: low object-templates: - complianceType: mustnothave objectDefinition: kind: LVMCluster apiVersion: lvm.topolvm.io/v1alpha1 metadata: name: odf-lvmcluster namespace: openshift-storage # must have namespace 'openshift-storage' --- apiVersion: policy.open-cluster-management.io/v1 kind: PlacementBinding metadata: name: binding-policy-lvmcluster-delete placementRef: apiGroup: apps.open-cluster-management.io kind: PlacementRule name: placement-policy-lvmcluster-delete subjects: - apiGroup: policy.open-cluster-management.io kind: Policy name: policy-lvmcluster-delete --- apiVersion: apps.open-cluster-management.io/v1 kind: PlacementRule metadata: name: placement-policy-lvmcluster-delete spec: clusterConditions: - status: 'True' type: ManagedClusterConditionAvailable clusterSelector: matchExpressions: - key: vendor operator: In values: - OpenShift
次のコマンドを実行してポリシーを作成します。
# oc create -f odf-lvmcluster-deletion.yaml -n lvm-policy-ns
次の YAML を
check-odf-lvmcluster-deletion.yaml
などの名前でファイルに保存して、LVMCluster
CR が削除されたかどうかを確認するポリシーを作成します。apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: policy-lvmcluster-inform annotations: policy.open-cluster-management.io/standards: NIST SP 800-53 policy.open-cluster-management.io/categories: CM Configuration Management policy.open-cluster-management.io/controls: CM-2 Baseline Configuration spec: remediationAction: inform disabled: false policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: policy-lvmcluster-removal-inform spec: remediationAction: inform # the policy-template spec.remediationAction is overridden by the preceding parameter value for spec.remediationAction. severity: low object-templates: - complianceType: mustnothave objectDefinition: kind: LVMCluster apiVersion: lvm.topolvm.io/v1alpha1 metadata: name: odf-lvmcluster namespace: openshift-storage # must have namespace 'openshift-storage' --- apiVersion: policy.open-cluster-management.io/v1 kind: PlacementBinding metadata: name: binding-policy-lvmcluster-check placementRef: apiGroup: apps.open-cluster-management.io kind: PlacementRule name: placement-policy-lvmcluster-check subjects: - apiGroup: policy.open-cluster-management.io kind: Policy name: policy-lvmcluster-inform --- apiVersion: apps.open-cluster-management.io/v1 kind: PlacementRule metadata: name: placement-policy-lvmcluster-check spec: clusterConditions: - status: 'True' type: ManagedClusterConditionAvailable clusterSelector: matchExpressions: - key: vendor operator: In values: - OpenShift
次のコマンドを実行してポリシーを作成します。
# oc create -f check-odf-lvmcluster-deletion.yaml -n lvm-policy-ns
ポリシーのステータスを確認します。
# oc get policy -n lvm-policy-ns NAME REMEDIATION ACTION COMPLIANCE STATE AGE policy-lvmcluster-delete enforce Compliant 15m policy-lvmcluster-inform inform Compliant 15m
両方のポリシーに準拠したら、次の YAML を
odf-lvm-operator-remove-policy.yaml
などの名前のファイルに保存して、OpenShift Data Foundation Logical Volume Manager Operator をアンインストールするポリシーを作成します。apiVersion: apps.open-cluster-management.io/v1 kind: PlacementRule metadata: name: placement-uninstall-odf-lvm-operator spec: clusterConditions: - status: "True" type: ManagedClusterConditionAvailable clusterSelector: matchExpressions: - key: vendor operator: In values: - OpenShift --- apiVersion: policy.open-cluster-management.io/v1 kind: PlacementBinding metadata: name: binding-uininstall-odf-lvm-operator placementRef: apiGroup: apps.open-cluster-management.io kind: PlacementRule name: placement-uninstall-odf-lvm-operator subjects: - apiGroup: policy.open-cluster-management.io kind: Policy name: uninstall-odf-lvm-operator --- 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: uninstall-odf-lvm-operator spec: disabled: false policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: uninstall-odf-lvm-operator spec: object-templates: - complianceType: mustnothave objectDefinition: apiVersion: v1 kind: Namespace metadata: name: openshift-storage - complianceType: mustnothave objectDefinition: apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-storage-operatorgroup namespace: openshift-storage spec: targetNamespaces: - openshift-storage - complianceType: mustnothave objectDefinition: apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: odf-lvm-operator namespace: openshift-storage spec: installPlanApproval: Automatic name: odf-lvm-operator source: redhat-operators sourceNamespace: openshift-marketplace remediationAction: enforce severity: low - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: policy-remove-lvm-operator-crds spec: object-templates: - complianceType: mustnothave objectDefinition: apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: logicalvolumes.topolvm.cybozu.com - complianceType: mustnothave objectDefinition: apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: lvmclusters.lvm.topolvm.io - complianceType: mustnothave objectDefinition: apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: lvmvolumegroupnodestatuses.lvm.topolvm.io - complianceType: mustnothave objectDefinition: apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: lvmvolumegroups.lvm.topolvm.io remediationAction: enforce severity: high
次のコマンドを実行してポリシーを作成します。
# oc create -f odf-lvm-operator-remove-policy.yaml -ns lvm-policy-ns
第2章 OpenShift Web コンソールを使用した単一ノードの OpenShift クラスターへの OpenShift Data Foundation のデプロイ
2.1. OpenShift Web コンソールを使用した Red Hat OpenShift Data Foundation Logical Volume Manager Operator のインストール
Red Hat OpenShift Container Platform Operator Hub を使用して、Red Hat Red Hat OpenShift Data Foundation Logical Volume Manager Operator をインストールできます。
前提条件
-
cluster-admin
および Operator インストールのパーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできる。
他のストレージプロビジョナーが SNO クラスターにインストールされていないことを確認します。OpenShift Data Foundation Logical Volume Manager Operator は、ノード上の利用可能なすべてのディスクを使用するため、唯一のストレージプロビジョナーである必要があります。
手順
- OpenShift Web コンソールにログインします。
- Operators → OperatorHub をクリックします。
-
ODF LVM Operator
をスクロールするか、Filter by keyword ボックスに入力して、ODF LVM Operator を見つけます。 - Install をクリックします。
Install Operator ページで、以下のオプションを設定します。
- Channel を stable-4.11 として更新します。
- Installation Mode オプションに A specific namespace on the cluster を選択します。
-
Installed Namespace に Operator recommended namespace openshift-storage を選択します。namespace
openshift-storage
が存在しない場合、これは Operator のインストール時に作成されます。 承認ストラテジー を Automatic または Manual として選択します。
Automatic (自動) 更新を選択した場合、Operator Lifecycle Manager (OLM) は介入なしに、Operator の実行中のインスタンスを自動的にアップグレードします。
Manual 更新を選択した場合、OLM は更新要求を作成します。クラスター管理者は、Operator を新しいバージョンに更新できるように更新要求を手動で承認する必要があります。
- Install をクリックします。
検証手順
- ODF LVM Operator が、インストールが成功したことを示す緑色のチェックマークが表示されていることを確認します。
2.2. OpenShift Data Foundation Logical Volume Manager クラスターの作成
OpenShift Data Foundation Logical Volume Manager Operator をインストールした後、論理ボリュームマネージャークラスターを作成します。
前提条件
- OpenShift Data Foundation Logical Volume Manager Operator は、Operator ハブからインストールする必要があります。
手順
OpenShift Web コンソールで、Operators → Installed Operators をクリックし、インストールされた Operator を表示します。
選択された Project が
openshift-storage
であることを確認します。- ODF LVM operator をクリックしてから、LVMCluster の下の Create instance をクリックします。
- LVMCluster の作成ページで、Form view または YAML view のいずれかを選択します。
- クラスターの名前を入力します。
- Create をクリックします。
検証手順
- OpenShift Web コンソールの左側のペインから Storage → Storage Classes をクリックします。
-
ODF LVM クラスターの作成で
odf-lvm-<device-class-name>
ストレージクラスが作成されていることを確認します。デフォルトでは、vg1
は device-class-name になります。
2.3. OpenShift Web コンソールを使用してインストールされた OpenShift Data Foundation Logical Volume Manager Operator のアンインストール
前提条件
ポリシーを削除する前に、以下が削除されていることを確認してください。
- OpenShift Data Foundation Logical Volume Manager Operator によってプロビジョニングされたストレージを使用するマネージドクラスター上のすべてのアプリケーション。
- OpenShift Data Foundation Logical Volume Manager Operator を使用してプロビジョニングされた Persistent Volume Claim(永続ボリューム要求、PVC) および永続ボリューム (PV)。
- OpenShift Data Foundation Logical Volume Manager Operator によってプロビジョニングされたすべてのボリュームスナップショット。
-
oc get logicalvolume
コマンドを使用して、論理ボリュームリソースが存在しないことを確認します。
手順
プロジェクト
openshift-storage
を選択します。$ oc project openshift-storage
Pod を表示します。
$ oc get pods NAME READY STATUS RESTARTS AGE lvm-operator-controller-manager-54df65b5c4-n7bhb 3/3 Running 1 (45h ago) 7d2h topolvm-controller-645cb47cd4-kskqb 5/5 Running 5 (45h ago) 7d3h topolvm-node-7bqxp 4/4 Running 0 7d3h vg-manager-hwmg2 1/1 Running 0 7d
lvmcluster
を表示します。$ oc get lvmcluster NAME AGE odf-lvmcluster 7d3h
lvmcluster
を削除します。$ oc delete lvmcluster odf-lvmcluster lvmcluster.lvm.topolvm.io "odf-lvmcluster" deleted
lvmcluster
を表示して削除を確認します。$ oc get lvmcluster No resources found in openshift-storage namespace.
lvm-operator
Pod のみが実行されるまで待ちます。$ oc get pods NAME READY STATUS RESTARTS AGE lvm-operator-controller-manager-54df65b5c4-n7bhb 3/3 Running 1 (45h ago) 7d2h
プロジェクトを
default
に変更します。$ oc project default
プロジェクト
openshift-storage
を削除します。$ oc delete project openshift-storage
第3章 Logical Volume Manager Operator を使用したストレージのプロビジョニング
Operator のインストール中に作成されるストレージクラスを使用して、永続ボリュームクレーム (PVC) をプロビジョニングできます。ブロックおよびファイル PVC をプロビジョニングできますが、ストレージは、PVC を使用する Pod が作成された場合にのみ割り当てられます。
Red Hat OpenShift Data FoundationLogical Volume Manager Operator は、1GiB 単位で PVC をプロビジョニングします。要求されたストレージは、最も近い GiB に切り上げられます。
手順
Red Hat OpenShift Data Foundation Logical Volume Manager Operator がデプロイされたときに作成される StorageClass を特定します。
ストレージクラス名は、
odf-lvm-<device-class-name>
の形式です。device-class-name
は、ポリシー YAML の LVMCluster で指定したデバイスクラスの名前です。たとえば、deviceClass の名前がvg1
の場合、storageClass の名前はodf-lvm-vg1
です。次の YAML を
odf-lvm-storage-class.yaml
などの名前のファイルに保存して、アプリケーションがストレージを必要とする PVC を作成します。# Sample YAML to create a PVC # block pvc apiVersion: v1 kind: PersistentVolumeClaim metadata: name: lvm-block-1 namespace: default spec: accessModes: - ReadWriteOnce volumeMode: Block resources: requests: storage: 10Gi storageClassName: odf-lvm-vg1 --- # file pvc apiVersion: v1 kind: PersistentVolumeClaim metadata: name: lvm-file-1 namespace: default spec: accessModes: - ReadWriteOnce volumeMode: Filesystem resources: requests: storage: 10Gi storageClassName: odf-lvm-vg1
次のコマンドを実行してポリシーを作成します。
# oc create -f odf-lvm-storage-class.yaml -ns lvm-policy-ns
作成された PVC は、それらを使用する Pod をデプロイするまで保留状態のままになります。
第4章 OpenShift Data Foundation Logical Volume Manager Operator のモニタリング
OpenShift Web コンソールを使用して OpenShift Data Foundation Logical Volume Manager Operator をインストールすると、デフォルトでコンソールの Block and File
ダッシュボードを使用してクラスターを監視できます。ただし、RHACM を使用して OpenShift Data Foundation Logical Volume Manager Operator をインストールする場合、RHACM 可観測性を設定して、すべての SNO クラスターを 1 箇所から監視する必要があります。
RHACM ダッシュボードの Operator によってエクスポートされたメトリクスおよびトリガーされるアラートを表示して、OpenShift Data Foundation Logical Volume Manager Operator を監視できます。Observability ガイドの説明に従って、RHACM 可観測性を有効にします。
- メトリクス
-
Adding custom metrics セクションで指定されているように、次の
topolvm
メトリクスを許可リストに追加します。
topolvm_thinpool_data_percent topolvm_thinpool_metadata_percent topolvm_thinpool_size_bytes
-
Adding custom metrics セクションで指定されているように、次の
メトリクスは、10 分ごとに更新されるか、新しい論理ボリュームの作成など、シンプールに変更があったときに更新されます。
- アラート
- シンプールとボリュームグループがいっぱいになると、それ以降の操作は失敗し、データが失われる可能性があります。Logical Volume Manager Operator は、シンプールとボリュームグループの使用量が特定の値を超えると、次のアラートを送信します。
アラート | 説明 |
---|---|
VolumeGroupUsageAtThresholdNearFull | このアラートは、ボリュームグループとシンプールの使用率の両方がノードで 75% を超えたときにトリガーされます。データの削除またはボリュームグループの拡張が必要です。 |
VolumeGroupUsageAtThresholdCritical | このアラートは、ボリュームグループとシンプールの両方の使用率がノードで 85% を超えたときにトリガーされます。VolumeGroup が非常にいっぱいです。データの削除またはボリュームグループの拡張が必要です。 |
ThinPoolDataUsageAtThresholdNearFull | このアラートは、ボリュームグループのシンプールのデータ使用率がノード上で 75% を超えるとトリガーされます。データの削除またはシンプールの拡張が必要です。 |
ThinPoolDataUsageAtThresholdCritical | このアラートは、ボリュームグループのシンプールのデータ使用率がノード上で 85% を超えるとトリガーされます。データの削除またはシンプールの拡張が必要です。 |
ThinPoolMetaDataUsageAtThresholdNearFull | このアラートは、ボリュームグループのシンプールのメタデータ使用率がノードで 75% を超えると発生します。データの削除またはシンプールの拡張が必要です。 |
ThinPoolMetaDataUsageAtThresholdCritical | このアラートは、ボリュームグループのシンプールのメタデータ使用率がノード上で 85% を超えるとトリガーされます。データの削除またはシンプールの拡張が必要です。 |
第5章 シングルノード OpenShift のボリュームスナップショット
OpenShift Data Foundation Logical Volume Manager Operator によってプロビジョニングされた永続ボリューム (PV) のボリュームスナップショットを作成できます。複製されたボリュームのボリュームスナップショットを作成することもできます。ボリュームスナップショットは、次のことに役立ちます。
- アプリケーションデータをバックアップします (ボリュームスナップショットはバックアップではありません)
- ボリュームスナップショットが作成された状態に戻します
シンプールの使用可能な容量とオーバープロビジョニングの制限に基づいて、ボリュームスナップショットを作成できます。Red Hat OpenShift Data Foundation Logical Volume Manager Operator は、odf-lvm-<deviceclass-name>
という名前で VolumeSnapshotClass
を作成します。
5.1. シングルノード openshift でのボリュームスナップショットの作成
前提条件
- 一貫性のあるスナップショットを作成するには、PVC がバインド状態になっていることを確認してください。また、スナップショットを作成する前に、PVC へのすべての I/O が停止していることを確認してください。
手順
次の YAML を
odf-lvm-vol-snapshot.yaml
などの名前でファイルに保存して、ボリュームスナップショットのポリシーを作成します。# Sample YAML to create a volume snapshot apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshot metadata: name: lvm-block-1-snap spec: volumeSnapshotClassName: odf-lvm-vg1 source: persistentVolumeClaimName: lvm-block-1
次のコマンドを実行してポリシーを作成します。
# oc create -f odf-lvm-vol-snapshot.yaml -ns lvm-policy-ns
PVC の読み取り専用コピーがボリュームスナップショットとして作成されます。
5.2. シングルノード openshift でのボリュームスナップショットの復元
ボリュームスナップショットを復元する際に、新規の Persistent Volume Claim(永続ボリューム要求、PVC) が作成されます。復元される PVC はボリュームスナップショットおよびソース PVC とは切り離されています。
前提条件
- ストレージクラスは、ソース PVC のストレージクラスと同じである必要がある。
- 要求された PVC のサイズは、スナップショットのソースボリュームのサイズと同じである必要がある。
手順
- ソース PVC のストレージクラス名とボリュームスナップショット名を特定します。
次の YAML を
odf-lvm-vol-restore.yaml
などの名前でファイルに保存して、スナップショットを復元します。# Sample YAML to restore a PVC. kind: PersistentVolumeClaim apiVersion: v1 metadata: name: lvm-block-1-restore spec: accessModes: - ReadWriteOnce volumeMode: Block Resources: Requests: storage: 2Gi storageClassName: odf-lvm-vg1 dataSource: name: lvm-block-1-snap kind: VolumeSnapshot apiGroup: snapshot.storage.k8s.io
次のコマンドを実行してポリシーを作成します。
# oc create -f odf-lvm-vol-restore.yaml -ns lvm-policy-ns
5.3. シングルノード openshift でのボリュームスナップショットの削除
手順
ボリュームスナップショットを削除するには、ボリュームスナップショットリソースを削除します。
oc delete volumesnapshot <volume-snapshot-name> -n <namespace>
注記永続ボリューム要求 (PVC) を削除しても、PVC のスナップショットは削除されません。
- 復元されたボリュームスナップショットを削除するには、ボリュームスナップショットを復元するために作成された PVC を削除します。
oc delete pvc <pvc-name> -n <namespace>
第6章 シングルノード OpenShift のボリュームクローン作成
クローンは、既存のストレージボリュームの複製であり、他の標準ボリュームと同じように使用できます。ボリュームのクローンを作成し、データの特定の時点のコピーを作成します。永続ボリューム要求 (PVC) は別のサイズでクローンできません。
6.1. シングルノード openshift でのボリュームクローンの作成
前提条件
- ソース PVC が Bound 状態であり,使用中でないことを確認する。
- ストレージクラスが親のクラスと同じであることを確認してください。
手順
- ソース PVC のストレージクラスを特定します。
次の YAML を
odf-lvm-vol-clone.yaml
などの名前でファイルに保存して、ボリュームクローンを作成します。# Sample YAML to clone a volume # pvc-clone.yaml apiVersion: v1 kind: PersistentVolumeClaim Metadata: name: lvm-block-1-clone Spec: storageClassName: odf-lvm-vg1 dataSource: name: lvm-block-1 kind: PersistentVolumeClaim accessModes: - ReadWriteOnce volumeMode: Block Resources: Requests: storage: 2Gi The cloned PVC has write access.
- 次のコマンドを実行してポリシーを作成します。
# oc create -f odf-lvm-vol-clone.yaml -ns lvm-policy-ns
6.2. シングルノード openshift でクローンボリュームの削除
手順
- クローンボリュームを削除するには、クローン PVC を削除します。
oc delete pvc <clone-pvc-name> -n <namespace>