Sao lưu Phần 7: Kết luận

Sao lưu Phần 7: Kết luận

Ghi chú này hoàn tất chu trình sao lưu. Nó sẽ thảo luận về cách tổ chức hợp lý của một máy chủ chuyên dụng (hoặc VPS), thuận tiện cho việc sao lưu và cũng sẽ cung cấp tùy chọn để khôi phục nhanh chóng máy chủ từ bản sao lưu mà không có nhiều thời gian ngừng hoạt động trong trường hợp xảy ra thảm họa.

Dữ liệu thô

Một máy chủ chuyên dụng thường có ít nhất hai ổ cứng dùng để tổ chức mảng RAID cấp một (máy nhân bản). Điều này là cần thiết để có thể tiếp tục vận hành máy chủ nếu một đĩa bị lỗi. Nếu đây là máy chủ chuyên dụng thông thường, có thể có bộ điều khiển RAID phần cứng riêng với công nghệ bộ nhớ đệm hoạt động trên SSD, để ngoài ổ cứng thông thường, có thể kết nối một hoặc nhiều ổ SSD. Đôi khi các máy chủ chuyên dụng được cung cấp, trong đó các ổ đĩa cục bộ duy nhất là SATADOM (đĩa nhỏ, có cấu trúc là ổ đĩa flash được kết nối với cổng SATA) hoặc thậm chí là ổ đĩa flash nhỏ thông thường (8-16GB) được kết nối với một cổng bên trong đặc biệt và dữ liệu được lấy từ hệ thống lưu trữ, được kết nối qua mạng lưu trữ chuyên dụng (Ethernet 10G, FC, v.v.) và có các máy chủ chuyên dụng được tải trực tiếp từ hệ thống lưu trữ. Tôi sẽ không xem xét các tùy chọn như vậy, vì trong những trường hợp như vậy, nhiệm vụ sao lưu máy chủ được chuyển giao dễ dàng cho chuyên gia bảo trì hệ thống lưu trữ; thông thường có nhiều công nghệ độc quyền khác nhau để tạo ảnh chụp nhanh, chống trùng lặp tích hợp và những niềm vui khác của quản trị viên hệ thống , được thảo luận trong các phần trước của loạt bài này. Dung lượng mảng đĩa của máy chủ chuyên dụng có thể lên tới vài chục terabyte, tùy thuộc vào số lượng và kích thước của các đĩa được kết nối với máy chủ. Trong trường hợp của VPS, dung lượng khiêm tốn hơn: thường không quá 100GB (nhưng cũng có nhiều hơn) và giá cước cho VPS đó có thể dễ dàng đắt hơn các máy chủ chuyên dụng rẻ nhất từ ​​cùng một máy chủ. VPS thường có một ổ đĩa vì sẽ có một hệ thống lưu trữ (hoặc thứ gì đó siêu hội tụ) bên dưới nó. Đôi khi một VPS có nhiều ổ đĩa với các đặc điểm khác nhau, phục vụ các mục đích khác nhau:

  • hệ thống nhỏ - để cài đặt hệ điều hành;
  • lưu trữ dữ liệu người dùng lớn.

Khi bạn cài đặt lại hệ thống bằng bảng điều khiển, đĩa chứa dữ liệu người dùng sẽ không bị ghi đè nhưng đĩa hệ thống sẽ được nạp lại hoàn toàn. Ngoài ra, trong trường hợp VPS, nhà cung cấp dịch vụ lưu trữ có thể cung cấp nút chụp ảnh nhanh trạng thái của VPS (hoặc đĩa), nhưng nếu bạn cài đặt hệ điều hành của riêng mình hoặc quên kích hoạt dịch vụ mong muốn bên trong VPS, một số dữ liệu vẫn có thể bị mất. Ngoài nút bấm, dịch vụ lưu trữ dữ liệu thường được cung cấp, thường rất hạn chế. Thông thường, đây là tài khoản có quyền truy cập qua FTP hoặc SFTP, đôi khi cùng với SSH, với trình bao rút gọn (ví dụ: rbash) hoặc hạn chế chạy lệnh thông qua ủy quyền (thông qua ForcedCommand).

