Quay lại danh sách
Tin tức công nghệ

Hướng Dẫn Cấu Hình Borgmatic: Tự Động Hóa Sao Lưu Toàn Diện VPS Lên Cloudflare R2 Hàng Ngày

30 tháng 5, 2026

Giới thiệu về giải pháp sao lưu toàn diện cho VPS doanh nghiệp

Trong kỷ nguyên số, dữ liệu được ví như dòng máu của mọi doanh nghiệp. Đối với các hệ thống vận hành trên VPS (Virtual Private Server), rủi ro mất mát dữ liệu luôn chực chờ từ nhiều phía: lỗi phần cứng, lỗ hổng phần mềm, sự cố cấu hình, hoặc nghiêm trọng hơn là các cuộc tấn công ransomware. Việc thiết lập một quy trình sao lưu (backup) tự động, an toàn và tối ưu chi phí không còn là một lựa chọn, mà là yêu cầu bắt buộc đối với các nhà quản trị hệ thống chuyên nghiệp.

Tuy nhiên, các phương pháp backup truyền thống như nén file .tar.gz thủ công và tải lên Google Drive thường bộc lộ nhiều khuyết điểm: không có tính năng mã hóa đầu cuối, tiêu tốn băng thông do không thể sao lưu trùng lặp (deduplication), và khó quản lý khi dữ liệu phình to. Để giải quyết triệt để bài toán này, sự kết hợp giữa Borgmatic (công cụ quản lý Borg Backup mạnh mẽ) và Cloudflare R2 (Object Storage thế hệ mới miễn phí chi phí băng thông tải ra - Egress fee) chính là giải pháp tối ưu hàng đầu hiện nay.

Tại sao nên chọn Borgmatic và Cloudflare R2?

Trước khi đi vào chi tiết kỹ thuật, hãy cùng điểm qua những lý do vì sao sự kết hợp này lại trở thành tiêu chuẩn vàng cho các sysadmin:

  • Borgmatic (Borg Backup): Khả năng sao lưu trùng lặp (deduplication) cực kỳ mạnh mẽ, chỉ lưu trữ những thay đổi ở cấp độ block giúp tiết kiệm tối đa dung lượng. Toàn bộ dữ liệu được mã hóa phía máy khách (Client-side encryption) trước khi rời khỏi VPS, đảm bảo tính bảo mật tuyệt đối. Ngoài ra, Borgmatic còn hỗ trợ backup database (MySQL, PostgreSQL) nguyên khối một cách nhất quán.
  • Cloudflare R2 Storage: Là dịch vụ lưu trữ đối tượng tương thích hoàn toàn với S3 API nhưng có một lợi thế vượt trội: không tính phí băng thông tải ra (Zero Egress Fees). Điều này giúp doanh nghiệp giải phóng khỏi nỗi lo chi phí phát sinh khi cần khôi phục (restore) lượng dữ liệu lớn.
---

Quy trình chuẩn bị hệ thống

Để bắt đầu triển khai, bạn cần chuẩn bị một VPS chạy hệ điều hành Linux (Ubuntu/Debian được khuyến khích trong bài viết này) với quyền root hoặc sudo, cùng một tài khoản Cloudflare đã kích hoạt tính năng R2.

Bước 1: Khởi tạo Bucket và lấy thông tin xác thực trên Cloudflare R2

Truy cập vào bảng điều khiển Cloudflare, chọn mục R2 và tiến hành các bước sau:

  1. Nhấp vào Create bucket, đặt tên cho bucket của bạn (ví dụ: vps-production-backup).
  2. Sau khi tạo xong, quay lại trang quản lý R2, chọn Manage R2 API Tokens.
  3. Chọn Create API Token, cấp quyền Edit (hoặc Read/Write) cho token này.
  4. Lưu lại các thông tin quan trọng bao gồm: Access Key ID, Secret Access Key, và Endpoint URL (có định dạng S3 tương thích).

Bước 2: Cài đặt Borg, Borgmatic và các công cụ hỗ trợ trên VPS

Chúng ta cần cài đặt Borg Backup, Borgmatic và công cụ rclone (được dùng để đồng bộ kho lưu trữ Borg lên Cloudflare R2 thông qua giao thức S3).

Chạy các lệnh sau trên terminal của VPS:

sudo apt update
sudo apt install borgbackup borgmatic rclone -y
---

Cấu hình chi tiết Borgmatic và Rclone

Bước 3: Cấu hình Rclone để kết nối Cloudflare R2

Chạy lệnh rclone config và tạo một remote mới tên là cloudflare_r2. Chọn loại lưu trữ là Amazon S3 Compliant, sau đó nhập các thông tin access_key_id, secret_access_key, và endpoint đã lấy ở Bước 1. Bạn có thể kiểm tra kết nối bằng lệnh:

rclone lsf cloudflare_r2:vps-production-backup

Nếu lệnh trả về trống (hoặc danh sách file hiện có) mà không xuất hiện lỗi, kết nối đã thành công.

