Hướng dẫn backup Server Linux bằng Object Storage chi tiết

Ổ cứng server có thể hỏng bất cứ lúc nào, và ransomware hiện đại còn chủ động nhắm vào cả hệ thống backup chứ không chỉ dữ liệu gốc. Nếu bạn đang quản trị server Linux, backup lên S3 Object Storage là giải pháp vừa an toàn vừa tiết kiệm chi phí nhờ tách biệt hoàn toàn khỏi server chính. Bài viết dưới đây hướng dẫn chi tiết cách triển khai từng bước.

Vì sao nên backup server Linux lên Object Storage

So với việc chỉ lưu backup trên ổ cứng phụ của server hoặc NAS nội bộ, Object Storage mang lại một số lợi thế quan trọng khi cần lưu trữ và bảo vệ dữ liệu backup lâu dài:

  • Tối ưu chi phí khi dung lượng backup tăng: Thay vì liên tục đầu tư thêm ổ cứng, NAS hoặc hạ tầng lưu trữ riêng, doanh nghiệp có thể mở rộng dung lượng Object Storage theo nhu cầu sử dụng thực tế.
  • Giảm rủi ro mất dữ liệu do sự cố phần cứng: Backup được lưu trên hạ tầng riêng của nhà cung cấp thay vì phụ thuộc vào một ổ cứng hoặc một server duy nhất. Tùy theo kiến trúc dịch vụ, dữ liệu có thể được bảo vệ bằng cơ chế sao chép hoặc các phương pháp đảm bảo độ bền khác.
  • Tách backup khỏi server production: Đây là lợi ích quan trọng nhất. Khi server Linux gặp lỗi hệ điều hành, hỏng phần cứng hoặc mất dữ liệu, bản backup vẫn được lưu trên một hệ thống độc lập và có thể sử dụng để khôi phục sang môi trường khác.
  • Tăng khả năng bảo vệ trước ransomware và thao tác nhầm: Khi kết hợp với phân quyền truy cập, quản lý Access Key, Versioning hoặc Object Lock, Object Storage có thể hạn chế rủi ro backup bị xóa hoặc ghi đè ngoài ý muốn.

Nhờ đó, Object Storage phù hợp để xây dựng một lớp lưu trữ backup độc lập, dễ mở rộng và hỗ trợ tốt cho kế hoạch khôi phục dữ liệu của server Linux.

vi-sao-nen-backup-server-linux-len-object-storage
Vì sao nên Backup Server Linux lên Object Storage

Chọn công cụ backup phù hợp

Có ba công cụ dòng lệnh phổ biến nhất để backup server Linux lên Object Storage, mỗi công cụ phù hợp với một nhu cầu khác nhau.

Công cụƯu điểm chínhHạn chếPhù hợp với
RcloneCấu hình đơn giản, hỗ trợ hơn 50 loại storage backend, tài liệu phong phúKhông tự động cung cấp cơ chế backup, dedupe và quản lý snapshot; cần kết hợp thêm tính năng hoặc công cụ phù hợp.Người mới bắt đầu, chỉ backup 1-2 server
ResticMã hoá client-side và dedupe tích hợp sẵn, snapshot dễ quản lýCấu hình phức tạp hơn Rclone một chútMôi trường cần bảo mật cao, dữ liệu nhạy cảm
BorgBackupDedupe hiệu quả, phù hợp với backup lặp lại và dữ liệu có nhiều phần trùng lặp.Yêu cầu chạy repository qua SSH hoặc rclone mount, không hỗ trợ S3 trực tiếpDoanh nghiệp backup nhiều server cùng lúc

Với phần hướng dẫn kỹ thuật bên dưới, bài viết sử dụng Rclone làm ví dụ chính vì đây là công cụ phổ biến nhất, dễ tiếp cận với người mới, và tương thích tốt với các Object Storage chuẩn S3.

Chuẩn bị trước khi backup server Linux lên Object Storage

Trước khi bắt đầu, bạn cần chuẩn bị:

  • Access Key và Secret Key: Dùng để xác thực server với Object Storage. Nên tạo credential riêng cho tác vụ backup và giới hạn quyền truy cập ở mức cần thiết.
  • Endpoint của Object Storage: Thông tin này cần thiết khi cấu hình kết nối S3 hoặc S3 Compatible.
  • Bucket riêng cho backup: Không nên dùng chung với bucket chứa dữ liệu ứng dụng để dễ quản lý, phân quyền và thiết lập retention.
  • Xác định dữ liệu cần backup: Ví dụ /var/www, /etc, database hoặc thư mục dữ liệu ứng dụng.
  • Dung lượng trống trên server: Nếu tạo file .tar.gz trước khi upload, server cần đủ dung lượng tạm để lưu file backup.
  • Cài đặt Rclone: Dùng lệnh dưới đây để cài đặt.
