ノードの置き換え

Red Hat OpenShift Container Storage 4.6

置き換え用のノードを準備し、障害が発生したノードを置き換える方法

概要

本書では、Red Hat OpenShift Container Storage クラスターのノードを安全に置き換える方法について説明します。

はじめに

OpenShift Container Storage では、動作ノードに対しては事前対応として、以下のデプロイメントで障害のあるノードに対しては事後対応として、ノードを交換できます。

  • Amazon Web Services (AWS)

    • ユーザーによってプロビジョニングされるインフラストラクチャー
    • インストーラーでプロビジョニングされるインフラストラクチャー
  • VMware

    • ユーザーによってプロビジョニングされるインフラストラクチャー
  • Microsoft Azure

    • インストーラーでプロビジョニングされるインフラストラクチャー
  • ローカルストレージデバイスの場合

    • ベアメタル
    • Amazon EC2 I3
    • VMware
    • IBM Power Systems
    • IBM Z または LinuxONE
  • 外部モードでストレージノードを置き換える場合は、Red Hat Ceph Storage のドキュメント を参照してください。

第1章 AWS にデプロイされる OpenShift Container Storage

1.1. ユーザーによってプロビジョニングされるインフラストラクチャーで動作する AWS ノードの置き換え

以下の手順に従って、AWS のユーザーによってプロビジョニングされるインフラストラクチャーで動作するノードを置き換えます。

前提条件

  • Red Hat では、交換前のノードと同様のインフラストラクチャーおよびリソースで、交換後のノードを設定することを推奨します。
  • OpenShift Container Platform (RHOCP) クラスターにログインしている必要があります。

手順

  1. 置き換える必要のあるノードを特定します。
  2. 以下のコマンドを実行して、ノードにスケジュール対象外 (unschedulable) のマークを付けます。

    $ oc adm cordon <node_name>
  3. 以下のコマンドを使用してノードをドレイン (解放) します。

    $ oc adm drain <node_name> --force --delete-local-data --ignore-daemonsets
    重要

    このアクティビティーには少なくとも 5-10 分以上かかる場合があります。この期間に生成される Ceph のエラーは一時的なもので、新規ノードにラベルが付けられ、これが機能すると自動的に解決されます。

  4. 以下のコマンドを使用してノードを削除します。

    $ oc delete nodes <node_name>
  5. 必要なインフラストラクチャーで新規 AWS マシンインスタンスを作成します。プラットフォーム要件 を参照してください。
  6. 新規 AWS マシンインスタンスを使用して新規 OpenShift Container Platform ノードを作成します。
  7. Pending 状態の OpenShift Container Platform に関連する証明書署名要求 (CSR) の有無を確認します。

    $ oc get csr
  8. 新規ノードに必要なすべての OpenShift Container Platform CSR を承認します。

    $ oc adm certificate approve <Certificate_Name>
  9. ComputeNodes をクリックし、新規ノードが Ready 状態にあることを確認します。
  10. OpenShift Container Storage ラベルを新規ノードに適用します。

    Web ユーザーインターフェイスの使用
    1. 新規ノードについて、Action Menu (⋮)Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。

      $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""

検証手順

  1. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. WorkloadsPods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。
  4. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  5. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

1.2. インストーラーでプロビジョニングされるインフラストラクチャーで動作する AWS ノードの置き換え

以下の手順を使用して、AWS のインストーラーでプロビジョニングされるインフラストラクチャー (IPI) で動作するノードを置き換えます。

手順

  1. OpenShift Web コンソールにログインし、ComputeNodes をクリックします。
  2. 置き換える必要のあるノードを特定します。その マシン名 をメモします。
  3. 以下のコマンドを実行して、ノードにスケジュール対象外 (unschedulable) のマークを付けます。

    $ oc adm cordon <node_name>
  4. 以下のコマンドを使用してノードをドレイン (解放) します。

    $ oc adm drain <node_name> --force --delete-local-data --ignore-daemonsets
    重要

    このアクティビティーには少なくとも 5-10 分以上かかる場合があります。この期間に生成される Ceph のエラーは一時的なもので、新規ノードにラベルが付けられ、これが機能すると自動的に解決されます。

  5. ComputeMachines をクリックします。必要なマシンを検索します。
  6. 必要なマシンの横にある Action menu (⋮)Delete Machine をクリックします。
  7. Delete をクリックしてマシンの削除を確認します。新しいマシンが自動的に作成されます。
  8. 新規マシンが起動し、Running 状態に移行するまで待機します。

    重要

    このアクティビティーには少なくとも 5-10 分以上かかる場合があります。

  9. ComputeNodes をクリックし、新規ノードが Ready 状態にあることを確認します。
  10. 以下のいずれかを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    ユーザーインターフェイスを使用する場合
    1. 新規ノードについて、Action Menu (⋮)Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。

      $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""

検証手順

  1. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. WorkloadsPods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。
  4. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  5. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

1.3. ユーザーによってプロビジョニングされるインフラストラクチャーでの失敗した AWS ノードの置き換え

以下の手順に従って、OpenShift Container Storage の AWS のユーザーによってプロビジョニングされるインフラストラクチャー (UPI) で動作しない障害のあるノードを置き換えます。

前提条件

  • Red Hat では、交換前のノードと同様のインフラストラクチャーおよびリソースで、交換後のノードを設定することを推奨します。
  • OpenShift Container Platform (RHOCP) クラスターにログインしている必要があります。

手順

  1. 置き換える必要のあるノードの AWS マシンインスタンスを特定します。
  2. AWS にログインし、特定された AWS マシンインスタンスを終了します。
  3. 必要なインフラストラクチャーで新規 AWS マシンインスタンスを作成します。プラットフォーム要件 を参照してください。
  4. 新規 AWS マシンインスタンスを使用して新規 OpenShift Container Platform ノードを作成します。
  5. Pending 状態の OpenShift Container Platform に関連する証明書署名要求 (CSR) の有無を確認します。

    $ oc get csr
  6. 新規ノードに必要なすべての OpenShift Container Platform CSR を承認します。

    $ oc adm certificate approve <Certificate_Name>
  7. ComputeNodes をクリックし、新規ノードが Ready 状態にあることを確認します。
  8. 以下のいずれかを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    ユーザーインターフェイスを使用する場合
    1. 新規ノードについて、Action Menu (⋮)Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。

      $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""

検証手順

  1. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. WorkloadsPods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。
  4. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  5. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

1.4. インストーラーでプロビジョニングされるインフラストラクチャーでの失敗した AWS ノードの置き換え

以下の手順に従って、OpenShift Container Storage の AWS のインストーラーでプロビジョニングされるインフラストラクチャー (IPI) で動作しない障害のあるノードを置き換えます。

手順

  1. OpenShift Web コンソールにログインし、ComputeNodes をクリックします。
  2. 障害のあるノードを特定し、その Machine Name をクリックします。
  3. ActionsEdit Annotations をクリックし、Add More をクリックします。
  4. machine.openshift.io/exclude-node-draining を追加し、Save をクリックします。
  5. ActionsDelete Machine をクリックしてから、Delete をクリックします。
  6. 新しいマシンが自動的に作成されます。新規マシンが起動するのを待機します。

    重要

    このアクティビティーには少なくとも 5-10 分以上かかる場合があります。この期間に生成される Ceph のエラーは一時的なもので、新規ノードにラベルが付けられ、これが機能すると自動的に解決されます。

  7. ComputeNodes をクリックし、新規ノードが Ready 状態にあることを確認します。
  8. 以下のいずれかを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    ユーザーインターフェイスを使用する場合
    1. 新規ノードについて、Action Menu (⋮)Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。

      $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
  9. [オプション]: 失敗した AWS インスタンスが自動的に削除されない場合、インスタンスを AWS コンソールで終了します。

検証手順

  1. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. WorkloadsPods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。
  4. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  5. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

第2章 VMware にデプロイされる OpenShift Container Storage

2.1. ユーザーによってプロビジョニングされるインフラストラクチャーで動作する VMware ノードの置き換え

以下の手順に従って、VMware のユーザーによってプロビジョニングされるインフラストラクチャー (UPI) で動作するノードを置き換えます。

前提条件

  • Red Hat では、交換前のノードと同様のインフラストラクチャー、リソースおよびディスクで、交換後のノードを設定することを推奨します。
  • OpenShift Container Platform (RHOCP) クラスターにログインしている必要があります。

手順

  1. 置き換える必要があるノードとその仮想マシンを特定します。
  2. 以下のコマンドを実行して、ノードにスケジュール対象外 (unschedulable) のマークを付けます。

    $ oc adm cordon <node_name>
  3. 以下のコマンドを使用してノードをドレイン (解放) します。

    $ oc adm drain <node_name> --force --delete-local-data --ignore-daemonsets
    重要

    このアクティビティーには少なくとも 5-10 分以上かかる場合があります。この期間に生成される Ceph のエラーは一時的なもので、新規ノードにラベルが付けられ、これが機能すると自動的に解決されます。

  4. 以下のコマンドを使用してノードを削除します。

    $ oc delete nodes <node_name>
  5. VSphere にログインし、特定された仮想マシンを終了します。

    重要

    仮想マシンはインベントリーからのみ削除し、ディスクから削除しないでください。

  6. 必要なインフラストラクチャーで vSphere に新規の仮想マシンを作成します。プラットフォーム要件 を参照してください。
  7. 新規の仮想マシンを使用して新規 OpenShift Container Platform ワーカーノードを作成します。
  8. Pending 状態の OpenShift Container Platform に関連する証明書署名要求 (CSR) の有無を確認します。

    $ oc get csr
  9. 新規ノードに必要なすべての OpenShift Container Platform CSR を承認します。

    $ oc adm certificate approve <Certificate_Name>
  10. ComputeNodes をクリックし、新規ノードが Ready 状態にあることを確認します。
  11. 以下のいずれかを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    ユーザーインターフェイスを使用する場合
    1. 新規ノードについて、Action Menu (⋮)Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。

      $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""

検証手順

  1. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. WorkloadsPods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。
  4. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  5. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

2.2. ユーザーによってプロビジョニングされるインフラストラクチャーでの失敗した VMware ノードの置き換え

以下の手順に従って、VMware のユーザーによってプロビジョニングされるインフラストラクチャー (UPI) で失敗したノードを置き換えます。

前提条件

  • Red Hat では、交換前のノードと同様のインフラストラクチャー、リソースおよびディスクで、交換後のノードを設定することを推奨します。
  • OpenShift Container Platform (RHOCP) クラスターにログインしている必要があります。

手順

  1. 置き換える必要があるノードとその仮想マシンを特定します。
  2. 以下のコマンドを使用してノードを削除します。

    $ oc delete nodes <node_name>
  3. VSphere にログインし、特定された仮想マシンを終了します。

    重要

    仮想マシンはインベントリーからのみ削除し、ディスクから削除しないでください。

  4. 必要なインフラストラクチャーで vSphere に新規の仮想マシンを作成します。プラットフォーム要件 を参照してください。
  5. 新規の仮想マシンを使用して新規 OpenShift Container Platform ワーカーノードを作成します。
  6. Pending 状態の OpenShift Container Platform に関連する証明書署名要求 (CSR) の有無を確認します。

    $ oc get csr
  7. 新規ノードに必要なすべての OpenShift Container Platform CSR を承認します。

    $ oc adm certificate approve <Certificate_Name>
  8. ComputeNodes をクリックし、新規ノードが Ready 状態にあることを確認します。
  9. 以下のいずれかを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    ユーザーインターフェイスを使用する場合
    1. 新規ノードについて、Action Menu (⋮)Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。

      $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""

