Bài viết hôm nay mình sẽ chia sẻ về Proxmox Backup Server – giải pháp sao lưu máy ảo VM và container LXC dành cho nền tảng ảo hóa Proxmox. Đây là công cụ không thể thiếu để bảo đảm an toàn cho hệ thống Proxmox của bạn.

1. Giới thiệu Proxmox Backup Server

Proxmox Backup Server (PBS) là giải pháp sao lưu và phục hồi máy ảo VM / LXC Container. Nhờ hỗ trợ tính năng sao lưu từng phần (incremental) và chống trùng lập (deduplicated backups), PBS giúp giảm thiểu tối đa băng thông hệ thống và không gian lưu trữ cho các bản bản backup. Ngoài ra nó còn đang trang bị thêm các tính năng mã hóa giúp bảo đảm an toàn cho cho các bản backup.

Proxmox Backup Server là anh em một nhà với Proxmox nên có thể được coi là giáp pháp tốt nhất để sao lưu máy ảo VM và container LXC được thiết lập trên Proxmox. PBS có giao diện web trực quan tương tự như Proxmox giúp việc quản lý tiện lợi hơn.

2. Cài đặt PBS

Theo hướng dẫn từ website chính thức, chúng ta cần tải bản ISO về rồi sau đó tạo Boot USB để cài đặt trực tiếp lên máy chủ. Cách này gọi là bare-metal installation.

Mình không muốn cài bare-metal chọn cách cài đặt bằng Docker cho nhanh gọn lẹ. Có thể tận dụng các VPS đang có để làm nơi backup cho Proxmox luôn.

Mình sử dụng repo này: https://github.com/ayufan/pve-backup-server-dockerfiles

Yêu cầu sử dụng máy chủ / máy ảo đã được cài đặt Docker & Docker Compose.

Tạo thư mục mới cho PBS và file compose.yml

mkdir ~/pbs
cd ~/pbs
nano compose.ymlCode language: Bash (bash)

Nhập vào nội dung sau

services:
  pbs:
    image: ayufan/proxmox-backup-server:latest
    ports:
      - 8007:8007
    mem_limit: 2G
    volumes:
      - ./pbs_etc:/etc/proxmox-backup
      - ./pbs_logs:/var/log/proxmox-backup
      - ./pbs_lib:/var/lib/proxmox-backup
      - ./backups:/backups
    tmpfs:
      - /run
    cap_add: # smartctl support
      - SYS_RAWIO
    devices:
      - /dev/sda
    restart: unless-stopped
    stop_signal: SIGHUP
Code language: YAML (yaml)

Kích hoạt Proxmox Backup Server

docker compose up -dCode language: Nginx (nginx)

Truy cập vào PBS ở địa chỉ https://<IP>:8007

3. Đăng nhập PBS

Ở lần đăng nhập đầu tiên, sử dụng thông tin mặc định như sau

  • Username: admin
  • Password: pbspbs
  • Realm: Proxmox Backup authentication server

Sau khi đăng nhập, mình sẽ truy cập vào mục Access Control, bấm nút Add để tạo tài khoản mới

Tiếp theo, chuyển qua tab Permission, nhất nút Add để cấp quyền admin cho tài khoản vừa tạo.

Tiếp theo, thoát khỏi tài khoản admin, đăng nhập vào tài khoản mới. Sau đó xóa tài khoản admin đi để tối ưu bảo mật.

4. Tạo Datastore trên PBS

Bấm vào nút Add Datastore ở menu bên trái, sau đó nhập vào thông tin như hình. Backing Path: /backups là đường dẫn đã được khai báo ở dòng 11 trong file compose.yml ở bước 2.

Datastore mới với tên gọi backups đã hiện ra trong giao diện quản lý của Proxmox Backup Server.

Bấm vào nút Show Connection Information để xem thông tin chi tiết về datastore này. Thông tin hiện ra sẽ được dùng để cấu hình Storage trên Proxmox ở bước kế tiếp.

5. Tạo Storage mới trên Proxmox

Truy cập vào Proxmox, chọn mục Datacenter –> Storage, bấm nút Add và chọn Proxmox Backup Server

Nhập vào thông tin của Proxmox Backup Server đã hiển thị ở bước 4.

