btrfs จะบีบอัดไฟล์ที่มีอยู่โดยอัตโนมัติเมื่อเปิดใช้งานการบีบอัดหรือไม่


26

ฉันเลือก btrfs เป็นรูปแบบของ/ระบบไฟล์ของฉันในตัวติดตั้ง Ubuntu 12.04 LTS หลังจากการติดตั้งเสร็จสิ้นฉันได้เพิ่มcompress=lzoตัวเลือกการเมานท์ใน/etc/fstabและรีบูต

ไฟล์ที่มีอยู่จะถูกบีบอัดอัตโนมัติหรือไม่


1
คุณไม่ต้องรีบูตคุณสามารถทำได้sudo mount -o remount /และตัวเลือก fstab ใหม่จะมีผล
sep332

หมายเหตุ: คุณอาจจำเป็นต้องใช้ตัวเลือกแรงบีบอัดหรือไฟล์บางไฟล์จะยังคงไม่ได้รับการบีบอัดไม่ว่าคุณจะทำอะไร ...
rogerdpack

หมายเหตุเกี่ยวกับแรงบีบอัด การบีบอัดปกติมีคุณสมบัติที่จะตรวจพบว่าการบีบอัดนั้นมีประโยชน์เพียงเล็กน้อยหรือไม่มีประโยชน์เลยก็ไม่ได้เป็นการรบกวนการบีบอัดไฟล์ต่อไป (โดยเฉพาะการประหยัด CPU ที่สูญเปล่า) โดยใช้แรงบีบอัดก็พยายามบีบอัดไร้ประโยชน์อยู่ดี ตัวอย่างที่ดีที่สิ่งนี้ใช้สำหรับไฟล์ที่ถูกบีบอัดอยู่แล้ว (มัลติมีเดียไฟล์ซิป ฯลฯ ) กล่าวอีกนัยหนึ่งแรงบีบอัดเป็นความคิดที่ไม่ดี ;)
zaTricky

คำตอบ:


27

คุณจะต้องเรียกใช้btrfs fi defragmentเพื่อบีบอัดข้อมูลที่มีอยู่ซ้ำ มิฉะนั้นจะมีการบีบอัดข้อมูลใหม่เท่านั้น

จากคำถามที่พบบ่อย :

... พิจารณาการติดตั้ง-o compressใหม่และเขียนไฟล์บางไฟล์btrfs fi defragmentซ้ำหรือรันเพื่อบีบอัดทุกอย่าง อาจใช้เวลาสักครู่


การจัดเรียงข้อมูล btrfs fi -r -clzo / path / to / fs
David Goodwin

2
แล้วautodefragตัวเลือกเมาท์ล่ะ? สิ่งนี้ยังทำให้บีบอัดไฟล์ที่ไม่มีการบีบอัดก่อนหน้านี้หรือไม่เมื่อทำการ defrags อัตโนมัติ
Geremia

1
ตรวจสอบให้แน่ใจว่าใช้ "-r" แฟล็กซ้ำสำหรับการบีบอัดภายในไดเร็กทอรี
Salami

10

ฉันได้ทำสิ่งที่ 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

หวังว่าความช่วยเหลือนี้

ขอโทษด้วยภาษาอังกฤษของฉัน


1
1. เมื่อใช้ btrfs, ไม่ได้ใช้หรือ DF 2. สำหรับอัตราส่วนการบีบอัดที่ดีกว่าให้ใช้ zlib (ช้ากว่า)
ละเว้น

3
บรรทัดคำสั่งของคุณไม่ควรรวมdefrag -clzoหรือdefrag -czlibแทนที่จะเป็นเพียงแค่defragถ้าคุณต้องการบีบอัดสิ่งต่าง ๆ จริง ๆ ?
jbo5112

5
มีแฟล็กเรียกซ้ำ "-r" เพื่อให้คุณสามารถทำสิ่งนี้ได้ในตอนนี้:btrfs fi defrag -r -czlib ~/stuff
Salami

8

ตามเอกสารของ 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 ไว้ด้านหน้าหากคุณต้องการ

ดู:


3

ตาม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. 

หมายเหตุ: โพสต์นี้เป็นคำตอบสำหรับคำถามเพิ่มเติมประเภทของอัลกอริทึมการบีบอัดที่มีให้ซึ่งถูกถามด้านล่าง ... ดังนั้นโปรดอย่าโทษฉัน


2

อ้างอิงจากArchWiki :

เคล็ดลับ: การบีบอัดสามารถเปิดใช้งานต่อไฟล์โดยไม่ต้องใช้ compressตัวเลือกเมานต์ เพียงนำchattr +cไปใช้กับไฟล์ เมื่อนำไปใช้กับไดเรกทอรีมันจะทำให้ไฟล์ใหม่ถูกบีบอัดโดยอัตโนมัติตามที่มา

ดีมาก! ขอพระเจ้าอวยพร BTRFS!

นอกจากนี้จากวิกิ BTRFS :

ฉันสามารถบังคับให้บีบอัดไฟล์โดยไม่ใช้การบีบอัดเมาท์ได้หรือไม่?

ใช่. ยูทิลิตีchattrนี้รองรับการตั้งค่าแอตทริบิวต์ไฟล์ c ที่ทำเครื่องหมาย inode เพื่อบีบอัดข้อมูลที่เขียนใหม่


-9

การบีบอัดถูกเปิดใช้งานโดยค่าเริ่มต้นใน Btrfs ดังนั้นหากคุณไม่ได้ปิดใช้งานอย่างชัดเจนมันควรถูกบีบอัด


11
ไม่เป็นความจริงคุณต้องผ่านcompression="อัลกอริทึมการบีบอัดที่คุณโปรดปราน" ใน fstab เพื่อเปิดใช้งาน
เทอร์โบ

@turbo algorigthms การบีบอัดอะไรมีอยู่?
ζ--

ดูเหมือนว่ามีการบีบอัด 2 รายการที่ได้รับอนุญาตในปัจจุบัน (ดี 3 ถ้าคุณนับว่า "ไม่มี"): btrfs.wiki.kernel.org/index.php/ …
rogerdpack
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.