検証手順

  1. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. WorkloadsPods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。
  4. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  5. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

第3章 Microsoft Azure でデプロイされた OpenShift Container Storage

3.1. Azure のインストーラーでプロビジョニングされるインフラストラクチャーで動作するノードの置き換え

以下の手順を使用して、Azure のインストーラーでプロビジョニングされるインフラストラクチャー (IPI) で動作するノードを置き換えます。

手順

  1. OpenShift Web コンソールにログインし、ComputeNodes をクリックします。
  2. 置き換える必要のあるノードを特定します。その マシン名 をメモします。
  3. 以下のコマンドを実行して、ノードにスケジュール対象外 (unschedulable) のマークを付けます。

    $ oc adm cordon <node_name>
  4. 以下のコマンドを使用してノードをドレイン (解放) します。

    $ oc adm drain <node_name> --force --delete-local-data --ignore-daemonsets
    重要

    このアクティビティーには少なくとも 5-10 分以上かかる場合があります。この期間に生成される Ceph のエラーは一時的なもので、新規ノードにラベルが付けられ、これが機能すると自動的に解決されます。

  5. ComputeMachines をクリックします。必要なマシンを検索します。
  6. 必要なマシンの横にある Action menu (⋮)Delete Machine をクリックします。
  7. Delete をクリックしてマシンの削除を確認します。新しいマシンが自動的に作成されます。
  8. 新規マシンが起動し、Running 状態に移行するまで待機します。

    重要

    このアクティビティーには少なくとも 5-10 分以上かかる場合があります。

  9. ComputeNodes をクリックし、新規ノードが Ready 状態にあることを確認します。
  10. 以下のいずれかを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    ユーザーインターフェイスを使用する場合
    1. 新規ノードについて、Action Menu (⋮)Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。

      $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""

検証手順

  1. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. WorkloadsPods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。
  4. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  5. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

3.2. Azure のインストーラーでプロビジョニングされるインフラストラクチャーでの失敗したノードの置き換え

以下の手順に従って、OpenShift Container Storage の Azure のインストーラーでプロビジョニングされるインフラストラクチャー (IPI) で動作しない障害のあるノードを置き換えます。

手順

  1. OpenShift Web コンソールにログインし、ComputeNodes をクリックします。
  2. 障害のあるノードを特定し、その Machine Name をクリックします。
  3. ActionsEdit Annotations をクリックし、Add More をクリックします。
  4. machine.openshift.io/exclude-node-draining を追加し、Save をクリックします。
  5. ActionsDelete Machine をクリックしてから、Delete をクリックします。
  6. 新しいマシンが自動的に作成されます。新規マシンが起動するのを待機します。

    重要

    このアクティビティーには少なくとも 5-10 分以上かかる場合があります。この期間に生成される Ceph のエラーは一時的なもので、新規ノードにラベルが付けられ、これが機能すると自動的に解決されます。

  7. ComputeNodes をクリックし、新規ノードが Ready 状態にあることを確認します。
  8. 以下のいずれかを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    ユーザーインターフェイスを使用する場合
    1. 新規ノードについて、Action Menu (⋮)Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。

      $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
  9. [オプション]: 失敗した Azure インスタンスが自動的に削除されない場合、インスタンスを Azure コンソールで終了します。

検証手順

  1. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. WorkloadsPods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。
  4. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  5. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

第4章 ローカルストレージデバイスを使用した OpenShift Container Storage のデプロイ

4.1. ベアメタルインフラストラクチャーでのストレージノードの置き換え

4.1.1. ユーザーによってプロビジョニングされるインフラストラクチャーで動作するノードの置き換え

前提条件

  • Red Hat では、交換前のノードと同様のインフラストラクチャー、リソースおよびディスクで、交換後のノードを設定することを推奨します。
  • OpenShift Container Platform (RHOCP) クラスターにログインしている必要があります。
  • 新規インストールを実行するのではなく、以前のバージョンから OpenShift Container Storage 4.6 にアップグレードしている場合、更新後の設定変更 が完了していることを確認します。

手順

  1. ノードを特定し、置き換えるノードのラベルを取得します。

    $ oc get nodes --show-labels | grep <node_name>
  2. 置き換えるノードで実行されている mon (ある場合) および OSD を特定します。

    $ oc get pods -n openshift-storage -o wide | grep -i <node_name>
  3. 先の手順で特定された Pod のデプロイメントをスケールダウンします。

    以下に例を示します。

    $ oc scale deployment rook-ceph-mon-c --replicas=0 -n openshift-storage
    $ oc scale deployment rook-ceph-osd-0 --replicas=0 -n openshift-storage
    $ oc scale deployment --selector=app=rook-ceph-crashcollector,node_name=<node_name>  --replicas=0 -n openshift-storage
  4. ノードにスケジュール対象外 (unschedulable) のマークを付けます。

    $ oc adm cordon <node_name>
  5. ノードをドレイン (解放) します。

    $ oc adm drain <node_name> --force --delete-local-data --ignore-daemonsets
  6. ノードを削除します。

    $ oc delete node <node_name>
  7. 必要なインフラストラクチャーで新規のベアメタルマシンを取得します。クラスターのベアメタルへのインストール を参照してください。
  8. 新規ベアメタルマシンを使用して新規 OpenShift Container Platform ノードを作成します。
  9. Pending 状態の OpenShift Container Platform に関連する証明書署名要求 (CSR) の有無を確認します。

    $ oc get csr
  10. 新規ノードに必要なすべての OpenShift Container Platform CSR を承認します。

    $ oc adm certificate approve <Certificate_Name>
  11. OpenShift Web コンソールで Compute → Nodes をクリックし、新規ノードが Ready 状態にあるかどうかを確認します。
  12. 以下のいずれかを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    ユーザーインターフェイスを使用する場合
    1. 新規ノードについて、Action Menu (⋮) → Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。

      $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
  13. 新規ワーカーノードを localVolumeDiscovery および localVolumeSet に追加します。

    1. localVolumeDiscovery 定義を更新し、新規ノードを追加して失敗したノードを削除します。

      # oc edit -n local-storage-project localvolumediscovery auto-discover-devices
      [...]
         nodeSelector:
          nodeSelectorTerms:
            - matchExpressions:
                - key: kubernetes.io/hostname
                  operator: In
                  values:
                  - server1.example.com
                  - server2.example.com
                  #- server3.example.com
                  - newnode.example.com
      [...]

      エディターを終了する前に必ず保存します。

      上記の例では、server3.example.com が削除され、newnode.example.com が新規ノードになります。

    2. 編集する localVolumeSet を決定します。

      以下のコマンドの local-storage-project は、ローカルストレージプロジェクトの名前に置き換えます。デフォルトのプロジェクト名は、OpenShift Container Storage 4.6 以降の openshift-local-storage です。以前のバージョンでは、デフォルトで local-storage を使用します。

      # oc get -n local-storage-project localvolumeset
      NAME          AGE
      localblock   25h
    3. localVolumeSet 定義を更新して、新規ノードを追加し、障害が発生したノードを削除します。

      # oc edit -n local-storage-project localvolumeset localblock
      [...]
         nodeSelector:
          nodeSelectorTerms:
            - matchExpressions:
                - key: kubernetes.io/hostname
                  operator: In
                  values:
                  - server1.example.com
                  - server2.example.com
                  #- server3.example.com
                  - newnode.example.com
      [...]

      エディターを終了する前に必ず保存します。

      上記の例では、server3.example.com が削除され、newnode.example.com が新規ノードになります。

  14. 新規 localblock PV が利用可能であることを確認します。

    $ oc get pv | grep localblock
              CAPA- ACCESS RECLAIM                                STORAGE
    NAME      CITY  MODES  POLICY  STATUS     CLAIM               CLASS       AGE
    local-pv- 931Gi  RWO   Delete  Bound      openshift-storage/  localblock  25h
    3e8964d3                                  ocs-deviceset-2-0
                                              -79j94
    local-pv- 931Gi  RWO   Delete  Bound      openshift-storage/  localblock  25h
    414755e0                                  ocs-deviceset-1-0
                                              -959rp
    local-pv- 931Gi RWO Delete Available localblock 3m24s b481410
    local-pv- 931Gi  RWO   Delete  Bound      openshift-storage/  localblock  25h
    d9c5cbd6                                  ocs-deviceset-0-0
                                              -nvs68
  15. openshift-storage プロジェクトを変更します。

    $ oc project openshift-storage
  16. 失敗した OSD をクラスターから削除します。

    $ oc process -n openshift-storage ocs-osd-removal \
    -p FAILED_OSD_IDS=failed-osd-id1,failed-osd-id2 | oc create -f -
  17. ocs-osd-removal Pod のステータスをチェックして、OSD が正常に削除されたことを確認します。

    Completed のステータスで、OSD の削除ジョブが正常に完了したことを確認します。

    # oc get pod -l job-name=ocs-osd-removal-failed-osd-id -n openshift-storage
    注記

    ocs-osd-removal が失敗し、Pod が予想される Completed の状態にない場合、追加のデバッグのために Pod ログを確認します。以下に例を示します。

    # oc logs -l job-name=ocs-osd-removal-failed-osd_id -n openshift-storage --tail=-1
  18. 障害のあるノードに関連付けられた PV を削除します。

    1. PVC に関連付けられた PV を特定します。

      # oc get pv -L kubernetes.io/hostname | grep localblock | grep Released
      local-pv-d6bf175b  1490Gi  RWO  Delete  Released  openshift-storage/ocs-deviceset-0-data-0-6c5pw  localblock  2d22h  compute-1
    2. PV を削除します。

      # oc delete pv <persistent-volume>

      以下に例を示します。

      # oc delete pv local-pv-d6bf175b
      persistentvolume "local-pv-d9c5cbd6" deleted
  19. crashcollector Pod デプロイメントを削除します。

    $ oc delete deployment --selector=app=rook-ceph-crashcollector,node_name=failed-node-name -n openshift-storage
  20. ocs-osd-removal ジョブを削除します。

    # oc delete job ocs-osd-removal-${osd_id_to_remove}

    出力例:

    job.batch "ocs-osd-removal-0" deleted

検証手順

  1. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. Workloads → Pods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。

    また、増分の mon が新規に作成されており、Running 状態にあることを確認します。

    $ oc get pod -n openshift-storage | grep mon

    出力例:

    rook-ceph-mon-c-64556f7659-c2ngc                                  1/1     Running     0          6h14m
    rook-ceph-mon-d-7c8b74dc4d-tt6hd                                  1/1     Running     0          4h24m
    rook-ceph-mon-e-57fb8c657-wg5f2                                   1/1     Running     0          162m

    OSD と Mon が Running 状態になるまで数分かかる場合があります。

  4. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  5. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

4.1.2. ユーザーによってプロビジョニングされるインフラストラクチャーでの失敗したノードの置き換え

前提条件

  • Red Hat では、交換前のノードと同様のインフラストラクチャー、リソースおよびディスクで、交換後のノードを設定することを推奨します。
  • OpenShift Container Platform (RHOCP) クラスターにログインしている必要があります。
  • 新規インストールを実行するのではなく、以前のバージョンから OpenShift Container Storage 4.6 にアップグレードしている場合、更新後の設定変更 が完了していることを確認します。

