Kuota sistem file

Sistem file Lustre Terkelola Google Cloud mendukung kuota pengguna, grup, dan project, sehingga administrator dapat mengelola penggunaan penyimpanan dan memastikan alokasi resource yang adil. Dokumen ini menjelaskan cara mengonfigurasi, melihat, dan mengelola kuota ini.

Apa itu kuota sistem file?

Kuota di Managed Lustre memungkinkan Anda menetapkan batas jumlah ruang disk dan jumlah file yang dapat digunakan pengguna, grup, atau project dalam sistem file Anda.

Kuota diterapkan ke berbagai entitas:

  • Kuota pengguna membatasi penyimpanan yang digunakan oleh pengguna non-root individual.
  • Kuota grup membatasi penyimpanan yang digunakan oleh semua anggota non-root dari grup tertentu.
  • Kuota project membatasi penyimpanan yang digunakan oleh file dan direktori yang terkait dengan ID project tertentu. Project ID ini adalah ID sistem file Lustre, yang ditentukan menggunakan lfs project, dan bukanGoogle Cloud project ID Anda. Lihat Menetapkan kuota project untuk mengetahui informasi selengkapnya.

Kuota dikonfigurasi untuk dua jenis resource:

  • Batas blok adalah batas jumlah ruang disk yang dapat digunakan.
  • Batas inode adalah batas jumlah file dan direktori yang dapat dibuat.

Setiap jenis resource dapat memiliki dua tingkat batas:

  • Batas lunak adalah nilai minimum kuota yang memicu masa tenggang yang dapat dikonfigurasi jika terlampaui. Selama masa tenggang ini, pengguna, grup, atau project dapat melampaui batas lunak untuk sementara, hingga batas keras jika ada, sehingga mereka memiliki waktu untuk mengurangi penggunaan sebelum diblokir. Setelah masa tenggang berakhir, jika penggunaan masih di atas batas lunak, batas lunak akan diterapkan sebagai batas keras, yang memblokir semua penulisan baru hingga ruang disk atau jumlah inode berada di bawah batas lunak.

    Secara default, masa tenggang adalah satu minggu.

  • Batas ketat menentukan maksimum absolut. Jika batas ini tercapai, semua operasi tulis selanjutnya akan gagal dan menampilkan error "Kuota disk terlampaui".

Mengelola pengguna dan grup

Lustre mengandalkan atribut POSIX klien untuk nama dan ID pengguna dan grup.

Saat membuat permintaan sistem file, klien akan mengirimkan UID dan GID lokal ke server Lustre. Server menggunakan atribut POSIX ini untuk menerapkan izin file standar dan melacak penggunaan kuota.

Untuk perilaku yang konsisten dalam lingkungan multi-pengguna, semua klien yang mem-mount sistem file Lustre harus memiliki pemetaan UID dan GID yang disinkronkan, yang biasanya dikelola melalui layanan terpusat seperti LDAP atau NIS.

Pengguna root tidak tunduk pada kuota. Perintah yang dijalankan dengan sudo juga melewati pemeriksaan kuota.

Sebelum memulai

Untuk mengelola kuota Lustre, Anda memerlukan:

  • Akses klien ke sistem file Google Cloud Managed Lustre yang aktif.
  • Hak istimewa sudo atau root pada sistem klien untuk menjalankan perintah lfs.

Menetapkan kuota

Gunakan perintah lfs setquota untuk mengonfigurasi batas blok dan inode. Anda dapat menentukan hanya batas blok, hanya batas inode, atau keduanya; demikian pula, Anda dapat menentukan batas ketat, batas lunak, atau keduanya.

sudo lfs setquota -u | g | p | U | G | P UGP_VALUE \
      -b SOFT_BLOCK_LIMIT -B HARD_BLOCK_LIMIT \
      -i SOFT_INODE_LIMIT -I HARD_INODE_LIMIT \
      MOUNT_DIR

Dengan:

  • -u menentukan pengguna berdasarkan nama pengguna atau UID.
  • -g menentukan grup berdasarkan nama grup atau GID.
  • -p menentukan project berdasarkan project ID.
  • U, G, dan P menetapkan kuota default untuk setiap pengguna, grup, atau project yang tidak menetapkan kuota tertentu.
  • UGP_VALUE adalah nama pengguna, nama grup, UID, GID, atau project ID. Hapus nilai ini jika Anda menentukan kuota default pengguna, grup, atau project.
  • -b dan -B adalah batas lunak dan batas ketat untuk penggunaan blok. Batas ringan harus lebih kecil dari batas berat. Nilai dapat ditentukan dalam byte (B), kilobyte (K), megabyte (M), gigabyte (G), atau terabyte (T). Unit default adalah kilobyte.
  • -i dan -I adalah batas lunak dan batas ketat untuk penggunaan inode. Batas ringan harus lebih kecil dari batas berat.
  • MOUNT_DIR adalah direktori pemasangan sistem file Managed Lustre.

