ฉันมีระบบ FreeNAS ในพื้นที่และต้องการใช้ ZFS snapshots สำหรับการสำรองข้อมูล
FreeNAS มีงานการจำลองแบบในตัวซึ่งใช้
zfs send snapshot_name
เพื่อส่งสแน็ปช็อตไปยังระบบรีโมต แต่สิ่งนี้ต้องการระบบที่มี ZFS อยู่อีกด้านหนึ่ง
ฉันต้องการส่งสแนปชอตไปยังไฟล์ aa และส่งไฟล์บีบอัดและเข้ารหัสนี้ไปยังเครื่องระยะไกล
สิ่งนี้เป็นไปได้ด้วย
zfs send snapshot_name | gzip | openssl enc -aes-256-cbc -a -salt > file.gz.ssl
ทุกวันฉันทำสแนปชอตของพูลหน่วยเก็บและเก็บสแน็ปช็อตทุก ๆ 30 วัน
ทุกๆสแน็ปช็อตที่ถ่ายฉันจะไพพ์สแนปช็อตนี้เป็นไฟล์
- snapshot_file 1 มีทุกไฟล์อยู่ในนั้น (สมมติว่า 2GB)
- snapshot_file 2 มีการเปลี่ยนแปลงเป็น snapshot_file 1 เท่านั้น (สมมติว่า 5MB)
- snapshot_file 3 เก็บการเปลี่ยนแปลงเป็น snapshot_file 2; และอื่น ๆ
วันที่ 31 snapshot_file 1 กำลังถูกลบ (เพราะฉันต้องการเปลี่ยนแปลงจาก 30 วันล่าสุดเท่านั้น)
ดังนั้น snapshot_file 2 จำเป็นต้องเก็บทุกไฟล์ (2GB snapshot_file 1 + 5MB การเปลี่ยนแปลง)
แต่ด้วยวิธีนี้ทุกวัน (จากวันที่ 31 เป็นต้นไป) จะต้องสร้างไฟล์ 2GB ใหม่และส่งไปยังระบบระยะไกล นี่คือค่าใช้จ่ายมากเกินไป
อะไรจะเป็นวิธีที่ดีที่สุดในการใช้สแน็ปช็อตไปยังไฟล์เป็นกลยุทธ์การสำรองข้อมูลที่มีประวัติ X วัน
PS: ฉันรู้ว่ามีซอฟต์แวร์สำรองข้อมูลอยู่มากมาย (ตัวอย่างเช่น rdiff-backup) ซึ่งฉันสามารถใช้ได้ แต่ฉันอยากรู้ว่าวิธีนี้สามารถทำได้
zfs recv
ในส่วนอื่น ๆ (ในสระว่ายน้ำที่มีzfs set compression=gzip-9
เป็นต้น) การจัดเก็บไฟล์สแน็ปช็อตนั้นไม่มีประสิทธิภาพมากสำหรับฉัน