

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Terlebih dulu memuat file ke dalam sistem file Anda
<a name="preload-file-contents-hsm-dra"></a>

Anda dapat secara opsional memuat konten file individual atau direktori ke dalam sistem file Anda.

## Mengimpor file menggunakan perintah HSM
<a name="preload-hsm"></a>

Amazon FSx menyalin data dari repositori data Amazon S3 Anda saat file pertama kali diakses. Karena pendekatan ini, pembacaan atau penulisan awal ke file menimbulkan sejumlah kecil latensi. Jika aplikasi Anda sensitif terhadap latensi ini, dan Anda tahu file atau direktori mana yang aplikasinya perlu akses, Anda dapat memilih terlebih dulu memuat isi file individu atau direktori. Anda melakukannya dengan menggunakan perintah `hsm_restore`, sebagai berikut.

Anda dapat menggunakan perintah `hsm_action` (yang dikeluarkan dengan utilitas pengguna `lfs`) untuk memverifikasi bahwa isi file telah selesai dimuat ke dalam sistem file. Sebuah nilai kembali `NOOP` menunjukkan bahwa file telah berhasil dimuat. Jalankan perintah berikut dari instans komputasi dengan sistem file yang terpasang. Ganti *path/to/file* dengan jalur file yang Anda preloading ke sistem file Anda.

```
sudo lfs hsm_restore path/to/file
sudo lfs hsm_action path/to/file
```

Anda dapat terlebih dulu memuat seluruh sistem file Anda atau seluruh direktori dalam sistem file Anda dengan menggunakan perintah berikut. (tanda ampersand yang mengikuti membuat perintah dijalankan sebagai proses latar belakang.) Jika Anda meminta pramuat beberapa file secara bersamaan, Amazon FSx memuat file Anda dari repositori data Amazon S3 Anda secara paralel. Jika file telah dimuat ke sistem file, `hsm_restore` perintah tidak memuat ulang.

```
nohup find local/directory -type f -print0 | xargs -0 -n 1 -P 8 sudo lfs hsm_restore &
```

**catatan**  
Jika bucket S3 tertaut Anda lebih besar dari sistem file Anda, Anda harus dapat mengimpor semua metadata file ke dalam sistem file Anda. Namun, Anda hanya dapat memuat sebanyak data file aktual yang akan muat ke dalam ruang penyimpanan sistem file yang tersisa. Anda akan menerima pesan kesalahan jika mencoba mengakses data file saat tidak ada lagi penyimpanan yang tersisa di sistem file. Jika ini terjadi, Anda dapat meningkatkan jumlah kapasitas penyimpanan sesuai kebutuhan. Untuk informasi selengkapnya, lihat [Mengelola kapasitas penyimpanan](managing-storage-capacity.md).

## Langkah validasi
<a name="preload-validation"></a>

Anda dapat menjalankan skrip bash yang tercantum di bawah ini untuk membantu Anda menemukan berapa banyak file atau objek dalam keadaan diarsipkan (dirilis).

Untuk meningkatkan kinerja skrip, terutama di seluruh sistem file dengan sejumlah besar file, thread CPU secara otomatis ditentukan berdasarkan `/proc/cpuproc` file. Artinya, Anda akan melihat kinerja yang lebih cepat dengan jumlah vCPU yang lebih tinggi instans Amazon EC2.

1. Siapkan skrip bash.

   ```
   #!/bin/bash
   
   # Check if a directory argument is provided
   if [ $# -ne 1 ]; then
       echo "Usage: $0 /path/to/lustre/mount"
       exit 1
   fi
   
   # Set the root directory from the argument
   ROOT_DIR="$1"
   
   # Check if the provided directory exists
   if [ ! -d "$ROOT_DIR" ]; then
       echo "Error: Directory $ROOT_DIR does not exist."
       exit 1
   fi
   
   # Automatically detect number of CPUs and set threads
   if command -v nproc &> /dev/null; then
       THREADS=$(nproc)
   elif [ -f /proc/cpuinfo ]; then
       THREADS=$(grep -c ^processor /proc/cpuinfo)
   else
       echo "Unable to determine number of CPUs. Defaulting to 1 thread."
       THREADS=1
   fi
   
   # Output file
   OUTPUT_FILE="released_objects_$(date +%Y%m%d_%H%M%S).txt"
   
   echo "Searching in $ROOT_DIR for all released objects using $THREADS threads"
   echo "This may take a while depending on the size of the filesystem..."
   
   # Find all released files in the specified lustre directory using parallel
   # If you  get false positives for file names/paths that include the word 'released',
   # you can grep 'released exists archived' instead of just 'released'
   time sudo lfs find "$ROOT_DIR" -type f | \
   parallel --will-cite -j "$THREADS" -n 1000 "sudo lfs hsm_state {} | grep released" > "$OUTPUT_FILE"
   
   echo "Search complete. Released objects are listed in $OUTPUT_FILE"
   echo "Total number of released objects: $(wc -l <"$OUTPUT_FILE")"
   ```

1. Jadikan skrip dapat dieksekusi:

   ```
   $ chmod +x find_lustre_released_files.sh
   ```

1. Jalankan skrip, seperti pada contoh berikut:

   ```
   $ ./find_lustre_released_files.sh /fsxl/sample
   Searching in /fsxl/sample for all released objects using 16 threads
   This may take a while depending on the size of the filesystem...
   real 0m9.906s
   user 0m1.502s
   sys 0m5.653s
   Search complete. Released objects are listed in released_objects_20241121_184537.txt
   Total number of released objects: 30000
   ```

Jika ada objek yang dirilis, maka lakukan pemulihan massal pada direktori yang diinginkan untuk membawa file ke FSx Lustre dari S3, seperti pada contoh berikut:

```
$ DIR=/path/to/lustre/mount
$ nohup find $DIR -type f -print0 | xargs -0 -n 1 -P 8 sudo lfs hsm_restore &
```

Perhatikan bahwa `hsm_restore` akan memakan waktu beberapa saat di mana ada jutaan file.