Perhatikan bahwa Anda tidak dapat mengonfigurasi masa tenggang secara bersamaan dengan membuat kuota. Masa tenggang default untuk batas lunak adalah satu minggu. Untuk memperbarui masa tenggang, lihat Mengonfigurasi masa tenggang.

Contoh

Menetapkan kuota pengguna

Tetapkan batas pemblokiran sementara 100 GB, batas pemblokiran permanen 120 GB, batas inode sementara 10.000, dan batas inode permanen 12.000 untuk user1 di /mnt/lustre:

sudo lfs setquota -u user1 -b 100G -B 120G -i 10000 -I 12000 /mnt/lustre

Menetapkan kuota grup

Tetapkan batas pemblokiran tetap sebesar 50 TB untuk groupA di /mnt/lustre:

sudo lfs setquota -g groupA -B 50T /mnt/lustre

Menetapkan kuota project

Kuota project memerlukan langkah tambahan untuk mengaitkan direktori dan file dengan ID project:

  1. Gunakan perintah lfs project untuk menetapkan project ID. ID ini adalah bilangan bulat arbitrer yang mengidentifikasi project.

    sudo lfs project -spr LFS_PROJECT_ID PATH/TO/DIR/OR/FILE
    

    Dengan:

    • -s menetapkan pewarisan, sehingga file dan direktori baru yang dibuat di direktori yang ditentukan mewarisi project ID.
    • -r menerapkan ID project secara berulang ke semua direktori dan file turunan.
    • -p memberi tahu perintah untuk menetapkan project ID yang diberikan pada file atau direktori yang ditentukan.
    • PATH/TO/DIR/OR/FILE adalah jalur ke direktori atau file yang akan ditetapkan project ID-nya. Hanya satu jalur atau file yang dapat ditentukan.

    Untuk mengetahui tanda dan informasi tambahan, jalankan man lfs project dari klien Anda.

    Misalnya, untuk menetapkan project 101 ke /mnt/lustre/my-project dan semua turunan baru dan yang sudah ada:

    sudo lfs project -spr 101 /mnt/lustre/my-project
    
  2. Tetapkan kuota menggunakan lfs setquota:

    sudo lfs setquota -p LFS_PROJECT_ID \
      -b SOFT_BLOCK_LIMIT -B HARD_BLOCK_LIMIT \
      -i SOFT_INODE_LIMIT -I HARD_INODE_LIMIT \
      MOUNT_DIR
    

Menetapkan kuota default

Menetapkan batas pemblokiran ketat sebesar 50 TB untuk semua pengguna tanpa setelan kuota tertentu:

sudo lfs setquota -U -B 50T /mnt/lustre

Mengubah kuota

Untuk mengubah kuota yang ada, jalankan lfs setquota lagi dengan nilai baru. Perintah akan menggantikan setelan sebelumnya untuk pengguna, grup, atau project yang ditentukan.

Mengonfigurasi masa tenggang

Masa tenggang menentukan berapa lama pengguna, grup, atau project dapat melampaui batas lunak sebelum batas lunak bertindak sebagai batas ketat. Secara default, nilainya adalah satu minggu. Masa tenggang ditetapkan untuk semua pengguna, grup, atau project; masa tenggang tidak dapat ditetapkan untuk ID tertentu.

Untuk memperbarui masa tenggang, gunakan perintah lfs setquota -t:

sudo lfs setquota -t -u | g | p \
  -b BLOCK_GRACE_PERIOD -i INODE_GRACE_PERIOD \
  MOUNT_DIR

Dengan:

  • -u menerapkan masa tenggang ke kuota pengguna.
  • -g menerapkan masa tenggang ke kuota grup.
  • -p menerapkan masa tenggang untuk kuota project.
  • -b dan -i masing-masing menentukan masa tenggang blok dan inode. Unit defaultnya adalah detik. Anda dapat menggunakan satuan lain dengan format: XwXdXhXmXs (minggu, hari, jam, menit, detik). Anda dapat menetapkan batas untuk salah satu atau kedua jenis kuota.

    Tentukan 'notify', bukan nilai waktu, untuk menandai output lfs quota dengan tanda bintang jika batas lunak telah terlampaui. Penulisan baru tidak diblokir jika 'notify' ditentukan hingga batas maksimum tercapai.