curl https://rclone.org/install.sh | sudo bash

Điểm “dung lượng trống trên server” khá quan trọng. Nếu người dùng backup dữ liệu lớn bằng tar.gz, file backup sẽ được tạo trước trên local rồi mới upload. Không nhắc đến điểm này thì người đọc có thể gặp lỗi đầy ổ đĩa.

Hướng dẫn backup server Linux lên Object Storage bằng Rclone

Sau khi đã chuẩn bị đầy đủ access key, bucket và cài đặt Rclone ở phần trên, phần này hướng dẫn bạn thực hiện backup lần đầu qua bốn bước: cấu hình kết nối, tạo file backup, upload lên Object Storage và kiểm tra kết quả. Đây là quy trình backup thủ công để bạn nắm được từng thao tác trước khi chuyển sang tự động hoá bằng Cron ở phần sau.

Bước 1: Cấu hình kết nối Object Storage với Rclone

Chạy lệnh rclone config và làm theo hướng dẫn trên màn hình: chọn tạo remote mới, chọn loại storage là S3 hoặc S3 compatible, nhập access key, secret key và endpoint URL của Object Storage. Đặt tên remote dễ nhớ, ví dụ backupstore, vì tên này sẽ được dùng lại ở các bước tiếp theo.

Bước 2: Tạo file backup dữ liệu cần lưu

Trong ví dụ dưới đây, chúng ta backup thư mục website /var/www và các file cấu hình trong /etc. Bạn cần điều chỉnh danh sách thư mục theo ứng dụng và dữ liệu thực tế trên server.

sudo tar -czvf /tmp/backup-$(date +%Y%m%d).tar.gz \
  --exclude=/proc \
  --exclude=/sys \
  --exclude=/dev \
  --exclude=/tmp \
  /var/www /etc

Lưu ý: lệnh trên chỉ là ví dụ backup file và cấu hình. Nếu server sử dụng MySQL, PostgreSQL hoặc các database khác, bạn nên tạo bản dump database riêng trước khi backup, không nên chỉ sao chép trực tiếp thư mục dữ liệu database khi dịch vụ đang hoạt động nếu chưa có phương án đảm bảo tính nhất quán dữ liệu.

Bước 3: Upload backup lên Object Storage

rclone copy -P \
  /tmp/backup-$(date +%Y%m%d).tar.gz \
  backupstore:ten-bucket/backups/

Nếu muốn đồng bộ toàn bộ thư mục backup thay vì từng file riêng lẻ, dùng rclone sync thay cho rclone copy, tuy nhiên cần lưu ý sync sẽ xoá trên đích những file không còn tồn tại ở nguồn, nên chỉ dùng khi bạn chắc chắn về logic quản lý dữ liệu.

Bước 4: Kiểm tra file backup sau khi upload

Liệt kê file đã upload:

rclone ls backupstore:ten-bucket/backups/

Nếu muốn kiểm tra kỹ hơn, đối chiếu file local và file trên Object Storage để xác nhận dữ liệu không bị lỗi trong quá trình truyền:

rclone check \
  /tmp/backup-$(date +%Y%m%d).tar.gz \
  backupstore:ten-bucket/backups/backup-$(date +%Y%m%d).tar.gz

Tự động backup server Linux lên Object Storage bằng Cron

Backup thủ công dễ bị bỏ sót, vì vậy nên thiết lập cron job để tự động hoá toàn bộ quy trình bằng một script bash gồm các bước sau:

  • Dump database nếu server có sử dụng, ví dụ MySQL hoặc PostgreSQL
  • Nén dữ liệu cần backup thành một file duy nhất
  • Upload file nén lên Object Storage bằng Rclone
  • Xoá file backup tạm trên server sau khi upload thành công để tránh chiếm dung lượng ổ đĩa
  • Ghi log lại kết quả từng lần chạy để dễ kiểm tra khi cần

Sau khi có script hoàn chỉnh, thêm vào crontab để chạy định kỳ, ví dụ mỗi ngày lúc 2 giờ sáng.

0 2 * * * /root/backup-script.sh >> /var/log/backup.log 2>&1

Nên kiểm tra log định kỳ để phát hiện sớm nếu có lần backup bị lỗi, tránh trường hợp phát hiện muộn khi cần restore mới biết backup không thành công.

Bên cạnh tự động hoá backup mới, bạn cũng nên thiết lập chính sách retention để tự động xoá các bản backup cũ, tránh chi phí lưu trữ tăng liên tục theo thời gian. Rclone hỗ trợ lệnh xoá file theo điều kiện thời gian, ví dụ giữ lại backup trong 30 ngày gần nhất và xoá các bản cũ hơn bằng script kết hợp rclone lsf để lọc file theo ngày rồi rclone delete cho các file vượt ngưỡng.