Một máy chủ chuyên dụng được kết nối với mạng bằng hai cổng có tốc độ 1 Gbps, đôi khi đây có thể là những thẻ có tốc độ 10 Gbps. VPS thường có một giao diện mạng. Thông thường, các trung tâm dữ liệu không giới hạn tốc độ mạng trong trung tâm dữ liệu nhưng chúng giới hạn tốc độ truy cập Internet.

Tải thông thường của máy chủ chuyên dụng hoặc VPS như vậy là máy chủ web, cơ sở dữ liệu và máy chủ ứng dụng. Đôi khi các dịch vụ phụ trợ bổ sung khác nhau có thể được cài đặt, bao gồm cả máy chủ web hoặc cơ sở dữ liệu: công cụ tìm kiếm, hệ thống thư, v.v.

Một máy chủ được chuẩn bị đặc biệt đóng vai trò như một không gian để lưu trữ các bản sao lưu, chúng tôi sẽ viết chi tiết hơn về nó sau.

Tổ chức logic của hệ thống đĩa

Nếu bạn có bộ điều khiển RAID hoặc VPS có một đĩa và không có tùy chọn đặc biệt nào cho hoạt động của hệ thống con đĩa (ví dụ: một đĩa nhanh riêng cho cơ sở dữ liệu), tất cả dung lượng trống sẽ được chia như sau: một phân vùng được tạo và một nhóm khối lượng LVM được tạo trên đầu nó, một số khối được tạo trong đó: 2 khối nhỏ có cùng kích thước, được sử dụng làm hệ thống tệp gốc (được thay đổi từng cái một trong quá trình cập nhật để có khả năng khôi phục nhanh chóng, ý tưởng được chọn từ bản phân phối Tính toán Linux), một ý tưởng khác dành cho phân vùng trao đổi, phần không gian trống còn lại được chia thành các khối nhỏ, được sử dụng làm hệ thống tệp gốc cho các thùng chứa chính thức, đĩa cho máy ảo, tệp hệ thống dành cho các tài khoản trong /home (mỗi tài khoản có hệ thống tệp riêng), hệ thống tệp dành cho vùng chứa ứng dụng.

Lưu ý quan trọng: các tập phải hoàn toàn khép kín, tức là. không nên phụ thuộc vào nhau hoặc vào hệ thống tập tin gốc. Trong trường hợp máy ảo hoặc vùng chứa, điểm này được quan sát tự động. Nếu đây là vùng chứa ứng dụng hoặc thư mục chính, bạn nên nghĩ đến việc tách các tệp cấu hình của máy chủ web và các dịch vụ khác theo cách loại bỏ sự phụ thuộc giữa các ổ đĩa càng nhiều càng tốt. Ví dụ: mỗi trang web chạy từ người dùng riêng của nó, các tệp cấu hình trang web nằm trong thư mục chính của người dùng, trong cài đặt máy chủ web, các tệp cấu hình trang web không được bao gồm qua /etc/nginx/conf.d/.conf và, ví dụ: /home//configs/nginx/*.conf

Nếu có nhiều ổ đĩa, bạn có thể tạo một mảng RAID phần mềm (và định cấu hình bộ nhớ đệm của nó trên ổ SSD, nếu có nhu cầu và cơ hội), trên hết, bạn có thể xây dựng LVM theo các quy tắc được đề xuất ở trên. Cũng trong trường hợp này, bạn có thể sử dụng ZFS hoặc BtrFS, nhưng bạn nên suy nghĩ kỹ về điều này: cả hai đều yêu cầu cách tiếp cận tài nguyên nghiêm túc hơn nhiều và ngoài ra, ZFS không được bao gồm trong nhân Linux.

Bất kể sơ đồ nào được sử dụng, luôn cần ước tính trước tốc độ gần đúng của việc ghi các thay đổi vào đĩa, sau đó tính toán dung lượng trống sẽ được dành riêng để tạo ảnh chụp nhanh. Ví dụ: nếu máy chủ của chúng tôi ghi dữ liệu với tốc độ 10 megabyte mỗi giây và kích thước của toàn bộ mảng dữ liệu là 10 terabyte - thời gian đồng bộ hóa có thể đạt tới một ngày (22 giờ - đây là khối lượng như vậy sẽ được truyền qua mạng 1 Gbps) - cần dự trữ khoảng 800 GB . Trong thực tế, con số sẽ nhỏ hơn, bạn có thể chia nó cho số khối hợp lý một cách an toàn.

