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
sudoatau root di sistem klien untuk menjalankan perintahlfs.
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:
-umenentukan pengguna berdasarkan nama pengguna atau UID. Lustre menyelesaikan nama pengguna menggunakan atribut POSIX klien.-gmenentukan grup berdasarkan nama grup atau GID. Lustre menyelesaikan nama grup menggunakan atribut POSIX klien.-pmenentukan project berdasarkan nama project atau project ID. Jika menentukan nama project, nama tersebut harus dipetakan ke project ID menggunakan file pemetaan seperti/etc/projiddi klien.U,G, danPmenetapkan 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
0dan4294967295. Hapus nilai ini jika Anda menentukan kuota pengguna, grup, atau project default. -bdan-Badalah 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.-idan-Iadalah 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:
Gunakan perintah
lfs projectuntuk menetapkan project ID. ID ini adalah bilangan bulat arbitrer yang mengidentifikasi project.sudo lfs project -spr LFS_PROJECT_ID PATH/TO/DIR/OR/FILEDengan:
-smenetapkan inheritance, sehingga file dan direktori baru yang dibuat di direktori yang ditentukan akan mewarisi project ID.-pmemberi tahu perintah untuk menetapkan project ID yang diberikan pada file atau direktori yang ditentukan.-rmenerapkan 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 projectdari klien Anda.Misalnya, untuk menetapkan project
101ke/mnt/lustre/my-projectdan semua turunan baru dan yang ada:sudo lfs project -spr 101 /mnt/lustre/my-projectTetapkan 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:
-umenerapkan masa tenggang ke kuota pengguna.-gmenerapkan masa tenggang ke kuota grup.-pmenerapkan masa tenggang ke kuota project.-bdan-imenentukan 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 outputlfs quotadengan 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:
Di Google Cloud konsol, buka halaman Monitoring > Metrics Explorer.
Di kolom Select a metric, telusuri dan pilih resource Lustre Quota Entity.
Pilih metrik kuota tertentu yang ingin Anda lihat (misalnya, Quota Used Bytes atau Quota Hard Limit Inodes).
Secara opsional, gunakan opsi Filter untuk melihat entity tertentu dengan memfilter label
accounting_type(misalnya,user,group,project) atau labelid(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-rdihilangkan, project ID tidak akan diterapkan ke file dan subdirektori yang ada. Jika-sdihilangkan, 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
rootmengabaikan penerapan kuota. Hal ini dapat menyebabkan sistem file terisi oleh tugas administratif, meskipun kuota telah ditetapkan untuk pengguna lain.fallocatetidak mematuhi kuota: Pengguna dapat menggunakanfallocateuntuk memesan ruang di sistem file yang melebihi batas ketat.