Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Saat file dibuat dalam direktori, entri ditambahkan ke file indeks tersembunyi dalam volume Azure NetApp Files. File indeks ini membantu melacak inode yang ada dalam direktori dan membantu mempercepat permintaan pencarian untuk direktori dengan jumlah file yang tinggi. Karena entri ditambahkan ke file ini, ukuran file meningkat (tetapi tidak pernah berkurang) pada tingkat sekitar 512 byte per entri tergantung pada panjang nama file. Nama file yang lebih panjang menambahkan lebih banyak ukuran ke file. Tautan simbolis juga menambahkan entri ke file ini. Konsep ini dikenal sebagai ukuran direktori, yang merupakan elemen umum di semua sistem file berbasis Linux. Ukuran direktori bukan jumlah total maksimum file dalam satu volume Azure NetApp Files. Itu ditentukan oleh nilai maxfiles.
Secara default, ketika direktori baru dibuat, direktori tersebut menggunakan 4 KiB (4.096 byte) atau delapan blok byte 512. Anda dapat melihat ukuran direktori yang baru dibuat dari klien Linux menggunakan perintah stat.
# mkdir dirsize
# stat dirsize
File: ‘dirsize’
Size: 4096 Blocks: 8 IO Block: 32768 directory
Ukuran direktori tertentu untuk satu direktori dan tidak digabungkan dengan ukuran direktori lain. Misalnya, jika ada 10 direktori dalam volume, masing-masing dapat mendekati batas ukuran direktori 320-MiB dalam satu volume.
Menentukan apakah direktori mendekati ukuran batas
Untuk direktori 320-MiB, jumlah blok adalah 655360, dengan setiap ukuran blok adalah 512 byte. (Artinya, 320x1024x1024/512.) Jumlah ini diterjemahkan menjadi sekitar 4-5 juta file maksimum untuk direktori 320-MiB. Namun, jumlah aktual file maksimum mungkin lebih rendah, tergantung pada faktor-faktor seperti jumlah file dengan karakter non-ASCII dalam direktori.
Anda dapat menggunakan perintah stat dari klien untuk melihat apakah direktori mendekati batas ukuran maksimum metadata direktori (320 MB). Jika Anda mencapai batas ukuran maksimum untuk satu direktori untuk Azure NetApp Files, kesalahan No space left on device terjadi.
Untuk direktori 320 MB, jumlah blok adalah 655.360, dengan setiap ukuran blok adalah 512 byte. (Artinya, 320x1024x1024/512.) Jumlah ini diterjemahkan ke sekitar 4 juta file maksimum untuk direktori 320-MB. Namun, jumlah aktual file maksimum mungkin lebih rendah, tergantung pada faktor-faktor seperti jumlah file dengan karakter non-ASCII dalam direktori. Untuk informasi tentang cara memantau maxdirsize, lihat Pemantauan maxdirsize.
Pertimbangan ukuran direktori
Saat berhadapan dengan lingkungan jumlah file tinggi, pertimbangkan rekomendasi berikut:
- Volume Azure NetApp Files mendukung hingga 320 MiB untuk ukuran direktori. Nilai ini tidak dapat ditingkatkan.
- Setelah ukuran direktori volume terlampaui, pengguna menampilkan galat kehabisan ruang bahkan jika ada ruang kosong yang tersedia dalam volume.
- Untuk volume reguler, ukuran direktori 320 MiB sama dengan sekitar 4-5 juta file dalam satu direktori. Nilai ini tergantung pada panjang nama file.
- Volume besar memiliki arsitektur yang berbeda dari volume reguler.
- Jumlah file tinggi dalam satu direktori dapat menyajikan masalah performa saat mencari. Jika memungkinkan, batasi ukuran total satu direktori hingga 2 MiB (sekitar 27.000 file) saat pencarian yang sering diperlukan.
- Jika lebih banyak file diperlukan dalam satu direktori, sesuaikan ekspektasi performa pencarian yang sesuai. Meskipun Azure NetApp Files mengindeks daftar file direktori untuk performa, pencarian dapat memakan waktu dengan jumlah file yang tinggi.
- Saat merancang sistem file Anda, hindari tata letak direktori datar. Untuk informasi tentang berbagai pendekatan tata letak direktori, lihat Tentang tata letak direktori.
- Untuk mengatasi masalah di mana ukuran direktori telah terlampaui dan file baru tidak dapat dibuat, hapus, atau pindahkan file dari direktori yang relevan.
Tentang tata letak direktori
Nilai maxdirsize dapat menimbulkan kekhawatiran saat Anda menggunakan struktur direktori datar, di mana satu folder berisi jutaan file pada satu tingkat. Struktur folder tempat file, folder, dan subfolder diselingi berdampak rendah pada maxdirsize. Ada beberapa metodologi struktur direktori.
Struktur direktori datar adalah direktori tunggal dengan banyak file di bawah direktori yang sama.
Struktur direktori yang luas berisi banyak direktori tingkat atas dengan file yang tersebar di semua direktori.
Struktur direktori yang mendalam berisi lebih sedikit direktori tingkat atas dengan banyak subdirektori. Meskipun struktur ini menyediakan lebih sedikit file per folder, panjang jalur file dapat menjadi masalah jika tata letak direktori terlalu dalam dan jalur file menjadi terlalu panjang. Untuk detail tentang panjang jalur file, lihat Memahami panjang jalur file di Azure NetApp Files.
Dampak Struktur Direktori Rata di Azure NetApp Files
Struktur direktori datar (banyak file dalam satu atau beberapa direktori) memiliki efek negatif pada berbagai sistem file, volume Azure NetApp File, atau lainnya. Potensi masalah meliputi:
- Tekanan memori
- Penggunaan CPU
- Performa/latensi jaringan (terutama selama permintaan massal terhadap file, operasi
GETATTR, operasiREADDIR)
Karena desain volume berukuran besar Azure NetApp Files, dampaknya maxdirsize menjadi unik. Volume besar maxdirsize Azure NetApp Files terpengaruh secara khusus karena desainnya. Tidak seperti volume biasa, volume besar menggunakan tautan keras jarak jauh di dalam Azure NetApp Files untuk membantu mengalihkan lalu lintas di berbagai perangkat penyimpanan untuk memberikan lebih banyak skala dan performa. Saat menggunakan direktori datar, ada rasio tautan keras internal jarak jauh yang lebih tinggi dibandingkan dengan file lokal. Tautan keras jarak jauh ini dihitung terhadap nilai total maxdirsize , sehingga volume besar mungkin mendekati batasnya maxdirsize lebih cepat daripada volume biasa.
Misalnya, jika satu direktori memiliki jutaan file dan menghasilkan sekitar 85% tautan keras jarak jauh untuk sistem file, Anda dapat mengharapkan maxdirsize akan habis hampir dua kali lebih cepat dibandingkan volume biasa.
Untuk hasil terbaik terkait ukuran direktori pada Azure NetApp Files:
- Hindari struktur direktori datar di Azure NetApp Files. Struktur direktori yang lebar atau dalam berfungsi paling baik, asalkan panjang jalur file atau folder tidak melebihi standar protokol NAS.
- Jika struktur direktori datar tidak dapat dihindari, pantau
maxdirsizepada direktori.
Monitor maxdirsize
Untuk satu direktori, gunakan stat perintah untuk menemukan ukuran direktori.
# stat /mnt/dir_11/c5
Meskipun perintah stat dapat digunakan untuk memeriksa ukuran sebuah direktori tertentu, mungkin tidak seefisien menjalankannya pada satu direktori secara individual. Untuk melihat daftar ukuran direktori terbesar yang diurutkan dari terbesar ke terkecil, perintah berikut menyediakannya sambil menghilangkan direktori rekam jepret dari kueri.
# find /mnt -name .snapshot -prune -o -type d -ls -links 2 -prune | sort -rn -k 7 | head | awk '{print $2 " " $11}' | sort -rn
Catatan
Ukuran direktori yang dilaporkan oleh perintah stat dinyatakan dalam satuan byte. Ukuran yang dilaporkan dalam perintah find adalah dalam KiB.
Contoh
# stat /mnt/dir_11/c5
File: ‘/mnt/dir_11/c5’
Size: 322396160 Blocks: 632168 IO Block: 32768 directory
# find /mnt -name .snapshot -prune -o -type d -ls -links 2 -prune | sort -rn -k 7 | head | awk '{print $2 " " $11}' | sort -rn
316084 /mnt/dir_11/c5
3792 /mnt/dir_19
3792 /mnt/dir_16
Pada sebelumnya, ukuran /mnt/dir_11/c5 direktori adalah 316.084 KiB (308,6 MiB), yang mendekati batas 320-MiB. Itu sama dengan sekitar 4,1 juta file.
# ls /mnt/dir_11/c5 | wc -l
4171624
Dalam hal ini, pertimbangkan tindakan korektif seperti memindahkan atau menghapus file.