Thiết bị máy chủ lưu trữ dự phòng

Sự khác biệt chính giữa một máy chủ lưu trữ các bản sao lưu là các ổ đĩa lớn, rẻ và tương đối chậm. Vì các ổ cứng hiện đại đã vượt quá ngưỡng 10TB trong một đĩa nên cần phải sử dụng hệ thống tệp hoặc RAID có tổng kiểm tra, vì trong quá trình xây dựng lại mảng hoặc khôi phục hệ thống tệp (vài ngày!) đĩa thứ hai có thể bị lỗi do để tăng tải. Trên các đĩa có dung lượng lên tới 1TB, điều này không quá nhạy cảm. Để mô tả đơn giản, tôi giả sử rằng không gian đĩa được chia thành hai phần có kích thước gần bằng nhau (ví dụ: sử dụng LVM):

  • khối lượng tương ứng với các máy chủ được sử dụng để lưu trữ dữ liệu người dùng (bản sao lưu cuối cùng được thực hiện sẽ được triển khai trên chúng để xác minh);
  • các tập được sử dụng làm kho lưu trữ BorgBackup (dữ liệu để sao lưu sẽ được đưa trực tiếp vào đây).

Nguyên tắc hoạt động là các khối riêng biệt được tạo cho mỗi máy chủ cho kho lưu trữ BorgBackup, nơi dữ liệu từ các máy chủ chiến đấu sẽ được chuyển đến. Các kho lưu trữ hoạt động ở chế độ chỉ nối thêm, giúp loại bỏ khả năng cố ý xóa dữ liệu và do tính năng chống trùng lặp và dọn dẹp định kỳ các kho từ các bản sao lưu cũ (các bản sao hàng năm vẫn còn, hàng tháng cho năm ngoái, hàng tuần cho tháng trước, hàng ngày cho năm ngoái). tuần trước, có thể trong trường hợp đặc biệt - hàng giờ cho ngày cuối cùng: tổng cộng 24 + 7 + 4 + 12 + hàng năm - khoảng 50 bản cho mỗi máy chủ).
Kho lưu trữ BorgBackup không kích hoạt chế độ chỉ nối thêm; thay vào đó, ForcedCommand trong .ssh/authorized_keys được sử dụng giống như thế này:

from="адрес сервера",command="/usr/local/bin/borg serve --append-only --restrict-to-path /home/servername/borgbackup/",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding,no-user-rc AAAAA.......

Đường dẫn được chỉ định chứa một tập lệnh bao bọc trên đầu borg, ngoài việc khởi chạy tệp nhị phân với các tham số, còn bắt đầu quá trình khôi phục bản sao lưu sau khi dữ liệu bị xóa. Để thực hiện việc này, tập lệnh bao bọc sẽ tạo một tệp thẻ bên cạnh kho lưu trữ tương ứng. Bản sao lưu cuối cùng được thực hiện sẽ tự động được khôi phục về phân vùng logic tương ứng sau khi quá trình điền dữ liệu hoàn tất.

Thiết kế này cho phép bạn định kỳ dọn dẹp các bản sao lưu không cần thiết, đồng thời ngăn các máy chủ chiến đấu xóa bất kỳ thứ gì trên máy chủ lưu trữ dự phòng.

Quá trình sao lưu

Người khởi xướng quá trình sao lưu là máy chủ chuyên dụng hoặc chính VPS, vì sơ đồ này mang lại nhiều quyền kiểm soát hơn đối với quá trình sao lưu từ phía máy chủ này. Đầu tiên, một ảnh chụp nhanh về trạng thái của hệ thống tệp gốc đang hoạt động sẽ được chụp, được gắn và tải lên bằng BorgBackup lên máy chủ lưu trữ dự phòng. Sau khi thu thập dữ liệu hoàn tất, ảnh chụp nhanh sẽ được ngắt kết nối và xóa.

Nếu có một cơ sở dữ liệu nhỏ (tối đa 1 GB cho mỗi trang), một kết xuất cơ sở dữ liệu sẽ được tạo, được lưu trong ổ đĩa logic thích hợp, nơi chứa phần còn lại của dữ liệu cho cùng một trang, nhưng sao cho kết xuất được lưu trữ. không thể truy cập thông qua máy chủ web. Nếu cơ sở dữ liệu lớn, bạn nên định cấu hình loại bỏ dữ liệu “nóng”, chẳng hạn như sử dụng xtrabackup cho MySQL hoặc làm việc với WAL với archive_command trong PostgreSQL. Trong trường hợp này, cơ sở dữ liệu sẽ được khôi phục riêng biệt với dữ liệu trang web.

