Linux - ช่วยฉันหมด inodes!


16

ฉันมีระบบไฟล์ที่มีไฟล์ขนาดเล็กจำนวนมาก ปัจจุบันมีการใช้งานไอโหนดประมาณ 80% (ฉันตรวจสอบด้วยdf -i) แต่ใช้พื้นที่ดิสก์เพียง 60% ฉันจะเพิ่มจำนวนไอโหนดได้อย่างไร หากเป็นเพียงพื้นที่ดิสก์ฉันรู้ว่าฉันสามารถเพิ่มขนาดของดิสก์ได้ (ดิสก์นี้เป็น LVM) ถ้าฉันเพิ่มขนาดของดิสก์นั่นจะทำให้ฉันมี inodes มากกว่านี้หรือไม่?

ฉันยินดีที่จะขยายระบบแฟ้มที่ดิสก์นี้เปิดอยู่หากนั่นช่วยได้

คำตอบ:


14

ผู้ชาย mke2fs

คุณจะเห็น -N สำหรับจำนวน inodes

ดังนั้นคุณสามารถระบุได้เมื่อคุณฟอร์แมตพาร์ติชันใหม่ ไม่เป็นประโยชน์ในตอนนี้เหรอ?

ดูเหมือนว่า tune2fs ซึ่งทำหน้าที่จัดทำระบบไฟล์ดูเหมือนจะไม่มีวิธีเพิ่มไอโหนดเพิ่มเติม

แต่บางที ext3 หรือ 4 ทำสิ่งนี้และมีคนอื่นรู้ ....

ดังนั้นตอนนี้คุณมีตัวเลือก: สำรองข้อมูลฟอร์แมตพาร์ติชันคืนค่า


1
ใช่มันเป็นเรื่องที่ดี แต่ไม่ใช่เพราะมันเป็น reiserfs แต่เป็นเพราะมันรองรับการจัดสรร inode แบบไดนามิก (สนับสนุนโดยระบบไฟล์ใหม่ทุก decently)

1
Reiser ยอดเยี่ยมสำหรับไฟล์ขนาดเล็กจำนวนมาก ฉันจะไปกับที่
Xorlev

อย่างไรก็ตามฉันต้องแน่ใจว่าคุณมีข้อมูลสำรองเมื่อใช้ Reiser ฉัน (ตัวเอง) และอื่น ๆ ได้สูญเสียข้อมูลเนื่องจาก reiserFS ในปีก่อนหน้า ฉันไม่เชื่ออีกต่อไปตั้งแต่
จบแล้ว - Anony-Mousse

ext3 ดูเหมือนจะไม่มีทางสำหรับมัน
kagali-san

15

เพื่อที่จะตอบคำถามเดิมแม้ว่ามันอาจจะล่าช้าสำหรับผู้ถาม - ใช่การเพิ่ม EXT2 / 3 บน LVM2 จะเพิ่มขีด จำกัด inodes เช่นกัน

เพิ่งมีพาร์ติชั่นขนาด 1G พร้อมขีด จำกัด 65 inodes หลังจาก

lvextend -L+1G /dev/vg/var
umount /var
resize2fs /dev/vg/var
mount /var

... ขีด จำกัด inode ของฉันคือ 128k


1
ว้าวฉันเกือบหมดหวัง แต่พบคำตอบของคุณและตัดสินใจที่จะลองและมันก็ใช้ได้ดี นี่ควรเป็นคำตอบที่ยอมรับได้อย่างแน่นอน! ใช้งานได้กับ LVM และสำหรับเครื่องเสมือน :)
vadipp

12

หากคุณรู้ว่าไฟล์ขนาดเล็กจะกินพื้นที่ดิสก์ของคุณคุณควรใช้ FS ที่มีการจัดสรร inode แบบไดนามิกเช่น ReiserFS หรือ FS สมัยใหม่ใหม่ (XFS, JFS) แทน EXT2 / 3/4 (ซึ่งฉันคิดว่าคุณกำลังใช้ คุณไม่ได้พูดอย่างนั้น)

การย้ายระบบไฟล์อาจเป็นทางเลือกที่ดีในสถานการณ์ของคุณ


1
หากคุณรู้ว่าไฟล์ขนาดเล็กจะกินพื้นที่ดิสก์ของคุณคุณควรทำการปรับแต่งเสร็จแล้ว แต่ละระบบไฟล์มีข้อดีข้อเสีย
แฟรงคลินปีติ

3

ในฐานะ stopgap ให้ติดตั้งระบบไฟล์ใหม่และ cp / rm / ln-s ลำดับชั้น fs ของคุณที่นั่น ตอนนี้คุณมีไอโหนดว่างเล็กน้อย! คุณไม่สามารถ mv ไฟล์ระหว่างสอง fses ดังนั้นโปรดระวังสิ่งที่ต้องทำ แต่สำหรับหลาย ๆ แอพสิ่งนี้อาจโปร่งใส

จากนั้นสร้าง fs ใหม่ตามคำแนะนำของ Paul และย้ายไปยังสิ่งนั้น


1
แน่นอนคุณสามารถ mv ไฟล์ระหว่างระบบไฟล์ทั้งสอง - mv คือ semantic sugar อย่างมีประสิทธิภาพสำหรับ cp + rm คุณไม่สามารถ hardlink ระหว่างสองระบบไฟล์ คุณหมายถึงอย่างอื่นหรือ
Daniel Lawson

@ แดเนียล: ฉันหมายถึงการเปลี่ยนชื่อ () การเรียกใช้ระบบและฉันคิดว่ามันเป็นวิธีการที่เลอะเทอะเพื่อใช้ mv เป็นน้ำตาลสำหรับ cp / rm เนื่องจากปัญหาเกี่ยวกับความหมายรอบ symlink ฉันควรแก้ไขคำตอบนี้ - มีบางแห่งที่มันไม่ชัดเจนอย่างชัดเจน
Charles Stewart

2

Ext4 ประสบปัญหาเดียวกันหากคุณสร้างพาร์ติชันขนาดเล็กและมีไฟล์ขนาดเล็กมากมายคุณจะหมด inodes และถ้าคุณมีflex_bgคุณสมบัติคุณไม่สามารถใช้tune2fsเพื่อเพิ่ม inodes

โดยส่วนตัวแล้วฉันจะใช้ ext4 กับ rieserfs ทุกรุ่นเพียงทำต่อไปนี้เมื่อทำการฟอร์แมต:

mkfs.ext4 -I 512 /dev/foo
tune2fs -i0 -c0 -o journal_data_writeback /dev/foo

การจัดรูปแบบด้วยวิธีนี้จะทำให้คุณได้รับ 33160 inodes ใน 512M

ฉันพูดแบบนี้ในฐานะคนที่ใช้ reiserfs มานานหลายปีการสนับสนุนเคอร์เนลไม่ดีเท่า ext * และระบบไฟล์ก็กระจัดกระจายไปตามกาลเวลาและช้าลง


-1

ไปสำหรับ resiserfs หรือ fs อื่น ๆ โดยไม่มีข้อ จำกัด inode เป็นพิเศษเกี่ยวกับไฟล์บันทึกคุณอาจแพ็คไฟล์ที่ไม่ได้ใช้ขนาดเล็กลงในไฟล์ tar ที่ใหญ่กว่าหนึ่งไฟล์เพื่อให้ inodes มีจำนวนมาก =)

$ find /path -iname "pattern" | xargs tar rvf output_file.tar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.