Misalnya, untuk menetapkan masa tenggang pemblokiran selama 7 hari untuk semua kuota pengguna:

sudo lfs setquota -t -u -b 7d /mnt/lustre

Untuk menetapkan masa tenggang inode selama 24 jam untuk kuota project:

sudo lfs setquota -t -p -i 24h /mnt/lustre

Untuk memberi tahu saat batas sementara blok terlampaui:

sudo lfs setquota -t -u -b 'notify' /mnt/lustre

Melihat kuota yang ada

Perintah lfs quota menampilkan penggunaan dan batas untuk pengguna saat ini:

lfs quota MOUNT_DIR

Untuk mengetahui daftar lengkap opsi, jalankan man lfs quota dari klien Anda.

Misalnya, untuk melihat kuota user1 di /mnt/lustre:

sudo lfs quota -u user1 /mnt/lustre

Perhatikan bahwa untuk melihat kuota dan penggunaan pengguna lain, Anda harus menjalankan perintah dengan sudo.

Output-nya menampilkan:

  • Filesystem: Titik pemasangan Lustre.
  • kbytes: Penggunaan disk saat ini dalam kilobyte.
  • bquota: Batas pemblokiran sementara dalam kilobyte.
  • blimit: Batas blok keras dalam kilobyte.
  • bgrace: Periode tenggang yang tersisa jika batas lunak blok terlampaui. Tanda bintang (*) menunjukkan bahwa batas lunak terlampaui.
  • files: Jumlah inode yang digunakan.
  • iquota: Batas inode yang dapat dilewati.
  • ilimit: Batas inode keras.
  • igrace: Masa tenggang yang tersisa jika batas lunak inode terlampaui. Tanda bintang (*) menunjukkan bahwa batas lunak terlampaui.

Untuk melihat masa tenggang yang dikonfigurasi untuk semua kuota pengguna:

lfs quota -t -u /mnt/lustre

Menghapus kuota

Untuk menghapus kuota, tetapkan batas lunak dan batas ketatnya ke 0.

sudo lfs setquota -u | g | p | U | G | P UGP_VALUE -b 0 -B 0 -i 0 -I 0 MOUNT_DIR

Misalnya, untuk menghapus kuota blok dan inode user1:

sudo lfs setquota -u user1 -b 0 -B 0 -i 0 -I 0 /mnt/lustre

Untuk menghapus batas blok project default:

sudo lfs setquota -P -b 0 -B 0 /mnt/lustre

Masalah umum

Saat menggunakan kuota Lustre, perhatikan masalah umum berikut:

  • Cache yang diberikan: Cache yang diberikan adalah fitur Lustre yang memungkinkan klien menerima blok penyimpanan sebagai "pemberian" dari Target Penyimpanan Objek (OST) untuk menulis data. Jika klien memiliki cache yang diberikan ini, klien dapat segera menampilkan pesan berhasil kepada pengguna untuk operasi tulis, bahkan saat data masih berada di cache lokal klien dan sebelum data ditulis secara fisik ke disk. Ini adalah pengoptimalan performa yang meminimalkan latensi.

    Cache yang diberikan berpotensi menyebabkan kuota terlampaui. Karena cache yang diberikan memungkinkan klien untuk terus menulis data ke cache mereka meskipun kuota sisi server mereka telah habis, pengguna dapat melampaui batas keras mereka.

  • Penetapan project ID yang salah: Agar kuota project berfungsi, direktori dan file harus ditetapkan project ID dengan benar menggunakan lfs project -spr. Jika -r tidak disertakan, ID project tidak akan diterapkan ke file dan subdirektori yang ada. Menghilangkan -s berarti file dan direktori baru yang dibuat nanti tidak akan mewarisi project ID.

  • Beberapa kuota dan "yang paling ketat menang": Pengguna dapat dikenai kuota pengguna, satu atau beberapa kuota grup, dan satu atau beberapa kuota project secara bersamaan. Lustre menerapkan batas yang paling ketat di antara batas-batas ini. Artinya, pengguna dapat memiliki kuota pribadi yang besar, tetapi dibatasi oleh kuota project yang lebih kecil untuk file dalam direktori project tersebut.

  • Pelewatan kuota pengguna root: Penulisan pengguna root akan melewati penerapan kuota. Hal ini dapat menyebabkan sistem file terisi oleh tugas administratif, bahkan ketika kuota diterapkan untuk pengguna lain.

  • fallocate tidak mematuhi kuota: Pengguna dapat menggunakan fallocate untuk memesan ruang di sistem file yang melebihi batas keras.