OpenShift Container Storage is now OpenShift Data Foundation starting with version 4.9.
ベアメタルインフラストラクチャーを使用した OpenShift Container Storage のデプロイ
ベアメタル環境のインストールおよび設定方法
概要
前書き リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Container Storage 4.6 は、接続環境または非接続環境での既存の Red Hat OpenShift Container Platform (RHOCP) ベアメタルクラスターへのデプロイメントをサポートし、プロキシー環境に対する追加設定なしのサポートを提供します。
ベアメタルでは、内部と外部の両方の Openshift Container Storage クラスターがサポートされます。デプロイメントの要件についての詳細は、デプロイメントのプランニング を参照してください。
OpenShift Container Storage をデプロイするには、お使いの環境に適切なデプロイメントプロセスを実行します。
内部モード
- 外部モード
第1章 ローカルストレージデバイスを使用したデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
ローカルストレージデバイスを使用して OpenShift Container Storage を OpenShift Container Platform にデプロイすると、内部クラスターリソースを作成するオプションが提供されます。これにより、ベースサービスの内部プロビジョニングが可能になり、追加のストレージクラスをアプリケーションで使用可能にすることができます。
このセクションを使用して、OpenShift Container Platform がすでにインストールされているベアメタルインフラストラクチャーに OpenShift Container Storage をインストールします。
ローカルストレージデバイスを使用した OpenShift Container Storage をデプロイするには、以下を実行します。
- ローカルストレージデバイスを使用して OpenShift Container Storage をインストールするための要件 を確認します。
ワーカーノード向けの Red Hat Enterprise Linux ベースのホストについては、Red Hat Enterprise Linux ベースのノードでのコンテナーのファイルシステムのアクセスを有効にします。
注記Red Hat Enterprise Linux CoreOS (RHCOS) の場合は、この手順を省略します。
- Red Hat OpenShift Container Storage Operator をインストールします。
- ローカルストレージ Operator をインストールします。
- ベアメタルで OpenShift Container Storage クラスターを作成します。
1.1. ローカルストレージデバイスを使用した OpenShift Container Storage のインストール要件 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Container Platform 4.6 以上のバージョンにアップグレードしてから OpenShift Container Storage 4.6 をデプロイする必要があります。詳細は、Updating OpenShift Container Platform clusters ガイドを参照してください。
- ローカルストレージ Operator が Red Hat OpenShift Container Storage で完全にサポートされるために、ローカルストレージ Operator のバージョンは Red Hat OpenShift Container Platform バージョンと一致する必要があります。ローカルストレージ Operator は、Red Hat OpenShift Container Platform のアップグレード時にアップグレードされません。
クラスターに、それぞれローカルに接続されたストレージデバイスを持つ OpenShift Container Platform ワーカーノードを 3 つ以上設定する必要があります。
- 選択した 3 つのノードには、OpenShift Container Storage で使用できる raw ブロックデバイスが少なくとも 1 つ必要です。
- 使用するデバイスは空である必要があります。ディスクには物理ボリューム (PV)、ボリュームグループ (VG)、または論理ボリューム (LV) を含めないでください。
- ノードの最小要件については、プランニングガイドの リソース要件 セクションを参照してください。
- compact モードで OpenShift Container Platform を設定するには、3 ノードクラスターの設定 および エッジデプロインメントの 3 ノードアーキテクチャーの提供 を参照してください。
1.2. Red Hat Enterprise Linux ベースのノード上のコンテナーでのファイルシステムアクセスの有効化 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーによってプロビジョニングされるインフラストラクチャー (UPI) で Red Hat Enterprise Linux がベースの OpenShift Container Platform にワーカーノードを含めて OpenShift Container Storage をデプロイしても自動的に、基盤の Ceph ファイルシステムへのコンテナーアクセスが提供されるわけではありません。
このプロセスは、Red Hat Enterprise Linux CoreOS をベースとするホストには不要です。
手順
クラスター内の各ノードで以下の手順を実行します。
- Red Hat Enterprise Linux ベースのノードにログインし、ターミナルを開きます。
ノードが rhel-7-server-extras-rpms リポジトリーにアクセスできることを確認します。
subscription-manager repos --list-enabled | grep rhel-7-server
# subscription-manager repos --list-enabled | grep rhel-7-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力に
rhel-7-server-rpmsとrhel-7-server-extras-rpmsの両方が表示されない場合は、以下のコマンドを実行して各リポジトリーを有効にします。subscription-manager repos --enable=rhel-7-server-rpms subscription-manager repos --enable=rhel-7-server-extras-rpms
# subscription-manager repos --enable=rhel-7-server-rpms # subscription-manager repos --enable=rhel-7-server-extras-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 必要なパッケージをインストールします。
yum install -y policycoreutils container-selinux
# yum install -y policycoreutils container-selinuxCopy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux での Ceph ファイルシステムのコンテナーの使用を永続的に有効にします。
setsebool -P container_use_cephfs on
# setsebool -P container_use_cephfs onCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3. Red Hat OpenShift Container Storage Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Container Storage は、Red Hat OpenShift Container Platform Operator Hub を使用してインストールできます。ハードウェアおよびソフトウェアの要件に関する詳細は、 デプロイメントのプランニング を参照してください。
前提条件
- OpenShift Container Platform (RHOCP) クラスターにログインしている必要があります。
- RHOCP クラスターにワーカーノードが少なくとも 3 つ必要です。
OpenShift Container Storage のクラスター全体でのデフォルトノードセレクターを上書きする必要がある場合は、コマンドラインインターフェイスで以下のコマンドを使用し、
openshift-storagenamespace の空のノードセレクターを指定できます。oc annotate namespace openshift-storage openshift.io/node-selector=
$ oc annotate namespace openshift-storage openshift.io/node-selector=Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
ノードに Red Hat OpenShift Container Storage リソースのみがスケジュールされるように、そのノードに
infraのテイントを設定します。これにより、サブスクリプションコストを節約できます。詳細は、ストレージリソースの管理および割り当てガイドの Red Hat OpenShift Container Storage の専用ワーカーノードを使用する方法 の章を参照してください。
手順
- OpenShift Web コンソールの左側のペインで、Operators → OperatorHub をクリックします。
- Filter by keyword テキストボックスまたはフィルター一覧を使用して、Operator の一覧から OpenShift Container Storage を検索します。
- OpenShift Container Storage をクリックします。
- OpenShift Container Storage Operator ページで、Install をクリックします。
Install Operator ページで、以下のオプションがデフォルトで選択されていることを確認します。
- Channel を stable-4.6として更新します。
- Installation Mode オプションに A specific namespace on the cluster を選択します。
-
Installed Namespace に Operator recommended namespace openshift-storage を選択します。namespace
openshift-storageが存在しない場合、これは Operator のインストール時に作成されます。 - Enable operator recommended cluster monitoring on this namespace が選択されていることを確認します。この設定はクラスターのモニターリングに必要です。
承認ストラテジー を Automatic または Manual として選択している。承認ストラテジーはデフォルトで Automatic に設定されます。
Approval Strategy に Automatic を選択します。
注記Approval Strategy を Automatic として選択すると、新規インストール時、または OpenShift Container Storage の最新バージョンへの更新時に承認は必要ありません。
- インストール をクリックします。
- インストールが開始するまで待機します。これには、最長 20 分の時間がかかる可能性があります。
- Operators → Installed Operators をクリックします。
-
Project が
openshift-storageであることを確認します。デフォルトで、プロジェクト はopenshift-storageです。 - OpenShift Container Storage の Status が Succeeded に変更するまで待機します。
Approval Strategy に Manual を選択します。
注記Approval Strategy を Manual として選択すると、新規インストール時、または OpenShift Container Storage の最新バージョンへの更新時に承認が必要になります。
- インストール をクリックします。
Manual approval required ページで、Approve または View Installed Operators in namespace openshift-storage のいずれかをクリックし、Operator をインストールできます。
重要オプションのいずれかをクリックする前に、Manual approval required ページで、インストール計画がウィンドウに読み込まれるまで数分待機します。
重要Approve をクリックする場合は、続行する前にインストール計画を確認する必要があります。
Approve をクリックします。
- OpenShift Container Storage Operator がインストールされている間に数分待機します。
- Installed operator - ready for use ページで、View Operator をクリックします。
-
Project が
openshift-storageであることを確認します。デフォルトで、プロジェクト はopenshift-storageです。 - Operators → Installed Operators をクリックします。
- OpenShift Container Storage の Status が Succeeded に変更するまで待機します。
View Installed Operators in namespace openshift-storage をクリックします。
- Installed Operators ページで、ocs-operator をクリックします。
- Subscription Details ページで、Install Plan リンクをクリックします。
- InstallPlan Details ページで、Preview Install Plan をクリックします。
- インストール計画を確認し、Approve をクリックします。
- Components の Status が Unknown から Created または Present のいずれかに変更するまで待機します。
- Operators → Installed Operators をクリックします。
-
Project が
openshift-storageであることを確認します。デフォルトで、プロジェクト はopenshift-storageです。 - OpenShift Container Storage の Status が Succeeded に変更するまで待機します。
検証手順
- OpenShift Container Storage Operator に、インストールが正常に実行されたことを示す緑色のチェックマークが表示されていることを確認します。
-
View Installed Operators in namespace openshift-storage リンクをクリックし、OpenShift Container Storage Operator が Installed Operators ダッシュボードで Status を
Succeededとして表示していることを確認します。
1.4. ローカルストレージ Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を使用して、ローカルストレージデバイスに OpenShift Container Storage クラスターを作成する前に、Operator Hub からローカルストレージ Operator をインストールします。
手順
- OpenShift Web コンソールにログインします。
- Operators → OperatorHub をクリックします。
- Operator の一覧から Local Storage Operator を検索し、これをクリックします。
Install をクリックします。
図1.1 Install Operator ページ
Install Operator ページで、以下のオプションを設定します。
- Channel を 4.6 に更新します。
- Installation Mode オプションに A specific namespace on the cluster を選択します。
- Installed Namespace に Operator recommended namespace openshift-local-storage を選択します。
- Approval Strategy に Automatic を選択します。
- Install をクリックします。
-
Local Storage Operator のステータスが
Succeededと表示されていることを確認します。
1.5. ベアメタルでの OpenShift Container Storage クラスターの作成 リンクのコピーリンクがクリップボードにコピーされました!
ストレージクラスが存在しない場合には、以下の手順を使用してストレージクラスを作成します。
ストレージクラスがすでに作成されている場合には、ストレージクラスが 存在する場合にベアメタルでのストレージクラスターの作成 で説明されているように、ストレージクラスターを直接作成できます。
前提条件
- ローカルストレージデバイスを使用した OpenShift Container Storage のインストールの要件 についてのセクションにあるすべての要件を満たしていることを確認します。
- ベアメタルでローカルストレージデバイスを使用するには、ワーカーノードが最低でも 3 つ必要で、各ノードに同じストレージタイプおよびサイズを割り当てる必要があります (例: 2TB NVMe ハードドライブ)。
手順
- OpenShift Web コンソールにログインします。
Operators → Installed Operators をクリックし、インストールされた Operator をすべて表示します。
選択された Project が openshift-storage であることを確認します。
図1.2 OpenShift Container Storage Operator ページ
OpenShift Container Storage をクリックします。
図1.3 OpenShift Container Storage の Details タブ
Storage Cluster の Create Instance リンクをクリックします。
図1.4 Create Storage Cluster ページ
- Select Mode に Internal-Attached devices を選択します。デフォルトでは、Internal が選択されます。
ディスク検出、ストレージクラスの作成、およびストレージクラスの作成を含むウィザードを使用してストレージクラスターを作成します。
インストールされていない場合に、ローカルストレージ Operator をインストールすることを求めるプロンプトが出されます。Install をクリックし、ローカルストレージ Operator で説明されているように Operator をインストールします。
- ディスクの検出
選択したノードで使用可能になる可能性のあるディスクの一覧を検出することができます。使用されていないブロックディスクおよびパーティション、永続ボリューム (PV) のプロビジョニングに利用できるブロックディスクおよびパーティションが検出されます。
図1.5 Discovery Disks ウィザードページ
以下のいずれかを選択します。
- All nodes: すべてのノードでディスクを検出します。
Select nodes: 一覧表示されるノードのサブセットからディスクを検出します。
クラスターで特定のワーカーノードを見つけるには、Name または Label に基づいてノードをフィルターできます。Name を使用するとノード名で検索でき、Label を使用すると事前に定義されたラベルを選択して検索できます。
選択したノードが集約された 30 CPU および 72 GiB の RAM の OpenShift Container Storage クラスターの要件と一致しない場合は、最小クラスターがデプロイされます。ノードの最小要件については、プランニングガイドの リソース要件 セクションを参照してください。
注記選択したノードにテイントのマークが付けられており、そのノードがウィザードで検出されない場合は、回避策として Red Hat ナレッジベースソリューション に記載されている手順に従ってください。
- Next をクリックします。
- ストレージクラスの作成
ストレージボリュームのセットをフィルターすることにより、専用のストレージクラスを作成してストレージを消費できます。
図1.6 Create Storage Class ウィザードページ
- Volume Set Name を入力します。
- Storage Class Name を入力します。デフォルトで、ボリュームセット名がストレージクラス名について表示されます。
先の手順でディスク検出で選択されたノードは Filter Disks セクションに表示されます。以下のいずれかを選択します。
- All nodes: ディスクを検出したすべてのノードを選択します。
Select nodes: ディスクを検出したノードのサブセットを選択します。
クラスターで特定のワーカーノードを見つけるには、Name または Label に基づいてノードをフィルターできます。Name を使用するとノード名で検索でき、Label を使用すると事前に定義されたラベルを選択して検索できます。
高可用性を確保するために、ワーカーノードは 3 つの異なる物理ノード、ラック、障害ドメインに分散することが推奨されます。
注記OpenShift Container Storage のラックラベルがデータセンターの物理ラックに合わせて調整されていることを確認し、障害ドメインのレベルで二重ノードに障害が発生しないようにします。
必要な Disk Type を選択します。以下のオプションが利用可能になります。
All
ノードに存在するすべての種類のディスクを選択します。デフォルトでは、このオプションは選択されます。
SSD/NVME
SSD NVME タイプのディスクのみを選択します。
HDD
HDD タイプのディスクのみを選択します。
Advanced セクションでは、以下を設定できます。
ディスクモード
デフォルトではブロックが選択されます。
ディスクサイズ
含める必要のあるデバイスの最小および最大の許容サイズ。
注記デバイスの最小サイズ 100GB を設定する必要があります。
最大ディスク制限
これは、ノードで作成可能な PV の最大数を示します。このフィールドが空のままの場合、PV は一致するノードで利用可能なすべてのディスクに作成されます。
(オプション) Select Capacity チャートを使用して選択されたノードでディスクの選択した容量を表示できます。
このチャートは、直前の手順で検出されたディスクを反映するのに数分かかる場合があります。
チャートで Nodes および Disks リンクをクリックして、ノードおよびディスクの一覧を表示し、詳細情報を表示します。
図1.7 選択したノードの一覧
図1.8 選択したディスクの一覧
- Next をクリックします。
メッセージアラートで Yes をクリックし、ストレージクラスの作成を確認します。
ローカルボリュームセットおよびストレージクラスの作成後に、この手順に戻ることはできません。
- ストレージクラスターの作成
図1.9 Create Storage Cluster ウィザードページ
必要なストレージクラスを選択します。
選択したストレージクラスに対応するストレージノードが追加されるまでに数分待機する必要がある場合があります。
- (オプション) Encryption セクションで、トグルを Enabled に設定して、クラスターでデータ暗号化を有効にします。
- ストレージクラスに対応するノードは、ドロップダウン一覧で選択したストレージクラスに基づいて表示されます。
Create をクリックします。
Create ボタンは、最低でも 3 つのノードを選択した場合にのみ有効になります。3 つのボリュームからなる新規ストレージクラスターは、1 ワーカーノードごとに 1 つのボリュームを設定して作成されます。デフォルト設定では、レプリケーション係数 3 を使用します。
初期クラスターの容量を拡張するには、Scaling Storage ガイドを参照してください。
検証手順
Verifying your OpenShift Container Storage installation を参照してください。
1.6. ストレージクラスがすでに存在する場合のベアメタル上でのストレージクラスター作成 リンクのコピーリンクがクリップボードにコピーされました!
Openshift Container Storage Cluster は、ローカルストレージ Operator ページで作成される既存のストレージクラスを使用して作成できます。
前提条件
- ローカルストレージデバイスを使用した OpenShift Container Storage のインストールの要件 についてのセクションにあるすべての要件を満たしていることを確認します。
- ベアメタルでローカルストレージデバイスを使用するには、ワーカーノードが最低でも 3 つ必要で、各ノードに同じストレージタイプおよびサイズを割り当てる必要があります (例: 2TB NVMe ハードドライブ)。
- 最低でも 3 つのノードで設定されるストレージクラスを作成し、このクラスにボリュームをアタッチしておく必要があります。
手順
- OpenShift Web コンソールにログインします。
Operators → Installed Operators をクリックし、インストールされた Operator をすべて表示します。
選択された Project が openshift-storage であることを確認します。
図1.10 OpenShift Container Storage Operator ページ
OpenShift Container Storage をクリックします。
図1.11 OpenShift Container Storage の Details タブ
Storage Cluster の Create Instance リンクをクリックします。
図1.12 Create Storage Cluster ページ
Select Mode に Internal-Attached devices を選択します。デフォルトでは、Internal が選択されます。
図1.13 Create Storage Cluster ページ
- (オプション) Encryption セクションで、トグルを Enabled に設定して、クラスターでデータ暗号化を有効にします。
選択したストレージクラスに対応するノードが表示されます。
選択されたノードには、ラベルが指定されていない場合に
cluster.ocs.openshift.io/openshift-storage=''のラベルが付けられます。選択されたノードの内の 3 つのノードは初期のデプロイメントに使用され、残りのノードは OpenShift Container Storage のスケーリングのスケジュールターゲットとして使用されます。Create をクリックします。
Create ボタンは、最低でも 3 つのノードを選択した場合にのみ有効になります。
3 つのボリュームからなる新規ストレージクラスターは、1 ワーカーノードごとに 1 つのボリュームを設定して作成されます。デフォルト設定では、レプリケーション係数 3 を使用します。
初期クラスターの容量を拡張するには、Scaling Storage ガイドを参照してください。
検証手順
Verifying your OpenShift Container Storage installation を参照してください。
第2章 内部モードの OpenShift Container Storage デプロイメントの確認 リンクのコピーリンクがクリップボードにコピーされました!
このセクションを使用して、OpenShift Container Storage が正常にデプロイされていることを確認します。
2.1. Pod の状態の確認 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Storage が正常にデプロイされているかどうかを判別するために、Pod の状態が Running であることを確認できます。
手順
- OpenShift Web コンソールの左側のペインから Workloads → Pods をクリックします。
Project ドロップダウンリストから openshift-storage を選択します。
各コンポーネントについて予想される Pod 数や、これがノード数によってどのように異なるかについての詳細は、表2.1「OpenShift Container Storage クラスターに対応する Pod」 を参照してください。
Running および Completed タブをクリックして、以下の Pod が実行中および完了状態にあることを確認します。
Expand 表2.1 OpenShift Container Storage クラスターに対応する Pod コンポーネント 対応する Pod OpenShift Container Storage Operator
-
ocs-operator-*(任意のワーカーノードに 1 Pod) -
ocs-metrics-exporter-*
Rook-ceph Operator
rook-ceph-operator-*(任意のワーカーノードに 1 Pod)
Multicloud Object Gateway
-
noobaa-operator-*(任意のワーカーノードに 1 Pod) -
noobaa-core-*(任意のストレージノードに 1 Pod) -
noobaa-db-*(任意のストレージノードに 1 Pod) -
noobaa-endpoint-*(任意のストレージノードに 1 Pod)
MON
rook-ceph-mon-*(ストレージノードに分散する 3 Pod)
MGR
rook-ceph-mgr-*(任意のストレージノードに 1 Pod)
MDS
rook-ceph-mds-ocs-storagecluster-cephfilesystem-*(ストレージノードに分散する 2 Pod)
RGW
rook-ceph-rgw-ocs-storagecluster-cephobjectstore-*(ストレージノードに分散する 2 Pod)CSI
cephfs-
csi-cephfsplugin-*(各ワーカーノードに 1 Pod) -
csi-cephfsplugin-provisioner-*(ワーカーノードに分散する 2 Pod)
-
rbd-
csi-rbdplugin-*(各ワーカーノードに 1 Pod) -
csi-rbdplugin-provisioner-*(ストレージノードに分散する 2 Pod)
-
rook-ceph-crashcollector
rook-ceph-crashcollector-*(各ストレージノードに 1 Pod)
OSD
-
rook-ceph-osd-*(各デバイス用に 1 Pod) -
rook-ceph-osd-prepare-ocs-deviceset-*(各デバイス用に 1 Pod)
-
2.2. OpenShift Container Storage クラスターが正常であることの確認 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Web コンソールの左側のペインから Home → Overview をクリックし、Persistent Storage タブをクリックします。
Status カード で、以下のイメージのように OCS Cluster および Data Resiliency に緑色のチェックマークが表示されていることを確認します。
図2.1 Persistent Storage Overview ダッシュボードの Health status カード
Details カード で、以下のようにクラスター情報が表示されていることを確認します。
- サービス名
- OpenShift Container Storage
- クラスター名
- ocs-storagecluster
- プロバイダー
- なし
- モード
- 内部
- バージョン
- ocs-operator-4.6.0
永続ストレージダッシュボードを使用して OpenShift Container Storage クラスターの正常性に関する詳細は、OpenShift Container Storage のモニターリング を参照してください。
2.3. Multicloud Object Gateway が正常であることの確認 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Web コンソールの左側のペインから Home → Overview をクリックし、Object Service タブをクリックします。
Status card で、Object Service と Data Resiliency の両方が
Ready状態 (緑のチェックマーク) にあることを確認します。図2.2 Object Service Overview ダッシュボードの Health status カード
Details カード で、MCG 情報が以下のように表示されることを確認します。
- サービス名
- OpenShift Container Storage
- システム名
Multicloud Object Gateway
RADOS Object Gateway
- プロバイダー
- なし
- バージョン
- ocs-operator-4.6.0
オブジェクトサービスダッシュボードを使用した OpenShift Container Storage クラスターの正常性については、OpenShift Container Storage のモニターリング を参照してください。
2.4. OpenShift Container Storage 固有のストレージクラスが存在することの確認 リンクのコピーリンクがクリップボードにコピーされました!
ストレージクラスがクラスターに存在することを確認するには、以下を実行します。
- OpenShift Web コンソールの左側のペインから Storage → Storage Classes をクリックします。
以下のストレージクラスが OpenShift Container Storage クラスターの作成時に作成されることを確認します。
-
ocs-storagecluster-ceph-rbd -
ocs-storagecluster-cephfs -
openshift-storage.noobaa.io -
ocs-storagecluster-ceph-rgw
-
第3章 OpenShift Container Storage のアンインストール リンクのコピーリンクがクリップボードにコピーされました!
3.1. 内部モードでの OpenShift Container Storage のアンインストール リンクのコピーリンクがクリップボードにコピーされました!
このセクションの手順に従って OpenShift Container Storage をアンインストールします。
アノテーションのアンインストール
Storage Cluster のアノテーションは、アンインストールプロセスの動作を変更するために使用されます。アンインストールの動作を定義するために、ストレージクラスターに以下の 2 つのアノテーションが導入されました。
-
uninstall.ocs.openshift.io/cleanup-policy: delete -
uninstall.ocs.openshift.io/mode: graceful
以下の表は、これらのアノテーションで使用できる各種値に関する情報を示しています。
| Annotation | 値 | デフォルト | 動作 |
|---|---|---|---|
| cleanup-policy | delete | はい |
Rook は物理ドライブおよび |
| cleanup-policy | Retain | いいえ |
Rook は物理ドライブおよび |
| mode | graceful | はい | Rook および NooBaa は PVC および OBC が管理者/ユーザーによって削除されるまでアンインストールプロセスを一時停止します。 |
| mode | forced | いいえ | Rook および NooBaa は、Rook および NooBaa を使用してプロビジョニングされた PVC/OBC がそれぞれ存在している場合でもアンインストールを続行します。 |
以下のコマンドを使用してアノテーションの値を編集し、クリーンアップポリシーまたはアンインストールモードを変更できます。
oc annotate storagecluster -n openshift-storage ocs-storagecluster uninstall.ocs.openshift.io/cleanup-policy="retain" --overwrite storagecluster.ocs.openshift.io/ocs-storagecluster annotated
$ oc annotate storagecluster -n openshift-storage ocs-storagecluster uninstall.ocs.openshift.io/cleanup-policy="retain" --overwrite
storagecluster.ocs.openshift.io/ocs-storagecluster annotated
oc annotate storagecluster -n openshift-storage ocs-storagecluster uninstall.ocs.openshift.io/mode="forced" --overwrite storagecluster.ocs.openshift.io/ocs-storagecluster annotated
$ oc annotate storagecluster -n openshift-storage ocs-storagecluster uninstall.ocs.openshift.io/mode="forced" --overwrite
storagecluster.ocs.openshift.io/ocs-storagecluster annotated
前提条件
- OpenShift Container Storage クラスターの状態が正常であることを確認します。リソースまたはノードの不足により一部の Pod が正常に終了されないと、アンインストールプロセスに失敗する可能性があります。クラスターが状態が正常でない場合は、OpenShift Container Storage をアンインストールする前に Red Hat カスタマーサポートにお問い合わせください。
- アプリケーションが OpenShift Container Storage によって提供されるストレージクラスを使用して永続ボリューム要求 (PVC) またはオブジェクトバケット要求 (OBC) を使用していないことを確認します。
- カスタムリソース (カスタムストレージクラス、cephblockpools など) が管理者によって作成された場合、それらを消費したリソースを削除した後に管理者によって削除される必要があります。
手順
OpenShift Container Storage を使用しているボリュームスナップショットを削除します。
すべての namespace からボリュームスナップショットを一覧表示します。
oc get volumesnapshot --all-namespaces
$ oc get volumesnapshot --all-namespacesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 直前のコマンドの出力から、OpenShift Container Storage を使用しているボリュームスナップショットを特定し、削除します。
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
OpenShift Container Storage を使用している PVC および OBC を削除します。
デフォルトのアンインストールモード (graceful) では、アンインストーラーは OpenShift Container Storage を使用するすべての PVC および OBC が削除されるまで待機します。
PVC を事前に削除せずに Storage Cluster を削除する場合は、アンインストールモードのアノテーションを forced に設定し、この手順を省略できます。これを実行すると、孤立した PVC および OBC がシステムに作成されます。
OpenShift Container Storage を使用して、OpenShift Container Platform モニターリングスタック PVC を削除します。
OpenShift Container Storage を使用して、OpenShift Container Platform レジストリー PVC を削除します。
「OpenShift Container Storage からの OpenShift Container Platform レジストリーの削除」 を参照してください。
OpenShift Container Storage を使用して、OpenShift Container Platform ロギング PVC を削除します。
「OpenShift Container Storage からのクラスターロギング Operator の削除」 を参照してください。
OpenShift Container Storage を使用してプロビジョニングした PVC および OBC を削除します。
以下に、OpenShift Container Storage を使用してプロビジョニングされる PVC および OBC を特定するサンプルスクリプトを示します。このスクリプトは、OpenShift Container Storage によって内部で使用される PVC を無視します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記クラウドプラットフォームの
RGW_PROVISIONERを省略します。OBC を削除します。
oc delete obc <obc name> -n <project name>
$ oc delete obc <obc name> -n <project name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow PVC を削除します。
oc delete pvc <pvc name> -n <project-name>
$ oc delete pvc <pvc name> -n <project-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記クラスターに作成されているカスタムバッキングストア、バケットクラスなどを削除していることを確認します。
Storage Cluster オブジェクトを削除し、関連付けられたリソースが削除されるのを待機します。
oc delete -n openshift-storage storagecluster --all --wait=true
$ oc delete -n openshift-storage storagecluster --all --wait=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow uninstall.ocs.openshift.io/cleanup-policyがdelete(default) に設定されている場合にクリーンアップ Pod の有無を確認し、それらのステータスがCompletedしていることを確認します。oc get pods -n openshift-storage | grep -i cleanup NAME READY STATUS RESTARTS AGE cluster-cleanup-job-<xx> 0/1 Completed 0 8m35s cluster-cleanup-job-<yy> 0/1 Completed 0 8m35s cluster-cleanup-job-<zz> 0/1 Completed 0 8m35s
$ oc get pods -n openshift-storage | grep -i cleanup NAME READY STATUS RESTARTS AGE cluster-cleanup-job-<xx> 0/1 Completed 0 8m35s cluster-cleanup-job-<yy> 0/1 Completed 0 8m35s cluster-cleanup-job-<zz> 0/1 Completed 0 8m35sCopy to Clipboard Copied! Toggle word wrap Toggle overflow /var/lib/rookディレクトリーが空であることを確認します。このディレクトリーは空になるのは、uninstall.ocs.openshift.io/cleanup-policyアノテーションがdelete(デフォルト) に設定されている場合に限られます。for i in $(oc get node -l cluster.ocs.openshift.io/openshift-storage= -o jsonpath='{ .items[*].metadata.name }'); do oc debug node/${i} -- chroot /host ls -l /var/lib/rook; done$ for i in $(oc get node -l cluster.ocs.openshift.io/openshift-storage= -o jsonpath='{ .items[*].metadata.name }'); do oc debug node/${i} -- chroot /host ls -l /var/lib/rook; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 暗号化がインストール時に有効にされている場合は、すべての OpenShift Container Storage ノードの OSD デバイスから
dm-cryptで管理されるdevice-mapperマッピングを削除します。デバッグPod を作成し、ストレージノードのホストに対してchrootを作成します。oc debug node/<node name> chroot /host
$ oc debug node/<node name> $ chroot /hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow デバイス名を取得し、OpenShift Container Storage デバイスについてメモします。
dmsetup ls ocs-deviceset-0-data-0-57snx-block-dmcrypt (253:1)
$ dmsetup ls ocs-deviceset-0-data-0-57snx-block-dmcrypt (253:1)Copy to Clipboard Copied! Toggle word wrap Toggle overflow マップ済みデバイスを削除します。
cryptsetup luksClose --debug --verbose ocs-deviceset-0-data-0-57snx-block-dmcrypt
$ cryptsetup luksClose --debug --verbose ocs-deviceset-0-data-0-57snx-block-dmcryptCopy to Clipboard Copied! Toggle word wrap Toggle overflow 権限が十分にないため、コマンドがスタックした場合には、以下のコマンドを実行します。
-
CTRL+Zを押して上記のコマンドを終了します。 スタックした
cryptsetupプロセスの PID を検索します。ps
$ psCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
PID TTY TIME CMD 778825 ? 00:00:00 cryptsetup
PID TTY TIME CMD 778825 ? 00:00:00 cryptsetupCopy to Clipboard Copied! Toggle word wrap Toggle overflow PID番号を書き留めて強制終了します。この例では、PIDは778825です。killコマンドを使用してプロセスを終了します。kill -9 <PID>
$ kill -9 <PID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow デバイス名が削除されていることを確認します。
dmsetup ls
$ dmsetup lsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
namespace を削除し、削除が完了するまで待機します。
openshift-storageがアクティブなプロジェクトである場合は、別のプロジェクトに切り替える必要があります。以下に例を示します。
oc project default oc delete project openshift-storage --wait=true --timeout=5m
$ oc project default $ oc delete project openshift-storage --wait=true --timeout=5mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドが
NotFoundエラーを返すと、プロジェクトが削除されます。oc get project openshift-storage
$ oc get project openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OpenShift Container Storage のアンインストール時に、namespace が完全に削除されず、
Terminating状態のままである場合は、Troubleshooting and deleting remaining resources during Uninstall の記事に記載の手順を実行して namespace の終了をブロックしているオブジェクトを特定します。- ローカルストレージデバイスを使用して OpenShift Container Storage をデプロイしている場合は、ローカルストレージ Operator 設定を削除します。ローカルストレージ Operator の設定の削除 を参照してください。
ストレージノードのラベルを解除します。
oc label nodes --all cluster.ocs.openshift.io/openshift-storage- oc label nodes --all topology.rook.io/rack-
$ oc label nodes --all cluster.ocs.openshift.io/openshift-storage- $ oc label nodes --all topology.rook.io/rack-Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードにテイントのマークが付けられている場合に OpenShift Container Storage テイントを削除します。
oc adm taint nodes --all node.ocs.openshift.io/storage-
$ oc adm taint nodes --all node.ocs.openshift.io/storage-Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Storage を使用してプロビジョニングした PV がすべて削除されていることを確認します。
Released状態のままの PV がある場合は、これを削除します。oc get pv oc delete pv <pv name>
$ oc get pv $ oc delete pv <pv name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Multicloud Object Gateway storageclass を削除します。
oc delete storageclass openshift-storage.noobaa.io --wait=true --timeout=5m
$ oc delete storageclass openshift-storage.noobaa.io --wait=true --timeout=5mCopy to Clipboard Copied! Toggle word wrap Toggle overflow CustomResourceDefinitionsを削除します。oc delete crd backingstores.noobaa.io bucketclasses.noobaa.io cephblockpools.ceph.rook.io cephclusters.ceph.rook.io cephfilesystems.ceph.rook.io cephnfses.ceph.rook.io cephobjectstores.ceph.rook.io cephobjectstoreusers.ceph.rook.io noobaas.noobaa.io ocsinitializations.ocs.openshift.io storageclusters.ocs.openshift.io cephclients.ceph.rook.io cephobjectrealms.ceph.rook.io cephobjectzonegroups.ceph.rook.io cephobjectzones.ceph.rook.io cephrbdmirrors.ceph.rook.io --wait=true --timeout=5m
$ oc delete crd backingstores.noobaa.io bucketclasses.noobaa.io cephblockpools.ceph.rook.io cephclusters.ceph.rook.io cephfilesystems.ceph.rook.io cephnfses.ceph.rook.io cephobjectstores.ceph.rook.io cephobjectstoreusers.ceph.rook.io noobaas.noobaa.io ocsinitializations.ocs.openshift.io storageclusters.ocs.openshift.io cephclients.ceph.rook.io cephobjectrealms.ceph.rook.io cephobjectzonegroups.ceph.rook.io cephobjectzones.ceph.rook.io cephrbdmirrors.ceph.rook.io --wait=true --timeout=5mCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform Web コンソールで、OpenShift Container Storage が完全にアンインストールされていることを確認するには、以下を実行します。
- Home → Overview をクリックし、ダッシュボードにアクセスします。
- Persistent Storage および Object Service タブが Cluster タブの横に表示されなくなることを確認します。
3.1.1. ローカルストレージ Operator の設定の削除 リンクのコピーリンクがクリップボードにコピーされました!
ローカルストレージデバイスを使用して OpenShift Container Storage をデプロイした場合にのみ、本セクションの手順を使用します。
OpenShift Container Storage デプロイメントで localvolume リソースのみを使用する場合は、直接、手順 8 に移動します。
手順
-
LocalVolumeSetおよび OpenShift Container Storage で使用される対応するStorageClassNameを特定します。 LocalVolumeSetを提供するStorageClassに変数 SC を設定します。export SC="<StorageClassName>"
$ export SC="<StorageClassName>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow LocalVolumeSetを削除します。oc delete localvolumesets.local.storage.openshift.io <name-of-volumeset> -n openshift-local-storage
$ oc delete localvolumesets.local.storage.openshift.io <name-of-volumeset> -n openshift-local-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 指定された
StorageClassNameのローカルストレージ PV を削除します。oc get pv | grep $SC | awk '{print $1}'| xargs oc delete pv$ oc get pv | grep $SC | awk '{print $1}'| xargs oc delete pvCopy to Clipboard Copied! Toggle word wrap Toggle overflow StorageClassNameを削除します。oc delete sc $SC
$ oc delete sc $SCCopy to Clipboard Copied! Toggle word wrap Toggle overflow LocalVolumeSetによって作成されるシンボリックリンクを削除します。[[ ! -z $SC ]] && for i in $(oc get node -l cluster.ocs.openshift.io/openshift-storage= -o jsonpath='{ .items[*].metadata.name }'); do oc debug node/${i} -- chroot /host rm -rfv /mnt/local-storage/${SC}/; done[[ ! -z $SC ]] && for i in $(oc get node -l cluster.ocs.openshift.io/openshift-storage= -o jsonpath='{ .items[*].metadata.name }'); do oc debug node/${i} -- chroot /host rm -rfv /mnt/local-storage/${SC}/; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow LocalVolumeDiscoveryを削除します。oc delete localvolumediscovery.local.storage.openshift.io/auto-discover-devices -n openshift-local-storage
$ oc delete localvolumediscovery.local.storage.openshift.io/auto-discover-devices -n openshift-local-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow LocalVolumeリソースを削除します (ある場合)。以下の手順を使用して、現行または直前の OpenShift Container Storage バージョンで PV のプロビジョニングに使用した
LocalVolumeリソースを削除します。また、これらのリソースがクラスターの他のテナントで使用されていないことを確認します。ローカルボリュームごとに、以下を実行します。
-
LocalVolumeおよび OpenShift Container Storage で使用される対応するStorageClassNameを特定します。 変数 LV を LocalVolume の名前に設定し、変数 SC を StorageClass の名前に設定します。
以下に例を示します。
LV=local-block SC=localblock
$ LV=local-block $ SC=localblockCopy to Clipboard Copied! Toggle word wrap Toggle overflow ローカルボリュームリソースを削除します。
oc delete localvolume -n local-storage --wait=true $LV
$ oc delete localvolume -n local-storage --wait=true $LVCopy to Clipboard Copied! Toggle word wrap Toggle overflow 残りの PV および StorageClass が存在する場合はこれらを削除します。
oc delete pv -l storage.openshift.com/local-volume-owner-name=${LV} --wait --timeout=5m oc delete storageclass $SC --wait --timeout=5m$ oc delete pv -l storage.openshift.com/local-volume-owner-name=${LV} --wait --timeout=5m $ oc delete storageclass $SC --wait --timeout=5mCopy to Clipboard Copied! Toggle word wrap Toggle overflow そのリソースのストレージノードからアーティファクトをクリーンアップします。
[[ ! -z $SC ]] && for i in $(oc get node -l cluster.ocs.openshift.io/openshift-storage= -o jsonpath='{ .items[*].metadata.name }'); do oc debug node/${i} -- chroot /host rm -rfv /mnt/local-storage/${SC}/; done$ [[ ! -z $SC ]] && for i in $(oc get node -l cluster.ocs.openshift.io/openshift-storage= -o jsonpath='{ .items[*].metadata.name }'); do oc debug node/${i} -- chroot /host rm -rfv /mnt/local-storage/${SC}/; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
3.2. OpenShift Container Storage からのモニターリングスタックの削除 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、モニターリングスタックを OpenShift Container Storage からクリーンアップします。
モニターリングスタックの設定の一部として作成される PVC は openshift-monitoring namespace に置かれます。
前提条件
PVC は OpenShift Container Platform モニタリングスタックを使用できるように設定されます。
詳細は、モニターリングスタックの設定 を参照してください。
手順
openshift-monitoringnamespace で現在実行されている Pod および PVC を一覧表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow モニタリング
configmapを編集します。oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例が示すように、OpenShift Container Storage ストレージクラスを参照する
configセクションを削除し、これを保存します。編集前
Expand Copy to Clipboard Copied! Toggle word wrap Toggle overflow 編集後
Expand Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
alertmanagerMainおよびprometheusK8sモニターリングコンポーネントは OpenShift Container Storage PVC を使用しています。関連する PVC を削除します。ストレージクラスを使用するすべての PVC を削除してください。
oc delete -n openshift-monitoring pvc <pvc-name> --wait=true --timeout=5m
$ oc delete -n openshift-monitoring pvc <pvc-name> --wait=true --timeout=5mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. OpenShift Container Storage からの OpenShift Container Platform レジストリーの削除 リンクのコピーリンクがクリップボードにコピーされました!
このセクションを使用して、OpenShift Container Storage から OpenShift Container Platform レジストリーをクリーンアップします。代替ストレージを設定する必要がある場合は、イメージレジストリー を参照してください。
OpenShift Container Platform レジストリーの設定の一部として作成される PVC は openshift-image-registry namespace に置かれます。
前提条件
- イメージレジストリーは OpenShift Container Storage PVC を使用するように設定されている必要があります。
手順
configs.imageregistry.operator.openshift.ioオブジェクトを編集し、storage セクションのコンテンツを削除します。oc edit configs.imageregistry.operator.openshift.io
$ oc edit configs.imageregistry.operator.openshift.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 編集前
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 編集後
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、PVC は
registry-cephfs-rwx-pvcと呼ばれ、これは安全に削除できます。PVC を削除します。
oc delete pvc <pvc-name> -n openshift-image-registry --wait=true --timeout=5m
$ oc delete pvc <pvc-name> -n openshift-image-registry --wait=true --timeout=5mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. OpenShift Container Storage からのクラスターロギング Operator の削除 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、クラスターロギング Operator を OpenShift Container Storage からクリーンアップします。
クラスターロギング Operator の設定の一部として作成される PVC は openshift-logging namespace にあります。
前提条件
- クラスターロギングインスタンスは、OpenShift Container Storage PVC を使用するように設定されている必要があります。
手順
namespace の
ClusterLoggingインスタンスを削除します。oc delete clusterlogging instance -n openshift-logging --wait=true --timeout=5m
$ oc delete clusterlogging instance -n openshift-logging --wait=true --timeout=5mCopy to Clipboard Copied! Toggle word wrap Toggle overflow openshift-loggingnamespace の PVC は安全に削除できます。PVC を削除します。
oc delete pvc <pvc-name> -n openshift-logging --wait=true --timeout=5m
$ oc delete pvc <pvc-name> -n openshift-logging --wait=true --timeout=5mCopy to Clipboard Copied! Toggle word wrap Toggle overflow