วิธีสำรองไฟล์ขนาดใหญ่หนึ่งไฟล์ที่มีการเปลี่ยนแปลงเล็กน้อย


9

หากชุดของไฟล์ (แต่ละไฟล์มีขนาดใหญ่หลาย GB) และการเปลี่ยนแปลงแต่ละครั้งจะเล็กน้อยทุกวัน (ในสถานที่สุ่มไม่เพียง แต่ข้อมูลต่อท้าย) จะทำการคัดลอกอย่างมีประสิทธิภาพได้อย่างไร ฉันหมายถึงในแง่ที่ว่ามีการอัพเดทเฉพาะส่วนที่เปลี่ยนแปลงเท่านั้นไม่ใช่ไฟล์ทั้งหมด นั่นหมายถึงความแตกต่างระหว่างการคัดลอก Kb บางส่วนที่นี่และที่นั่นหรือบาง GB


ความแตกต่างแบบไบนารี? ฉันคิดว่านั่นเป็นสิ่งหนึ่ง แต่ฉันไม่คิดว่าdiffจะทำ
แมว

@cat: diffอาจรายงานความแตกต่างได้ แต่ที่นี่ปัญหากำลังคัดลอกความแตกต่างเล็กน้อย
Quora Feans

ดีฉันคิดว่าเพียงคัดลอกความแตกต่าง - rsyncดีกว่า
แมว

คำตอบ:


25

rsyncโปรแกรมไม่ตรงที่ จากหน้าคน:

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


ในความเป็นจริง rsync กำลังทำงานจริงในขณะที่เขียนคำตอบนี้สำรองข้อมูลทุกอย่างในเครื่องนี้ลงในไฟล์เซิร์ฟเวอร์ของฉัน (ด้วย zfs)
hlovdal

เพื่อวัตถุประสงค์ในการสำรองข้อมูลฉันต้องการแนะนำrdiff -backup ( nongnu.org/rdiff-backup ) ฉันใช้มันเพื่อสำรองเครื่องที่แตกต่างกันสี่เครื่องเป็นเวลาหลายปีแล้วและมีผลลัพธ์ที่ดี
Thomas Padron-McCarthy

Wikipedia มีคำอธิบายที่ดีเกี่ยวกับวิธีrsyncเปรียบเทียบการจัดเรียงไฟล์โดยใช้การตรวจสอบย้อนกลับ
Adam Katz

ฉันลอง rsync เพื่อ "ย้อนกลับ" กลับไปเป็นภาพฮาร์ดดิสก์ VM เก่าซึ่งมีไฟล์เพียงไม่กี่ไฟล์ที่มีการเปลี่ยนแปลงดูเหมือนว่า rsync น่าเศร้าที่จะคัดลอกไฟล์ทั้งหมดอีกครั้ง (ใช้เวลาประมาณ 3 นาทีในการเขียน ~ 300MB / s)? rsync -av --progress --partial --inplace arch-test1.qcow2.bak arch-test1.qcow2
feedc0de

8

คุณอาจต้องการโปรแกรมสำรองข้อมูลที่ซ้ำซ้อนที่ทันสมัย ตรวจสอบBorgBackup

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


5

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

การใช้rsyncจะช้าและเข้มข้นมาก IO

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

เพียงแค่ Google "rsync ช้า" ตัวอย่างเช่น: rsync ช้ามาก (ตัวประกอบ 8 ถึง 10) เปรียบเทียบกับ cp ในการคัดลอกไฟล์จาก nfs-share ไปยัง dir ท้องถิ่น


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