Rimozione di Data Foundation di OpenShift

Esamina i seguenti argomenti per gestire la tua OpenShift distribuzione di Data Foundation.

Rimozione di ODF dalle app

Per rimuovere ODF dalle tue applicazioni, puoi eliminare la tua applicazione o distribuzione e le PVC corrispondenti.

Se si desidera rimuovere completamente ODF e tutti i dati, è possibile rimuovere il cluster di memoria.

  1. Elenca le tue PVC e prendi nota del nome della PVC e del PV corrispondente che vuoi rimuovere.
    oc get pvc
    
  2. Rimuovi gli eventuali pod che montano la PVC.
    1. Elenca tutti i pod che attualmente montano la PVC che vuoi eliminare. Se non viene restituito alcun pod, non hai alcun pod che attualmente utilizza la tua PVC.
        oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"
        ```
        Output di esempio
        ```sh {: screen}
        app    ocs-storagecluster-cephfs
        ```
    2. Rimuovi il pod che utilizza la PVC. Se il pod fa parte di una distribuzione, rimuovi la distribuzione.
    ```sh {: pre}
        oc delete pod <pod_name>
        ```
        ```sh {: pre}
        oc delete deployment <deployment_name>
        ```
    3. Verifica che il pod o la distribuzione siano rimossi.
    ```sh {: pre}
        oc get pods
        ```
        ```sh {: pre}
        oc get deployments
        ```
    
  3. Opzionale: eliminare il PVC. L'eliminazione della PVC elimina i dati dell'applicazione dal volume di archiviazione.
    oc delete pvc <pvc_name>
    

Rimozione della risorsa personalizzata ODF

Segui i passaggi riportati di seguito per rimuovere le risorse ODF dal tuo cluster.

I seguenti passi comportano la perdita di dati. Eseguire il back up dei dati sui volumi locali prima di rimuovere la distribuzione ODF.

Quando elimini la risorsa personalizzata OcsCluster dal tuo cluster, vengono eliminate le seguenti risorse. Inoltre, qualsiasi applicazione che richiede l'accesso ai dati sui tuoi volumi locali potrebbe riscontrare un tempo di inattività. - Pod driver ODF. - I PVC MON e OSD. - Tutti i dati dei tuoi volumi. Tuttavia, se hai creato le PVC utilizzando la classe di archiviazione NooBaa e le tue applicazioni hanno scritto i dati nel tuo archivio di backup, i dati nel tuo archivio di backup non vengono eliminati.

  1. Ottieni il nome della tua risorsa personalizzata OcsCluster.
    oc get ocscluster
    
    Esempio di output per una risorsa personalizzata denominata ocscluster-vpc.
    NAME             AGE
    ocscluster-vpc   4s
    
  2. Elimina la tua risorsa personalizzata OcsCluster. Sostituisci " <ocscluster_name> " con il nome della tua risorsa personalizzata.
    oc delete ocscluster <ocscluster_name>
    
    Esempio di comando per una risorsa personalizzata OcsCluster denominata ocscluster-vpc.
    oc delete ocscluster ocscluster-vpc
    
  3. Eliminare tutte le PVC create.
    oc get pvc
    
  4. Facoltativo Se non si desidera reinstallare ODF, è possibile rimuovere il componente aggiuntivo ODF dal cluster.

Ripulitura ODF

  1. Copiare uno dei seguenti script di ripulitura in base alla distribuzione ODF.
    • VPC o Satellite con i dischi con provisioning dinamico Ripulisci le restanti risorse Kubernetes dal tuo cluster. Salvare il seguente script in un file denominato cleanup.sh sulla macchina locale.
        #!/bin/bash
        ocscluster_name=`oc get ocscluster | awk 'NR==2 {print $1}'`
        oc delete ocscluster --all --wait=false
        kubectl patch ocscluster/$ocscluster_name -p '{"metadata":{"finalizers":[]}}' --type=merge
        oc delete ns openshift-storage --wait=false
        sleep 20
        kubectl -n openshift-storage patch persistentvolumeclaim/db-noobaa-db-0 -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch cephblockpool.ceph.rook.io/ocs-storagecluster-cephblockpool -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch cephcluster.ceph.rook.io/ocs-storagecluster-cephcluster -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch cephfilesystem.ceph.rook.io/ocs-storagecluster-cephfilesystem -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch cephobjectstore.ceph.rook.io/ocs-storagecluster-cephobjectstore -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch cephobjectstoreuser.ceph.rook.io/noobaa-ceph-objectstore-user -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch cephobjectstoreuser.ceph.rook.io/ocs-storagecluster-cephobjectstoreuser -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch noobaa/noobaa -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch backingstores.noobaa.io/noobaa-default-backing-store -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch bucketclasses.noobaa.io/noobaa-default-bucket-class -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch storagecluster.ocs.openshift.io/ocs-storagecluster -p '{"metadata":{"finalizers":[]}}' --type=merge
        sleep 20
        oc delete pods -n openshift-storage --all --force --grace-period=0
        sleep 20
        for item in `oc get csiaddonsnodes.csiaddons.openshift.io -n openshift-storage| awk 'NR>1 {print $1}'`;
        do
        kubectl -n openshift-storage patch csiaddonsnodes.csiaddons.openshift.io/$item -p '{"metadata":{"finalizers":[]}}' --type=merge
        done
        kubectl -n openshift-storage patch configmap/rook-ceph-mon-endpoints -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch secret/rook-ceph-mon -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch storagesystems.odf.openshift.io/ocs-storagecluster-storagesystem -p '{"metadata":{"finalizers":[]}}' --type=merge
        ```
    * **Cluster classici o cluster Satellite con dischi locali** Ripulisci le restanti risorse Kubernetes dal tuo cluster. Salvare il seguente script in un file denominato `cleanup.sh` sulla macchina locale.
    ```sh {: codeblock}
        #!/bin/bash
        ocscluster_name=`oc get ocscluster | awk 'NR==2 {print $1}'`
        oc delete ocscluster --all --wait=false
        kubectl patch ocscluster/$ocscluster_name -p '{"metadata":{"finalizers":[]}}' --type=merge
        oc delete ns openshift-storage --wait=false
        sleep 20
        kubectl -n openshift-storage patch persistentvolumeclaim/db-noobaa-db-0 -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch cephblockpool.ceph.rook.io/ocs-storagecluster-cephblockpool -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch cephcluster.ceph.rook.io/ocs-storagecluster-cephcluster -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch cephfilesystem.ceph.rook.io/ocs-storagecluster-cephfilesystem -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch cephobjectstore.ceph.rook.io/ocs-storagecluster-cephobjectstore -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch cephobjectstoreuser.ceph.rook.io/noobaa-ceph-objectstore-user -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch cephobjectstoreuser.ceph.rook.io/ocs-storagecluster-cephobjectstoreuser -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch noobaa/noobaa -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch backingstores.noobaa.io/noobaa-default-backing-store -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch bucketclasses.noobaa.io/noobaa-default-bucket-class -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch storagecluster.ocs.openshift.io/ocs-storagecluster -p '{"metadata":{"finalizers":[]}}' --type=merge
        sleep 20
        oc delete pods -n openshift-storage --all --force --grace-period=0
        if oc get po -n openshift-local-storage|grep -operator; then
        LOCAL_NS=openshift-local-storage
        else
        LOCAL_NS=local-storage
        fi
        oc delete ns $LOCAL_NS --wait=false
        sleep 20
        kubectl -n $LOCAL_NS patch localvolume.local.storage.openshift.io/local-block -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n $LOCAL_NS patch localvolume.local.storage.openshift.io/local-file -p '{"metadata":{"finalizers":[]}}' --type=merge
        sleep 20
        oc delete pods -n $LOCAL_NS --all --force --grace-period=0
        for item in `oc get csiaddonsnodes.csiaddons.openshift.io -n openshift-storage| awk 'NR>1 {print $1}'`;
        do
        kubectl -n openshift-storage patch csiaddonsnodes.csiaddons.openshift.io/$item -p '{"metadata":{"finalizers":[]}}' --type=merge
        done
        kubectl -n openshift-storage patch configmap/rook-ceph-mon-endpoints -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch secret/rook-ceph-mon -p '{"metadata":{"finalizers":[]}}' --type=merge
        kubectl -n openshift-storage patch storagesystems.odf.openshift.io/ocs-storagecluster-storagesystem -p '{"metadata":{"finalizers":[]}}' --type=merge
        ```
    
  2. Esegui lo script “ cleanup.sh ”.
    sh ./cleanup.sh
    
  3. **Cluster classici o cluster Satellite con dischi locali Dopo aver eseguito lo script di ripulitura, accedi a ogni nodo di lavoro ed esegui i seguenti comandi.
    1. Distribuisci un pod di debug ed esegui chroot /host.
        oc debug node/<node_name> -- chroot /host
        ```
    1. Eseguire il seguente comando per rimuovere i file o le directory sui percorsi specificati. Ripeti questo passo per ogni nodo di lavoro che hai usato nella configurazione OCS.
    ```sh {: codeblock}
        rm -rvf /var/lib/rook /mnt/local-storage
        ```
        Output di esempio:
        ```sh {: codeblock}
        removed '/var/lib/rook/openshift-storage/log/ocs-deviceset-0-data-0-6fgp6/ceph-volume.log'
        removed directory: '/var/lib/rook/openshift-storage/log/ocs-deviceset-0-data-0-6fgp6'
        removed directory: '/var/lib/rook/openshift-storage/log'
        removed directory: '/var/lib/rook/openshift-storage/crash/posted'
        removed directory: '/var/lib/rook/openshift-storage/crash'
        removed '/var/lib/rook/openshift-storage/client.admin.keyring'
        removed '/var/lib/rook/openshift-storage/openshift-storage.config'
        removed directory: '/var/lib/rook/openshift-storage'
        removed directory: '/var/lib/rook'
        removed '/mnt/local-storage/localblock/nvme3n1'
        removed directory: '/mnt/local-storage/localblock'
        removed '/mnt/local-storage/localfile/nvme2n1'
        removed directory: '/mnt/local-storage/localfile'
        removed directory: '/mnt/local-storage'
        ```
    
  4. Facoltativo: cluster classici o cluster Satellite con dischi locali Se non vuoi più utilizzare i volumi locali che hai utilizzato nella tua configurazione, puoi eliminarli dal cluster. Elencare i PV locali.
    oc get pv
    
    Output di esempio:
    local-pv-180cfc58   139Gi      RWO            Delete           Available           localfile               11m
    local-pv-67f21982   139Gi      RWO            Delete           Available           localfile               12m
    local-pv-80c5166    100Gi      RWO            Delete           Available           localblock              12m
    local-pv-9b049705   139Gi      RWO            Delete           Available           localfile               12m
    local-pv-b09e0279   100Gi      RWO            Delete           Available           localblock              12m
    local-pv-f798e570   100Gi      RWO            Delete           Available           localblock              12m
    
  5. Eliminare i PV locali.
    oc delete pv <pv_name> <pv_name> <pv_name>
    
  6. Dopo aver eliminato le tue PVC e PV, devi anche eliminare i volumi di archiviazione dal tuo account. Per individuare e rimuovere i volumi di archiviazione inutilizzati nel tuo account, vedi Perché continuo a vedere gli addebiti per i dispositivi di archiviazione blocchi dopo l'eliminazione del mio cluster?.

Disinstallazione del componente aggiuntivo OpenShift Data Foundation

Disinstallazione del componente aggiuntivo OpenShift Data Foundation dalla console

Per rimuovere il componente OpenShift aggiuntivo Data Foundation dal cluster, completare i seguenti passaggi.

Se si desidera rimuovere tutte le risorse ODF e i dati dal cluster, rimuovere i CRD prima di disinstallare il componente aggiuntivo.

  1. Dalla console, selezionare il cluster per il quale si desidera rimuovere il componente aggiuntivo Data Foundation di OpenShift.
  2. Scorri fino ai componenti aggiuntivi installati.
  3. Nella scheda OpenShift Data Foundation, fare clic su Azioni e quindi su Disinstalla.

Disinstallazione del componente aggiuntivo OpenShift Data Foundation dalla CLI

È possibile disinstallare il componente OpenShift aggiuntivo Data Foundation dal cluster utilizzando la console o la CLI.

Se si desidera rimuovere tutte le risorse ODF e i dati dal cluster, rimuovere i CRD prima di disinstallare il componente aggiuntivo.

  1. Disinstallare il componente aggiuntivo.
    ibmcloud oc cluster addon disable openshift-container-storage -c <cluster_name>
    
  2. Verificare che il componente aggiuntivo sia stato rimosso.
    ibmcloud oc cluster addon ls -c <cluster_name>
    

Risoluzione dei problemi di ODF

Per raccogliere le informazioni per la risoluzione dei problemi ODF, è possibile utilizzare il comando oc adm must-gather e specificare l'immagine ODF. Per ulteriori informazioni, vedi Raccolta dei dati del cluster.

Comando di esempio:

oc adm must-gather --image=registry.redhat.io/ocs4/ocs-must-gather-rhel8:latest --dest-dir=ocs_mustgather

È possibile utilizzare il Rook toolbox della community per eseguire il debug dei problemi relativi al cluster Ceph. Per ulteriori informazioni, consultare la Rook documentazione.

Per ulteriori informazioni, consultare gli argomenti comuni per la risoluzione dei problemi.