จะเกิดอะไรขึ้นถ้า rsnapshot / rdiff-backup ถูกขัดจังหวะระหว่างการถ่ายโอน


20

คำถามบอกว่ามันทั้งหมด:

จะเกิดอะไรขึ้นถ้า rsnapshot หรือ rdiff-backup ถูกขัดจังหวะระหว่างการถ่ายโอน

ฉันรู้ว่า rsnapshot พยายามที่จะสร้างสแนปช็อตที่สมบูรณ์ของระบบของคุณในแบบหมุนและการสำรองข้อมูล rdiff ทำให้การสำรองข้อมูลที่แตกต่างกันซึ่งจะขึ้นอยู่กับไฟล์ที่บันทึกไว้ก่อนหน้านี้

ดังนั้นจะเกิดอะไรขึ้นถ้ามันถูกขัดจังหวะตรงกลาง?

สิ่งนี้ส่งผลให้ "ภาพรวมไม่สมบูรณ์" หรือไม่?

สแนปชอตอื่น ๆ ที่ขึ้นอยู่กับอันนี้จะเสียหายหรือไม่ (ไม่แน่นอน แต่ ... ?)


1
จะไม่ชัดเจนกว่านี้หรือไม่หากคุณแยกคำถามนี้เป็นคำถามแยกกันสองข้อ
andol

2
@andol หากเขากำลังมองหาข้อมูลเกี่ยวกับวิธีการกู้คืนจากการโอนขัดจังหวะฉันคิดว่ามันจะดีกว่าถ้าเป็นสองคำถาม ฉันตีความว่านี่เป็นคำขอเพิ่มเติมสำหรับการเปรียบเทียบว่าคุณมีปัญหามากน้อยเพียงใดหากคุณใช้แต่ละยูทิลิตี้แม้ว่าจะเป็น "ตัวช่วยตัดสินใจที่จะใช้
ændrük

ขอบคุณ Andol; แต่ไม่ฉันคิดว่านี่เป็นคำถามเดียว โดยทั่วไปแล้ว "จะเกิดอะไรขึ้นถ้า rsnapshot / rsync ถูกขัดจังหวะในระหว่างการถ่ายโอน" และฉันคิดว่าเครื่องมือครอบคลุมช่องเฉพาะหนึ่งช่องดังนั้น IMO จึงไม่รับประกันสองคำถามแยกกัน ฉันโพสต์คำถามว่า 'ภาพรวมไม่สมบูรณ์' เป็นหนึ่งผลลัพธ์ที่เป็นไปได้สำหรับการชี้แจง
emf

คำตอบ:


22

ความเข้าใจของฉันคือ ...

rdiff-backupจะตรวจจับการเพิ่มขึ้นที่ไม่สมบูรณ์ในครั้งถัดไปที่มันรัน มันจะลบการเพิ่มขึ้นที่ไม่สมบูรณ์ดังนั้นตำแหน่งการสำรองข้อมูลจะเหมือนกับว่ามีการพยายามสำรองที่ถูกขัดจังหวะโดยไม่เคยเริ่มต้น

rsnapshotนั้นซับซ้อนกว่าเล็กน้อยเพราะกิจวัตรมันเป็นแบบขั้นตอนและแตกต่างกันไปขึ้นอยู่กับการใช้งานsync_firstและuse_lazy_deletesตัวเลือก

  • หากคุณใช้sync_firstและrsnapshot syncถูกขัดจังหวะคุณสามารถเรียกใช้rsnapshot syncอีกครั้งเพื่อยืดสิ่งต่างๆออกไป หากคุณรันrsnapshot <backup level>ที่จุดนี้โดยไม่ตั้งใจจุดสำรองข้อมูลล่าสุดจะยังไม่สมบูรณ์และจะดำเนินการผ่านการหมุน
  • หากคุณไม่ได้ใช้งานsync_firstคุณจะติดอยู่กับจุดสำรองที่ไม่สมบูรณ์ซึ่งเป็นไฮบริดของไฟล์เวอร์ชันเก่าและใหม่ นอกจากว่าคุณจะหมุนกลับแต่ละจุดสำรองข้อมูลด้วยตนเองจุดสำรองที่ไม่สมบูรณ์จะถูกดำเนินการผ่านการหมุน
  • ในทั้งสองกรณีการเรียกใช้rsnapshot <backup level>จะทำให้จุดสำรองที่เก่าที่สุดสูญหายไปเว้นแต่use_lazy_deletesจะเปิดใช้งาน

โปรดทราบว่าsync_firstและuse_lazy_deletesต้องเสียค่าใช้จ่ายในการใช้พื้นที่ดิสก์มากขึ้น


