0188 | Bacula : ระบบ backup ข้อมูลสุดเมพ… รึเปล่าวะ?
วันก่อน… (ช่วงปลายเดือนที่แล้ว) รื้อระบบ backup server ใหม่ขนานใหญ่ครับ ตัดสินใจเอา bacula มาลงหลังจากทำใจอยู่นาน …. สาเหตุไม่ใช่อะไร config ยากมาก… มันโยงกันอีรุงตุงนังมากจนขี้เกียจจะหัด แต่ก็ต้องใช้อะนะครับ เพราะมันเมพขริงๆ
ก่อนอื่นอธิบายก่อน Bacula คือระบบ backup ข้อมูล “ผ่าน network” แบบ open source ซึ่งแบ่งการทำงานออกเป็น 3 ส่วนใหญ่ๆ ดังนี้
- Director: เป็นตัวควบคุมหลักของ bacula เลย การตั้งค่าแทบทุกอย่างจะอยู่ตรงนี้
- Storage: ไว้เก็บข้อมูลครับ สามารถมีหลายๆ เครื่องได้ แล้วก็ตั้งค่าแยกให้แต่ละ client ไปเก็บแยกกันแต่ละ storage อีกที
- Client: อันนี้เอาไว้ลงที่ server ที่จะ backup ข้อมูลครับ
โดยหลักการของ bacula มันคือการทำอะไรคล้ายๆ กับ rsync ครับ แต่มีลูกเล่นมากกว่าตรงที่ข้อมูลใหม่จะไม่เขียนทับข้อมูลเก่า กรณีไฟล์เปลี่ยนแปลงก็สามารถตรวจเจอได้ทั้งหมด และเลือกย้อนไปวันไหนก็ได้เท่าที่มีการ backup ไว้โดยไม่มีการ backup ซ้ำถ้าไฟล์ไม่เปลี่ยนแปลง ซึ่งการ backup นี้จะมีทั้งหมด 3 แบบครับ
- Full: ตรงตัวครับ เก็บใหม่ทุกอย่างไม่สนว่าเคยมีอะไรแล้วบ้าง
- Differential: นับจากการรันแบบ Full ครั้งล่าสุด มาจนถึงตอนที่รัน backup ว่ามีอะไรเปลี่ยนแปลงบ้าง
- Incremental: นับจากการ backup ครั้งสุดท้าย (ไม่ว่า mode ไหน) มีอะไรเปลี่ยนแปลงบ้าง