Ba thứ hay bị gọi lẫn với nhau: ảnh chụp tức thời, bản sao lưu, và dự phòng thảm hoạ. Chúng bảo vệ khỏi ba loại sự cố khác nhau, và có cái nào cũng không thay được cái kia. Bài này phân biệt ba thứ đó và nói cách chọn.
1. Ba mức, và mỗi mức cứu được gì
| Mức | Là gì | Cứu được | Không cứu được |
|---|---|---|---|
| Ảnh chụp tức thời | Ghi lại trạng thái máy ảo tại một thời điểm, nằm cùng chỗ với dữ liệu gốc | Cài đặt lỗi, cập nhật hỏng, sửa cấu hình sai. Quay lại trong vài phút | Hỏng thiết bị lưu trữ, vì ảnh chụp nằm cùng chỗ với dữ liệu |
| Bản sao lưu | Bản chép riêng, nằm ở thiết bị lưu trữ khác | Hỏng thiết bị, xoá nhầm, mã độc tống tiền | Mất cả khu vực đặt máy |
| Dự phòng thảm hoạ | Bản chép ở trung tâm dữ liệu khác, kèm cách chạy lên ở đó | Sự cố ở cả một trung tâm dữ liệu | Sai dữ liệu do lỗi ứng dụng, vì bản chép cũng chép theo cái sai |
Điểm mấu chốt: ảnh chụp tức thời không phải bản sao lưu. Nó nằm cùng chỗ với dữ liệu gốc. Thiết bị lưu trữ hỏng thì mất cả hai.
Đây là nhận định hay bị phản đối, nên nói thẳng vì sao nó đúng: ảnh chụp tức thời chỉ ghi lại phần đã thay đổi so với dữ liệu gốc. Nó không phải một bản chép đầy đủ, nó là một lớp phủ lên bản gốc. Không còn bản gốc thì lớp phủ vô nghĩa.
2. Ảnh chụp tức thời: dùng đúng việc
Ảnh chụp tức thời giỏi nhất ở đúng một việc: lùi lại một bước ngay trước khi làm gì đó rủi ro.
Thời điểm nên chụp:
- Trước khi cập nhật hệ điều hành hoặc gói lớn.
- Trước khi chạy tập lệnh thay đổi cơ sở dữ liệu.
- Trước khi đổi cấu hình máy chủ web hoặc tường lửa.
- Trước khi cài phần mềm chưa chạy thử ở đâu.
Và thời điểm nên xoá: ngay sau khi xác nhận việc kia thành công.
⚠️ Ảnh chụp để lâu là vấn đề thật, không phải lời khuyên cho đẹp. Mỗi ảnh chụp giữ lại mọi khối dữ liệu đã thay đổi kể từ lúc chụp. Máy càng ghi nhiều thì ảnh chụp càng phình. Để một tháng trên một máy cơ sở dữ liệu thì phần ảnh chụp có thể lớn hơn chính dữ liệu. Chuỗi nhiều ảnh chụp lồng nhau còn làm tốc độ đọc ghi chậm đi rõ rệt.
Quy tắc đơn giản: ảnh chụp sống tính theo giờ, không tính theo tuần.
Cần giữ một trạng thái lâu dài thì đó là việc của bản sao lưu, không phải của ảnh chụp.
3. Bản sao lưu: ba câu hỏi quyết định mọi thứ
Trước khi bàn về công cụ hay lịch sao lưu, trả lời ba câu này. Chúng quyết định chi phí và cách làm.
Câu 1: Mất bao nhiêu dữ liệu thì còn chấp nhận được?
Đây là khoảng cách giữa hai lần sao lưu. Sao lưu mỗi ngày một lần nghĩa là tình huống xấu nhất mất một ngày làm việc.
| Loại dữ liệu | Khoảng cách thường hợp |
|---|---|
| Nội dung website ít đổi | Mỗi ngày |
| Cơ sở dữ liệu đơn hàng, giao dịch | Theo giờ, hoặc liên tục qua bản ghi thay đổi |
| Máy chủ tập tin nội bộ | Mỗi ngày |
| Môi trường thử nghiệm | Mỗi tuần, hoặc không cần |
Câu 2: Dừng bao lâu thì còn chấp nhận được?
Đây là thời gian từ lúc sự cố tới lúc chạy lại được. Nó phụ thuộc vào dung lượng cần phục hồi và tốc độ đường truyền tới nơi giữ bản sao lưu.
Một con số dễ bị đánh giá thấp: phục hồi một máy ảo vài trăm GB không phải việc của vài phút. Nên đo thật một lần rồi lấy số đo đó làm cam kết, thay vì ước lượng.
Câu 3: Giữ bao nhiêu bản, trong bao lâu?
Cách xếp thường dùng:
| Nhịp | Giữ bao lâu |
|---|---|
| Mỗi ngày | Bảy tới mười bốn bản gần nhất |
| Mỗi tuần | Bốn tới tám bản |
| Mỗi tháng | Sáu tới mười hai bản |
Vì sao cần nhiều mức: một số sự cố không phát hiện ra ngay. Dữ liệu bị hỏng do lỗi ứng dụng có thể hai tuần sau mới ai đó nhận ra. Nếu chỉ giữ bảy bản ngày thì tới lúc đó mọi bản đều đã chứa cái hỏng.
4. Mã độc tống tiền: lý do bản sao lưu cần nằm ngoài tầm với
Mã độc tống tiền hiện nay không chỉ mã hoá dữ liệu. Nó tìm và xoá bản sao lưu trước, vì có bản sao lưu thì không ai trả tiền.
Nghĩa là một bản sao lưu nằm trên ổ đĩa mạng mà máy chủ nhiễm vẫn ghi vào được thì không bảo vệ gì cả.
Ba cách làm cho bản sao lưu nằm ngoài tầm với:
| Cách | Nội dung |
|---|---|
| Khoá không cho xoá | Bản sao lưu lưu ở nơi mà trong một khoảng thời gian định trước, không ai xoá hay ghi đè được, kể cả người có khoá quản trị |
| Tài khoản riêng | Tài khoản dùng để ghi bản sao lưu khác hẳn tài khoản quản trị hệ thống, và không đăng nhập được từ máy chủ đang chạy dịch vụ |
| Một bản nằm ngoài | Ít nhất một bản ở hệ thống lưu trữ khác, không nối chung quyền với hệ thống chính |
Cloudzone có hệ thống lưu trữ đối tượng dùng cho mục đích này, xem chuyên mục Object Storage. Nói với đội ngũ kỹ thuật về nhu cầu chống xoá khi thiết kế, vì đây là thứ cần bật từ đầu.
5. Nền tảng: quy tắc ba hai một
Cách xếp được dùng rộng rãi và vẫn đúng:
Ba bản dữ liệu, trên hai loại thiết bị lưu trữ khác nhau, trong đó một bản ở nơi khác về địa lý.
Áp vào Private Cloud:
| Bản | Nằm ở đâu |
|---|---|
| Bản 1 | Dữ liệu đang chạy trên cụm |
| Bản 2 | Bản sao lưu trên hệ thống lưu trữ riêng, cùng trung tâm dữ liệu |
| Bản 3 | Bản sao lưu ở trung tâm dữ liệu khác, hoặc trên hệ thống lưu trữ đối tượng |
Bản thứ ba là bản hay bị bỏ. Nó cũng là bản duy nhất còn lại trong tình huống xấu nhất.
6. Việc quan trọng nhất và cũng bị bỏ nhiều nhất: thử phục hồi
Một bản sao lưu chưa từng được phục hồi thử thì chưa biết nó có dùng được không.
Những cách bản sao lưu im lặng trở nên vô dụng:
- Công việc sao lưu chạy đúng giờ nhưng bỏ sót một phân vùng, và không ai đọc nhật ký.
- Cơ sở dữ liệu được chép lúc đang ghi, nên bản chép không nhất quán và không mở lên được.
- Tệp bản sao lưu bị mã hoá, nhưng khoá giải mã chỉ nằm trên chính máy đã hỏng.
- Bản sao lưu đủ nhưng không ai biết quy trình phục hồi, và người biết đã nghỉ việc.
Cách phòng: đặt lịch thử phục hồi, ít nhất một lần mỗi quý.
Nội dung một lượt thử:
- Chọn một bản sao lưu bất kỳ, không phải bản mới nhất.
- Phục hồi lên một máy ảo riêng, không phục hồi lên máy đang chạy.
- Bấm giờ, ghi lại mất bao lâu.
- Mở ứng dụng lên, kiểm vài bản ghi dữ liệu thật.
- Ghi lại các bước vào tài liệu để lần sau ai làm cũng được.
- Xoá máy ảo thử.
Bước 3 và bước 5 là hai bước giá trị nhất. Bước 3 cho con số thật để cam kết thời gian dừng. Bước 5 biến việc phục hồi từ chỗ phụ thuộc một người thành một quy trình.
7. Trên Private Cloud: ai lo phần nào
Ranh giới cụ thể tuỳ hợp đồng của quý Khách hàng, nên hãy xác nhận lại với đội ngũ kỹ thuật khi bàn giao. Cách chia thường gặp:
| Việc | Thường thuộc về |
|---|---|
| Sao lưu lớp hạ tầng: cụm, lớp ảo hoá, hệ thống lưu trữ | Cloudzone |
| Sao lưu máy ảo ở mức toàn máy | Thoả thuận theo hợp đồng |
| Sao lưu bên trong máy ảo: cơ sở dữ liệu, tệp ứng dụng | Thường là quý Khách hàng |
| Quyết định giữ bao nhiêu bản, bao lâu | Quý Khách hàng |
| Thử phục hồi định kỳ | Quý Khách hàng, Cloudzone hỗ trợ khi cần |
Điều đáng làm rõ ngay trong buổi bàn giao: khi cần phục hồi thì gọi ai, và quy trình đi thế nào. Giải đáp lúc đang có sự cố là lúc tệ nhất để tìm hiểu việc này.
8. Riêng với cơ sở dữ liệu
Cơ sở dữ liệu cần cách sao lưu riêng, vì chép tệp lúc nó đang ghi thường cho ra bản không mở lên được.
Hai cách đúng:
# MySQL, MariaDB: xuat ra tep, nhat quan o muc giao dich
mysqldump --single-transaction --routines --triggers \
-u <nguoi-dung> -p <ten-co-so-du-lieu> | gzip > /duong/dan/ban-sao.sql.gz
# PostgreSQL
pg_dump -Fc -U <nguoi-dung> <ten-co-so-du-lieu> > /duong/dan/ban-sao.dump
Tham số --single-transaction là phần quan trọng ở lệnh thứ nhất: nó làm bản xuất ra nhất quán mà không phải khoá bảng, nên dịch vụ vẫn chạy trong lúc sao lưu.
Với cơ sở dữ liệu lớn hoặc yêu cầu mất ít dữ liệu nhất, cần thêm lớp ghi liên tục bản ghi thay đổi, để phục hồi về được một thời điểm bất kỳ chứ không chỉ về các mốc sao lưu. Đây là việc nên bàn với đội ngũ kỹ thuật, vì nó đổi cả cách thiết kế chỗ lưu.
Kiểm bản xuất có đọc được không, ngay sau khi xuất:
gzip -t /duong/dan/ban-sao.sql.gz && echo "tep con nguyen ven"
Lệnh này chỉ kiểm tệp nén còn nguyên vẹn, chưa kiểm nội dung bên trong có nhất quán. Phần đó chỉ lượt thử phục hồi ở mục 6 trả lời được.
9. Bảng kiểm nhanh
| Câu hỏi | Nếu chưa trả lời được |
|---|---|
| Sao lưu chạy lần cuối lúc nào, có thành công không? | Chưa có ai đọc nhật ký sao lưu. Đặt cảnh báo khi công việc thất bại |
| Bản sao lưu nằm ở mấy nơi? | Nếu chỉ một nơi, chưa đạt quy tắc ba hai một |
| Máy chủ đang chạy có xoá được bản sao lưu không? | Nếu có, mã độc tống tiền cũng xoá được |
| Phục hồi mất bao lâu? | Chưa thử phục hồi lần nào |
| Ai biết cách phục hồi? | Nếu là một người duy nhất, đó là điểm yếu cần ghi tài liệu |
| Lần thử phục hồi gần nhất là khi nào? | Quá một quý thì nên thử lại |
10. Khi cần hỗ trợ
Quý Khách hàng muốn rà lại chính sách sao lưu đang có, hoặc cần phục hồi gấp, hãy nhắn qua khung chat ở góc phải màn hình. Trường hợp cần phục hồi, nói rõ cần về mốc thời gian nào và phạm vi gồm những gì.
Muốn thêm lớp bảo vệ hoặc mở rộng chỗ lưu bản sao lưu thì liên hệ đội ngũ kinh doanh Cloudzone.