Sau khi hoàn thành, bạn sẽ thấy ở menu bên trái của Proxmox xuất hiện thêm một khu vực lưu trữ mới.

6. Lên lịch sao lưu VM / LXC

Truy cập vào phần Datacenter –> Backup, bấm nút Add để tạo lịch sao lưu mới.

  • Storage: chọn tên của PBS vừa mới thêm vào Proxmox
  • Schedule: chọn lịch sao lưu tùy theo nhu cầu của bjn
  • Selection mode: Include selected VM, sau đó chọn các VM, LXC cần sao lưu

Bấm qua tab Retention để cấu hình số lượng lượt sao lưu cần lưu trữ. Mình chọn Keep Last: 10, nghĩa là sẽ lưu trữ 10 bản sao lưu gần nhất, các bản cũ hơn sẽ tự động bị xóa.

Sau khi tạo xong, có thể bấm vào nút Run now để cho nó thực thi tác vụ ngay lập tức.

Tùy vào dung lượng của VM / LXC và chất lượng đường truyền mà thời gian sao lưu sẽ dài ngắn khác nhau. Sau khi sao lưu thành công, bên Promox Backup Server sẽ hiện ra thông tin các bản backup vừa mới được tải lên từ Proxmox.

7. Phục hồi VM / LXC từ bản sao lưu

Thao tác theo các bước sau để phục hồi lại VM / LXC từ bản sao lưu

  1. Truy cập vào phần Storage
  2. Chọn Backups
  3. Chọn bản sao lưu cần phục hồi
  4. Bấm nút Resotre
  5. Tùy chỉnh thông số sau đó bấm nút Restore

Chờ vài phút để Proxmox tải bản backup từ PBS về và phục hồi lại trên hệ thống.


Hướng dẫn sử dụng Proxmox Backup Server đã hết. Chúc bạn thực hiện thành công!

Lưu ý: Nếu bạn cần hỗ trợ kỹ thuật, vui lòng gửi câu hỏi trực tiếp ở phần Thảo luận bên dưới, mình sẽ trả lời sớm. Đừng vào hỏi trong fanpage Yêu Chạy Bộ, sẽ không có phản hồi đâu!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *


6 Comments

  1. Cho e hỏi vì sao k kết nối ổ đĩa vào thêm rồi dùng luôn tính năng backup của Proxmox ạ. Cái này là để lưu khác chỗ tránh hư hỏng thiên tai các kiểu phải không a? Nếu e chỉ có nhu cầu backup server cài wordpress thì nên dùng cách nào để dung lượng chứa backup ít nhất ạ

    1. Nếu kết nối trực tiếp ổ đĩa vào thì không có tính năng chống trùng lập (deduplicaton). Ví dụ: LXC nặng 10GB, sau 7 ngày thì sẽ tốn 70GB lưu trữ. Còn dùng Proxmox Backup Server thì sau 7 ngày cũng chỉ tốn cùng lắm là 11GB, nó chỉ tốn thêm chỗ cho sự khác nhau giữa mỗi bản sao lưu. Proxmox mà đang chạy cỡ 10 LXC trở lên thì sẽ tiết kiệm được rất nhiều dung lượng lưu trữ cho các bản backup nếu dùng PBS. Ngoài ra tiết kiệm băng thông mỗi khi backup nữa.

      1. E có thử mấy ngày nay mặc dù LXC của e gần như chả có thay đổi gì, không upload gì thêm lên web hay gì cả mà mỗi bản backup đều đang có dung lượng giống nhau. Lần lượt đều là 3Gb hết ạ. Không biết có cấu hình sai gì không

        1. Dung lượng LXC nó hiển thị trên hệ thống không đổi là đúng rồi em. Quan trọng các bản backup nó chiếm bao nhiêu dung lượng lưu trữ. Dùng ncdu check thử, sẽ thấy dung lượng nhỏ bất ngờ nhé

  2. Bác ơi cho e hỏi e đang cài Docker trên LXC Ubuntu (Proxmox). E có cài theo hướng dẫn nhưng chạy lênh docker compose thì bị lỗi này. Không biết phải fix tnao ạ 🙁

    Error response from daemon: error gathering device information while adding custom device “/dev/sda”: no such file or directory