คุณลักษณะ largefile ที่สร้างระบบไฟล์


17

มีประโยชน์ในการใช้แฟล็ก -T largefileเมื่อสร้างระบบไฟล์สำหรับพาร์ติชันที่มีไฟล์ขนาดใหญ่เช่นวิดีโอและเสียงในรูปแบบ flac หรือไม่

ฉันทดสอบพาร์ติชันเดียวกันกับแฟล็กนั้นและไม่ใช้มันและใช้tune2fs -l [พาร์ติชัน]ฉันตรวจสอบใน "คุณสมบัติของระบบแฟ้ม" ที่ทั้งคู่เปิดใช้งาน "large_file" ดังนั้นไม่จำเป็นต้องใช้แฟล็ก -file แฟล็กไฟล์ขนาดใหญ่ ?


1
โปรดทราบว่าฉันสับสนระหว่าง large_file (มีใน tune2fs) และ largefile; ดูเหมือนว่าพวกเขากำลังขัดแย้งกับสิ่งต่าง ๆ
Marc

คำตอบ:


24

-T largefileธงปรับปริมาณของ inodes ที่ได้รับการจัดสรรในการสร้างระบบแฟ้ม เมื่อจัดสรรแล้วหมายเลขของพวกเขาจะไม่สามารถปรับได้ (อย่างน้อยสำหรับ ext2 / 3 ไม่แน่ใจอย่างเต็มที่เกี่ยวกับ ext4) ค่าดีฟอลต์คือหนึ่ง inode สำหรับทุก 16K ของพื้นที่ดิสก์ -T largefileทำให้เป็นหนึ่ง inode สำหรับทุกเมกะไบต์

แต่ละไฟล์ต้องการหนึ่งไอโหนด หากคุณไม่มีไอโหนดใด ๆ คุณจะไม่สามารถสร้างไฟล์ใหม่ได้ แต่ inodes ที่ถูกจัดสรรแบบสแตติกเหล่านี้จะใช้พื้นที่เช่นกัน คุณสามารถบันทึกได้ประมาณ 1,5 กิกะไบต์สำหรับดิสก์ทุก ๆ 100 GBโดยการตั้งค่า-T largefileซึ่งตรงข้ามกับค่าเริ่มต้น -T largefile4(หนึ่ง inode ต่อ 4 MB) ไม่มีผลกระทบที่น่าทึ่ง

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

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

คุณสามารถตรวจสอบจำนวน inode ที่คุณมีอยู่ในระบบไฟล์สดด้วยdumpe2fsคำสั่ง:

# dumpe2fs /dev/hda5
[...]
Inode count:              98784
Block count:              1574362
Reserved block count:     78718
Free blocks:              395001
Free inodes:              34750

ที่นี่ฉันยังสามารถสร้างไฟล์ได้ถึง 34,000 ไฟล์

นี่คือสิ่งที่ฉันได้รับหลังจากทำmkfs.ext3 -T largefile -m 0บนพาร์ติชัน 100 GB:

Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/loop1              102369       188    102181   1% /mnt/largefile
/dev/loop2              100794       188    100606   1% /mnt/normal

เวอร์ชันไฟล์ขนาดใหญ่มี 102 400 inodes ในขณะที่หนึ่งปกติสร้าง 6 553 600 inodes และบันทึก 1,5 GB ในกระบวนการ

หากคุณมีเงื่อนงำที่ดีเกี่ยวกับขนาดไฟล์ที่คุณจะนำไปวางไว้ในระบบไฟล์คุณสามารถปรับจำนวนไอโหนดได้โดยตรงด้วย-iสวิตช์ มันตั้งค่าไบต์ต่ออัตราส่วนไอโหนด คุณจะได้รับ 75% ของการประหยัดพื้นที่หากคุณใช้-i 65536ในขณะที่ยังสามารถสร้างไฟล์ได้มากกว่าล้านไฟล์ โดยทั่วไปฉันคำนวณเพื่อให้อย่างน้อย 100,000 inodes สำรอง


คำตอบที่ดี แต่ที่คุณพูดว่า "และบันทึก 1,5 GB ในกระบวนการ" คุณควรจะพูดว่า "แต่ใช้พื้นที่ 1,5 GB สำหรับ inodes พิเศษ" คุณทำให้เสียงเหมือนโหมดปกติสร้างไอโหนดมากขึ้นและทำให้มีพื้นที่ว่างบนดิสก์มากขึ้น
localhost

"โดยทั่วไปฉันคำนวณเพื่อให้อย่างน้อย 100,000 inodes สำรอง" - ทำไม แน่นอนว่า 0 สำรอง (และต้องการอีก 0) เหมาะที่สุด? คุณเป็นห่วงจริง ๆ ว่าคุณอาจถูกปิดโดย 100K ในจำนวนไฟล์หรือไดเรกทอรีที่คุณมี?
OJFord

4

ฉันคิดว่าคุณกำลังผสมผสานแนวคิดที่แตกต่างและเป็นอิสระสองอย่าง

large_fileคุณลักษณะที่คุณสามารถมองเห็นในการส่งออกของ dumpe2fs หมายถึงว่าระบบแฟ้มนี้สามารถเก็บไฟล์ขนาดใหญ่กว่า 2 ลิ่มผมคิดว่ามันมีการตั้งค่าโดยอัตโนมัติจากเมล็ดที่ทันสมัย มันมีอะไรจะทำอย่างไรกับตัวเลือกของ-Tmke2fs

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