Nếu sử dụng vùng chứa hoặc máy ảo, bạn nên định cấu hình qemu-guest-agent, CRIU hoặc các công nghệ cần thiết khác. Trong các trường hợp khác, hầu hết các cài đặt bổ sung thường không cần thiết - chúng tôi chỉ cần tạo ảnh chụp nhanh của các khối hợp lý, sau đó được xử lý theo cách tương tự như ảnh chụp nhanh về trạng thái của hệ thống tệp gốc. Sau khi dữ liệu được chụp, hình ảnh sẽ bị xóa.

Công việc tiếp theo được thực hiện trên máy chủ lưu trữ dự phòng:

  • bản sao lưu cuối cùng được thực hiện trong mỗi kho lưu trữ được kiểm tra,
  • sự hiện diện của tệp đánh dấu được kiểm tra, cho biết quá trình thu thập dữ liệu đã hoàn tất,
  • dữ liệu được mở rộng đến khối lượng cục bộ tương ứng,
  • tập tin thẻ đã bị xóa

Quá trình khôi phục máy chủ

Nếu máy chủ chính bị hỏng, thì một máy chủ chuyên dụng tương tự sẽ được khởi chạy, khởi động từ một số hình ảnh tiêu chuẩn. Nhiều khả năng quá trình tải xuống sẽ diễn ra qua mạng, nhưng kỹ thuật viên trung tâm dữ liệu đang thiết lập máy chủ có thể sao chép ngay hình ảnh tiêu chuẩn này vào một trong các đĩa. Quá trình tải xuống diễn ra vào RAM, sau đó quá trình khôi phục bắt đầu:

  • một yêu cầu được đưa ra để đính kèm một thiết bị khối thông qua iscsinbd hoặc giao thức tương tự khác vào một ổ đĩa logic chứa hệ thống tệp gốc của máy chủ đã ngừng hoạt động; Vì hệ thống tập tin gốc phải nhỏ nên bước này sẽ được hoàn thành sau vài phút. Bộ nạp khởi động cũng được khôi phục;
  • cấu trúc của các khối logic cục bộ được tạo lại, các khối logic được gắn từ máy chủ dự phòng bằng mô-đun hạt nhân dm_clone: ​​quá trình khôi phục dữ liệu bắt đầu và các thay đổi được ghi ngay lập tức vào đĩa cục bộ
  • một vùng chứa được khởi chạy với tất cả các đĩa vật lý có sẵn - chức năng của máy chủ được khôi phục hoàn toàn nhưng hiệu suất bị giảm;
  • sau khi hoàn tất đồng bộ hóa dữ liệu, các ổ đĩa logic từ máy chủ dự phòng sẽ bị ngắt kết nối, vùng chứa bị tắt và máy chủ được khởi động lại;

Sau khi khởi động lại, máy chủ sẽ có tất cả dữ liệu có tại thời điểm tạo bản sao lưu và cũng sẽ bao gồm tất cả các thay đổi được thực hiện trong quá trình khôi phục.

Các bài viết khác trong loạt bài

Sao lưu, phần 1: Tại sao cần sao lưu, tổng quan về các phương pháp, công nghệ
Sao lưu Phần 2: Xem xét và thử nghiệm các công cụ sao lưu dựa trên rsync
Backup Phần 3: Rà soát, kiểm tra tính trùng lặp, trùng lặp
Backup Part 4: Review và test zbackup, restic, borgbackup
Sao lưu Phần 5: Kiểm tra Bacula và Veeam Backup cho Linux
Backup: phần theo yêu cầu của độc giả: review AMANDA, UrBackup, BackupPC
Sao lưu Phần 6: So sánh các công cụ sao lưu
Sao lưu Phần 7: Kết luận

Tôi mời bạn thảo luận về phương án được đề xuất trong phần bình luận, cảm ơn bạn đã quan tâm!

Nguồn: www.habr.com

Thêm một lời nhận xét