UiPath Documentation
automation-suite
2.2510
true
Guide d'installation d'Automation Suite sur Linux
Important :
Veuillez noter que ce contenu a été localisé en partie à l’aide de la traduction automatique. La localisation du contenu nouvellement publié peut prendre 1 à 2 semaines avant d’être disponible.

Pods bloqués à l'état Init en raison de l'échec du montage du volume XFS sur les nœuds RHEL 8.x

Résolvez les pods bloqués à l'état Init en raison d'une incompatibilité de formatage TopoLVM XFS avec RHEL 8.x dans Automation Suite.

Description​

Lorsqu'un pod qui nécessite un nouveau volume persistant (par exemple, un pipeline d'entraînement AI Center) démarre sur un nœud RHEL 8.x, le pod reste à l'état Init avec l'erreur suivante:

Warning  FailedMount  36s (x11 over 8m50s)  kubelet  MountVolume.SetUp failed for volume "pvc-82575d2d-2269-4cef-ace8-fa1602f3dd44" : rpc error: code = Internal desc = mount failed: volume=6d81061d-79c4-46b3-9471-478c6c739b25, error=mount failed: exit status 32

Mounting command: mount
Mounting arguments: -t xfs -o nouuid /dev/uipathstorevg/6d81061d-79c4-46b3-9471-478c6c739b25 /var/lib/kubelet/pods/547bdf64-173b-4df1-ad7a-449f6796ca09/volumes/kubernetes.io~csi/pvc-82575d2d-2269-4cef-ace8-fa1602f3dd44/mount

Output: mount: /var/lib/kubelet/pods/547bdf64-173b-4df1-ad7a-449f6796ca09/volumes/kubernetes.io~csi/pvc-82575d2d-2269-4cef-ace8-fa1602f3dd44/mount: wrong fs type, bad option, bad superblock on /dev/mapper/uipathstorevg-6d81061d--79c4--46b3--9471--478c6c739b25, missing codepage or helper program, or other error.
Warning  FailedMount  36s (x11 over 8m50s)  kubelet  MountVolume.SetUp failed for volume "pvc-82575d2d-2269-4cef-ace8-fa1602f3dd44" : rpc error: code = Internal desc = mount failed: volume=6d81061d-79c4-46b3-9471-478c6c739b25, error=mount failed: exit status 32

Mounting command: mount
Mounting arguments: -t xfs -o nouuid /dev/uipathstorevg/6d81061d-79c4-46b3-9471-478c6c739b25 /var/lib/kubelet/pods/547bdf64-173b-4df1-ad7a-449f6796ca09/volumes/kubernetes.io~csi/pvc-82575d2d-2269-4cef-ace8-fa1602f3dd44/mount

Output: mount: /var/lib/kubelet/pods/547bdf64-173b-4df1-ad7a-449f6796ca09/volumes/kubernetes.io~csi/pvc-82575d2d-2269-4cef-ace8-fa1602f3dd44/mount: wrong fs type, bad option, bad superblock on /dev/mapper/uipathstorevg-6d81061d--79c4--46b3--9471--478c6c739b25, missing codepage or helper program, or other error.

Le PVC est Bound, le PV semble sain, et le périphérique de bloc sous-jacent est visible avec lsblk sur le nœud.

Cause: TopoLVM formate de nouveaux volumes avec mkfs.xfs en utilisant des fonctionnalités sur disque (bigtime, inobtcount, nrext64) introduites dans les versions plus récentes de xfsprogs/kernel. Le noyau et le fichier xfsprogs livrés avec RHEL 8.x ne peuvent pas monter un volume XFS créé avec ces fonctionnalités. Le montage échoue donc avec wrong fs type, bad option, bad superblock.

Ce problème affecte Automation Suite sous Linux s'exécutant sur des nœuds RHEL 8.x uniquement; RHEL 9.x et 10.x ne sont pas affectés.

Solution​

