Le pilote CSI pour PowerScale indique que « copy volume failed »
Résumé: Le pilote CSI (Container Storage Interface) pour PowerScale indique que « copy volume failed » lors de l’utilisation de la fonction de clonage de volume.
Cet article concerne
Cet article ne concerne pas
Cet article n’est associé à aucun produit spécifique.
Toutes les versions du produit ne sont pas identifiées dans cet article.
Symptômes
Dans ce scénario d’échec, les messages suivants s’affichent dans le journal du conteneur de pilotes du pod de contrôleur. L’échéance intervient deux minutes après la demande PUT initiale :
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
Dans le scénario de clonage de volume, les volumes sont des répertoires dans PowerScale. Le clonage de volumes à partir de PVC (existants) utilise l’interface de programmation d’application (API) de copie PowerScale. Cette opération effectue une copie normale de tous les fichiers d’un répertoire dans le nouveau répertoire. Le temps nécessaire pour terminer la copie augmente à mesure que la taille du volume augmente. La charge sur la baie peut également avoir un impact sur le processus de copie. L’appel API pour effectuer la copie est un appel synchrone, de sorte que la demande HTTP PUT attend la fin de l’opération de copie.
Le délai d’expiration du provisionnement par défaut est de deux minutes. La copie de fichiers et de répertoires volumineux peut prendre plus de deux minutes. Lorsque le délai de deux minutes est atteint, l’appel API est arrêté et l’opération CreateVolume échoue. Le PVC reste à l’état En attente.
Résolution
Le délai d’expiration par défaut du conteneur de provisionnement peut être modifié au moment de l’installation du pilote. Les exemples de graphique Helm et d’opérateur prennent en charge l’utilisation de l’option «
--timeout=<interval>" l’option. Si le problème se produit, déterminez une valeur de délai d’expiration appropriée en fonction des tailles de fichier ou de répertoire les plus importantes. La recommandation est de quinze à trente minutes.
Attention : L’augmentation du délai d’expiration affecte toutes les opérations de provisionnement, y compris la création, les extensions, la suppression, etc. Ce changement est destiné à être utilisé en dernier recours et ne doit être utilisé que lorsqu’aucune autre option n’est disponible. Une autre option pour le clonage consiste à prendre un snapshot d’un PVC, puis à créer un volume montable en lecture seule (RO) à partir de ce snapshot. L’utilisateur peut ensuite copier des fichiers à partir du volume si nécessaire. L’utilisation de snapshots est supérieure au clonage des volumes qui peuvent être en cours d’utilisation et la copie d’un volume actif peut créer des copies incohérentes.
Helm Installation
Si vous installez le pilote par Helm, vous pouvez utiliser la commande
- "--timeout=30m" pour définir le délai d’expiration.
Dans ce répertoire :
helm-charts/charts/csi-xxxxx/templates
Modifiez le fichier controller.yaml.
Remettez en place le
- "--timeout=120s" avec l’option - "--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"
Puis, dans le répertoire du programme d’installation :
dell-csi-helm-installer
Installez-le avec l’option de mise à niveau.
./csi-install.sh --namespace xxxxx --values my-xxxxx-settings.yaml --upgrade
Installation par l’opérateur
Si vous installez le pilote avec l’opérateur, le message «
--timeout" peut être ajoutée à la liste d’args du side-car du provisionnement :
La valeur par défaut :
image: registry.k8s.io/sig-storage/csi-provisioner:v5.1.0 args: ["--volume-name-prefix=csivol"]
Valeur par défaut avec le délai d’expiration ajouté :
image: registry.k8s.io/sig-storage/csi-provisioner:v5.1.0 args: ["--volume-name-prefix=csivol","--timeout=30m"]
Produits
Container Storage Modules Family, Container Storage ModulesPropriétés de l’article
Numéro d’article: 000289749
Type d’article: Solution
Dernière modification: 03 Sep 2025
Version: 2
Trouvez des réponses à vos questions auprès d’autres utilisateurs Dell
Services de support
Vérifiez si votre appareil est couvert par les services de support.