OpenShift Data Foundation ストレージクラスタのステータスが「 Failed to reconcile 」のまま変わらないのはなぜですか?

仮想プライベートクラウド クラシック・インフラストラクチャー

OpenShift Data Foundation ストレージ クラスターを作成し、 oc describe storagecluster <storage-cluster-name> を実行すると、PVC 名が Kubernetes の文字数制限を超えていることを示すエラーが表示されます。

デバイスセットとは、 OpenShift Data Foundation がクラスタ全体にデータを分散させるために使用する OSD( Object Storage デーモン)のグループのことです。 ストレージクラスターを作成すると、 OpenShift Data Foundation はこれらのデバイスセットに対して PVC を自動的に作成します。

describe コマンドを実行すると、次のようなエラーが表示されます。

ceph-cluster-controller: failed to reconcile. failed to reconcile cluster "ocs-storagecluster-cephcluster": failed to configure local ceph cluster: failed to create cluster: failed to start ceph osds: 3 failures encountered while running osds in namespace openshift-storage: failed to create "provision" job for node "ocs-deviceset-ibmc-vpc-block-metro-retain-10iops-tier-0-datnv6k". Job.batch "rook-ceph-osd-prepare-aaa000aaa111a1a0e10ba1a11aa1a119" is invalid: [spec.template.spec.volumes[8].name: Invalid value: "ocs-deviceset-ibmc-vpc-block-metro-retain-10iops-tier-0-aaaaa1b-bridge": must be no more than 63 characters

Kubernetes PVC 名は 63 文字未満にする必要があります。 マルチゾーンのVPCクラスターを使用しており、 ibmc-vpc-block-metro-retain-10iops-tier のような retain ストレージクラスを使用して OpenShift Data Foundationストレージクラスターを作成した場合、対応するデバイスセットPVCには、63文字の制限を超える名前が割り当てられます。

生成されるPVCの名前が Kubernetes の文字数制限内に収まるよう、より短い名前を持つカスタムストレージクラスを作成してください。

  1. ODF ストレージ・クラスターで使用するストレージ・クラスの YAML 構成を取得し、ローカル・マシンのファイルに保存します。

    oc get sc ibmc-vpc-block-metro-retain-10iops-tier -o yaml
    
  2. ストレージ・クラスの名前を編集します。 OpenShift Data FoundationのストレージクラスターデバイスセットIDが、 Kubernetes の制限である63文字以内に収まるようにするため、ストレージクラスの名前は30文字未満にしてください。 クラスター内にストレージ・クラスを作成します。

    oc create -f <custom-storage-class.yaml>
    
  3. OpenShift Data Foundationのデプロイメント をクリーンアップしてください。

  4. 作成したストレージクラスを使用する「 OpenShift Data Foundation」のデプロイメントを作成します