Bước 4: Tạo file cấu hình Borgmatic

Borgmatic quản lý mọi hành vi sao lưu thông qua một file YAML duy nhất. Hãy tạo file cấu hình tại đường dẫn /etc/borgmatic/config.yaml bằng lệnh sudo borgmatic config generate hoặc tự tạo thủ công với nội dung chuẩn hóa sau:

location:
    # Thư mục cục bộ cần sao lưu
    source_directories:
        - /var/www
        - /etc
        - /home
    
    # Kho lưu trữ cục bộ tạm thời trước khi đẩy lên R2
    repositories:
        - /var/backups/borg

storage:
    # Đặt mật khẩu mã hóa cho kho lưu trữ
    encryption_passphrase: "THAY_THE_BANG_MAT_KHAU_BAO_MAT_CUA_BAN"
    compression: lz4

retention:
    # Chính sách lưu trữ phiên bản cũ (Pruning)
    keep_daily: 7
    keep_weekly: 4
    keep_monthly: 6

hooks:
    # Tự động dump database trước khi tiến hành backup file
    mysql_databases:
        - name: all
          username: root
          password: "MAT_KHAU_DATABASE"

    # Đồng bộ dữ liệu lên Cloudflare R2 ngay sau khi Borg hoàn thành
    after_backup:
        - echo "Bắt đầu đồng bộ lên Cloudflare R2..."
        - rclone sync /var/backups/borg cloudflare_r2:vps-production-backup/borg-repo --progress
        - echo "Đồng bộ hoàn tất!"

Lưu ý quan trọng: Hãy chắc chắn rằng bạn đã thay đổi các thông tin nhạy cảm như encryption_passphrase và mật khẩu cơ sở dữ liệu để đảm bảo an toàn.

Bước 5: Khởi tạo kho lưu trữ Borg (Initialization)

Trước khi chạy tác vụ sao lưu đầu tiên, bạn cần khởi tạo kho lưu trữ với cơ chế mã hóa đã chọn trong file cấu hình bằng lệnh sau:

sudo borgmatic init --encryption repokey-blake2
---

Tự động hóa lịch trình với Cron Job hàng ngày

Để quy trình diễn ra hoàn toàn tự động vào mỗi ban đêm (thời điểm lượng truy cập VPS thấp nhất), chúng ta sẽ thiết lập một lịch trình hệ thống.

Borgmatic khi cài đặt thường đi kèm với các file dịch vụ Systemd, tuy nhiên sử dụng Cron Job vẫn là cách tiếp cận trực quan và dễ quản lý nhất. Mở bảng cấu hình cron bằng lệnh:

sudo crontab -e

Thêm dòng sau vào cuối file để hệ thống tự động chạy Borgmatic vào lúc 02:00 sáng mỗi ngày:

0 2 * * * /usr/bin/borgmatic --config /etc/borgmatic/config.yaml --syslog-verbosity 1 > /dev/null 2>&1

Kết quả của tiến trình sẽ được ghi lại trong hệ thống syslog, giúp bạn dễ dàng theo dõi và kiểm tra khi có sự cố xảy ra bằng lệnh grep borgmatic /var/log/syslog.

---

Kịch bản khôi phục dữ liệu (Disaster Recovery)

Một quy trình sao lưu sẽ trở nên vô nghĩa nếu bạn không biết cách khôi phục khi thảm họa xảy ra. Trong trường hợp VPS bị hỏng hoàn toàn, quy trình khôi phục trên một VPS mới sẽ diễn ra như sau:

  • Cài đặt lại Borgmatic và Rclone trên VPS mới.
  • Cấu hình lại Rclone kết nối tới bucket Cloudflare R2 hiện tại.
  • Tải toàn bộ kho lưu trữ từ Cloudflare R2 về thư mục cục bộ:
    rclone sync cloudflare_r2:vps-production-backup/borg-repo /var/backups/borg --progress
  • Sử dụng lệnh của Borgmatic để kiểm tra danh sách các bản sao lưu khả dụng:
    borgmatic list
  • Tiến hành khôi phục toàn bộ hoặc từng file cụ thể theo nhu cầu:
    borgmatic extract --archive
  • Lời kết

    Việc thiết lập hệ thống tự động hóa sao lưu VPS bằng Borgmatic kết hợp Cloudflare R2 mang lại sự an tâm tuyệt đối cho doanh nghiệp với mức chi phí tối ưu nhất. Với cơ chế mã hóa đầu cuối nghiêm ngặt và giải pháp lưu trữ không tốn phí băng thông tải ra, dữ liệu của bạn luôn được đặt trong trạng thái an toàn và sẵn sàng ứng phó với mọi tình huống rủi ro kỹ thuật. Hãy triển khai ngay hôm nay để bảo vệ tài sản số của doanh nghiệp bạn.

    Hướng Dẫn Cấu Hình Borgmatic: Tự Động Hóa Sao Lưu Toàn Diện VPS Lên Cloudflare R2 Hàng Ngày | DPTCloud