手順

  1. ノードを特定し、置き換えるノードのラベルを取得します。

    $ oc get nodes --show-labels | grep <node_name>
  2. 置き換えるノードで実行されている mon (ある場合) および OSD を特定します。

    $ oc get pods -n openshift-storage -o wide | grep -i <node_name>
  3. 先の手順で特定された Pod のデプロイメントをスケールダウンします。

    以下に例を示します。

    $ oc scale deployment rook-ceph-mon-c --replicas=0 -n openshift-storage
    $ oc scale deployment rook-ceph-osd-0 --replicas=0 -n openshift-storage
    $ oc scale deployment --selector=app=rook-ceph-crashcollector,node_name=<node_name>  --replicas=0 -n openshift-storage
  4. ノードにスケジュール対象外 (unschedulable) のマークを付けます。

    $ oc adm cordon <node_name>
  5. Terminating 状態の Pod を削除します。

    $ oc get pods -A -o wide | grep -i <node_name> |  awk '{if ($4 == "Terminating") system ("oc -n " $1 " delete pods " $2  " --grace-period=0 " " --force ")}'
  6. ノードをドレイン (解放) します。

    $ oc adm drain <node_name> --force --delete-local-data --ignore-daemonsets
  7. ノードを削除します。

    $ oc delete node <node_name>
  8. 必要なインフラストラクチャーで新規のベアメタルマシンを取得します。クラスターのベアメタルへのインストール を参照してください。
  9. 新規ベアメタルマシンを使用して新規 OpenShift Container Platform ノードを作成します。
  10. Pending 状態の OpenShift Container Platform に関連する証明書署名要求 (CSR) の有無を確認します。

    $ oc get csr
  11. 新規ノードに必要なすべての OpenShift Container Platform CSR を承認します。

    $ oc adm certificate approve <Certificate_Name>
  12. OpenShift Web コンソールで Compute → Nodes をクリックし、新規ノードが Ready 状態にあるかどうかを確認します。
  13. 以下のいずれかを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    ユーザーインターフェイスを使用する場合
    1. 新規ノードについて、Action Menu (⋮) → Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。

      $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
  14. 新規ワーカーノードを localVolumeDiscovery および localVolumeSet に追加します。

    1. localVolumeDiscovery 定義を更新し、新規ノードを追加して失敗したノードを削除します。

      # oc edit -n local-storage-project localvolumediscovery auto-discover-devices
      [...]
         nodeSelector:
          nodeSelectorTerms:
            - matchExpressions:
                - key: kubernetes.io/hostname
                  operator: In
                  values:
                  - server1.example.com
                  - server2.example.com
                  #- server3.example.com
                  - newnode.example.com
      [...]

      エディターを終了する前に必ず保存します。

      上記の例では、server3.example.com が削除され、newnode.example.com が新規ノードになります。

    2. 編集する localVolumeSet を決定します。

      以下のコマンドの local-storage-project は、ローカルストレージプロジェクトの名前に置き換えます。デフォルトのプロジェクト名は、OpenShift Container Storage 4.6 以降の openshift-local-storage です。以前のバージョンでは、デフォルトで local-storage を使用します。

      # oc get -n local-storage-project localvolumeset
      NAME          AGE
      localblock   25h
    3. localVolumeSet 定義を更新して、新規ノードを追加し、障害が発生したノードを削除します。

      # oc edit -n local-storage-project localvolumeset localblock
      [...]
         nodeSelector:
          nodeSelectorTerms:
            - matchExpressions:
                - key: kubernetes.io/hostname
                  operator: In
                  values:
                  - server1.example.com
                  - server2.example.com
                  #- server3.example.com
                  - newnode.example.com
      [...]

      エディターを終了する前に必ず保存します。

      上記の例では、server3.example.com が削除され、newnode.example.com が新規ノードになります。

  15. 新規 localblock PV が利用可能であることを確認します。

    $ oc get pv | grep localblock
              CAPA- ACCESS RECLAIM                                STORAGE
    NAME      CITY  MODES  POLICY  STATUS     CLAIM               CLASS       AGE
    local-pv- 931Gi  RWO   Delete  Bound      openshift-storage/  localblock  25h
    3e8964d3                                  ocs-deviceset-2-0
                                              -79j94
    local-pv- 931Gi  RWO   Delete  Bound      openshift-storage/  localblock  25h
    414755e0                                  ocs-deviceset-1-0
                                              -959rp
    local-pv- 931Gi RWO Delete Available localblock 3m24s b481410
    local-pv- 931Gi  RWO   Delete  Bound      openshift-storage/  localblock  25h
    d9c5cbd6                                  ocs-deviceset-0-0
                                              -nvs68
  16. openshift-storage プロジェクトを変更します。

    $ oc project openshift-storage
  17. 失敗した OSD をクラスターから削除します。

    $ oc process -n openshift-storage ocs-osd-removal \
    -p FAILED_OSD_IDS=failed-osd-id1,failed-osd-id2 | oc create -f -
  18. ocs-osd-removal Pod のステータスをチェックして、OSD が正常に削除されたことを確認します。

    Completed のステータスで、OSD の削除ジョブが正常に完了したことを確認します。

    # oc get pod -l job-name=ocs-osd-removal-failed-osd-id -n openshift-storage
    注記

    ocs-osd-removal が失敗し、Pod が予想される Completed の状態にない場合、追加のデバッグのために Pod ログを確認します。以下に例を示します。

    # oc logs -l job-name=ocs-osd-removal-failed-osd_id -n openshift-storage --tail=-1
  19. 障害のあるノードに関連付けられた PV を削除します。

    1. PVC に関連付けられた PV を特定します。

      # oc get pv -L kubernetes.io/hostname | grep localblock | grep Released
      local-pv-d6bf175b  1490Gi  RWO  Delete  Released  openshift-storage/ocs-deviceset-0-data-0-6c5pw  localblock  2d22h  compute-1
    2. PV を削除します。

      # oc delete pv <persistent-volume>

      以下に例を示します。

      # oc delete pv local-pv-d6bf175b
      persistentvolume "local-pv-d9c5cbd6" deleted
  20. crashcollector Pod デプロイメントを削除します。

    $ oc delete deployment --selector=app=rook-ceph-crashcollector,node_name=failed-node-name -n openshift-storage
  21. ocs-osd-removal ジョブを削除します。

    # oc delete job ocs-osd-removal-${osd_id_to_remove}

    出力例:

    job.batch "ocs-osd-removal-0" deleted

検証手順

  1. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. Workloads → Pods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。

    また、増分の mon が新規に作成されており、Running 状態にあることを確認します。

    $ oc get pod -n openshift-storage | grep mon

    出力例:

    rook-ceph-mon-c-64556f7659-c2ngc                                  1/1     Running     0          6h14m
    rook-ceph-mon-d-7c8b74dc4d-tt6hd                                  1/1     Running     0          4h24m
    rook-ceph-mon-e-57fb8c657-wg5f2                                   1/1     Running     0          162m

    OSD と Mon が Running 状態になるまで数分かかる場合があります。

  4. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  5. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

4.2. IBM Z または LinuxONE インフラストラクチャーでのストレージノードの置き換え

以下のいずれかの手順を選択して、ストレージノードを置き換えることができます。

4.2.1. IBM Z または LinuxONE インフラストラクチャーでの動作するノードの置き換え

以下の手順に従って、IBM Z または LinuxONE インフラストラクチャーで動作するノードを置き換えます。

手順

  1. OpenShift Web コンソールにログインします。
  2. ComputeNodes をクリックします。
  3. 置き換える必要のあるノードを特定します。その マシン名 をメモします。
  4. 以下のコマンドを実行して、ノードにスケジュール対象外 (unschedulable) のマークを付けます。

    $ oc adm cordon <node_name>
  5. 以下のコマンドを使用してノードをドレイン (解放) します。

    $ oc adm drain <node_name> --force --delete-local-data --ignore-daemonsets
    重要

    このアクティビティーには少なくとも 5-10 分以上かかる場合があります。この期間に生成される Ceph のエラーは一時的なもので、新規ノードにラベルが付けられ、これが機能すると自動的に解決されます。

  6. ComputeMachines をクリックします。必要なマシンを検索します。
  7. 必要なマシンの横にある Action menu (⋮)Delete Machine をクリックします。
  8. Delete をクリックしてマシンの削除を確認します。新しいマシンが自動的に作成されます。
  9. 新規マシンが起動し、Running 状態に移行するまで待機します。

    重要

    このアクティビティーには少なくとも 5-10 分以上かかる場合があります。

  10. ComputeNodes をクリックし、新規ノードが Ready 状態にあることを確認します。
  11. 以下のいずれかを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    ユーザーインターフェイスを使用する場合
    1. 新規ノードについて、Action Menu (⋮)Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。

      $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""

検証手順

  1. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. WorkloadsPods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。
  4. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  5. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

4.2.2. IBM Z または LinuxONE インフラストラクチャーでの障害のあるノードの置き換え

以下の手順に従って、OpenShift Container Storage の IBM Z または LinuxONE インフラストラクチャーで動作しない障害のあるノードを置き換えます。

手順

  1. OpenShift Web コンソールにログインし、ComputeNodes をクリックします。
  2. 障害のあるノードを特定し、その Machine Name をクリックします。
  3. ActionsEdit Annotations をクリックし、Add More をクリックします。
  4. machine.openshift.io/exclude-node-draining を追加し、Save をクリックします。
  5. ActionsDelete Machine をクリックしてから、Delete をクリックします。
  6. 新しいマシンが自動的に作成されます。新規マシンが起動するのを待機します。

    重要

    このアクティビティーには少なくとも 5-10 分以上かかる場合があります。この期間に生成される Ceph のエラーは一時的なもので、新規ノードにラベルが付けられ、これが機能すると自動的に解決されます。

  7. ComputeNodes をクリックし、新規ノードが Ready 状態にあることを確認します。
  8. 以下のいずれかを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    Web ユーザーインターフェイスの使用
    1. 新規ノードについて、Action Menu (⋮)Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。

      $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
  9. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= | cut -d' ' -f1
  10. WorkloadsPods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  11. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。
  12. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  13. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  14. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

4.3. Amazon EC2 インフラストラクチャーでのストレージノードの置き換え

4.3.1. ユーザーによってプロビジョニングされるインフラストラクチャーで動作する Amazon EC2 ノードの置き換え

以下の手順に従って、Amazon EC2 I3 のユーザーによってプロビジョニングされるインフラストラクチャー (UPI) で動作するノードを置き換えます。

重要

Amazon EC2 I3 インフラストラクチャーのストレージノードの置き換えはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat の実稼働環境のサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。Red Hat は実稼働環境でこれらを使用することを推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。

前提条件

  • Red Hat では、交換前のノードと同様のインフラストラクチャーおよびリソースで、交換後のノードを設定することを推奨します。
  • OpenShift Container Platform (RHOCP) クラスターにログインしている必要があります。

