मुझे लगता है कि आपके पास जो समस्या है वह विभाजन नहीं है जो कि प्रति इनोड के साथ भर रहा है, लेकिन फाइलसिस्टम में इनोड की संख्या से बाहर चल रहा है। ext4 फाइल सिस्टम के बनने के दौरान स्टैटिकली इनोड्स को सुरक्षित रखता है, लेकिन आप संख्याओं को विकल्पों केmkfs.ext4
साथ सेट कर सकते हैं :
-i बाइट्स-प्रति-इनोड
बाइट्स / इनोड अनुपात निर्दिष्ट करें। mke2fs डिस्क पर अंतरिक्ष के हर बाइट्स-प्रति-इनोड बाइट्स के लिए एक आईनोड बनाता है। बाइट्स-प्रति-इनोड अनुपात जितना बड़ा होगा, उतने कम इनोड बनाए जाएंगे।
-एन नंबर-ऑफ-इनोड्स
फाइल सिस्टम के लिए आरक्षित किए जाने वाले इनोड्स की संख्या की डिफ़ॉल्ट गणना को ओवरराइड करता है (जो ब्लॉक की संख्या और बाइट्स-प्रति-इनोड अनुपात पर आधारित है)। यह उपयोगकर्ता को वांछित इनोड की संख्या को सीधे निर्दिष्ट करने की अनुमति देता है।
मैन्युअल रूप से स्पष्ट रूप से कहा गया है कि एफएस बनाए जाने के बाद बाइट्स इनोड अनुपात को बदला नहीं जा सकता है, लेकिन एफएस के आकार बदलने पर कुल संख्या अनुपात को पूरा करने के लिए पैमाने पर होगी।
आप प्रत्येक इनोड का आकार भी निर्धारित कर सकते हैं । डिफ़ॉल्ट "अधिकांश" फाइल सिस्टम पर 256 बाइट्स है, लेकिन इसे घटाकर 128 ("छोटे" फाइल सिस्टम के लिए डिफ़ॉल्ट) किया जा सकता है। अतिरिक्त विशेषताओं (जैसे SELinux लेबल) को संग्रहीत करने के लिए अतिरिक्त स्थान का उपयोग किया जाता है, इसलिए यदि आपको उन की आवश्यकता नहीं है, तो आकार को न्यूनतम करने के लिए सुरक्षित होना चाहिए।
-I इनकोड-आकार
बाइट्स में प्रत्येक इनोड के आकार को निर्दिष्ट करें। इनकोड-आकार का मान 2 बड़ा या 128 के बराबर की शक्ति होना चाहिए।
df -i
आवंटित और उपयोग किए गए इनोड की संख्या को दिखाना चाहिए। डिफ़ॉल्ट विकल्पों के साथ, एक 30 GB के विभाजन को मैंने हर 16 केबी के लिए एक इनोड देखा था, लेकिन यदि आपकी फाइलें बहुत छोटी हैं, तो आप -i 4096
सिस्टम पर प्रत्येक डेटा ब्लॉक के लिए एक इनोड सेट कर सकते हैं ।
यदि आपकी फाइलें 4096 से छोटी हैं, तो आप फ़ाइल सिस्टम ब्लॉक आकार को भी कम करना चाह सकते हैं, क्योंकि सभी नियमित फ़ाइलों को वैसे भी एक पूर्ण डेटा ब्लॉक की आवश्यकता होगी। (वह है, ext4 पर। मुझे नहीं पता कि क्या अन्य वर्तमान फाइल सिस्टम छोटी फाइलों की पैकिंग करते हैं।)
-b ब्लॉक-आकार
बाइट्स में ब्लॉक के आकार को निर्दिष्ट करें। मान्य ब्लॉक-आकार मान प्रति ब्लॉक 1024, 2048 और 4096 बाइट्स हैं। यदि छोड़ दिया जाता है, तो ब्लॉक-साइज़ फ़ाइल सिस्टम के आकार और फाइल सिस्टम के अपेक्षित उपयोग द्वारा निर्धारित किया जाता है (देखें -T विकल्प देखें)।
mkfs.ext4
भी है -T <type>
विकल्प है कि इनमें से कुछ या सभी के लिए एक आशुलिपि के रूप में इस्तेमाल किया जा सकता। सेटिंग्स में हैं /etc/mke2fs.conf
, जो मेरे डेबियन बनाता है जैसे के mkfs.ext4 -T small
बराबर
mkfs.ext4 -b 1024 -I 128 -i 4096
हो सकता है कि बहुत सारी छोटी फ़ाइलों (और कोई xattrs) के लिए विकल्पों का बुरा सेट न हो।
यदि आपकी फाइलें एक kB से भी छोटी हैं, तो डेटा को बचाने के लिए एक फ़ाइल सिस्टम सबसे अच्छा तरीका नहीं हो सकता है, लेकिन डेटाबेस या एप्लिकेशन विशिष्ट सिस्टम जैसी किसी चीज़ पर शायद विचार किया जाना चाहिए।
mkfs.ext4 -t news
सर्वोत्तम परिणामों के साथ बनाना चाहिए । इसके अलावा, मैं सुझाव देता हूं कि परीक्षण करें - (lvm पर, या उदाहरण के लिए लूपबैक डिवाइस पर) बारी-बारी से प्रत्येक फाइलाइटीज़, और अपनी वास्तविक फ़ाइलों को तब तक कॉपी करना शुरू करें, जब तक कि यह भर न जाए। जब यह भर जाता है, तोdf -i
(याfind | wc -l
) यह पता लगाने के लिए कि कौन आपकी अधिकांश फ़ाइलों को संग्रहीत करने में कामयाब है - इस तरह से आप निश्चित रूप से जान जाएंगे।