Kuota sistem file

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

Apa yang dimaksud dengan kuota sistem file?

Kuota di Lustre Terkelola Google Cloud memungkinkan Anda menetapkan batas jumlah ruang disk dan jumlah file yang dapat dikonsumsi pengguna, grup, atau project dalam sistem file Anda.

Kuota diterapkan ke berbagai entity:

  • Kuota pengguna membatasi penyimpanan yang dikonsumsi oleh pengguna non-root individual.
  • Kuota grup membatasi penyimpanan yang dikonsumsi oleh semua anggota non-root dari grup tertentu.
  • Kuota project membatasi penyimpanan yang dikonsumsi oleh file dan direktori yang terkait dengan project ID tertentu. Project ID ini adalah ID sistem file Lustre, yang ditentukan menggunakan lfs project, dan bukan Google 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 yang dapat dilewati adalah nilai minimum kuota yang memicu masa tenggang yang dapat dikonfigurasi saat terlampaui. Selama masa tenggang ini, pengguna, grup, atau project dapat melampaui batas yang dapat dilewati untuk sementara, hingga batas ketat jika ada, sehingga mereka memiliki waktu untuk mengurangi penggunaan sebelum diblokir. Setelah masa tenggang berakhir, jika penggunaan masih di atas batas yang dapat dilewati, batas yang dapat dilewati akan diberlakukan sebagai batas ketat, yang memblokir semua penulisan baru hingga ruang disk atau jumlah inode berada di bawah batas yang dapat dilewati.

    Secara default, masa tenggang adalah satu minggu.

  • Batas ketat menentukan nilai maksimum absolut. Jika batas ini tercapai, semua operasi tulis lebih lanjut akan gagal, dan menampilkan error "Disk quota exceeded".

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 memasang 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 Lustre Terkelola Google Cloud yang aktif.
  • Hak istimewa sudo atau root di sistem klien untuk menjalankan perintah lfs.

Menetapkan kuota

Gunakan perintah lfs setquota untuk mengonfigurasi batas blok dan inode. Anda dapat menentukan batas blok saja, batas inode saja, atau keduanya; begitu juga Anda dapat menentukan batas ketat, batas yang dapat dilewati, 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. Lustre menyelesaikan nama pengguna menggunakan atribut POSIX klien.
  • -g menentukan grup berdasarkan nama grup atau GID. Lustre menyelesaikan nama grup menggunakan atribut POSIX klien.
  • -p menentukan project berdasarkan nama project atau project ID. Jika menentukan nama project, nama tersebut harus dipetakan ke project ID menggunakan file pemetaan seperti /etc/projid di klien.
  • U, G, dan P menetapkan kuota default untuk pengguna, grup, atau project yang tidak memiliki kuota tertentu yang ditetapkan.
  • UGP_VALUE adalah nama pengguna, nama grup, nama project, UID, GID, atau project ID. ID harus berupa bilangan bulat antara 0 dan 4294967295. Hapus nilai ini jika Anda menentukan kuota pengguna, grup, atau project default.
  • -b dan -B adalah batas yang dapat dilewati dan batas ketat untuk penggunaan blok. Batas yang dapat dilewati harus lebih kecil dari batas ketat. Nilai dapat ditentukan dalam byte (B), kilobyte (K), megabyte (M), gigabyte (G), atau terabyte (T). Unit default adalah kilobyte.
  • -i dan -I adalah batas yang dapat dilewati dan batas ketat untuk penggunaan inode. Batas yang dapat dilewati harus lebih kecil dari batas ketat.
  • MOUNT_DIR adalah titik pemasangan sistem file Lustre Terkelola Google Cloud.

Perhatikan bahwa Anda tidak dapat mengonfigurasi masa tenggang pada saat yang sama dengan membuat kuota. Masa tenggang default untuk batas yang dapat dilewati adalah satu minggu. Untuk memperbarui masa tenggang, lihat Mengonfigurasi masa tenggang.

Contoh

Menetapkan kuota pengguna