手順

  1. ノードを特定し、置き換えるノードのラベルを取得します。

    $ oc get nodes --show-labels | grep <node_name>
  2. 置き換えるノードで実行されている mon (ある場合) および OSD を特定します。

    $ oc get pods -n openshift-storage -o wide | grep -i <node_name>
  3. 先の手順で特定された Pod のデプロイメントをスケールダウンします。

    以下に例を示します。

    $ oc scale deployment rook-ceph-mon-c --replicas=0 -n openshift-storage
    $ oc scale deployment rook-ceph-osd-0 --replicas=0 -n openshift-storage
    $ oc scale deployment --selector=app=rook-ceph-crashcollector,node_name=<node_name>  --replicas=0 -n openshift-storage
  4. ノードにスケジュール対象外 (unschedulable) のマークを付けます。

    $ oc adm cordon <node_name>
  5. ノードをドレイン (解放) します。

    $ oc adm drain <node_name> --force --delete-local-data --ignore-daemonsets
  6. ノードを削除します。

    $ oc delete node <node_name>
  7. 必要なインフラストラクチャーで新規 Amazon EC2 I3 マシンインスタンスを作成します。サポートされるインフラストラクチャーおよびプラットフォーム について参照してください。
  8. 新規 Amazon EC2 I3 マシンインスタンスを使用して新規 OpenShift Container Platform ノードを作成します。
  9. Pending 状態の OpenShift Container Platform に関連する証明書署名要求 (CSR) の有無を確認します。

    $ oc get csr
  10. 新規ノードに必要なすべての OpenShift Container Platform CSR を承認します。

    $ oc adm certificate approve <Certificate_Name>
  11. OpenShift Web コンソールで Compute → Nodes をクリックします。新規ノードが Ready 状態にあるかどうかを確認します。
  12. 以下のいずれかを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    ユーザーインターフェイスを使用する場合
    1. 新規ノードについて、Action Menu (⋮)Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。
    $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
  13. 新規ワーカーノードで利用可能なローカルストレージデバイスを OpenShift Container Storage StorageCluster に追加します。

    1. 新規ディスクエントリーを LocalVolume CR に追加します。

      LocalVolume CR を編集します。障害のあるデバイス /dev/disk/by-id/{id} を削除またはコメントアウトし、新規の /dev/disk/by-id/{id} を追加します。

      $ oc get -n local-storage localvolume

      出力例:

      NAME          AGE
      local-block   25h
      $ oc edit -n local-storage localvolume local-block

      出力例:

      [...]
          storageClassDevices:
          - devicePaths:
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS10382E5D7441494EC
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS1F45C01D7E84FE3E9
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS136BC945B4ECB9AE4
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS10382E5D7441464EP
        #   - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS1F45C01D7E84F43E7
        #   - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS136BC945B4ECB9AE8
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS6F45C01D7E84FE3E9
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS636BC945B4ECB9AE4
            storageClassName: localblock
            volumeMode: Block
      [...]

      CR の編集後に変更を保存するようにしてください。

      この CR に by-id を使用する 2 つの新規デバイスが追加されていることを確認できます。

      • nvme-Amazon_EC2_NVMe_Instance_Storage_AWS6F45C01D7E84FE3E9
      • nvme-Amazon_EC2_NVMe_Instance_Storage_AWS636BC945B4ECB9AE4
    2. localblock と共に PV を表示します。

      $ oc get pv | grep localblock

      出力例:

      local-pv-3646185e   2328Gi  RWO     Delete      Available                                               localblock  9s
      local-pv-3933e86    2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-2-1-v9jp4   localblock  5h1m
      local-pv-8176b2bf   2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-0-0-nvs68   localblock  5h1m
      local-pv-ab7cabb3   2328Gi  RWO     Delete      Available                                               localblock  9s
      local-pv-ac52e8a    2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-1-0-knrgr   localblock  5h1m
      local-pv-b7e6fd37   2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-2-0-rdm7m   localblock  5h1m
      local-pv-cb454338   2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-0-1-h9hfm   localblock  5h1m
      local-pv-da5e3175   2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-1-1-g97lq   localblock  5h
      ...
  14. 障害のあるノードに関連付けられたストレージリソースを削除します。

    1. 置き換える OSD に関連付けられた DeviceSet を特定します。

      $ osd_id_to_remove=0
      $ oc get -n openshift-storage -o yaml deployment rook-ceph-osd-${osd_id_to_remove} | grep ceph.rook.io/pvc

      ここで、osd_id_to_removerook-ceph-osd 接頭辞の直後にくる Pod 名の整数です。この例では、デプロイメント名は rook-ceph-osd-0 です。

      出力例:

      ceph.rook.io/pvc: ocs-deviceset-0-0-nvs68
      ceph.rook.io/pvc: ocs-deviceset-0-0-nvs68
    2. PVC に関連付けられた PV を特定します。

      $ oc get -n openshift-storage pvc ocs-deviceset-<x>-<y>-<pvc-suffix>

      ここで、xy、および pvc-suffix は、前の手順で識別された DeviceSet の値です。

      出力例:

      NAME                      STATUS        VOLUME        CAPACITY   ACCESS MODES   STORAGECLASS   AGE
      ocs-deviceset-0-0-nvs68   Bound   local-pv-8176b2bf   2328Gi      RWO            localblock     4h49m

      この例では、関連付けられた PV は local-pv-8176b2bf です。

    3. openshift-storage プロジェクトを変更します。

      $ oc project openshift-storage
    4. 失敗した OSD をクラスターから削除します。

      $ oc process -n openshift-storage ocs-osd-removal -p FAILED_OSD_IDS=${osd_id_to_remove} | oc create -f -
    5. ocs-osd-removal Pod のステータスをチェックして、OSD が正常に削除されたことを確認します。Completed のステータスで、OSD の削除ジョブが正常に完了したことを確認します。

      # oc get pod -l job-name=ocs-osd-removal-${osd_id_to_remove} -n openshift-storage
      注記

      ocs-osd-removal が失敗し、Pod が予想される Completed の状態にない場合、追加のデバッグのために Pod ログを確認します。以下に例を示します。

      # oc logs -l job-name=ocs-osd-removal-${osd_id_to_remove} -n openshift-storage --tail=-1
    6. 先のステップで特定された PV を削除します。この例では、物理ボリューム名は local-pv-8176b2bf です。

      $ oc delete pv local-pv-8176b2bf

      出力例:

      persistentvolume "local-pv-8176b2bf" deleted
  15. 先の手順で特定された crashcollector Pod デプロイメントを削除します。

    $ oc delete deployment --selector=app=rook-ceph-crashcollector,node_name=<old_node_name> -n openshift-storage
  16. ocs-osd-removal ジョブを削除します。

    $ oc delete job ocs-osd-removal-${osd_id_to_remove}

    出力例:

    job.batch "ocs-osd-removal-0" deleted

検証手順

  1. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. Workloads → Pods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。

    また、増分の mon が新規に作成されており、Running 状態にあることを確認します。

    $ oc get pod -n openshift-storage | grep mon

    出力例:

    rook-ceph-mon-a-64556f7659-c2ngc    1/1     Running     0   5h1m
    rook-ceph-mon-b-7c8b74dc4d-tt6hd    1/1     Running     0   5h1m
    rook-ceph-mon-d-57fb8c657-wg5f2     1/1     Running     0   27m

    OSD と mon が Running 状態になるまで数分かかる場合があります。

  4. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  5. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

4.3.2. インストーラーでプロビジョニングされるインフラストラクチャーで動作する Amazon EC2 ノードの置き換え

以下の手順を使用して、Amazon EC2 I3 のインストーラーでプロビジョニングされるインフラストラクチャー (IPI) で動作するノードを置き換えます。

重要

Amazon EC2 I3 インフラストラクチャーのストレージノードの置き換えはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat の実稼働環境のサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。Red Hat は実稼働環境でこれらを使用することを推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。

前提条件

  • Red Hat では、交換前のノードと同様のインフラストラクチャーおよびリソースで、交換後のノードを設定することを推奨します。
  • OpenShift Container Platform (RHOCP) クラスターにログインしている必要があります。

手順

  1. OpenShift Web コンソールにログインし、 Compute → Nodes をクリックします。
  2. 置き換える必要のあるノードを特定します。そのマシン名をメモします。
  3. 置き換えるノードのラベルを取得します。

    $ oc get nodes --show-labels | grep <node_name>
  4. 置き換えるノードで実行されている mon (ある場合) および OSD を特定します。

    $ oc get pods -n openshift-storage -o wide | grep -i <node_name>
  5. 先の手順で特定された Pod のデプロイメントをスケールダウンします。

    以下に例を示します。

    $ oc scale deployment rook-ceph-mon-c --replicas=0 -n openshift-storage
    $ oc scale deployment rook-ceph-osd-0 --replicas=0 -n openshift-storage
    $ oc scale deployment --selector=app=rook-ceph-crashcollector,node_name=<node_name>  --replicas=0 -n openshift-storage
  6. ノードにスケジュール対象外 (unschedulable) のマークを付けます。

    $ oc adm cordon <node_name>
  7. ノードをドレイン (解放) します。

    $ oc adm drain <node_name> --force --delete-local-data --ignore-daemonsets
  8. Compute → Machines をクリックします。必要なマシンを検索します。
  9. 必要なマシンの横にある Action menu (⋮) → Delete Machine をクリックします。
  10. Delete をクリックしてマシンの削除を確認します。新しいマシンが自動的に作成されます。
  11. 新規マシンが起動し、Running 状態に移行するまで待機します。

    重要

    このアクティビティーには少なくとも 5-10 分以上かかる場合があります。

  12. OpenShift Web コンソールで Compute → Nodes をクリックします。新規ノードが Ready 状態にあるかどうかを確認します。
  13. 以下のいずれかを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    ユーザーインターフェイスを使用する場合
    1. 新規ノードについて、Action Menu (⋮) → Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。
    $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
  14. 新規ワーカーノードで利用可能なローカルストレージデバイスを OpenShift Container Storage StorageCluster に追加します。

    1. 新規ディスクエントリーを LocalVolume CR に追加します。

      LocalVolume CR を編集します。障害のあるデバイス /dev/disk/by-id/{id} を削除またはコメントアウトし、新規の /dev/disk/by-id/{id} を追加します。

      $ oc get -n local-storage localvolume

      出力例:

      NAME          AGE
      local-block   25h
      $ oc edit -n local-storage localvolume local-block

      出力例:

      [...]
          storageClassDevices:
          - devicePaths:
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS10382E5D7441494EC
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS1F45C01D7E84FE3E9
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS136BC945B4ECB9AE4
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS10382E5D7441464EP
        #   - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS1F45C01D7E84F43E7
        #   - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS136BC945B4ECB9AE8
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS6F45C01D7E84FE3E9
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS636BC945B4ECB9AE4
            storageClassName: localblock
            volumeMode: Block
      [...]

      CR の編集後に変更を保存するようにしてください。

      この CR に by-id を使用する 2 つの新規デバイスが追加されていることを確認できます。

      • nvme-Amazon_EC2_NVMe_Instance_Storage_AWS6F45C01D7E84FE3E9
      • nvme-Amazon_EC2_NVMe_Instance_Storage_AWS636BC945B4ECB9AE4
    2. localblock と共に PV を表示します。

      $ oc get pv | grep localblock

      出力例:

      local-pv-3646185e   2328Gi  RWO     Delete      Available                                               localblock  9s
      local-pv-3933e86    2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-2-1-v9jp4   localblock  5h1m
      local-pv-8176b2bf   2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-0-0-nvs68   localblock  5h1m
      local-pv-ab7cabb3   2328Gi  RWO     Delete      Available                                               localblock  9s
      local-pv-ac52e8a    2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-1-0-knrgr   localblock  5h1m
      local-pv-b7e6fd37   2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-2-0-rdm7m   localblock  5h1m
      local-pv-cb454338   2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-0-1-h9hfm   localblock  5h1m
      local-pv-da5e3175   2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-1-1-g97lq   localblock  5h
      ...
  15. 障害のあるノードに関連付けられたストレージリソースを削除します。

    1. 置き換える OSD に関連付けられた DeviceSet を特定します。

      $ osd_id_to_remove=0
      $ oc get -n openshift-storage -o yaml deployment rook-ceph-osd-${osd_id_to_remove} | grep ceph.rook.io/pvc

      ここで、osd_id_to_removerook-ceph-osd 接頭辞の直後にくる Pod 名の整数です。この例では、デプロイメント名は rook-ceph-osd-0 です。

      出力例:

      ceph.rook.io/pvc: ocs-deviceset-0-0-nvs68
      ceph.rook.io/pvc: ocs-deviceset-0-0-nvs68
    2. PVC に関連付けられた PV を特定します。

      $ oc get -n openshift-storage pvc ocs-deviceset-<x>-<y>-<pvc-suffix>

      ここで、xy、および pvc-suffix は、前の手順で識別された DeviceSet の値です。

      出力例:

      NAME                      STATUS        VOLUME        CAPACITY   ACCESS MODES   STORAGECLASS   AGE
      ocs-deviceset-0-0-nvs68   Bound   local-pv-8176b2bf   2328Gi      RWO            localblock     4h49m

      この例では、関連付けられた PV は local-pv-8176b2bf です。

    3. openshift-storage プロジェクトを変更します。

      $ oc project openshift-storage
    4. 失敗した OSD をクラスターから削除します。

      $ oc process -n openshift-storage ocs-osd-removal -p FAILED_OSD_IDS=${osd_id_to_remove} | oc create -f -
    5. ocs-osd-removal Pod のステータスをチェックして、OSD が正常に削除されたことを確認します。Completed のステータスで、OSD の削除ジョブが正常に完了したことを確認します。

      # oc get pod -l job-name=ocs-osd-removal-${osd_id_to_remove} -n openshift-storage
      注記

      ocs-osd-removal が失敗し、Pod が予想される Completed の状態にない場合、追加のデバッグのために Pod ログを確認します。以下に例を示します。

      # oc logs -l job-name=ocs-osd-removal-${osd_id_to_remove} -n openshift-storage --tail=-1
    6. 先のステップで特定された PV を削除します。この例では、物理ボリューム名は local-pv-8176b2bf です。

      $ oc delete pv local-pv-8176b2bf

      出力例:

      persistentvolume "local-pv-8176b2bf" deleted
  16. 先の手順で特定された crashcollector Pod デプロイメントを削除します。

    $ oc delete deployment --selector=app=rook-ceph-crashcollector,node_name=<old_node_name> -n openshift-storage
    1. rook-ceph-operator を削除します。

      $ oc delete -n openshift-storage pod rook-ceph-operator-6f74fb5bff-2d982

      出力例:

      pod "rook-ceph-operator-6f74fb5bff-2d982" deleted
    2. rook-ceph-operator Pod が再起動していることを確認します。

      $ oc get -n openshift-storage pod -l app=rook-ceph-operator

      出力例:

      NAME                                  READY   STATUS    RESTARTS   AGE
      rook-ceph-operator-6f74fb5bff-7mvrq   1/1     Running   0          66s

      新規 OSD の作成には、Operator が起動するまでに数分かかる場合があります。

  17. ocs-osd-removal ジョブを削除します。

    $ oc delete job ocs-osd-removal-${osd_id_to_remove}

    出力例:

    job.batch "ocs-osd-removal-0" deleted

