Saya kira masalah yang Anda miliki bukanlah partisi yang diisi dengan inode per se, tetapi kehabisan jumlah inode di sistem file. ext4 menyimpan inode secara statis saat filesystem dibuat, tetapi Anda dapat mengatur angkanya dengan opsi menjadimkfs.ext4
:
-i bytes-per-inode
Tentukan rasio byte / inode. mke2fs membuat inode untuk setiap byte bytes-per-inode ruang pada disk. Semakin besar rasio byte-per-inode, semakin sedikit inode yang akan dibuat.
-N number-of-inode
Mengesampingkan perhitungan default dari jumlah inode yang harus disediakan untuk sistem file (yang didasarkan pada jumlah blok dan rasio byte-per-inode). Ini memungkinkan pengguna untuk menentukan jumlah inode yang diinginkan secara langsung.
Manual menyatakan secara eksplisit bahwa byte per rasio inode tidak dapat diubah setelah FS dibuat, tetapi jumlah total akan skala untuk memenuhi rasio jika FS diubah ukurannya.
Anda juga dapat mengatur ukuran setiap inode. Standarnya adalah 256 byte pada sistem file "kebanyakan", tetapi dapat dikurangi menjadi 128 (standar untuk sistem file "kecil"). Ruang ekstra digunakan untuk menyimpan atribut yang diperluas (mis. Label SELinux), jadi jika Anda tidak membutuhkannya, itu harus aman untuk mengurangi ukuran ke minimum.
-I inode-size
Menentukan ukuran setiap inode dalam byte. Nilai ukuran inode haruslah kekuatan 2 lebih besar atau sama dengan 128.
df -i
harus menunjukkan jumlah inode yang dialokasikan dan digunakan. Dengan opsi default, satu partisi 30 GB yang saya lihat memiliki satu inode untuk setiap 16 kB, tetapi jika file Anda sangat kecil, Anda dapat mengatur, katakanlah, -i 4096
untuk memiliki satu inode untuk setiap blok data pada sistem.
Jika file Anda lebih kecil dari 4096, Anda mungkin ingin mengurangi ukuran blok sistem file juga, karena semua file biasa akan memerlukan satu blok data penuh pula. (Yaitu, pada ext4. Saya tidak tahu apakah sistem file saat ini melakukan pengepakan file kecil.)
-b ukuran blok
Tentukan ukuran blok dalam byte. Nilai ukuran blok yang valid adalah 1024, 2048 dan 4096 byte per blok. Jika dihilangkan, ukuran blok ditentukan secara heuristik oleh ukuran sistem file dan penggunaan sistem file yang diharapkan (lihat opsi -T).
mkfs.ext4
juga memiliki -T <type>
opsi yang dapat digunakan sebagai singkatan untuk beberapa atau semua ini. Pengaturan sedang dalam /etc/mke2fs.conf
, yang pada Debian saya membuat misalnya mkfs.ext4 -T small
setara dengan
mkfs.ext4 -b 1024 -I 128 -i 4096
Yang mungkin bukan set pilihan yang buruk untuk banyak file kecil (dan tidak ada xattrs.)
Jika file Anda bahkan lebih kecil dari satu kB, sistem file mungkin bukan cara terbaik untuk menyimpan data, tetapi sesuatu seperti database atau sistem aplikasi tertentu mungkin harus dipertimbangkan.
mkfs.ext4 -t news
untuk hasil terbaik. Juga, saya sarankan pengujian - buat (pada lvm, atau perangkat loopback misalnya) masing-masing file filesems pada gilirannya, dan mulai menyalin file nyata Anda ke dalamnya sampai terisi. Ketika mengisi, lakukandf -i
(ataufind | wc -l
) untuk menemukan yang berhasil menyimpan sebagian besar file Anda - dengan cara itu Anda akan tahu pasti.