Il driver CSI per PowerScale indica "copy volume failed"

Summary: Il driver CSI (Container Storage Interface) per PowerScale indica "copy volume failed" quando si utilizza la funzione di clonazione del volume.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

In questo scenario di errore, i seguenti messaggi vengono visualizzati nel registro del contenitore dei driver del pod del controller. La scadenza è fissata dopo due minuti dalla richiesta PUT iniziale:
time="2025-02-24T21:30:33Z" level=debug clusterName=bolt-pscale runid=32 msg="begin to copy volume 'csivol-6084568f01'" file="/go/src/service/isiService.go:58"
[DEBUG]
    -------------------------- GOISILON HTTP REQUEST -------------------------
    PUT /namespace/ifs/data/csi/csivol-c9fce250bd?merge=True HTTP/1.1
    Host: 10.247.100.10:8080
    Authorization: admin:******
    X-Isi-Ifs-Copy-Source: /namespace/ifs/data/csi/csivol-6084568f01
    X-Isi-Ifs-Mode-Mask: preserve
time="2025-02-24T21:32:33Z" level=error clusterName=<clustername> runid=32 msg="copy volume failed, 'Put "https://<IP>:8080/namespace/ifs/data/csi/csivol-c9fce250bd?merge=True": context deadline exceeded'" file="/go/src/service/isiService.go:63"
time="2025-02-24T21:32:33Z" level=debug clusterName=bolt-pscale runid=32 msg="begin to delete volume directory 'csivol-c9fce250bd'" file="/go/src/service/isiService.go:358"
 
 
 

Cause

Nello scenario di clonazione dei volumi, i volumi sono directory in PowerScale. La clonazione di volumi da (PVC) esistenti utilizza le API (Application Programming Interface) di copia di PowerScale. In questo modo viene eseguita una copia normale di tutti i file di una directory nella nuova directory. Il tempo necessario per completare la copia aumenta con l'aumentare delle dimensioni del volume. Anche il carico sull'array può influire sul processo di copia. La chiamata API per eseguire la copia è una chiamata sincrona, pertanto la richiesta HTTP PUT attende il completamento dell'operazione di copia.
 
Il timeout di provisioning predefinito è di due minuti. La copia di file e directory di grandi dimensioni può richiedere più di due minuti. Quando viene raggiunta la scadenza di due minuti, la chiamata API viene interrotta e l'operazione CreateVolume ha esito negativo. Il PVC rimane nello stato In sospeso.

Resolution

Il timeout predefinito per il container di provisioning può essere modificato al momento dell'installazione dei driver. Sia il grafico Helm che gli esempi Operator supportano l'utilizzo del metodo "--timeout=<interval>" opzione. Se si verifica il problema, determinare un valore di timeout appropriato in base alle dimensioni di file o directory più grandi. La raccomandazione è di quindici-trenta minuti.
 
Attenzione: L'aumento del timeout influisce su tutte le operazioni di provisioning, tra cui la creazione, gli extent, l'eliminazione e così via. Questa modifica è intesa come ultima risorsa e deve essere utilizzata solo quando non sono disponibili altre opzioni. Un'opzione alternativa per la clonazione consiste nell'acquisire un'istantanea di una PVC, quindi creare un volume montabile read-only (RO) da tale istantanea. Se necessario, l'utente può copiare i file dal volume. L'utilizzo di istantanee è superiore alla clonazione di volumi che potrebbero essere in uso e la copia di un volume attivo potrebbe creare copie incoerenti.
 
Installazione di Helm
Se si installa il driver tramite Helm, è possibile utilizzare il comando - "--timeout=30m" per impostare il timeout.
In questa directory:
helm-charts/charts/csi-xxxxx/templates
Modificare il file controller.yaml.
Sostituire il - "--timeout=120s" opzione con l'opzione - "--timeout=30m" .
 
 - name: provisioner{{ $csiSidecarSuffix }}
          image: {{ required "Must provide the CSI provisioner container image." .Values.images.provisioner }}
          imagePullPolicy: {{ .Values.imagePullPolicy }}
          args:
            - "--csi-address={{ $driverSockPath }}"
            - "--volume-name-prefix={{ required "Must provide a value to prefix to driver created volume names" .Values.controller.volumeNamePrefix }}"
            - "--volume-name-uuid-length=10"
            - "--worker-threads=5"
            - "--timeout=120s"                     #<<<<Modify this value
            - "--v=5"
Quindi dalla directory del programma di installazione:
dell-csi-helm-installer
Eseguire l'installazione con l'opzione di upgrade.
./csi-install.sh --namespace xxxxx --values my-xxxxx-settings.yaml --upgrade
 
 
Installazione dell'operatore
Se si installa il driver con l'operatore, il "--timeout" può essere aggiunta all'elenco Args del sidecar Provisioner:

https://github.com/dell/csm-operator/blob/d3a934c216db4d2f2f044ec08d004a85c00b1fcf/samples/storage_csm_powerscale_v2130.yaml#L243

Il valore predefinito:

       image: registry.k8s.io/sig-storage/csi-provisioner:v5.1.0
        args: ["--volume-name-prefix=csivol"]

Il valore predefinito con il timeout aggiunto: 

        image: registry.k8s.io/sig-storage/csi-provisioner:v5.1.0
        args: ["--volume-name-prefix=csivol","--timeout=30m"]

 

Products

Container Storage Modules Family, Container Storage Modules
Article Properties
Article Number: 000289749
Article Type: Solution
Last Modified: 03 Sept 2025
Version:  2
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.