วิธีการทำสำเนาไฟล์โดยไม่คัดลอกข้อมูลด้วย btrfs


14

ฉันไม่มีประสบการณ์กับ btrfs แต่โฆษณาเพื่อให้สามารถยกเลิกการทำซ้ำไฟล์ได้

ในใบสมัครของฉันฉันจะต้องทำซ้ำแผนผังไดเรกทอรีทั้งหมด

จากสิ่งที่ฉันได้เรียนรู้ btrfs ทำซ้ำเฉพาะในบางโพสต์สแกนไม่ใช่ทันที แม้กระทั่งการใช้cpก็ไม่ได้ทำให้เกิดการซ้ำซ้อน (อย่างน้อยก็dfแสดงการใช้งานดิสก์ที่เพิ่มขึ้นในขนาดของไฟล์ที่คัดลอก)

ฉันสามารถหลีกเลี่ยงการย้ายข้อมูลไปด้วยกันและบอกbtrfsให้ทำซ้ำไฟล์ที่ตำแหน่งอื่นได้โดยตรงโดยการโคลนข้อมูลเมตา

ในสาระสำคัญคล้ายกับฮาร์ดลิงก์ แต่มีเมตาดาต้าอิสระ (สิทธิ์, mod. ครั้ง, ... )


7
cp --reflink=always.
mikeserv

3
โปรดทราบว่านี่ไม่ใช่สิ่งที่เหมือนฮาร์ดลิงก์ เมื่อคุณcp --reflink=alwaysผลลัพธ์จากมุมมองของผู้ใช้จะเป็นไฟล์อิสระสองไฟล์ในทุก ๆ ด้าน ความจริงที่ว่าระบบไฟล์ที่อยู่ภายใต้นั้นเป็นนามธรรมที่ผ่านการคัดลอกเมื่อเขียนเป็นเพียงรายละเอียดการใช้งาน คุณไม่ได้รับ "ฮาร์ดลิงก์ แต่มีเมตาดาต้าอิสระ" สำหรับความรู้ของฉัน btrfs ยังไม่ได้ทำซ้ำอัตโนมัติใด ๆ ฉันคิดว่านั่นเป็นแผนในอนาคต แต่ฉันก็ไม่เชิงบวก
ormaaj

@ormaaj - เป็น Hardlink จะไม่ได้มีเมตาดาต้าอิสระ และ Udo ขอรายละเอียดการดำเนินงาน เมื่อคุณทำ reflink ให้ไฟล์ที่คุณเป็นหลักโคลนเมตาดาต้าของมัน มันก็ต่อเมื่อการอ้างอิงเปลี่ยนไปอย่างอิสระว่าไฟล์นั้นแตกต่าง - และนั่นคือสิ่งที่การขจัดข้อมูลซ้ำซ้อนเป็นเรื่องของ!
mikeserv

1
@mikeserv Er ฉันค่อนข้างมั่นใจว่าการขจัดข้อมูลซ้ำซ้อนมีความรู้สึกที่แตกต่าง การคัดลอกกำลังทำสำเนาสำเนาของข้อมูลที่มีอยู่แล้วและรวมเข้าด้วยกันอีกครั้ง COW เป็นวิธีการลดความซ้ำซ้อน แต่ก็ไม่ใช่การลดความซ้ำซ้อน
ormaaj

@ormaaj - ฉันคิดว่ามันเป็นเรื่องแปลกที่จะพูดว่า: การขจัดข้อมูลซ้ำซ้อนไม่ได้เกี่ยวกับการลดความซ้ำซ้อน
mikeserv

คำตอบ:


12

มีสองตัวเลือก:

  1. cp --reflink=always
  2. cp --reflink=auto

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

หากคุณกำลังใช้สิ่งนี้เป็นส่วนหนึ่งของสคริปต์ที่จำเป็นต้องมีประสิทธิภาพในการเผชิญกับเงื่อนไขที่ไม่เหมาะautoจะให้บริการคุณได้ดีขึ้น


คุณคือ Eric Estrada หรือไม่
mikeserv

2
@mikeserv Lol ไม่ ฉันชื่ออีธาน มันคงจะตลกดี Eric Estrada: นักแสดงในแต่ละวันดูแลระบบในเวลากลางคืน เชื่อหรือไม่ว่านี่เป็นครั้งแรกในรอบกว่าทศวรรษที่ผู้บริหารทางออนไลน์eestradaที่ทุกคนเคยถามฉันว่า
eestrada

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