検証手順

  1. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. Workloads → Pods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。

    また、増分の mon が新規に作成されており、Running 状態にあることを確認します。

    $ oc get pod -n openshift-storage | grep mon

    出力例:

    rook-ceph-mon-a-64556f7659-c2ngc    1/1     Running     0   5h1m
    rook-ceph-mon-b-7c8b74dc4d-tt6hd    1/1     Running     0   5h1m
    rook-ceph-mon-d-57fb8c657-wg5f2     1/1     Running     0   27m

    OSD と mon が Running 状態になるまで数分かかる場合があります。

  4. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  5. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

4.3.3. ユーザーによってプロビジョニングされるインフラストラクチャーでの障害のある Amazon EC2 ノードの置き換え

OpenShift Container Storage の Amazon EC2 I3 の一時ストレージにより、インスタンスの電源がオフにされる場合にデータが失われる可能性があります。以下の手順を使用して、Amazon EC2 インフラストラクチャーでのインスタンスの電源オフからのリカバリーを行います。

重要

Amazon EC2 I3 インフラストラクチャーのストレージノードの置き換えはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat の実稼働環境のサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。Red Hat は実稼働環境でこれらを使用することを推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。

前提条件

  • Red Hat では、交換前のノードと同様のインフラストラクチャーおよびリソースで、交換後のノードを設定することを推奨します。
  • OpenShift Container Platform (RHOCP) クラスターにログインしている必要があります。

手順

  1. ノードを特定し、置き換えるノードのラベルを取得します。

    $ oc get nodes --show-labels | grep <node_name>
  2. 置き換えるノードで実行されている mon (ある場合) および OSD を特定します。

    $ oc get pods -n openshift-storage -o wide | grep -i <node_name>
  3. 先の手順で特定された Pod のデプロイメントをスケールダウンします。

    以下に例を示します。

    $ oc scale deployment rook-ceph-mon-c --replicas=0 -n openshift-storage
    $ oc scale deployment rook-ceph-osd-0 --replicas=0 -n openshift-storage
    $ oc scale deployment --selector=app=rook-ceph-crashcollector,node_name=<node_name>  --replicas=0 -n openshift-storage
  4. ノードにスケジュール対象外 (unschedulable) のマークを付けます。

    $ oc adm cordon <node_name>
  5. Terminating 状態の Pod を削除します。

    $ oc get pods -A -o wide | grep -i <node_name> |  awk '{if ($4 == "Terminating") system ("oc -n " $1 " delete pods " $2  " --grace-period=0 " " --force ")}'
  6. ノードをドレイン (解放) します。

    $ oc adm drain <node_name> --force --delete-local-data --ignore-daemonsets
  7. ノードを削除します。

    $ oc delete node <node_name>
  8. 必要なインフラストラクチャーで新規 Amazon EC2 I3 マシンインスタンスを作成します。サポートされるインフラストラクチャーおよびプラットフォーム について参照してください。
  9. 新規 Amazon EC2 I3 マシンインスタンスを使用して新規 OpenShift Container Platform ノードを作成します。
  10. Pending 状態の OpenShift Container Platform に関連する証明書署名要求 (CSR) の有無を確認します。

    $ oc get csr
  11. 新規ノードに必要なすべての OpenShift Container Platform CSR を承認します。

    $ oc adm certificate approve <Certificate_Name>
  12. OpenShift Web コンソールで Compute → Nodes をクリックします。新規ノードが Ready 状態にあるかどうかを確認します。
  13. 以下のいずれかを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    ユーザーインターフェイスを使用する場合
    1. 新規ノードについて、Action Menu (⋮) → Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。
    $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
  14. 新規ワーカーノードで利用可能なローカルストレージデバイスを OpenShift Container Storage StorageCluster に追加します。

    1. 新規ディスクエントリーを LocalVolume CR に追加します。

      LocalVolume CR を編集します。障害のあるデバイス /dev/disk/by-id/{id} を削除またはコメントアウトし、新規の /dev/disk/by-id/{id} を追加します。

      $ oc get -n local-storage localvolume

      出力例:

      NAME          AGE
      local-block   25h
      $ oc edit -n local-storage localvolume local-block

      出力例:

      [...]
          storageClassDevices:
          - devicePaths:
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS10382E5D7441494EC
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS1F45C01D7E84FE3E9
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS136BC945B4ECB9AE4
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS10382E5D7441464EP
        #   - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS1F45C01D7E84F43E7
        #   - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS136BC945B4ECB9AE8
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS6F45C01D7E84FE3E9
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS636BC945B4ECB9AE4
            storageClassName: localblock
            volumeMode: Block
      [...]

      CR の編集後に変更を保存するようにしてください。

      この CR に by-id を使用する 2 つの新規デバイスが追加されていることを確認できます。

      • nvme-Amazon_EC2_NVMe_Instance_Storage_AWS6F45C01D7E84FE3E9
      • nvme-Amazon_EC2_NVMe_Instance_Storage_AWS636BC945B4ECB9AE4
    2. localblock と共に PV を表示します。

      $ oc get pv | grep localblock

      出力例:

      local-pv-3646185e   2328Gi  RWO     Delete      Available                                               localblock  9s
      local-pv-3933e86    2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-2-1-v9jp4   localblock  5h1m
      local-pv-8176b2bf   2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-0-0-nvs68   localblock  5h1m
      local-pv-ab7cabb3   2328Gi  RWO     Delete      Available                                               localblock  9s
      local-pv-ac52e8a    2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-1-0-knrgr   localblock  5h1m
      local-pv-b7e6fd37   2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-2-0-rdm7m   localblock  5h1m
      local-pv-cb454338   2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-0-1-h9hfm   localblock  5h1m
      local-pv-da5e3175   2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-1-1-g97lq   localblock  5h
      ...
  15. 障害のあるノードに関連付けられたストレージリソースを削除します。

    1. 置き換える OSD に関連付けられた DeviceSet を特定します。

      $ osd_id_to_remove=0
      $ oc get -n openshift-storage -o yaml deployment rook-ceph-osd-${osd_id_to_remove} | grep ceph.rook.io/pvc

      ここで、osd_id_to_removerook-ceph-osd 接頭辞の直後にくる Pod 名の整数です。この例では、デプロイメント名は rook-ceph-osd-0 です。

      出力例:

      ceph.rook.io/pvc: ocs-deviceset-0-0-nvs68
      ceph.rook.io/pvc: ocs-deviceset-0-0-nvs68
    2. PVC に関連付けられた PV を特定します。

      $ oc get -n openshift-storage pvc ocs-deviceset-<x>-<y>-<pvc-suffix>

      ここで、xy、および pvc-suffix は、前の手順で識別された DeviceSet の値です。

      出力例:

      NAME                      STATUS        VOLUME        CAPACITY   ACCESS MODES   STORAGECLASS   AGE
      ocs-deviceset-0-0-nvs68   Bound   local-pv-8176b2bf   2328Gi      RWO            localblock     4h49m

      この例では、関連付けられた PV は local-pv-8176b2bf です。

    3. openshift-storage プロジェクトに変更します。

      $ oc project openshift-storage
    4. 失敗した OSD をクラスターから削除します。

      $ oc process -n openshift-storage ocs-osd-removal -p FAILED_OSD_IDS=${osd_ids_to_remove} | oc create -f -
    5. ocs-osd-removal Pod のステータスをチェックして、OSD が正常に削除されたことを確認します。Completed のステータスで、OSD の削除ジョブが正常に完了したことを確認します。

      # oc get pod -l job-name=ocs-osd-removal-${osd_id_to_remove} -n openshift-storage
      注記

      ocs-osd-removal が失敗し、Pod が予想される Completed の状態にない場合、追加のデバッグのために Pod ログを確認します。以下に例を示します。

      # oc logs -l job-name=ocs-osd-removal-${osd_id_to_remove} -n openshift-storage --tail=-1
    6. 先のステップで特定された PV を削除します。この例では、物理ボリューム名は local-pv-8176b2bf です。

      $ oc delete pv local-pv-8176b2bf

      出力例:

      persistentvolume "local-pv-8176b2bf" deleted
  16. 先の手順で特定された crashcollector Pod デプロイメントを削除します。

    $ oc delete deployment --selector=app=rook-ceph-crashcollector,node_name=<old_node_name> -n openshift-storage
  17. ocs-osd-removal ジョブを削除します。

    $ oc delete job ocs-osd-removal-${osd_id_to_remove}

    出力例:

    job.batch "ocs-osd-removal-0" deleted

検証手順

  1. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. Workloads → Pods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。

    また、増分の mon が新規に作成されており、Running 状態にあることを確認します。

    $ oc get pod -n openshift-storage | grep mon

    出力例:

    rook-ceph-mon-a-64556f7659-c2ngc    1/1     Running     0   5h1m
    rook-ceph-mon-b-7c8b74dc4d-tt6hd    1/1     Running     0   5h1m
    rook-ceph-mon-d-57fb8c657-wg5f2     1/1     Running     0   27m

    OSD と mon が Running 状態になるまで数分かかる場合があります。

  4. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  5. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

