คำตอบสั้น ๆ: วาง Backup Plan ของเซิร์ฟเวอร์คลาวด์ตามกฎ 3-2-1-1-0 แยก Snapshot, Backup และ Replica มีชุดที่ลบไม่ได้ กำหนดระยะเก็บ และซ้อมกู้คืนจริงตามตาราง
คู่มือนี้อธิบาย Backup Plan ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
Backup Plan คือแผนที่ตอบให้ได้ว่าข้อมูลอะไรถูกสำรอง เก็บไว้กี่ชุด อยู่ที่ไหน เก็บนานเท่าไร ใครเป็นคนกู้ และกู้ได้จริงหรือไม่ Backup Plan ที่ดีบนเซิร์ฟเวอร์คลาวด์มักยึดกฎ 3-2-1 คือมีข้อมูลอย่างน้อย 3 ชุด เก็บบนสื่อหรือระบบอย่างน้อย 2 แบบ และอย่างน้อย 1 ชุดอยู่นอกสถานที่ ปัจจุบันนิยมเพิ่มเป็น 3-2-1-1-0 คืออีก 1 ชุดที่แก้ไขหรือลบไม่ได้ และ 0 ข้อผิดพลาดเมื่อตรวจการกู้คืน
คู่มือนี้เหมาะกับผู้ดูแลระบบที่มีเว็บไซต์ ฐานข้อมูล หรือไฟล์งานอยู่บน Cloud Server และต้องการเปลี่ยนจาก “ตั้งสำรองไว้แล้ว” เป็น Backup Plan ที่ตรวจสอบได้ เมื่อทำครบ คุณจะมีรายการข้อมูลพร้อมเจ้าของ แยกบทบาทของ Snapshot, Backup และ Replica ได้ วางสำเนาตามกฎ 3-2-1 มีชุดที่แรนซัมแวร์ลบไม่ได้ กำหนดระยะเก็บ และมีตารางซ้อมกู้คืนที่ทำจริง
สิ่งที่ต้องเตรียม
- รายชื่อเซิร์ฟเวอร์และระบบทั้งหมด พร้อมผู้รับผิดชอบฝั่งธุรกิจของแต่ละระบบ เช่น ฝ่ายบัญชีเป็นเจ้าของฐานข้อมูล ERP
- เป้าหมายว่าแต่ละระบบยอมเสียข้อมูลได้กี่ชั่วโมงและยอมหยุดได้นานเท่าไร ถ้ายังไม่มี ให้ทำตาม คู่มือกำหนด RTO และ RPO ไปพร้อมกัน
- สิทธิ์ root หรือ Administrator บนเซิร์ฟเวอร์ และสิทธิ์จัดการบริการสำรองข้อมูลในพอร์ทัลของผู้ให้บริการ
- ที่เก็บข้อมูลปลายทางอย่างน้อยหนึ่งแห่งที่อยู่นอกเซิร์ฟเวอร์ต้นทาง เช่น Object Storage ที่รองรับ S3 หรือเซิร์ฟเวอร์สำรองในอีกศูนย์ข้อมูล
- เซิร์ฟเวอร์ทดสอบหนึ่งเครื่องสำหรับซ้อมกู้คืน ใช้เครื่องสเปกเล็กที่เปิดเฉพาะวันซ้อมก็พอ
ขั้นตอนที่ 1: ทำรายการข้อมูลที่ต้องอยู่ใน Backup Plan
เริ่มจากตารางเดียวที่ทุกฝ่ายเห็น หนึ่งแถวต่อหนึ่งชุดข้อมูล คอลัมน์ที่ควรมีคือ ชื่อระบบ เซิร์ฟเวอร์ ตำแหน่งข้อมูล ขนาด ความถี่ที่ข้อมูลเปลี่ยน เจ้าของ และระดับความสำคัญ ข้อมูลที่มักตกหล่นจาก Backup Plan มีดังนี้
- ฐานข้อมูล: ต้องสำรองด้วยเครื่องมือของฐานข้อมูล เช่น
mysqldump,pg_dumpหรือ Backup ของ SQL Server ห้ามคัดลอกโฟลเดอร์ข้อมูลขณะฐานข้อมูลทำงาน เพราะไฟล์ที่ได้อาจเปิดไม่ขึ้น - ไฟล์ที่ผู้ใช้อัปโหลด: เช่น
/var/www/example.com/uploadsหรือแชร์ไดรฟ์ของแผนก - ค่าตั้งระบบ:
/etc, ไฟล์ Nginx หรือ IIS, crontab, ไฟล์.envและ docker-compose.yml ซึ่งถ้าหายต้องนั่งตั้งใหม่ทั้งวัน - ความลับ: ใบรับรอง SSL, คีย์ API และรหัสเข้ารหัสของตัว Backup เอง ต้องเก็บแยกไว้ใน Password Manager นอกเซิร์ฟเวอร์
- ข้อมูลนอกเซิร์ฟเวอร์: DNS zone, การตั้งค่าไฟร์วอลล์ในพอร์ทัล และรายการผู้ใช้ ซึ่งไม่อยู่ในดิสก์ของเครื่อง
ใน Backup Plan จัดระดับความสำคัญเป็นสามระดับพอ เช่น ระดับ 1 หยุดแล้วธุรกิจหยุด ระดับ 2 หยุดได้หนึ่งวัน ระดับ 3 สร้างใหม่ได้ ระดับนี้จะใช้กำหนดความถี่และจำนวนชุดในขั้นตอนถัดไป
ขั้นตอนที่ 2: แยก Snapshot, Backup และ Replica ให้ชัด
สามคำนี้มักถูกใช้แทนกัน แต่ป้องกันความเสียหายคนละแบบ Backup Plan ที่ใช้ได้จริงต้องรู้ว่าแต่ละชุดกันอะไรได้และกันอะไรไม่ได้
- Snapshot: ภาพของดิสก์ ณ เวลาหนึ่ง สร้างเร็ว กู้กลับทั้งดิสก์ได้เร็ว เหมาะกับก่อนอัปเดตระบบ แต่โดยมากอยู่ในระบบจัดเก็บเดียวกับต้นทาง ถ้าระบบจัดเก็บหรือบัญชีมีปัญหา Snapshot ก็ใช้ไม่ได้ไปด้วย
- Backup: สำเนาข้อมูลที่ถูกคัดลอกออกไปเก็บแยก มีหลายเวอร์ชันย้อนหลัง กู้ทีละไฟล์ได้ และใช้กู้ได้แม้เครื่องต้นทางหายทั้งเครื่อง
- Replica: สำเนาที่ซิงก์ตามต้นทางตลอดเวลา เช่น MySQL Replication ช่วยให้กลับมาให้บริการได้เร็ว แต่ถ้ามีคนลบตารางหรือแรนซัมแวร์เข้ารหัสไฟล์ ความเสียหายจะถูกซิงก์ไปที่ Replica ทันที จึงไม่นับเป็น Backup
สำหรับเซิร์ฟเวอร์บน THAI DATA CLOUD วิธีเปิดบริการสำรองข้อมูลของแพลตฟอร์มอยู่ใน คู่มือการ Backup Server บน Cloud ของ TDC ให้ถือว่าบริการนั้นเป็นหนึ่งชุดใน Backup Plan แล้ววางอีกชุดไว้นอกระบบเดิมตามขั้นตอนที่ 3
ขั้นตอนที่ 3: วางกฎ 3-2-1 ใน Backup Plan ของแต่ละระบบ
นับสำเนาให้ครบสามชุดโดยนับข้อมูลจริงบนเครื่องเป็นชุดแรก แล้วตรวจว่าสองชุดที่เหลือไม่ได้พังพร้อมกันด้วยเหตุเดียว ตัวอย่าง Backup Plan ของร้านค้าออนไลน์ที่มี web-01 และ db-01
- ชุดที่ 1: ข้อมูลใช้งานจริงบนดิสก์ของ
web-01และdb-01 - ชุดที่ 2: บริการ Backup ของแพลตฟอร์มรายวัน และไฟล์ Dump ฐานข้อมูลรายชั่วโมงที่เก็บใน Volume แยกจากดิสก์ระบบ ใช้กู้เร็วเมื่อลบไฟล์ผิดหรืออัปเดตพัง
- ชุดที่ 3: สำเนาเข้ารหัสใน Object Storage ที่อยู่ศูนย์ข้อมูลอื่นหรือผู้ให้บริการอื่น ส่งทุกคืนด้วย restic หรือ rclone ใช้เมื่อทั้งระบบต้นทางใช้ไม่ได้
ใน Backup Plan คำว่า “2 สื่อ” บนคลาวด์หมายถึงสองระบบจัดเก็บที่ไม่พึ่งกัน เช่น ดิสก์ของเครื่องกับ Object Storage ส่วน “1 นอกสถานที่” หมายถึงอยู่คนละศูนย์ข้อมูล ไม่ใช่แค่คนละโฟลเดอร์ ถ้าทั้งสามชุดใช้รหัสผ่านหรือ Access Key ชุดเดียวกัน ให้ถือว่ายังไม่ผ่านกฎข้อนี้ เพราะคนที่ได้สิทธิ์เดียวลบได้ทุกชุด
บน Windows Server ระวังข้อจำกัดของ Windows Server Backup ที่สำรองไปยัง Network Share เพราะการสำรองเครื่องเดิมไปยังโฟลเดอร์เดิมจะเขียนทับชุดก่อนหน้า เหลือเพียงชุดล่าสุดชุดเดียว จึงต้องมีชุดอื่นที่เก็บหลายเวอร์ชันประกอบด้วย