Pour résoudre le problème, corrigez le topolvm-node DaemonSet pour formater les nouveaux volumes avec un encapsuleur mkfs.xfs qui désactive les fonctionnalités incompatibles:

  1. Sauvegardez la configuration TopoLVM actuelle:
    kubectl -n topolvm-system get ds topolvm-node -o yaml > /opt/UiPathAutomationSuite/topolvm-node-ds.yaml
    kubectl -n topolvm-system get all -o yaml > /opt/UiPathAutomationSuite/topolvm-system-all.yaml
    kubectl get storageclass local-volume-provisioner -o yaml > /opt/UiPathAutomationSuite/local-volume-provisioner-sc.yaml
    kubectl -n topolvm-system get configmap -o yaml > /opt/UiPathAutomationSuite/topolvm-system-configmaps.yaml
    kubectl -n topolvm-system get ds topolvm-node -o yaml > /opt/UiPathAutomationSuite/topolvm-node-ds.yaml
    kubectl -n topolvm-system get all -o yaml > /opt/UiPathAutomationSuite/topolvm-system-all.yaml
    kubectl get storageclass local-volume-provisioner -o yaml > /opt/UiPathAutomationSuite/local-volume-provisioner-sc.yaml
    kubectl -n topolvm-system get configmap -o yaml > /opt/UiPathAutomationSuite/topolvm-system-configmaps.yaml
    
  2. Créez un wrapper ConfigMap qui appelle mkfs.xfs avec les options compatibles RHEL 8.x:
    cat <<'EOF' | kubectl apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: mkfs-xfs-wrapper
      namespace: topolvm-system
    data:
      mkfs.xfs: |
        #!/bin/sh
        exec /usr/sbin/mkfs.xfs -m crc=1,rmapbt=0,bigtime=0,inobtcount=0 -i nrext64=0 "$@"
    EOF
    cat <<'EOF' | kubectl apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: mkfs-xfs-wrapper
      namespace: topolvm-system
    data:
      mkfs.xfs: |
        #!/bin/sh
        exec /usr/sbin/mkfs.xfs -m crc=1,rmapbt=0,bigtime=0,inobtcount=0 -i nrext64=0 "$@"
    EOF
    
  3. Vérifiez que ConfigMap a été créé:
    kubectl -n topolvm-system get configmap mkfs-xfs-wrapper
    kubectl -n topolvm-system get configmap mkfs-xfs-wrapper
    
  4. Corrigez le topolvm-node DaemonSet pour monter le wrapper sur le chemin binaire mkfs.xfs par défaut:
    kubectl -n topolvm-system patch ds topolvm-node --type=strategic -p '
    spec:
      template:
        spec:
          containers:
          - name: topolvm-node
            volumeMounts:
            - mountPath: /usr/local/sbin/mkfs.xfs
              name: mkfs-xfs-wrapper
              readOnly: true
              subPath: mkfs.xfs
          volumes:
          - name: mkfs-xfs-wrapper
            configMap:
              name: mkfs-xfs-wrapper
              defaultMode: 493
              items:
              - key: mkfs.xfs
                mode: 493
                path: mkfs.xfs
    '
    kubectl -n topolvm-system patch ds topolvm-node --type=strategic -p '
    spec:
      template:
        spec:
          containers:
          - name: topolvm-node
            volumeMounts:
            - mountPath: /usr/local/sbin/mkfs.xfs
              name: mkfs-xfs-wrapper
              readOnly: true
              subPath: mkfs.xfs
          volumes:
          - name: mkfs-xfs-wrapper
            configMap:
              name: mkfs-xfs-wrapper
              defaultMode: 493
              items:
              - key: mkfs.xfs
                mode: 493
                path: mkfs.xfs
    '
    
  5. Déployez DaemonSet et confirmez la fin du déploiement:
    kubectl -n topolvm-system rollout status ds/topolvm-node
    kubectl -n topolvm-system rollout status ds/topolvm-node
    
  • Description​
  • Solution​

Cette page vous a-t-elle été utile ?

Connecter

Besoin d'aide ? Assistance

Vous souhaitez apprendre ? UiPath Academy

Vous avez des questions ? UiPath Forum

Rester à jour