4.3.4. インストーラーでプロビジョニングされるインフラストラクチャーでの失敗した Amazon EC2 ノードの置き換え

OpenShift Container Storage の Amazon EC2 I3 の一時ストレージにより、インスタンスの電源がオフにされる場合にデータが失われる可能性があります。以下の手順を使用して、Amazon EC2 インフラストラクチャーでのインスタンスの電源オフからのリカバリーを行います。

重要

Amazon EC2 I3 インフラストラクチャーのストレージノードの置き換えはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat の実稼働環境のサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。Red Hat は実稼働環境でこれらを使用することを推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。

前提条件

  • Red Hat では、交換前のノードと同様のインフラストラクチャーおよびリソースで、交換後のノードを設定することを推奨します。
  • OpenShift Container Platform (RHOCP) クラスターにログインしている必要があります。

手順

  1. OpenShift Web コンソールにログインし、 Compute → Nodes をクリックします。
  2. 置き換える必要のあるノードを特定します。そのマシン名をメモします。
  3. 置き換えるノードのラベルを取得します。

    $ oc get nodes --show-labels | grep <node_name>
  4. 置き換えるノードで実行されている mon (ある場合) および OSD を特定します。

    $ oc get pods -n openshift-storage -o wide | grep -i <node_name>
  5. 先の手順で特定された Pod のデプロイメントをスケールダウンします。

    以下に例を示します。

    $ oc scale deployment rook-ceph-mon-c --replicas=0 -n openshift-storage
    $ oc scale deployment rook-ceph-osd-0 --replicas=0 -n openshift-storage
    $ oc scale deployment --selector=app=rook-ceph-crashcollector,node_name=<node_name>  --replicas=0 -n openshift-storage
  6. ノードにスケジュール対象外 (unschedulable) のマークを付けます。

    $ oc adm cordon <node_name>
  7. Terminating 状態の Pod を削除します。

    $ oc get pods -A -o wide | grep -i <node_name> |  awk '{if ($4 == "Terminating") system ("oc -n " $1 " delete pods " $2  " --grace-period=0 " " --force ")}'
  8. ノードをドレイン (解放) します。

    $ oc adm drain <node_name> --force --delete-local-data --ignore-daemonsets
  9. Compute → Machines をクリックします。必要なマシンを検索します。
  10. 必要なマシンの横にある Action menu (⋮) → Delete Machine をクリックします。
  11. Delete をクリックしてマシンの削除を確認します。新しいマシンが自動的に作成されます。
  12. 新規マシンが起動し、Running 状態に移行するまで待機します。

    重要

    このアクティビティーには少なくとも 5-10 分以上かかる場合があります。

  13. OpenShift Web コンソールで Compute → Nodes をクリックします。新規ノードが Ready 状態にあるかどうかを確認します。
  14. 以下のいずれかを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    ユーザーインターフェイスを使用する場合
    1. 新規ノードについて、Action Menu (⋮) → Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。
    $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
  15. 新規ワーカーノードで利用可能なローカルストレージデバイスを OpenShift Container Storage StorageCluster に追加します。

    1. 新規ディスクエントリーを LocalVolume CR に追加します。

      LocalVolume CR を編集します。障害のあるデバイス /dev/disk/by-id/{id} を削除またはコメントアウトし、新規の /dev/disk/by-id/{id} を追加します。

      $ oc get -n local-storage localvolume

      出力例:

      NAME          AGE
      local-block   25h
      $ oc edit -n local-storage localvolume local-block

      出力例:

      [...]
          storageClassDevices:
          - devicePaths:
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS10382E5D7441494EC
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS1F45C01D7E84FE3E9
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS136BC945B4ECB9AE4
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS10382E5D7441464EP
        #   - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS1F45C01D7E84F43E7
        #   - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS136BC945B4ECB9AE8
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS6F45C01D7E84FE3E9
            - /dev/disk/by-id/nvme-Amazon_EC2_NVMe_Instance_Storage_AWS636BC945B4ECB9AE4
            storageClassName: localblock
            volumeMode: Block
      [...]

      CR の編集後に変更を保存するようにしてください。

      この CR に by-id を使用する 2 つの新規デバイスが追加されていることを確認できます。

      • nvme-Amazon_EC2_NVMe_Instance_Storage_AWS6F45C01D7E84FE3E9
      • nvme-Amazon_EC2_NVMe_Instance_Storage_AWS636BC945B4ECB9AE4
    2. localblock と共に PV を表示します。

      $ oc get pv | grep localblock

      出力例:

      local-pv-3646185e   2328Gi  RWO     Delete      Available                                               localblock  9s
      local-pv-3933e86    2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-2-1-v9jp4   localblock  5h1m
      local-pv-8176b2bf   2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-0-0-nvs68   localblock  5h1m
      local-pv-ab7cabb3   2328Gi  RWO     Delete      Available                                               localblock  9s
      local-pv-ac52e8a    2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-1-0-knrgr   localblock  5h1m
      local-pv-b7e6fd37   2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-2-0-rdm7m   localblock  5h1m
      local-pv-cb454338   2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-0-1-h9hfm   localblock  5h1m
      local-pv-da5e3175   2328Gi  RWO     Delete      Bound       openshift-storage/ocs-deviceset-1-1-g97lq   localblock  5h
      ...
  16. 障害のあるノードに関連付けられたストレージリソースを削除します。

    1. 置き換える OSD に関連付けられた DeviceSet を特定します。

      $ osd_id_to_remove=0
      $ oc get -n openshift-storage -o yaml deployment rook-ceph-osd-${osd_id_to_remove} | grep ceph.rook.io/pvc

      ここで、osd_id_to_removerook-ceph-osd 接頭辞の直後にくる Pod 名の整数です。この例では、デプロイメント名は rook-ceph-osd-0 です。

      出力例:

      ceph.rook.io/pvc: ocs-deviceset-0-0-nvs68
      ceph.rook.io/pvc: ocs-deviceset-0-0-nvs68
    2. PVC に関連付けられた PV を特定します。

      $ oc get -n openshift-storage pvc ocs-deviceset-<x>-<y>-<pvc-suffix>

      ここで、xy、および pvc-suffix は、前の手順で識別された DeviceSet の値です。

      出力例:

      NAME                      STATUS        VOLUME        CAPACITY   ACCESS MODES   STORAGECLASS   AGE
      ocs-deviceset-0-0-nvs68   Bound   local-pv-8176b2bf   2328Gi      RWO            localblock     4h49m

      この例では、関連付けられた PV は local-pv-8176b2bf です。

    3. openshift-storage プロジェクトに変更します。

      $ oc project openshift-storage
    4. 失敗した OSD をクラスターから削除します。

      $ oc process -n openshift-storage ocs-osd-removal -p FAILED_OSD_IDS=${osd_ids_to_remove} | oc create -f -
    5. ocs-osd-removal Pod のステータスをチェックして、OSD が正常に削除されたことを確認します。Completed のステータスで、OSD の削除ジョブが正常に完了したことを確認します。

      # oc get pod -l job-name=ocs-osd-removal-${osd_id_to_remove} -n openshift-storage
      注記

      ocs-osd-removal が失敗し、Pod が予想される Completed の状態にない場合、追加のデバッグのために Pod ログを確認します。以下に例を示します。

      # oc logs -l job-name=ocs-osd-removal-${osd_id_to_remove} -n openshift-storage --tail=-1
    6. 先のステップで特定された PV を削除します。この例では、物理ボリューム名は local-pv-8176b2bf です。

      $ oc delete pv local-pv-8176b2bf

      出力例:

      persistentvolume "local-pv-8176b2bf" deleted
  17. 先の手順で特定された crashcollector Pod デプロイメントを削除します。

    $ oc delete deployment --selector=app=rook-ceph-crashcollector,node_name=<old_node_name> -n openshift-storage
  18. ocs-osd-removal ジョブを削除します。

    $ oc delete job ocs-osd-removal-${osd_id_to_remove}

    出力例:

    job.batch "ocs-osd-removal-0" deleted

検証手順

  1. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. Workloads → Pods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。

    また、増分の mon が新規に作成されており、Running 状態にあることを確認します。

    $ oc get pod -n openshift-storage | grep mon

    出力例:

    rook-ceph-mon-a-64556f7659-c2ngc    1/1     Running     0   5h1m
    rook-ceph-mon-b-7c8b74dc4d-tt6hd    1/1     Running     0   5h1m
    rook-ceph-mon-d-57fb8c657-wg5f2     1/1     Running     0   27m

    OSD と mon が Running 状態になるまで数分かかる場合があります。

  4. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  5. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

4.4. VMWare インフラストラクチャーでのストレージノードの置き換え

4.4.1. VMware のユーザーによってプロビジョニングされるインフラストラクチャーで動作するノードの置き換え

前提条件

  • Red Hat では、交換前のノードと同様のインフラストラクチャー、リソースおよびディスクで、交換後のノードを設定することを推奨します。
  • OpenShift Container Platform (RHOCP) クラスターにログインしている必要があります。
  • 新規インストールを実行するのではなく、以前のバージョンから OpenShift Container Storage 4.6 にアップグレードしている場合、更新後の設定変更 が完了していることを確認します。

