ฉันคิดว่าปัญหาที่คุณมีไม่ใช่พาร์ติชันที่บรรจุด้วย inodes ต่อ se แต่ใช้จำนวน inodes ในระบบไฟล์ไม่เพียงพอ ext4 ขอสงวน inodes แบบคงที่เมื่อสร้างระบบไฟล์ แต่คุณสามารถกำหนดหมายเลขด้วยตัวเลือกเพื่อmkfs.ext4
:
-i bytes-per-inode
ระบุอัตราส่วนไบต์ / inode mke2fs สร้าง inode สำหรับทุก bytes-per-inode bytes ของพื้นที่บนดิสก์ ยิ่งมีขนาดไบต์ต่อไอโหนดมากเท่าไรก็จะสร้างไอโหนดน้อยลงเท่านั้น
-N number-of-inodes
แทนที่การคำนวณเริ่มต้นของจำนวน inodes ที่ควรสำรองไว้สำหรับระบบไฟล์ (ซึ่งขึ้นอยู่กับจำนวนบล็อกและอัตราส่วนไบต์ต่อโหนด) วิธีนี้ทำให้ผู้ใช้สามารถระบุจำนวนของ inodes ที่ต้องการได้โดยตรง
คู่มือระบุอย่างชัดเจนว่าไม่สามารถเปลี่ยนอัตราส่วนไบต์ต่อ inode หลังจากสร้าง FS ได้ แต่จำนวนทั้งหมดจะถูกปรับอัตราส่วนเพื่อให้ตรงกับอัตราส่วนหากมีการปรับขนาด FS
คุณยังสามารถกำหนดขนาดของแต่ละไอโหนด ค่าเริ่มต้นคือ 256 ไบต์บนระบบไฟล์ "ส่วนใหญ่" แต่สามารถลดได้ถึง 128 (ค่าเริ่มต้นสำหรับระบบไฟล์ "เล็ก") พื้นที่พิเศษใช้สำหรับจัดเก็บแอตทริบิวต์เพิ่มเติม (เช่นป้ายกำกับ SELinux) ดังนั้นหากคุณไม่ต้องการใช้พื้นที่เหล่านั้นควรปลอดภัยเพื่อลดขนาดให้เหลือน้อยที่สุด
-I inode-size
ระบุขนาดของแต่ละ inode เป็นไบต์ ค่า inode-size จะต้องมีกำลัง 2 ที่ใหญ่กว่าหรือเท่ากับ 128
df -i
ควรแสดงจำนวนของ inodes ที่จัดสรรและใช้งาน ด้วยตัวเลือกเริ่มต้นพาร์ติชั่น 30 GB หนึ่งตัวที่ฉันดูมีหนึ่งไอโหนดสำหรับทุก ๆ 16 kB แต่ถ้าไฟล์ของคุณมีขนาดเล็กมากคุณสามารถตั้งค่าให้พูดว่า-i 4096
จะมี inode หนึ่งอันสำหรับทุกบล็อคข้อมูลในระบบ
หากไฟล์ของคุณมีขนาดเล็กกว่า 4096 คุณอาจต้องการลดขนาดบล็อกของระบบไฟล์ด้วยเนื่องจากไฟล์ปกติทั้งหมดจะต้องใช้บล็อกข้อมูลแบบเต็มหนึ่งบล็อกต่อไป (นั่นคือบน ext4 ฉันไม่รู้ว่าระบบไฟล์ปัจจุบันอื่น ๆ บรรจุไฟล์ขนาดเล็กหรือไม่)
-b block-size
ระบุขนาดของบล็อกเป็นไบต์ ค่าขนาดบล็อกที่ถูกต้องคือ 1024, 2048 และ 4096 ไบต์ต่อบล็อก หากเว้นไว้ขนาดบล็อกจะถูกกำหนดโดยระบบไฟล์ตามขนาดและการใช้งานที่คาดหวังของระบบไฟล์ (ดูที่ตัวเลือก -T)
mkfs.ext4
ยังมี-T <type>
ตัวเลือกที่สามารถใช้เป็นแบบย่อสำหรับบางส่วนหรือทั้งหมดเหล่านี้ การตั้งค่าอยู่/etc/mke2fs.conf
ที่ Debian ของฉันซึ่งmkfs.ext4 -T small
เทียบเท่ากับ
mkfs.ext4 -b 1024 -I 128 -i 4096
ซึ่งอาจไม่ใช่ชุดตัวเลือกที่ไม่ดีสำหรับไฟล์ขนาดเล็กจำนวนมาก (และไม่มี xattrs)
หากไฟล์ของคุณมีขนาดเล็กกว่าหนึ่ง kB ระบบไฟล์อาจไม่ใช่วิธีที่ดีที่สุดในการบันทึกข้อมูล แต่ควรพิจารณาบางสิ่งเช่นฐานข้อมูลหรือระบบเฉพาะแอปพลิเคชัน
mkfs.ext4 -t news
เพื่อผลลัพธ์ที่ดีที่สุด นอกจากนี้ฉันขอแนะนำให้ทดสอบ - สร้าง (บนอุปกรณ์ LVM หรืออุปกรณ์ลูปแบ็ค) แต่ละไฟล์ filesytems ตามลำดับและเริ่มการคัดลอกไฟล์จริงของคุณไปยังจนกว่ามันจะเต็ม เมื่อเต็มแล้วให้ทำdf -i
(หรือfind | wc -l
) ค้นหาไฟล์ที่จัดการไฟล์ส่วนใหญ่ของคุณ - วิธีที่คุณจะรู้ได้อย่างแน่นอน