Sterownik CSI dla PowerScale pokazuje, że "copy volume failed"

Riepilogo: Sterownik interfejsu Container Storage Interface (CSI) dla PowerScale pokazuje, że podczas korzystania z funkcji klonowania woluminów "kopiowanie woluminu nie powiodło się".

Questo articolo si applica a Questo articolo non si applica a Questo articolo non è legato a un prodotto specifico. Non tutte le versioni del prodotto sono identificate in questo articolo.

Sintomi

W tym scenariuszu niepowodzenia następujące komunikaty są widoczne w dzienniku kontenera sterowników zasobnika kontrolera. Ostateczny termin upływa po dwóch minutach od początkowego żądania PUT:
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"
 
 
 

Causa

W scenariuszu klonowania woluminów są katalogami w systemie PowerScale. Klonowanie woluminów z istniejących (PVC) odbywa się przy użyciu interfejsu programowania aplikacji (API) PowerScale. Spowoduje to wykonanie normalnej kopii wszystkich plików z jednego katalogu do nowego katalogu. Czas potrzebny na wykonanie kopii wydłuża się wraz ze wzrostem rozmiaru woluminu. Obciążenie macierzy może również mieć wpływ na proces kopiowania. Wywołanie interfejsu API w celu wykonania kopiowania jest wywołaniem synchronicznym, więc żądanie HTTP PUT czeka na zakończenie operacji kopiowania.
 
Domyślny limit czasu aprowizacji wynosi dwie minuty. Kopiowanie dużych plików i katalogów może trwać dłużej niż dwie minuty. Po osiągnięciu dwuminutowego terminu wywołanie interfejsu API zostanie przerwane, a operacja CreateVolume zakończy się niepowodzeniem. Roszczenie PVC pozostaje w stanie oczekującym.

Risoluzione

Domyślny limit czasu dla kontenera inicjowania można zmienić podczas instalacji sterownika. Zarówno wykres Helm, jak i przykłady operatorów obsługują użycie "--timeout=<interval>". Jeśli problem występuje, określ odpowiednią wartość limitu czasu na podstawie największego rozmiaru pliku lub katalogu. Zalecenie wynosi od piętnastu do trzydziestu minut.
 
Przestroga: Zwiększenie limitu czasu ma wpływ na wszystkie operacje aprowizacji, w tym tworzenie, zakresy, usuwanie itd. Ta zmiana jest ostateczna i powinna być stosowana tylko wtedy, gdy żadne inne opcje nie są dostępne. Alternatywną opcją klonowania jest utworzenie migawki PVC, a następnie utworzenie na jej podstawie woluminu instalacyjnego tylko do odczytu (RO). W razie potrzeby użytkownik może skopiować pliki z woluminu. Użycie migawek jest lepsze niż klonowanie woluminów, które mogą być w użyciu, a kopiowanie aktywnego woluminu może spowodować utworzenie niespójnych kopii.
 
Instalacja Helm
W przypadku instalowania sterownika przez program Helm można użyć - "--timeout=30m" , aby ustawić limit czasu.
W tym katalogu:
helm-charts/charts/csi-xxxxx/templates
Edytuj plik controller.yaml.
Zainstaluj przycisk - "--timeout=120s" opcja z opcją - "--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"
Następnie z katalogu instalatora:
dell-csi-helm-installer
Zainstaluj z opcją uaktualnienia.
./csi-install.sh --namespace xxxxx --values my-xxxxx-settings.yaml --upgrade
 
 
Instalacja przez operatora
W przypadku instalowania sterownika u operatora, "--timeout" można dodać do listy args przyczepki aprowizatora:

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

Wartość domyślna:

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

Domyślna wartość z dodanym limitem czasu: 

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

 

Prodotti

Container Storage Modules Family, Container Storage Modules
Proprietà dell'articolo
Numero articolo: 000289749
Tipo di articolo: Solution
Ultima modifica: 03 set 2025
Versione:  2
Trova risposta alle tue domande dagli altri utenti Dell
Support Services
Verifica che il dispositivo sia coperto dai Servizi di supporto.