ฉันเลือก btrfs เป็นรูปแบบของ/ระบบไฟล์ของฉันในตัวติดตั้ง Ubuntu 12.04 LTS หลังจากการติดตั้งเสร็จสิ้นฉันได้เพิ่มcompress=lzoตัวเลือกการเมานท์ใน/etc/fstabและรีบูต
ไฟล์ที่มีอยู่จะถูกบีบอัดอัตโนมัติหรือไม่
ฉันเลือก btrfs เป็นรูปแบบของ/ระบบไฟล์ของฉันในตัวติดตั้ง Ubuntu 12.04 LTS หลังจากการติดตั้งเสร็จสิ้นฉันได้เพิ่มcompress=lzoตัวเลือกการเมานท์ใน/etc/fstabและรีบูต
ไฟล์ที่มีอยู่จะถูกบีบอัดอัตโนมัติหรือไม่
คำตอบ:
คุณจะต้องเรียกใช้btrfs fi defragmentเพื่อบีบอัดข้อมูลที่มีอยู่ซ้ำ มิฉะนั้นจะมีการบีบอัดข้อมูลใหม่เท่านั้น
จากคำถามที่พบบ่อย :
... พิจารณาการติดตั้ง
-o compressใหม่และเขียนไฟล์บางไฟล์btrfs fi defragmentซ้ำหรือรันเพื่อบีบอัดทุกอย่าง อาจใช้เวลาสักครู่
autodefragตัวเลือกเมาท์ล่ะ? สิ่งนี้ยังทำให้บีบอัดไฟล์ที่ไม่มีการบีบอัดก่อนหน้านี้หรือไม่เมื่อทำการ defrags อัตโนมัติ
                    ฉันได้ทำสิ่งที่ Norbert Fabritius พูด แต่ฉันไม่ได้สังเกตเห็นการบีบอัดใด ๆ ในไฟล์ที่มีอยู่ - df -h / ก่อนการ จัดเรียงข้อมูล btrfs fi = 658MB | df -h / after การ จัดเรียงข้อมูล btrfs fi = 658MB ไฟล์ใหม่ก็โอเค การค้นหาเพียงเล็กน้อยนำข้อความนี้มาให้ฉัน:
ใช้สิ่งนี้:
# btrfs filesystem defragment ~/stuffไม่จัดเรียงข้อมูลเนื้อหาของไดเรกทอรี
นี่คือโดยการออกแบบ btrfs fi defrag ทำงานบนอ็อบเจ็กต์ระบบไฟล์เดียวที่ส่งไปยัง> มัน ซึ่งหมายความว่าการจัดเรียงคำสั่งเป็นเพียงข้อมูลเมตาที่จัดทำโดยไดเรกทอรี> วัตถุไม่ใช่เนื้อหาของไดเรกทอรี ถ้าคุณต้องการจัดเรียงเนื้อหา> ของไดเรกทอรีสิ่งนี้จะมีประโยชน์มากกว่า:
# find -xdev -type f -exec btrfs fi defrag '{}' \;
หลังจากนี้ฉัน / มันเกิดขึ้น 656MB - ไม่มีอะไรใหญ่โต แต่มีการบีบอัดอย่างแน่นอน
ที่มา: https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#Defragmenting_a_directory_doesn.27t_work
หวังว่าความช่วยเหลือนี้
ขอโทษด้วยภาษาอังกฤษของฉัน
defrag -clzoหรือdefrag -czlibแทนที่จะเป็นเพียงแค่defragถ้าคุณต้องการบีบอัดสิ่งต่าง ๆ จริง ๆ ?
                    btrfs fi defrag -r -czlib ~/stuff
                    ตามเอกสารของ Oracle คุณสามารถบีบอัดไฟล์ที่มีอยู่ในระบบไฟล์ออนไลน์ที่มีอยู่โดยจัดเรียงไฟล์แต่ละไฟล์ด้วยตัวเลือก -c, -clzo หรือ -czlib แนะนำให้ใช้ LZO สำหรับความเร็ว
find / -xdev \( -type f -o -type d \) -exec btrfs filesystem defragment -v -clzo -- {} +
สิ่งนี้ใช้คำสั่ง find เพื่อรันตัวจัดเรียง btrfs บนทุกไฟล์ในระบบไฟล์รูท (กำหนดโดยเครื่องหมายทับขวาหลังจากคำสั่ง "find" ที่จุดเริ่มต้น) หากคุณมี subvolumes อื่น ๆ คุณสามารถใช้มันอีกครั้งกับเส้นทางของ subvolume (เช่นฉันมีหนึ่งที่ / home เป็นต้น) แทนที่จะใช้เครื่องหมายทับเดียว
คุณจะต้องใช้สิทธิ์รูทสำหรับสิ่งนี้ดังนั้นเพิ่ม sudo ไว้ด้านหน้าหากคุณต้องการ
ดู:
ตามhttps://btrfs.wiki.kernel.org/index.php/Mount_options#List_of_options ตามขั้นตอนวิธีการบีบอัดที่มีอยู่:
compress,compress-force
Enable compression. Starting with kernel 2.6.38 you can choose the algorithm for compression:
 - compress=zlib - Better compression ratio. It's the default and safe for olders kernels.
 - compress=lzo - Faster compression.
 - compress=no - Disables compression (starting with kernel 3.6). 
compress-force= - Enable compression even for files that don't compress well, like videos and dd images of disks. The options compress-force=zlib and compress-force=lzo works for kernels >2.6.38.
Note that old (before 2012) btrfs-progs versions will probably fail some operations (e.g. fsck) on filesystems with LZO compression. 
หมายเหตุ: โพสต์นี้เป็นคำตอบสำหรับคำถามเพิ่มเติมประเภทของอัลกอริทึมการบีบอัดที่มีให้ซึ่งถูกถามด้านล่าง ... ดังนั้นโปรดอย่าโทษฉัน
อ้างอิงจากArchWiki :
เคล็ดลับ: การบีบอัดสามารถเปิดใช้งานต่อไฟล์โดยไม่ต้องใช้
compressตัวเลือกเมานต์ เพียงนำchattr +cไปใช้กับไฟล์ เมื่อนำไปใช้กับไดเรกทอรีมันจะทำให้ไฟล์ใหม่ถูกบีบอัดโดยอัตโนมัติตามที่มา
ดีมาก! ขอพระเจ้าอวยพร BTRFS!
นอกจากนี้จากวิกิ BTRFS :
ฉันสามารถบังคับให้บีบอัดไฟล์โดยไม่ใช้การบีบอัดเมาท์ได้หรือไม่?
ใช่. ยูทิลิตี
chattrนี้รองรับการตั้งค่าแอตทริบิวต์ไฟล์ c ที่ทำเครื่องหมาย inode เพื่อบีบอัดข้อมูลที่เขียนใหม่
การบีบอัดถูกเปิดใช้งานโดยค่าเริ่มต้นใน Btrfs ดังนั้นหากคุณไม่ได้ปิดใช้งานอย่างชัดเจนมันควรถูกบีบอัด
compression="อัลกอริทึมการบีบอัดที่คุณโปรดปราน" ใน fstab เพื่อเปิดใช้งาน
                    
sudo mount -o remount /และตัวเลือก fstab ใหม่จะมีผล