Perché lo stato del mio cluster di archiviazione Data Foundation di OpenShift è bloccato su “ Failed to reconcile ”?

Virtual Private Cloud Infrastruttura classica

Quando si crea il cluster di archiviazione di OpenShift Data Foundation e si esegue il comando oc describe storagecluster ``, viene visualizzato un errore che indica che i nomi dei PVC superano il limite di caratteri specificato in Kubernetes.

I set di dispositivi sono gruppi di OSD ( Object Storage Daemons) che OpenShift Data Foundation utilizza per distribuire i dati all'interno del cluster. Quando si crea un cluster di archiviazione, OpenShift Data Foundation crea automaticamente dei PVC per questi insiemi di dispositivi.

Quando si esegue il comando describe, viene visualizzato un errore simile a quello riportato nell'esempio seguente.

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 I nomi in PVC devono contenere meno di 63 caratteri. Se si dispone di un cluster VPC multizona e si crea il cluster di archiviazione di OpenShift Data Foundation utilizzando una classe di archiviazione " retain " come ibmc-vpc-block-metro-retain-10iops-tier, ai PVC del set di dispositivi corrispondente vengono assegnati nomi che superano il limite di 63 caratteri.

Crea una classe di archiviazione personalizzata con un nome più breve per garantire che i nomi dei PVC generati rientrino nel limite di caratteri Kubernetes.

  1. Ottenere la configurazione YAML della classe di storage che si desidera utilizzare nel cluster di storage ODF e salvarlo in un file sulla macchina locale.

    oc get sc ibmc-vpc-block-metro-retain-10iops-tier -o yaml
    
  2. Modifica il nome della classe di archiviazione. Assicurati che il nome della classe di archiviazione non superi i 30 caratteri, in modo che gli ID dei set di dispositivi del cluster di archiviazione di OpenShift Data Foundation rimangano al di sotto del limite di 63 caratteri Kubernetes. Crea la classe di archiviazione nel tuo cluster.

    oc create -f <custom-storage-class.yaml>
    
  3. Esegui la pulizia della tua distribuzione di Data Foundation di OpenShift.

  4. Crea una distribuzione di Data Foundation di OpenShift che utilizzi la classe di archiviazione che hai creato.