

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Risoluzione dei problemi di storage
<a name="lfs-migrate-ts"></a>

In alcuni casi, potrebbero verificarsi problemi di archiviazione con il file system. È possibile risolvere questi problemi utilizzando `lfs` comandi, come il `lfs migrate` comando.

## Errore di scrittura dovuto alla mancanza di spazio sulla destinazione di archiviazione
<a name="lfs-migrate-no-storage"></a>

È possibile verificare l'utilizzo dello storage del file system utilizzando il `lfs df -h` comando, come descritto in[Layout di storage del file system](performance.md#storage-layout). Il `filesystem_summary` campo riporta l'utilizzo totale dello storage del file system.

Se l'utilizzo del disco del file system è del 100%, valuta la possibilità di aumentare la capacità di archiviazione del file system. Per ulteriori informazioni, consulta [Gestione della capacità di archiviazione](managing-storage-capacity.md).

Se l'utilizzo dello storage del file system non è al 100% e si verificano comunque errori di scrittura, è possibile che il file su cui si sta scrivendo sia archiviato su un OST completo.

**Operazione da eseguire**
+ Se molti file OSTs sono pieni, aumentate la capacità di archiviazione del file system. Verificate la presenza di uno storage non bilanciato attivo OSTs seguendo le azioni della [Archiviazione sbilanciata su OSTs](#lfs-migrate-unbalanced-storage) sezione.
+ Se non OSTs sei pieno, ottimizza la dimensione del buffer della pagina sporca del client applicando la seguente regolazione a tutte le istanze del client:

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

## Archiviazione sbilanciata su OSTs
<a name="lfs-migrate-unbalanced-storage"></a>

Amazon FSx for Lustre distribuisce nuove strisce di file in modo uniforme su tutto il territorio. OSTs Tuttavia, il file system potrebbe ancora diventare sbilanciato a causa dei I/O modelli o del layout di archiviazione dei file. Di conseguenza, alcune destinazioni di archiviazione possono diventare piene mentre altre rimangono relativamente vuote.

È possibile utilizzare il `lfs migrate` comando per spostare file o cartelle da una cartella più piena a una meno piena. OSTs È possibile utilizzare il `lfs migrate` comando in modalità a blocchi o non a blocchi.
+ La **modalità a blocchi** è la modalità predefinita per il `lfs migrate` comando. Quando viene eseguito in modalità a blocchi, acquisisce `lfs migrate` innanzitutto un blocco di gruppo su file e directory prima della migrazione dei dati per impedire modifiche ai file, quindi rilascia il blocco al termine della migrazione. Impedendo ad altri processi di modificare i file, la modalità a blocchi impedisce a questi processi di interrompere la migrazione. Lo svantaggio è che impedire a un'applicazione di modificare un file può causare ritardi o errori nell'applicazione.
+ La **modalità non a blocchi** è abilitata per il `lfs migrate` comando con l'opzione. `-n` Quando vengono eseguiti `lfs migrate` in modalità non a blocchi, altri processi possono comunque modificare i file che vengono migrati. Se un processo modifica un file prima del `lfs migrate` completamento della migrazione, non `lfs migrate` riuscirà a migrare quel file, lasciando il file con il suo layout originale a strisce.

Ti consigliamo di utilizzare la modalità non a blocchi, poiché è meno probabile che interferisca con l'applicazione.

**Operazione da eseguire**

1. Avvia un'istanza client relativamente grande (come il tipo di `c5n.4xlarge` istanza Amazon EC2) da montare sul file system.

1. Prima di eseguire lo script in modalità non blocco o lo script in modalità blocco, esegui i seguenti comandi su ogni istanza client per accelerare il processo:

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

1. Avvia una sessione sullo schermo ed esegui lo script in modalità non blocco o lo script in modalità blocco. Assicurati di modificare le variabili appropriate negli script:
   + Script in modalità non a blocchi:

     ```
     #!/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 in modalità blocco:
     + Sostituisci i valori `OSTS` con i valori del tuo OSTs.
     + Fornisci un valore intero `nproc` per impostare il numero di processi max-procs da eseguire in parallelo. Ad esempio, il tipo di `c5n.4xlarge` istanza Amazon EC2 ha 16 vCPUs, quindi puoi usare `16` (o un valore < 16) per. `nproc`
     + Fornisci il percorso della directory di montaggio in`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
     ```

**Note**
+ Se notate che c'è un impatto sulle prestazioni delle letture del file system, potete interrompere le migrazioni in qualsiasi momento utilizzando `ctrl-c` o k `ill -9` e ridurre il numero di thread (`nproc`valore) a un numero inferiore (ad esempio 8) e riprendere la migrazione dei file.
+ Il `lfs migrate` comando avrà esito negativo su un file aperto anche dal carico di lavoro del client. Genererà un errore e passerà al file successivo; pertanto, se si accede a molti file, lo script non sarà in grado di migrare alcun file e ciò si rifletterà man mano che la migrazione procede molto lentamente.
+ È possibile monitorare l'utilizzo di OST utilizzando uno dei seguenti metodi
  + Al momento del montaggio sul client, esegui il comando seguente per monitorare l'utilizzo di OST e trovare l'OST con un utilizzo superiore all'85%:

    ```
    lfs df -h |egrep '( 8[5-9]| 9[1-9]|100)%'
    ```
  + Controlla la CloudWatch metrica di Amazon`OST FreeDataStorageCapacity`, verifica`Minimum`. Se lo script rileva OSTs che è pieno per oltre l'85%, quando la metrica è vicina al 15%, usa `ctrl-c` o `kill -9` per interrompere la migrazione.
+ Potresti anche prendere in considerazione la possibilità di modificare la configurazione dello stripe del tuo file system o di una directory, in modo che i nuovi file vengano distribuiti su più destinazioni di archiviazione. Per ulteriori informazioni, vedere in. [Stripaggio dei dati nel file system](performance.md#striping-data) 