手順

  1. ノードを特定し、置き換えるノードのラベルを取得します。

    $ oc get nodes --show-labels | grep <node_name>
  2. 置き換えるノードで実行されている mon (ある場合) および OSD を特定します。

    $ oc get pods -n openshift-storage -o wide | grep -i <node_name>
  3. 先の手順で特定された Pod のデプロイメントをスケールダウンします。

    以下に例を示します。

    $ oc scale deployment rook-ceph-mon-c --replicas=0 -n openshift-storage
    $ oc scale deployment rook-ceph-osd-0 --replicas=0 -n openshift-storage
    $ oc scale deployment --selector=app=rook-ceph-crashcollector,node_name=<node_name>  --replicas=0 -n openshift-storage
  4. ノードにスケジュール対象外 (unschedulable) のマークを付けます。

    $ oc adm cordon <node_name>
  5. ノードをドレイン (解放) します。

    $ oc adm drain <node_name> --force --delete-local-data --ignore-daemonsets
  6. ノードを削除します。

    $ oc delete node <node_name>
  7. VSphere にログインし、特定された仮想マシンを終了します。
  8. 必要なインフラストラクチャーで VMware に新規の仮想マシンを作成します。サポートされるインフラストラクチャーおよびプラットフォーム について参照してください。
  9. 新規の仮想マシンを使用して新規 OpenShift Container Platform ワーカーノードを作成します。
  10. Pending 状態の OpenShift Container Platform に関連する証明書署名要求 (CSR) の有無を確認します。

    $ oc get csr
  11. 新規ノードに必要なすべての OpenShift Container Platform CSR を承認します。

    $ oc adm certificate approve <Certificate_Name>
  12. OpenShift Web コンソールで Compute → Nodes をクリックし、新規ノードが Ready 状態にあるかどうかを確認します。
  13. 以下のいずれかを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    ユーザーインターフェイスを使用する場合
    1. 新規ノードについて、Action Menu (⋮) → Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。

      $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
  14. 新規ワーカーノードを localVolumeDiscovery および localVolumeSet に追加します。

    1. localVolumeDiscovery 定義を更新し、新規ノードを追加して失敗したノードを削除します。

      # oc edit -n local-storage-project localvolumediscovery auto-discover-devices
      [...]
         nodeSelector:
          nodeSelectorTerms:
            - matchExpressions:
                - key: kubernetes.io/hostname
                  operator: In
                  values:
                  - server1.example.com
                  - server2.example.com
                  #- server3.example.com
                  - newnode.example.com
      [...]

      エディターを終了する前に必ず保存します。

      上記の例では、server3.example.com が削除され、newnode.example.com が新規ノードになります。

    2. 編集する localVolumeSet を決定します。

      以下のコマンドの local-storage-project は、ローカルストレージプロジェクトの名前に置き換えます。デフォルトのプロジェクト名は、OpenShift Container Storage 4.6 以降の openshift-local-storage です。以前のバージョンでは、デフォルトで local-storage を使用します。

      # oc get -n local-storage-project localvolumeset
      NAME          AGE
      localblock   25h
    3. localVolumeSet 定義を更新して、新規ノードを追加し、障害が発生したノードを削除します。

      # oc edit -n local-storage-project localvolumeset localblock
      [...]
         nodeSelector:
          nodeSelectorTerms:
            - matchExpressions:
                - key: kubernetes.io/hostname
                  operator: In
                  values:
                  - server1.example.com
                  - server2.example.com
                  #- server3.example.com
                  - newnode.example.com
      [...]

      エディターを終了する前に必ず保存します。

      上記の例では、server3.example.com が削除され、newnode.example.com が新規ノードになります。

  15. 新規 localblock PV が利用可能であることを確認します。

    $ oc get pv | grep localblock
              CAPA- ACCESS RECLAIM                                STORAGE
    NAME      CITY  MODES  POLICY  STATUS     CLAIM               CLASS       AGE
    local-pv- 931Gi  RWO   Delete  Bound      openshift-storage/  localblock  25h
    3e8964d3                                  ocs-deviceset-2-0
                                              -79j94
    local-pv- 931Gi  RWO   Delete  Bound      openshift-storage/  localblock  25h
    414755e0                                  ocs-deviceset-1-0
                                              -959rp
    local-pv- 931Gi RWO Delete Available localblock 3m24s b481410
    local-pv- 931Gi  RWO   Delete  Bound      openshift-storage/  localblock  25h
    d9c5cbd6                                  ocs-deviceset-0-0
                                              -nvs68
  16. openshift-storage プロジェクトを変更します。

    $ oc project openshift-storage
  17. 失敗した OSD をクラスターから削除します。

    $ oc process -n openshift-storage ocs-osd-removal \
    -p FAILED_OSD_IDS=failed-osd-id1,failed-osd-id2 | oc create -f -
  18. ocs-osd-removal Pod のステータスをチェックして、OSD が正常に削除されたことを確認します。

    Completed のステータスで、OSD の削除ジョブが正常に完了したことを確認します。

    # oc get pod -l job-name=ocs-osd-removal-failed-osd-id -n openshift-storage
    注記

    ocs-osd-removal が失敗し、Pod が予想される Completed の状態にない場合、追加のデバッグのために Pod ログを確認します。以下に例を示します。

    # oc logs -l job-name=ocs-osd-removal-failed-osd_id -n openshift-storage --tail=-1
  19. 障害のあるノードに関連付けられた PV を削除します。

    1. PVC に関連付けられた PV を特定します。

      # oc get pv -L kubernetes.io/hostname | grep localblock | grep Released
      local-pv-d6bf175b  1490Gi  RWO  Delete  Released  openshift-storage/ocs-deviceset-0-data-0-6c5pw  localblock  2d22h  compute-1
    2. PV を削除します。

      # oc delete pv <persistent-volume>

      以下に例を示します。

      # oc delete pv local-pv-d6bf175b
      persistentvolume "local-pv-d9c5cbd6" deleted
  20. crashcollector Pod デプロイメントを削除します。

    $ oc delete deployment --selector=app=rook-ceph-crashcollector,node_name=failed-node-name -n openshift-storage
  21. ocs-osd-removal ジョブを削除します。

    # oc delete job ocs-osd-removal-${osd_id_to_remove}

    出力例:

    job.batch "ocs-osd-removal-0" deleted

検証手順

  1. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. Workloads → Pods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。

    また、増分の mon が新規に作成されており、Running 状態にあることを確認します。

    $ oc get pod -n openshift-storage | grep mon

    出力例:

    rook-ceph-mon-c-64556f7659-c2ngc                                  1/1     Running     0          6h14m
    rook-ceph-mon-d-7c8b74dc4d-tt6hd                                  1/1     Running     0          4h24m
    rook-ceph-mon-e-57fb8c657-wg5f2                                   1/1     Running     0          162m

    OSD と Mon が Running 状態になるまで数分かかる場合があります。

  4. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  5. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

4.4.2. VMware ユーザーによってプロビジョニングされるインフラストラクチャーでの障害のあるノードの置き換え

前提条件

  • Red Hat では、交換前のノードと同様のインフラストラクチャー、リソースおよびディスクで、交換後のノードを設定することを推奨します。
  • OpenShift Container Platform (RHOCP) クラスターにログインしている必要があります。
  • 新規インストールを実行するのではなく、以前のバージョンから OpenShift Container Storage 4.6 にアップグレードしている場合、更新後の設定変更 が完了していることを確認します。

手順

  1. ノードを特定し、置き換えるノードのラベルを取得します。

    $ oc get nodes --show-labels | grep <node_name>
  2. 置き換えるノードで実行されている mon (ある場合) および OSD を特定します。

    $ oc get pods -n openshift-storage -o wide | grep -i <node_name>
  3. 先の手順で特定された Pod のデプロイメントをスケールダウンします。

    以下に例を示します。

    $ oc scale deployment rook-ceph-mon-c --replicas=0 -n openshift-storage
    $ oc scale deployment rook-ceph-osd-0 --replicas=0 -n openshift-storage
    $ oc scale deployment --selector=app=rook-ceph-crashcollector,node_name=<node_name>  --replicas=0 -n openshift-storage
  4. ノードにスケジュール対象外 (unschedulable) のマークを付けます。

    $ oc adm cordon <node_name>
  5. Terminating 状態の Pod を削除します。

    $ oc get pods -A -o wide | grep -i <node_name> |  awk '{if ($4 == "Terminating") system ("oc -n " $1 " delete pods " $2  " --grace-period=0 " " --force ")}'
  6. ノードをドレイン (解放) します。

    $ oc adm drain <node_name> --force --delete-local-data --ignore-daemonsets
  7. ノードを削除します。

    $ oc delete node <node_name>
  8. VSphere にログインし、特定された仮想マシンを終了します。
  9. 必要なインフラストラクチャーで VMware に新規の仮想マシンを作成します。サポートされるインフラストラクチャーおよびプラットフォーム について参照してください。
  10. 新規の仮想マシンを使用して新規 OpenShift Container Platform ワーカーノードを作成します。
  11. Pending 状態の OpenShift Container Platform に関連する証明書署名要求 (CSR) の有無を確認します。

    $ oc get csr
  12. 新規ノードに必要なすべての OpenShift Container Platform CSR を承認します。

    $ oc adm certificate approve <Certificate_Name>
  13. OpenShift Web コンソールで Compute → Nodes をクリックし、新規ノードが Ready 状態にあるかどうかを確認します。
  14. 以下のいずれかを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    ユーザーインターフェイスを使用する場合
    1. 新規ノードについて、Action Menu (⋮) → Edit Labels をクリックします。
    2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    コマンドラインインターフェイスの使用
    • 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。

      $ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
  15. 新規ワーカーノードを localVolumeDiscovery および localVolumeSet に追加します。

    1. localVolumeDiscovery 定義を更新し、新規ノードを追加して失敗したノードを削除します。

      # oc edit -n local-storage-project localvolumediscovery auto-discover-devices
      [...]
         nodeSelector:
          nodeSelectorTerms:
            - matchExpressions:
                - key: kubernetes.io/hostname
                  operator: In
                  values:
                  - server1.example.com
                  - server2.example.com
                  #- server3.example.com
                  - newnode.example.com
      [...]

      エディターを終了する前に必ず保存します。

      上記の例では、server3.example.com が削除され、newnode.example.com が新規ノードになります。

    2. 編集する localVolumeSet を決定します。

      以下のコマンドの local-storage-project は、ローカルストレージプロジェクトの名前に置き換えます。デフォルトのプロジェクト名は、OpenShift Container Storage 4.6 以降の openshift-local-storage です。以前のバージョンでは、デフォルトで local-storage を使用します。

      # oc get -n local-storage-project localvolumeset
      NAME          AGE
      localblock   25h
    3. localVolumeSet 定義を更新して、新規ノードを追加し、障害が発生したノードを削除します。

      # oc edit -n local-storage-project localvolumeset localblock
      [...]
         nodeSelector:
          nodeSelectorTerms:
            - matchExpressions:
                - key: kubernetes.io/hostname
                  operator: In
                  values:
                  - server1.example.com
                  - server2.example.com
                  #- server3.example.com
                  - newnode.example.com
      [...]

      エディターを終了する前に必ず保存します。

      上記の例では、server3.example.com が削除され、newnode.example.com が新規ノードになります。

  16. 新規 localblock PV が利用可能であることを確認します。

    $ oc get pv | grep localblock
              CAPA- ACCESS RECLAIM                                STORAGE
    NAME      CITY  MODES  POLICY  STATUS     CLAIM               CLASS       AGE
    local-pv- 931Gi  RWO   Delete  Bound      openshift-storage/  localblock  25h
    3e8964d3                                  ocs-deviceset-2-0
                                              -79j94
    local-pv- 931Gi  RWO   Delete  Bound      openshift-storage/  localblock  25h
    414755e0                                  ocs-deviceset-1-0
                                              -959rp
    local-pv- 931Gi RWO Delete Available localblock 3m24s b481410
    local-pv- 931Gi  RWO   Delete  Bound      openshift-storage/  localblock  25h
    d9c5cbd6                                  ocs-deviceset-0-0
                                              -nvs68
  17. openshift-storage プロジェクトを変更します。

    $ oc project openshift-storage
  18. 失敗した OSD をクラスターから削除します。

    $ oc process -n openshift-storage ocs-osd-removal \
    -p FAILED_OSD_IDS=failed-osd-id1,failed-osd-id2 | oc create -f -
  19. ocs-osd-removal Pod のステータスをチェックして、OSD が正常に削除されたことを確認します。

    Completed のステータスで、OSD の削除ジョブが正常に完了したことを確認します。

    # oc get pod -l job-name=ocs-osd-removal-failed-osd-id -n openshift-storage
    注記

    ocs-osd-removal が失敗し、Pod が予想される Completed の状態にない場合、追加のデバッグのために Pod ログを確認します。以下に例を示します。

    # oc logs -l job-name=ocs-osd-removal-failed-osd_id -n openshift-storage --tail=-1
  20. 障害のあるノードに関連付けられた PV を削除します。

    1. PVC に関連付けられた PV を特定します。

      # oc get pv -L kubernetes.io/hostname | grep localblock | grep Released
      local-pv-d6bf175b  1490Gi  RWO  Delete  Released  openshift-storage/ocs-deviceset-0-data-0-6c5pw  localblock  2d22h  compute-1
    2. PV を削除します。

      # oc delete pv <persistent-volume>

      以下に例を示します。

      # oc delete pv local-pv-d6bf175b
      persistentvolume "local-pv-d9c5cbd6" deleted
  21. crashcollector Pod デプロイメントを削除します。

    $ oc delete deployment --selector=app=rook-ceph-crashcollector,node_name=failed-node-name -n openshift-storage
  22. ocs-osd-removal ジョブを削除します。

    # oc delete job ocs-osd-removal-${osd_id_to_remove}

    出力例:

    job.batch "ocs-osd-removal-0" deleted

