เมื่อใช้ btrfs ทำไมค่า“ Size”,“ Used” และ“ Avail” จาก df ไม่ตรงกัน?


9

ฉันมีพาร์ทิชัน btrfs เมื่อฉันวิ่งdf -hมันจะแสดง:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       113G  101G  8.3G  93% /home

จากนั้นทำไม เป็นเพราะพื้นที่ที่สงวนไว้สำหรับรูทเป็น wth ext2 / 3/4 หรือไม่? หรือมันเป็นอย่างอื่น? หากก่อนหน้านี้ฉันจะเปลี่ยนและเรียกคืน 4GB เหล่านั้นได้อย่างไร

ตามbtrfs wikiฉันรู้ว่าข้อมูลเมตาถูกเก็บไว้สองครั้งซึ่งขยายขนาดของข้อมูล "ใช้แล้ว":

user@machine:~$ df -h /
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             894G  311G  583G  35% /
                            ^^^^
user@machine:~$ btrfs fi df /
Metadata: total=18.00GB, >>used=6.10GB<<  *2=  12.20GB
Data: total=358.00GB, >>used=298.37GB<<   *1= 298.37GB
System: total=12.00MB, >>used=40.00KB<<   *1=   0.00GB
                                           == 310.57GB 
                                           ~~ 311   GB

แต่นี่ยังไม่สามารถอธิบายได้ว่าเหตุใดจึงใช้ + มีจำหน่าย <ขนาด


btrfs.wiki.kernel.org/articles/f/a/q/FAQ_1fe9.html - อ่าน "ทำไมจึงมีวิธีมากมายในการตรวจสอบจำนวนพื้นที่ว่าง" ส่วนมันมีข้อมูลมากมาย
Mat

ใช่มันมีข้อมูลมากมาย แต่ในตัวอย่างทั้งหมดของพวกเขา Used + Avail = Size ในdfเอาต์พุต ฉันได้อัปเดตคำถามด้วยสิ่งนี้
sup

ไม่lsofแสดงไฟล์ที่ถูกลบหรือไม่? (เอาต์พุต btrfs จากระบบของคุณน่าจะเหมาะสมกว่านั้นเล็กน้อยจากวิกิ)
Mat

ฉันรู้ แต่ฉันขี้เกียจที่จะจัดรูปแบบใหม่และมันเป็นแบบอะนาล็อก ถ้าlsof |grep 'DEL'|wc -lจะช่วยให้จำนวนไฟล์ที่ถูกลบมันเป็น 338 พวกเขาดูเหมือนจะไม่ใหญ่ แต่ (ฉันจะได้รับขนาดโดยรวมของพวกเขาอย่างใด?)
จีบ

1
@Mat นี่คือลิงค์ที่ใช้งานได้กับคำถามที่พบบ่อย BTRFS: ทำไมจึงมีวิธีมากมายในการตรวจสอบจำนวนพื้นที่ว่าง
ali_m

คำตอบ:


10

หากคุณไม่ได้ระบุเป็นอย่างอื่นเมื่อคุณฟอร์แมตแล้วค่าดีฟอลต์คือเก็บสำเนาที่ซ้ำกันของบล็อกข้อมูลเมตาเพื่อเพิ่มความน่าเชื่อถือ คุณอาจมีเมตาดาต้ามูลค่า 2GB ซึ่งเก็บไว้สองครั้งโดยใช้ 4gb คุณสามารถดูรายละเอียดเพิ่มเติมbtrfs filesystem dfได้ที่

โดยเฉพาะอย่างยิ่ง 1.75GB ถูกจัดสรรสำหรับข้อมูลเมตาดังนั้นจึงใช้เนื้อที่สองเท่าหรือพื้นที่ 3.5GB ปัจจุบันมีเพียง 385mb ของ 1.75 gb ที่ใช้สำหรับเมตาดาต้า แต่สำรองเต็ม 1.75GB สำหรับการใช้นั้นและจะไม่ถูกนับรวมในพื้นที่ว่างสำหรับข้อมูลไฟล์


btrfs filesystem df /homeให้Metadata, DUP: total=1.75GB, used=385.70MBฉันมีเมตาดาต้าที่จัดเก็บประมาณ 771MB พร้อม Data มีจำนวน 101G แต่ไม่ได้อธิบายว่าทำไม Used + Avail <ขนาด - ฉันขยายคำถามเพื่อสะท้อนสิ่งนี้
sup

4
@sup, 1.75GB ถูกจัดสรรสำหรับข้อมูลเมตาดังนั้นจึงใช้เนื้อที่สองเท่าหรือ 3.5GB ของพื้นที่ ปัจจุบันมีเพียง 385mb ของ 1.75 gb ที่ใช้สำหรับเมตาดาต้า แต่สำรองเต็ม 1.75GB สำหรับการใช้งานนั้นและจะไม่ถูกนับรวมในพื้นที่ว่างสำหรับข้อมูลไฟล์
psusi

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