Tetapkan batas blok yang dapat dilewati sebesar 100 GB, batas blok ketat sebesar 120 GB, batas inode yang dapat dilewati sebesar 10.000, dan batas inode ketat sebesar 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 blok ketat 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 project ID:

  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 inheritance, sehingga file dan direktori baru yang dibuat di direktori yang ditentukan akan mewarisi project ID.
    • -p memberi tahu perintah untuk menetapkan project ID yang diberikan pada file atau direktori yang ditentukan.
    • -r menerapkan project ID secara berulang ke semua direktori dan file turunan.
    • PATH/TO/DIR/OR/FILE adalah jalur ke direktori atau file tempat project ID akan ditetapkan. Hanya satu jalur atau file yang dapat ditentukan.

    Untuk mengetahui flag 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 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

Tetapkan batas blok 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 ini akan menimpa setelan sebelumnya untuk pengguna, grup, atau project yang ditentukan.

Mengonfigurasi masa tenggang

Masa tenggang menentukan berapa lama pengguna, grup, atau project dapat melampaui batas yang dapat dilewati sebelum batas yang dapat dilewati 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 ke kuota project.
  • -b dan -i menentukan masa tenggang blok dan inode. Unit default adalah detik. Anda dapat menggunakan unit lain dengan format: XwXdXhXmXs (minggu, hari, jam, menit, detik). Anda dapat menetapkan batas untuk satu atau kedua jenis kuota.

    Tentukan 'notify' dan bukan nilai waktu untuk menandai output lfs quota dengan tanda bintang saat batas yang dapat dilewati telah terlampaui. Penulisan baru tidak diblokir saat 'notify' ditentukan hingga batas ketat tercapai.

Misalnya, untuk menetapkan masa tenggang blok 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 yang dapat dilewati 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 informasi berikut:

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

Untuk melihat masa tenggang yang dikonfigurasi untuk semua kuota pengguna:

lfs quota -t -u /mnt/lustre

Memantau kuota di Cloud Monitoring

Selain menggunakan perintah lfs quota di klien, Anda dapat melihat penggunaan dan batas kuota sistem file melalui Cloud Monitoring. Dengan cara ini, Anda dapat memantau konsumsi penyimpanan menurut pengguna, grup, atau project dari Google Cloud konsol.

Metrik kuota dikaitkan dengan resource yang dipantau Entity Kuota Lustre. Metrik yang tersedia mencakup:

  • Byte: Byte yang digunakan, batas yang dapat dilewati, dan batas ketat.
  • Inode: Inode yang digunakan, batas yang dapat dilewati, dan batas ketat.

Untuk melihat metrik ini:

  1. Di Google Cloud konsol, buka halaman Monitoring > Metrics Explorer.

    Buka Metrics Explorer

  2. Di kolom Select a metric, telusuri dan pilih resource Lustre Quota Entity.

  3. Pilih metrik kuota tertentu yang ingin Anda lihat (misalnya, Quota Used Bytes atau Quota Hard Limit Inodes).

  4. Secara opsional, gunakan opsi Filter untuk melihat entity tertentu dengan memfilter label accounting_type (misalnya, user, group, project) atau label id (misalnya, UID, GID, atau project ID tertentu).

Menghapus kuota

Untuk menghapus kuota, tetapkan batas yang dapat dilewati 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 memiliki cache yang diberikan ini, klien dapat langsung menampilkan pesan keberhasilan kepada pengguna untuk operasi tulis, meskipun 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 ketat mereka.

  • Penetapan project ID yang salah: Agar kuota project berfungsi, direktori dan file harus ditetapkan dengan benar ke project ID menggunakan lfs project -spr. Jika -r dihilangkan, project ID tidak akan diterapkan ke file dan subdirektori yang ada. Jika -s dihilangkan, 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 memberlakukan batas yang paling ketat dari batas ini. Artinya, pengguna dapat memiliki kuota pribadi yang besar, tetapi dibatasi oleh kuota project yang lebih kecil untuk file dalam direktori project tersebut.

  • Pengabaian kuota pengguna root: Penulisan pengguna root mengabaikan penerapan kuota. Hal ini dapat menyebabkan sistem file terisi oleh tugas administratif, meskipun kuota telah ditetapkan untuk pengguna lain.

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