検証手順

  1. 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  2. Workloads → Pods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  3. 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。

    また、増分の mon が新規に作成されており、Running 状態にあることを確認します。

    $ oc get pod -n openshift-storage | grep mon

    出力例:

    rook-ceph-mon-c-64556f7659-c2ngc                                  1/1     Running     0          6h14m
    rook-ceph-mon-d-7c8b74dc4d-tt6hd                                  1/1     Running     0          4h24m
    rook-ceph-mon-e-57fb8c657-wg5f2                                   1/1     Running     0          162m

    OSD と Mon が Running 状態になるまで数分かかる場合があります。

  4. 新規 OSD Pod が交換後のノードで実行されていることを確認します。

    $ oc get pods -o wide -n openshift-storage| egrep -i new-node-name | egrep osd
  5. (オプション) クラスターでデータの暗号化が有効な場合には、新規 OSD デバイスが暗号化されていることを確認します。

    直前の手順で特定された新規ノードごとに、以下を実行します。

    1. デバッグ Pod を作成し、選択したホストの chroot 環境を開きます。

      $ oc debug node/<node name>
      $ chroot /host
    2. lsblk を実行し、ocs-deviceset 名の横にある crypt キーワードを確認します。

      $ lsblk
  6. 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください

4.5. IBM Power Systems インフラストラクチャーでのストレージノードの置き換え

OpenShift Container Storage 4.3 では、ノード置き換えを、IBM Power Systems 関連のデプロイメントで動作するノードについてプロアクティブに実行し、失敗したノードのそれぞれについてリアクティブに実行することができます。

4.5.1. IBM Power Systems で動作するストレージまたは障害のあるストレージノードの置き換え

前提条件

  • Red Hat では、交換前のノードと同様のインフラストラクチャーおよびリソースで、交換後のノードを設定することを推奨します。
  • OpenShift Container Platform (RHOCP) クラスターにログインしている必要があります。

手順

  1. 障害が発生したノードのラベルを確認し、ラックラベルをメモします。

    $ oc get nodes --show-labels | grep failed-node-name
  2. 障害のあるノードで実行されている mon(ある場合) およびオブジェクトストレージデバイス (OSD) Pod を特定します。

    $ oc get pods -n openshift-storage -o wide | grep -i failed-node-name
  3. 先の手順で特定された Pod のデプロイメントをスケールダウンします。

    以下に例を示します。

    $ oc scale deployment rook-ceph-mon-a --replicas=0 -n openshift-storage
    $ oc scale deployment rook-ceph-osd-1 --replicas=0 -n openshift-storage
    $ oc scale deployment --selector=app=rook-ceph-crashcollector,node_name=failed-node-name  --replicas=0 -n openshift-storage
  4. 障害のあるノードにマークを付けて、これがスケジュールされないようにします。

    $ oc adm cordon failed-node-name
  5. 既存の機能から障害のあるノードをドレイン (解放) します。

    $ oc adm drain failed-node-name --force --delete-local-data --ignore-daemonsets
    注記

    障害が発生したノードがネットワークに接続されていない場合には、以下のコマンドを使用してそのノードで実行されている Pod を削除します。

    $ oc get pods -A -o wide | grep -i failed-node-name |  awk '{if ($4 == "Terminating") system ("oc -n " $1 " delete pods " $2  " --grace-period=0 " " --force ")}'
    $ oc adm drain failed-node-name --force --delete-local-data --ignore-daemonsets
  6. 障害のあるノードを削除します。

    $ oc delete node failed-node-name
  7. 必要なインフラストラクチャーで新規の IBM Power マシンを取得します。クラスターの IBM Power Systems へのインストール について参照してください。
  8. 新規 IBM Power Systems マシンを使用して新規 OpenShift Container Platform Systems ノードを作成します。
  9. Pending 状態の OpenShift Container Storage に関連する証明書署名要求 (CSR) の有無を確認します。

    $ oc get csr
  10. 新規ノードに必要なすべての OpenShift Container Storage CSR を承認します。

    $ oc adm certificate approve certificate-name
  11. OpenShift Web コンソールで ComputeNodes をクリックし、新規ノードが Ready 状態にあることを確認します。
  12. 優先するインターフェイスを使用して、OpenShift Container Storage ラベルを新規ノードに適用します。

    • OpenShift Web コンソールの使用

      1. 新規ノードについて、Action Menu (⋮)Edit Labels をクリックします。
      2. cluster.ocs.openshift.io/openshift-storage を追加し、Save をクリックします。
    • コマンドラインインターフェイスの使用

      1. 以下のコマンドを実行して、OpenS+hift Container Storage ラベルを新規ノードに適用します。

        $ oc label node new-node-name cluster.ocs.openshift.io/openshift-storage=""
  13. 新規に追加されたワーカーノードを localVolumeSet に追加します。

    1. 編集する localVolumeSet を決定します。

      以下のコマンドの local-storage-project は、ローカルストレージプロジェクトの名前に置き換えます。デフォルトのプロジェクト名は、OpenShift Container Storage 4.6 以降の openshift-local-storage です。以前のバージョンでは、デフォルトで local-storage を使用します。

      # oc get -n local-storage-project localvolumeset
      NAME           AGE
      localblock    25h
    2. localVolumeSet 定義を更新して、新規ノードを追加し、障害が発生したノードを削除します。

      # oc edit -n local-storage-project localvolumeset localblock
      [...]
          nodeSelector:
          nodeSelectorTerms:
            - matchExpressions:
                - key: kubernetes.io/hostname
                  operator: In
                  values:
                  #- worker-0
                  - worker-1
                  - worker-2
                  - worker-3
      [...]

      エディターを終了する前に必ず保存します。

  14. 新規 localblock PV が利用可能であることを確認します。

    $ oc get pv | grep localblock
    NAME              CAPACITY   ACCESSMODES RECLAIMPOLICY STATUS     CLAIM             STORAGECLASS                 AGE
    local-pv-3e8964d3    500Gi    RWO         Delete       Bound      ocs-deviceset-localblock-2-data-0-mdbg9  localblock     25h
    local-pv-414755e0    500Gi    RWO         Delete       Bound      ocs-deviceset-localblock-1-data-0-4cslf  localblock     25h
    local-pv-b481410   500Gi     RWO        Delete       Available                                            localblock     3m24s
    local-pv-5c9b8982    500Gi    RWO         Delete       Bound      ocs-deviceset-localblock-0-data-0-g2mmc  localblock     25h
  15. openshift-storage プロジェクトを変更します。

    $ oc project openshift-storage
  16. 失敗した OSD をクラスターから削除します。

    1. PVC を特定します。後に、その特定の PVC に関連付けられた PV を削除する必要があるためです。

      # osd_id_to_remove=1
      # oc get -n openshift-storage -o yaml deployment rook-ceph-osd-${osd_id_to_remove} | grep ceph.rook.io/pvc

      ここで、osd_id_to_removerook-ceph-osd 接頭辞の直後にくる Pod 名の整数です。この例では、デプロイメント名は rook-ceph-osd-1 です。

      出力例:

      ceph.rook.io/pvc: ocs-deviceset-localblock-0-data-0-g2mmc
          ceph.rook.io/pvc: ocs-deviceset-localblock-0-data-0-g2mmc

      この例では、PVC 名は ocs-deviceset-localblock-0-data-0-g2mmc です。

    2. 失敗した OSD をクラスターから削除します。

      # oc process -n openshift-storage ocs-osd-removal -p FAILED_OSD_IDS=${osd_id_to_remove},{osd_id_to_remove2} | oc create -f -
  17. ocs-osd-removal Pod のステータスをチェックして、OSD が正常に削除されたことを確認します。

    Completed のステータスで、OSD の削除ジョブが正常に完了したことを確認します。

    # oc get pod -l job-name=ocs-osd-removal-${osd_id_to_remove} -n openshift-storage
    注記

    ocs-osd-removal が失敗し、Pod が予想される Completed の状態にない場合、追加のデバッグのために Pod ログを確認します。以下に例を示します。

    # oc logs -l job-name=ocs-osd-removal-${osd_id_to_remove} -n openshift-storage --tail=-1
  18. 障害のあるノードに関連付けられた PV を削除します。

    1. PVC に関連付けられた PV を特定します。

      # oc get -n openshift-storage pvc ocs-deviceset-<x>-<y>-<pvc-suffix>

      ここで、xy、および pvc-suffix は、直前の手順で特定された DeviceSet の値です。

      以下に例を示します。

      # oc get -n openshift-storage pvc ocs-deviceset-localblock-0-data-0-g2mmc
      NAME                      STATUS        VOLUME        CAPACITY   ACCESS MODES   STORAGECLASS   AGE
      ocs-deviceset-localblock-0-data-0-g2mmc   Bound   local-pv-5c9b8982   500Gi      RWO            localblock     24h

      この例では、関連付けられた PV は local-pv-5c9b8982 です。

    2. PV を削除します。

      # oc delete pv <persistent-volume>

      以下に例を示します。

      # oc delete pv local-pv-5c9b8982
      persistentvolume "local-pv-5c9b8982" deleted
  19. crashcollector Pod デプロイメントを削除します。

    $ oc delete deployment --selector=app=rook-ceph-crashcollector,node_name=failed-node-name -n openshift-storage
  20. rook-ceph-operator を再起動して Operator の調整を強制的に実行して新規 OSD をデプロイします。

    # oc get -n openshift-storage pod -l app=rook-ceph-operator

    出力例:

    NAME                                  READY   STATUS    RESTARTS   AGE
    rook-ceph-operator-77758ddc74-dlwn2   1/1     Running   0          1d20h
    1. rook-ceph-operator を削除します。

      # oc delete -n openshift-storage pod rook-ceph-operator-77758ddc74-dlwn2

      出力例:

      pod "rook-ceph-operator-77758ddc74-dlwn2" deleted
  21. rook-ceph-operator Pod が再起動していることを確認します。

    # oc get -n openshift-storage pod -l app=rook-ceph-operator

    出力例:

    NAME                                  READY   STATUS    RESTARTS   AGE
    rook-ceph-operator-77758ddc74-wqf25   1/1     Running   0          66s

    新規 OSD および mon の作成には、Operator が再起動するまでに数分かかる場合があります。

  22. ocs-osd-removal ジョブを削除します。

    # oc delete job ocs-osd-removal-${osd_id_to_remove}

    以下に例を示します。

    # oc delete job ocs-osd-removal-1
    job.batch "ocs-osd-removal-1" deleted

検証手順

  • 以下のコマンドを実行して、出力で新規ノードが表示されていることを確認します。

    $ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
  • WorkloadsPods をクリックし、新規ノード上の少なくとも以下の Pod が Running 状態にあることを確認します。

    • csi-cephfsplugin-*
    • csi-rbdplugin-*
  • 他の必要なすべての OpenShift Container Storage Pod が Running 状態にあることを確認します。

    • 増分の mon が新規に作成されており、Running 状態にあることを確認します。

      $ oc get pod -n openshift-storage | grep mon

      出力例:

      rook-ceph-mon-b-74f6dc9dd6-4llzq                                   1/1     Running     0          6h14m
      rook-ceph-mon-c-74948755c-h7wtx                                  1/1     Running     0          4h24m
      rook-ceph-mon-d-598f69869b-4bv49                                   1/1     Running     0          162m

      OSD と Mon が Running 状態になるまで数分かかる場合があります。

  • 検証手順が失敗した場合は、Red Hat サポートにお問い合わせください