คำเตือน / การปฏิเสธความรับผิด: สิ่งนี้ควรดำเนินไปโดยไม่บอก แต่อย่าเพิ่งเชื่อใจคำแนะนำของผู้อื่นทางอินเทอร์เน็ต หากคุณวางแผนที่จะใช้ rdiff-backup หรือ rsnapshot สำหรับภารกิจที่สำคัญอ่านคำศัพท์ทุกคำและทดสอบทดสอบทดสอบทุกอย่างด้วยตัวเอง!


1
การเตือนที่น่าชื่นชมและแนวทางปฏิบัติที่ดีเพื่อให้ทันกับวัฒนธรรม "วิธีการที่เหมาะสม" นี้เราไม่ต้องการให้ลินุกซ์เปลี่ยนเป็นผู้บริโภคที่โง่เง่า ขอบคุณสำหรับการบันทึก
emf

ดังนั้นการทำความเข้าใจอย่างถูกต้อง: มีการสำรองข้อมูลไม่สมบูรณ์ "ดำเนินการผ่านการหมุน" สำหรับ rsnapshot จะเป็นจำนวนเงินสองสิ่ง: 1. ภาพรวมจะไม่สมบูรณ์ถ้าเรียกกลับไปที่จุดภายหลัง 2. ใด ๆ ภาพรวมระดับสูงจะยังคงเป็นที่สมบูรณ์ , แต่จะไม่อ้างอิงกลับไปยังไฟล์ที่เชื่อมโยงได้ยากก่อนหน้าซึ่งพลาดไปในสแนปชอตที่ไม่สมบูรณ์ ถูกต้องหรือไม่
emf

1

นั่นเพิ่งเกิดขึ้นกับฉัน ไดรฟ์ภายนอกของฉันเต็มครึ่งทางผ่านการสำรองข้อมูลที่เพิ่มขึ้นของ rsnapshot:

rsync: write failed on "<path>": No space left on device (28) 

ตอนนี้ฉันต้องการแบ่งปันสองสิ่งที่ฉันเรียนรู้จากสิ่งนี้ คือการซ่อมแซมและ จำกัด โอกาสที่จะพิจารณากรณีเช่นนี้ที่จะกัดฉันกลับ;)

ทำการสำรองข้อมูลที่ขัดจังหวะโดย Rsnapshot ต่อ

ฉันรู้สองวิธีในการย้อนกลับอย่างปลอดภัย

ด้วยมือ

  1. ลบไดเรกทอรีสุดท้าย (เช่น daily.0)
  2. เปลี่ยนชื่อไดเรกทอรีที่ต่อเนื่องกัน (Daily.1 -> daily.0, ... ); สคริปต์ที่เป็นไปได้1
  3. เรียกใช้การสำรองข้อมูลตามปกติ (อีกครั้ง)

อัตโนมัติ

rsnapshot ไม่มีการหยุด / หยุดชั่วคราวและกลับมาทำงานต่อได้ (ยกเว้น " ข้ามเนื่องจากแผนย้อนกลับที่ จำกัด " 2 ) ดังนั้นเราจึงต้องใช้ wrapper เพื่อจัดการคุณสมบัติเหล่านี้

rsnapshot-once3โดย Philipp C. Heckel เป็นเสื้อคลุมสำหรับ rsnapshot ใน PHP ที่:

  • ทำงานได้โดยไม่ต้องปรับเปลี่ยนความเชื่อมั่นของ rsnapshot ของคุณ
  • ตรวจสอบให้แน่ใจว่างานรายวันรายสัปดาห์และรายเดือนทำงานเพียงครั้งเดียวในช่วงเวลาที่เกี่ยวข้องผ่าน cron (เหมาะสำหรับแล็ปท็อป)
  • การย้อนกลับของการสำรองข้อมูลล้มเหลว (ตรวจสอบว่าการสำรองข้อมูลครั้งล่าสุดเสร็จสมบูรณ์หรือไม่ถ้าไม่ใช่ไดเรกทอรีสุดท้ายจะถูกลบและมีการเปลี่ยนชื่อไดเรกทอรีที่อยู่ติดกันเช่น daily1 -> daily.0, ... )

ใช้งานเป็นเวลาหนึ่งปีฉันเป็นผู้ใช้ที่มีความสุข: ฉันแก้ไข php.ini openbase_dirสำหรับความต้องการสำรองข้อมูลของฉันและ voila วันโชคดี ^ _ ^ ราบรื่นและปลอดภัยกว่าโซลูชันที่ใช้ rsnapshot ที่ผ่านมาของฉันก่อนหน้านี้

หมายเหตุ: slm เชื่อมโยงฉันที่นี่จากคำถามที่ซ้ำกัน: ปลายทาง Rsnapshot เต็ม - จะรันใหม่ได้อย่างปลอดภัยได้อย่างไร

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