มีวิธีในการสร้างสำเนา copy-on-write ของไดเรกทอรีหรือไม่?


14

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

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

มีวิธีให้ระบบไฟล์ทำcopy-on-writeสำหรับไฟล์หรือไม่?


หมายเหตุ: ฉันทราบว่า FSs จำนวนมากใช้ COW ที่ระดับบล็อก (การอัปเดตทั้งหมดจะกระทำผ่านการเขียนไปยังบล็อกใหม่) แต่นี่ไม่ใช่สิ่งที่ฉันต้องการ


มันจะไม่ปรากฏการบำรุงรักษา แต่บางทีboklm.eu/copyfs
Zoredache

ดังนั้นคุณต้องการทำ copy-on-write ผ่านระบบไฟล์ แต่คุณไม่ต้องการระบบไฟล์ที่ใช้ copy-on-write? ฉันสับสน
Kamil Kisiel

1
@ Kamil Kisiel: ฉันต้องการ COW ระดับไฟล์ไม่ใช่ COW ระดับบล็อก COW ระดับไฟล์ให้ผลลัพธ์cpและlnทำสิ่งเดียวกันเกือบทั้งหมด COW ระดับบล็อกเป็นกลอุบายในการลดช่วงเวลาที่ข้อมูลเมตา FS ไม่ถูกต้อง: en.wikipedia.org/wiki/ZFS#Copy-on-write_transactional_model
BCS

สิ่งนี้คาดว่าจะใช้ระบบชนิดใด
John Gardeniers

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

คำตอบ:


7

หากคุณมีตัวเลือกแพลตฟอร์มสำหรับไฟล์เซิร์ฟเวอร์ของคุณฉันจะไปกับ OpenSolaris รุ่นล่าสุดและใช้คุณสมบัติการขจัดความซ้ำซ้อนของ ZFS วิธีนี้การคัดลอกไฟล์จะไม่มีพื้นที่เพิ่มเติมและแม้แต่ส่วนทั่วไประหว่างไฟล์ก็ไม่สามารถทำซ้ำได้

คุณสามารถอ่านทั้งหมดเกี่ยวกับการขจัดข้อมูลซ้ำซ้อน ZFS ที่โพสต์ในบล็อกของเจฟฟ์บอนวิก


1
ZFS นั้นยอดเยี่ยมมาก มันจะเปลี่ยนวิธีที่คุณคิดเกี่ยวกับการจัดเก็บ
tegbains

เรียบร้อยเว้นแต่จะมีข้อเสียสำหรับการใช้งานไดรฟ์ทั้งหมด
BCS

ฉันเพิ่มลิงก์ไปยังโพสต์บล็อกที่มีรายละเอียดทางเทคนิคเพิ่มเติม คุณสามารถดูว่ามันเป็นสิ่งที่คุณต้องการมี
Kamil Kisiel

URL ใหม่สำหรับโพสต์ของ Jeff Bonwick: blogs.oracle.com/bonwick/zfs-deduplication-v2
Mathieu

0

โซลูชันการจำลองเสมือน linuxส่วนใหญ่เสนอ COW ระดับไฟล์ระหว่าง OS เสมือนจริง (คัดลอกมาจาก WP):

  • ใช่:
    • นักเทียบท่า, Linux-VServer, lmctfy, LXC, ภาวะเอกฐาน, Virtuozzo, Sandboxie, systemd-nspawn, ตู้คอนเทนเนอร์ Solaris (ZFS), คุก FreeBSD (ZFS), OpenVZ
  • NO:
    • chroot, sysjail, WPARs, บัญชีเสมือน iCore, Turbo

แม้ว่าลิงก์นี้อาจตอบคำถามได้ดีกว่าหากรวมส่วนสำคัญของคำตอบไว้ที่นี่และให้ลิงก์สำหรับการอ้างอิง คำตอบสำหรับลิงก์อย่างเดียวอาจไม่ถูกต้องหากหน้าเว็บที่เชื่อมโยงมีการเปลี่ยนแปลง
Romeo Ninov

-2

อาจเป็น SVN หรือเครื่องมือกำหนดเวอร์ชันอื่น ๆ (git, cvs)?


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