

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Résolution des problèmes de stockage
<a name="lfs-migrate-ts"></a>

Dans certains cas, il se peut que vous rencontriez des problèmes de stockage avec votre système de fichiers. Vous pouvez résoudre ces problèmes à l'aide de `lfs` commandes telles que la `lfs migrate` commande.

## Erreur d'écriture due à l'absence d'espace sur la cible de stockage
<a name="lfs-migrate-no-storage"></a>

Vous pouvez vérifier l'utilisation du stockage de votre système de fichiers à l'aide de la `lfs df -h` commande, comme décrit dans[Disposition du stockage du système de fichiers](performance.md#storage-layout). Le `filesystem_summary` champ indique l'utilisation totale du stockage du système de fichiers.

Si l'utilisation du disque du système de fichiers est de 100 %, envisagez d'augmenter la capacité de stockage de votre système de fichiers. Pour de plus amples informations, veuillez consulter [Gestion de la capacité de stockage](managing-storage-capacity.md).

Si l'utilisation du stockage du système de fichiers n'est pas de 100 % et que des erreurs d'écriture persistent, le fichier dans lequel vous écrivez est peut-être réparti par bandes sur un OST plein.

**Action à exécuter**
+ Si plusieurs d'entre eux OSTs sont pleins, augmentez la capacité de stockage de votre système de fichiers. Vérifiez que le stockage n'est pas déséquilibré OSTs en suivant les instructions de la [Stockage déséquilibré sur OSTs](#lfs-migrate-unbalanced-storage) section.
+ Si vous n' OSTs êtes pas plein, ajustez la taille de la mémoire tampon des pages sales du client en appliquant le réglage suivant à toutes vos instances clientes :

  ```
  sudo lctl set_param osc.*.max_dirty_mb=64
  ```

## Stockage déséquilibré sur OSTs
<a name="lfs-migrate-unbalanced-storage"></a>

Amazon FSx for Lustre distribue les nouvelles bandes de fichiers de manière uniforme OSTs. Cependant, il se peut que votre système de fichiers soit toujours déséquilibré en raison de I/O modèles ou de la structure de stockage des fichiers. Par conséquent, certaines cibles de stockage peuvent devenir pleines tandis que d'autres restent relativement vides.

Vous utilisez cette `lfs migrate` commande pour déplacer des fichiers ou des répertoires du plus plein vers le moins plein. OSTs Vous pouvez utiliser la `lfs migrate` commande en mode bloc ou non.
+ Le **mode bloc** est le mode par défaut de la `lfs migrate` commande. Lorsqu'il est exécuté en mode bloc, il acquiert d'`lfs migrate`abord un verrouillage de groupe sur les fichiers et les répertoires avant la migration des données afin d'empêcher toute modification des fichiers, puis relâche le verrou une fois la migration terminée. En empêchant les autres processus de modifier les fichiers, le mode bloc empêche ces processus d'interrompre la migration. L'inconvénient est que le fait d'empêcher une application de modifier un fichier peut entraîner des retards ou des erreurs dans l'application.
+ **Le mode sans blocage** est activé pour la `lfs migrate` commande avec l'`-n`option. Lorsqu'ils sont exécutés `lfs migrate` en mode non bloc, les autres processus peuvent toujours modifier les fichiers en cours de migration. Si un processus modifie un fichier avant d'avoir `lfs migrate` terminé sa migration, il ne `lfs migrate` parviendra pas à migrer ce fichier, laissant le fichier dans sa mise en page par bandes d'origine.

Nous vous recommandons d'utiliser le mode sans blocage, car il est moins susceptible d'interférer avec votre application.

**Action à exécuter**

1. Lancez une instance client relativement volumineuse (telle que le type d'`c5n.4xlarge`instance Amazon EC2) à monter sur le système de fichiers.

1. Avant d'exécuter le script en mode non bloc ou le script en mode bloc, exécutez d'abord les commandes suivantes sur chaque instance client pour accélérer le processus :

   ```
   sudo lctl set_param 'mdc.*.max_rpcs_in_flight=60'
   sudo lctl set_param 'mdc.*.max_mod_rpcs_in_flight=59'
   ```

1. Démarrez une session d'écran et exécutez le script en mode non bloc ou le script en mode bloc. Assurez-vous de modifier les variables appropriées dans les scripts :
   + Script en mode non bloc :

     ```
     #!/bin/bash
     
     # UNCOMMENT THE FOLLOWING LINES:
     #
     # TRY_COUNT=0
     # MAX_MIGRATE_ATTEMPTS=100
     # OSTS="fsname-OST0000_UUID"
     # DIR_OR_FILE_MIGRATED="/mnt/subdir/"
     # BATCH_SIZE=10
     # PARALLEL_JOBS=16 # up to max-procs processes, set to 16 if client is c5n.4xlarge with 16 vcpu
     # LUSTRE_STRIPING_CONFIG="-E 100M -c 1 -E 10G -c 8 -E 100G -c 16 -E -1 -c 32" # should be consistent with the existing striping setup
     #
     
     if [ -z "$TRY_COUNT" -o -z "$MAX_MIGRATE_ATTEMPTS" -o -z "$OSTS" -o -z "$DIR_OR_FILE_MIGRATED" -o -z "$BATCH_SIZE" -o -z "$PARALLEL_JOBS" -o -z "$LUSTRE_STRIPING_CONFIG" ]; then
         echo "Some variables are not set."
         exit 1
     fi
     
     echo "lfs migrate starts"
     while true; do
         output=$(sudo lfs find ! -L released --ost $OSTS --print0 $DIR_OR_FILE_MIGRATED | shuf -z | /bin/xargs -0 -P $PARALLEL_JOBS -n $BATCH_SIZE sudo lfs migrate -n $LUSTRE_STRIPING_CONFIG 2>&1)
         if [[ $? -eq 0 ]]; then
             echo "lfs migrate succeeds for $DIR_OR_FILE_MIGRATED at the $TRY_COUNT attempt, exiting."
             exit 0
         elif [[ $? -eq 123 ]]; then 
             echo "WARN: Target data objects are not located on these OSTs. Skipping lfs migrate"
             exit 1
         else
             echo "lfs migrate fails for $DIR_OR_FILE_MIGRATED at the $TRY_COUNT attempt, retrying..."
             if (( ++TRY_COUNT >= MAX_MIGRATE_ATTEMPTS )); then
                 echo "WARN: Exceeds max retry attempt. Skipping lfs migrate for $DIR_OR_FILE_MIGRATED. Failed with the following error"
                 echo $output
                 exit 1
             fi
         fi
     done
     ```
   + Script en mode bloc :
     + Remplacez les valeurs `OSTS` par les valeurs de votre OSTs.
     + Entrez une valeur entière de `nproc` pour définir le nombre de processus max-procs à exécuter en parallèle. Par exemple, le type d'`c5n.4xlarge`instance Amazon EC2 est de 16 VCPUs, vous pouvez donc utiliser `16` (ou une valeur inférieure à 16) pour. `nproc`
     + Indiquez le chemin de votre répertoire de montage dans`mnt_dir_path`.

     ```
     # find all OSTs with usage above a certain threshold; for example, greater than or equal to 85% full 
     for OST in $(lfs df -h |egrep '( 8[5-9]| 9[0-9]|100)%'|cut -d' ' -f1); do echo ${OST};done|tr '\012' ','
     
     # customer can also just pass OST values directly to OSTS variable
     OSTS='dzfevbmv-OST0000_UUID,dzfevbmv-OST0002_UUID,dzfevbmv-OST0004_UUID,dzfevbmv-OST0005_UUID,dzfevbmv-OST0006_UUID,dzfevbmv-OST0008_UUID'
     
     nproc=<Run up to max-procs processes if client is c5n.4xlarge with 16 vcpu, this value can be set to 16>
     
     mnt_dir_path=<mount dir, e.g. '/my_mnt'>
     
     lfs find ${mnt_dir_path} --ost ${OSTS}| xargs -P ${nproc} -n2 lfs migrate -E 100M -c 1 -E 10G -c 8 -E 100G -c 16 -E -1 -c 32
     ```

**Remarques**
+ Si vous remarquez un impact sur les performances des lectures du système de fichiers, vous pouvez arrêter les migrations à tout moment en utilisant `ctrl-c` ou k`ill -9`, et réduire le nombre de threads (`nproc`valeur) à un nombre inférieur (8, par exemple), puis reprendre la migration des fichiers.
+ La `lfs migrate` commande échouera sur un fichier également ouvert par la charge de travail du client. Il génère une erreur et passe au fichier suivant ; il est donc possible que si de nombreux fichiers sont accessibles, le script ne soit pas en mesure de migrer de fichiers, ce qui se reflétera dans le fait que la migration progresse très lentement.
+ Vous pouvez surveiller l'utilisation de l'OST à l'aide de l'une des méthodes suivantes :
  + Lors du montage du client, exécutez la commande suivante pour surveiller l'utilisation de l'OST et trouver l'OST dont l'utilisation est supérieure à 85 % :

    ```
    lfs df -h |egrep '( 8[5-9]| 9[1-9]|100)%'
    ```
  + Vérifiez la CloudWatch métrique Amazon`OST FreeDataStorageCapacity`, vérifiez`Minimum`. Si votre script détecte OSTs qu'ils sont pleins à plus de 85 %, utilisez `ctrl-c` ou `kill -9` pour arrêter la migration lorsque la métrique est proche de 15 %.
+ Vous pouvez également envisager de modifier la configuration par bandes de votre système de fichiers ou d'un répertoire, afin que les nouveaux fichiers soient répartis sur plusieurs cibles de stockage. Pour plus d'informations, voir dans[Regrouper les données dans votre système de fichiers](performance.md#striping-data). 