ข้ามไปยังเนื้อหา
กลับหน้ารายการบทความ

Restic: สำรองข้อมูลให้กู้คืนได้จริง ไม่ใช่แค่เห็นว่า Backup สำเร็จ

ใช้ Restic สร้าง snapshot ตรวจ repository และซ้อมกู้ไฟล์ไปยังพื้นที่แยก พร้อมแยกความหมายของ backup สำเร็จกับกู้คืนสำเร็จ

Restic: สำรองข้อมูลให้กู้คืนได้จริง ไม่ใช่แค่เห็นว่า Backup สำเร็จ

คำว่า “สำรองข้อมูลแล้ว” ยังไม่ตอบว่ากู้ไฟล์ที่ต้องใช้กลับมาได้หรือไม่ Restic เก็บข้อมูลเป็น snapshot ใน repository และรองรับการสำรองซ้ำโดยส่งเฉพาะส่วนที่เปลี่ยน แต่คุณภาพของแผนสำรองต้องวัดจากการกู้คืนในเวลาที่กำหนด บทความนี้ใช้โฟลเดอร์ทดลองก่อน เพื่อไม่ให้การทดสอบไปทับข้อมูลจริง

เตรียม repository และขอบเขตข้อมูล

เลือกปลายทางที่แยกจากดิสก์ต้นทาง เช่น ไดรฟ์อีกลูกหรือ object storage แล้วกำหนดรหัสผ่าน repository ผ่าน secret manager หรือไฟล์สิทธิ์จำกัด แทนการพิมพ์รหัสผ่านลงในสคริปต์ที่แชร์กัน ตัวอย่างบนเครื่องทดสอบใช้ restic -r /srv/restic-repo init แล้วรัน restic -r /srv/restic-repo backup ~/work เมื่อสำรองสำเร็จ คำสั่ง restic -r /srv/restic-repo snapshots จะแสดง snapshot ID, เวลาและแหล่งข้อมูล

ก่อนนำไปใช้จริง ระบุว่าจะสำรองไฟล์ใด ฐานข้อมูลใด และไฟล์ใดต้องตัดออก เช่น cache หรือไฟล์ชั่วคราว ฐานข้อมูลที่กำลังเขียนอยู่ควรใช้วิธีสร้าง dump หรือ snapshot ที่สอดคล้องกันก่อนให้ Restic อ่านไฟล์ มิฉะนั้นสำรองได้ครบทุกไบต์แต่สถานะข้อมูลอาจไม่สอดคล้องกัน

ตรวจและซ้อมกู้คืน

หลังสำรอง ใช้ restic -r /srv/restic-repo check ตรวจโครงสร้าง repository แล้วเลือก snapshot หนึ่งรายการมาลองกู้ด้วย restic -r /srv/restic-repo restore latest --target /tmp/restore-test เปิดไฟล์ที่กู้มา ตรวจขนาดและเนื้อหากับต้นทาง ทดสอบแอปด้วยข้อมูลที่กู้ได้หากเป็นไฟล์บริการ การ restore ไปยังโฟลเดอร์แยกช่วยให้เห็น path จริงของไฟล์ก่อนตัดสินใจย้ายกลับตำแหน่งใช้งาน

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

จัดอายุข้อมูลและป้องกันจุดล้มเหลวเดียว

วางกติกาเก็บ snapshot รายวัน รายสัปดาห์และรายเดือนให้สอดคล้องกับข้อกำหนดธุรกิจ ก่อนใช้ forget และ prune ให้ทบทวนว่าระยะเก็บยังพอสำหรับการพบข้อมูลเสียย้อนหลังหรือไม่ ทดลองนโยบายกับ repository ทดสอบก่อนลบข้อมูลสำรองจริง และอย่าวางสำเนาเพียงชุดเดียวบนเครื่องเดียวกับข้อมูลต้นฉบับ

Restic ช่วยจัดเก็บและตรวจ repository แต่ไม่ได้ทดแทนการเฝ้าดูงานสำรองที่ล้มเหลวหรือการซ้อมกู้คืน ตั้งการแจ้งเตือนเมื่อ snapshot ใหม่ไม่เกิดตามรอบ และบันทึกผล restore test สม่ำเสมอ จึงจะตอบได้ว่าระบบพร้อมรับเหตุข้อมูลหายจริง

อ่านเพิ่มเติม: การสำรองข้อมูลของ Restic, การกู้คืน