Sanırım sorun, kendi başına inodes ile dolduran bölüm değil, dosya sistemindeki inode sayısının tükenmesi. ext4, dosya sistemi oluşturulduğunda inode'ları statik olarak ayırır, ancak seçeneklerlemkfs.ext4
sayıyı şu şekilde ayarlayabilirsiniz :
-i inode başına
bayt Bayt / inode oranını belirtin. mke2fs, diskteki her inode başına bayt başına bayt alanı için bir inode oluşturur. İnot başına bayt oranı ne kadar büyük olursa, o kadar az düğüm oluşturulur.
-N inod
sayısı Dosya sistemi için ayrılması gereken inode sayısının varsayılan hesaplamasını geçersiz kılar (blok sayısına ve inot başına bayt oranına dayalıdır). Bu, kullanıcının doğrudan istenen düğüm sayısını belirlemesini sağlar.
El kitabı, FS oluşturulduktan sonra inode başına bayt oranının değiştirilemeyeceğini açıkça belirtir, ancak FS yeniden boyutlandırılırsa toplam sayı oranı karşılamak için ölçeklenir.
Ayrıca her bir inodeun boyutunu da ayarlayabilirsiniz . Varsayılan "en" dosya sistemlerinde 256 bayttır, ancak 128'e ("küçük" dosya sistemleri için varsayılan) indirilebilir. Ek alan, genişletilmiş özellikleri (örn. SELinux etiketleri) depolamak için kullanılır, bu nedenle bunlara ihtiyacınız yoksa, boyutu en aza indirmek güvenli olmalıdır.
-I inode boyutu
Her inodeun boyutunu bayt cinsinden belirtin. İnode-boyutu değeri 2'den büyük veya 128'e eşit bir güç olmalıdır.
df -i
ayrılan ve kullanılan düğüm sayısını göstermelidir. Varsayılan seçeneklerle, baktığım bir 30 GB'lik bölümün her 16 kB için bir inode vardı, ancak dosyalarınız çok küçükse, -i 4096
sistemdeki her veri bloğu için bir inode olmasını ayarlayabilirsiniz .
Dosyalarınız 4096'dan küçükse, tüm normal dosyalar yine de bir tam veri bloğu gerektireceğinden dosya sistemi blok boyutunu da küçültmek isteyebilirsiniz. (Yani ext4'te. Diğer mevcut dosya sistemlerinin küçük dosyaların paketlenip paketlenmediğini bilmiyorum.)
-b blok boyutu
Blokların bayt cinsinden boyutunu belirtir. Geçerli blok boyutu değerleri blok başına 1024, 2048 ve 4096 bayttır. Atlanırsa, blok boyutu sezgisel olarak dosya sistemi boyutu ve dosya sisteminin beklenen kullanımı tarafından belirlenir (-T seçeneğine bakın).
mkfs.ext4
ayrıca -T <type>
bunların bazıları veya tümü için bir kısayol olarak kullanılabilecek bir seçeneğe sahiptir . Ayarlar vardır /etc/mke2fs.conf
mesela yapar benim Debian üzerinde hangi mkfs.ext4 -T small
için eşdeğer
mkfs.ext4 -b 1024 -I 128 -i 4096
Bu, birçok küçük dosya için kötü bir seçenek kümesi olmayabilir (ve xattrs yok).
Dosyalarınız bir kB'den bile küçükse, bir dosya sistemi verileri kaydetmenin en iyi yolu olmayabilir, ancak veritabanı veya uygulamaya özel bir sistem gibi bir şey düşünülmelidir.
mkfs.ext4 -t news
en iyi sonucu elde etmek için bunu oluşturmalısınız . Ayrıca, test etmenizi öneririm - sırayla dosya öğelerinin her birini (örneğin lvm veya geri döngü aygıtında) oluşturun ve dolana kadar gerçek dosyalarınızı kopyalamaya başlayın. Doldurulduğunda, hangisinin dosyalarınızın çoğunu depolamayı başardığını bulmak içindf -i
(veyafind | wc -l
) yapın - bu şekilde kesin olarak bileceksiniz.