>>> Đọc thêm bài viết: Cloud Server có Snapshot là gì? Lợi ích, cách hoạt động và khi nào nên sử dụng

Xử lý lỗi thường gặp

Trong quá trình backup, một số lỗi phổ biến có thể xảy ra do cấu hình sai hoặc giới hạn kỹ thuật. Dưới đây là các lỗi thường gặp nhất và cách xử lý nhanh.

  • Lỗi kết nối tới Object Storage: kiểm tra lại endpoint URL và access key/secret key đã nhập đúng trong cấu hình remote của Rclone chưa
  • Upload chậm với file dung lượng lớn: thêm flag –s3-chunk-size 200M vào lệnh copy để tăng kích thước chunk khi upload
  • Sai quyền truy cập bucket: kiểm tra lại policy của bucket, đảm bảo access key được cấp đủ quyền đọc và ghi
  • Dung lượng backup tăng quá nhanh: xem lại phần chọn công cụ ở trên để cân nhắc chuyển sang công cụ có dedupe phù hợp hơn với khối lượng dữ liệu hiện tại

Checklist trước khi triển khai

Trước khi đưa quy trình backup vào vận hành chính thức, rà lại danh sách dưới đây để đảm bảo không bỏ sót bước nào.

  • Đã tạo bucket riêng cho backup, tách biệt khỏi dữ liệu ứng dụng
  • Đã kiểm tra access key có đủ quyền đọc và ghi
  • Đã thiết lập cron job chạy backup tự động định kỳ
  • Đã thiết lập chính sách retention để tự động xoá backup cũ
  • Đã thử nghiệm quy trình restore ít nhất một lần
checklist-truoc-khi-trien-khai
Checklist trước khi backup dữ liệu lên S3 Object Storage

Câu hỏi thường gặp

Nên backup server Linux bao lâu một lần? Tần suất phù hợp phụ thuộc vào tốc độ thay đổi dữ liệu, với dữ liệu giao dịch hoặc thay đổi liên tục nên backup hàng ngày, với dữ liệu ít thay đổi có thể backup hàng tuần.

Backup lên Object Storage có an toàn hơn NAS không? Object Storage tách biệt vật lý khỏi hạ tầng server nên hạn chế được rủi ro mất cả dữ liệu gốc lẫn bản backup cùng lúc, điều mà NAS đặt cùng mạng nội bộ với server không đảm bảo được nếu xảy ra tấn công ransomware lan trong mạng.

Chi phí backup lên Object Storage tính thế nào? Chi phí thường tính theo dung lượng lưu trữ GB mỗi tháng, một số nhà cung cấp còn tính thêm phí theo lượt request hoặc egress khi tải dữ liệu ra ngoài.

Backup server Linux lên Object Storage không đòi hỏi hạ tầng phức tạp, chỉ cần chọn đúng công cụ, cấu hình chính xác và duy trì lịch backup tự động đều đặn là đã giảm được phần lớn rủi ro mất dữ liệu. Quan trọng hơn cả công cụ là thói quen: backup định kỳ, kiểm tra integrity sau mỗi lần upload, và thử restore ít nhất một lần để chắc chắn quy trình hoạt động đúng khi thật sự cần đến.

Nếu bạn đang tìm nơi lưu trữ backup tương thích chuẩn S3, dễ tích hợp với Rclone, Restic hay BorgBackup mà không cần điều chỉnh thêm, S3 Storage của LANIT là lựa chọn phù hợp cho cả server cá nhân lẫn hệ thống nhiều server. Liên hệ đội ngũ LANIT để được tư vấn cấu hình phù hợp với nhu cầu backup thực tế của bạn.

Đánh giá bài viết

Nguyễn Đức Hòa

Xin chào, mình là Nguyễn Đức Hoà, hiện đang đảm nhận vị trí Trưởng phòng kỹ thuật tại LANIT. Với 8 năm kinh nghiệm trong mảng System, Network, Security, mình luôn hướng đến việc tìm kiếm và áp dụng các giải pháp kỹ thuật tiên tiến nhất cho mọi dự án. Công việc của mình không chỉ dừng lại ở việc quản lý mà còn mang đến cho khách hàng những giải pháp lưu trữ dữ liệu tốt nhất hiện nay. Rất hy vọng những kinh nghiệm và chia sẻ của mình sẽ mang lại nhiều giá trị hữu ích cho các bạn.

Chat với chúng tôi qua Zalo!
Chat với chúng tôi qua Zalo!