Hướng dẫn cấu hình sao lưu Proxmox VE qua SSH sang máy chủ lưu trữ từ xa
Sao lưu dữ liệu là nguyên tắc vàng trong quản trị hệ thống, đặc biệt khi làm việc với các nền tảng ảo hóa như Proxmox VE. Mặc dù Proxmox cung cấp tính năng sao lưu tích hợp sẵn và rất mạnh mẽ, việc lưu trữ bản sao lưu trực tiếp trên cùng một thiết bị vật lý với máy chủ đang chạy máy ảo tiềm ẩn rủi ro lớn. Nếu ổ cứng của server bị lỗi vật lý, toàn bộ hệ thống và dữ liệu sao lưu đều có thể biến mất. Để giải quyết vấn đề này, bài viết này sẽ hướng dẫn chi tiết cách cấu hình tính năng sao lưu Proxmox qua giao thức SSH sang một máy chủ lưu trữ từ xa (Remote Repository). Phương pháp này giúp tách biệt nơi lưu trữ dữ liệu với nơi lưu trữ máy ảo, đảm bảo tính sẵn sàng và an toàn tối đa cho cơ sở hạ tầng ảo hóa của bạn.
Nguyên lý hoạt động và lợi ích của kho lưu trữ SSH
Khi bạn sử dụng tính năng lưu trữ SSH trong Proxmox, hệ thống sẽ sử dụng giao thức bảo mật SSH để kết nối với máy chủ đích từ xa. Dữ liệu sẽ được đóng gói thành các hình ảnh đĩa hoặc file sao lưu (dưới định dạng vzdump) và truyền qua mạng đến một thư mục chỉ định trên máy chủ đó. Điểm mạnh của phương pháp này so với việc dùng NFS hay CIFS là tính bảo mật cao hơn nhờ việc mã hóa toàn bộ luồng truyền dữ liệu. Bạn không cần cài đặt thêm phần mềm agent phức tạp trên máy chủ đích, chỉ cần một máy chủ Linux tiêu chuẩn có cài đặt OpenSSH Server là đủ. Hơn nữa, Proxmox hỗ trợ nén dữ liệu (như lz4 hoặc zstd) trước khi truyền đi, giúp tiết kiệm băng thông mạng và dung lượng lưu trữ.
Yêu cầu chuẩn bị trước khi thực hiện
Trước khi bắt đầu cấu hình, bạn cần đảm bảo đã có sẵn các thành phần cơ bản. Đầu tiên là máy chủ Proxmox VE của bạn đang hoạt động ổn định. Thứ hai là một máy chủ lưu trữ từ xa (Remote Backup Server) chạy hệ điều hành Linux (phổ biến nhất là Debian, Ubuntu hoặc Rocky Linux). Máy chủ này cần có địa chỉ IP cố định và khả năng truy cập từ mạng nội bộ của Proxmox. Trên máy chủ lưu trữ, bạn cần tạo một người dùng đặc biệt, ví dụ là người dùng backup, để Proxmox dùng cho việc kết nối. Quan trọng nhất là việc thiết lập xác thực SSH bằng khóa (SSH Key-based authentication) thay vì mật khẩu, vì đây là phương pháp an toàn và được Proxmox ưu tiên, giúp tránh các cảnh báo bảo mật và lỗi xác thực tự động.
Thiết lập môi trường trên máy chủ lưu trữ từ xa
Bước đầu tiên là chuẩn bị máy chủ đích nơi sẽ chứa dữ liệu sao lưu. Bạn cần đăng nhập vào máy chủ này và cài đặt dịch vụ OpenSSH Server nếu chưa có. Đối với các bản phát hành Ubuntu hoặc Debian, bạn có thể sử dụng lệnh sudo apt update && sudo apt install openssh-server -y để cập nhật và cài đặt. Sau khi cài đặt, hãy đảm bảo rằng dịch vụ SSH đang chạy và tự động khởi động khi máy khởi động lại bằng lệnh sudo systemctl enable --now ssh. Việc kích hoạt firewall để cho phép cổng 22 là bắt buộc nếu bạn sử dụng UFW hoặc Firewalld, ví dụ như chạy sudo ufw allow 22 trên Ubuntu.
Tiếp theo là phần quan trọng nhất: tạo tài khoản và cấu hình khóa SSH. Bạn không nên sử dụng tài khoản root cho việc này vì lý do bảo mật. Hãy tạo một người dùng mới có tên backup và hạn chế quyền truy cập của họ chỉ vào một thư mục riêng biệt. Trên máy chủ lưu trữ, hãy tạo thư mục đích bằng lệnh sudo mkdir -p /var/lib/backupstore và sau đó tạo người dùng mới với lệnh sudo useradd -m -s /bin/bash -d /var/lib/backupstore backup. Lệnh này sẽ tạo user backup với thư mục home là thư mục lưu trữ bạn vừa tạo. Sau đó, bạn cần cấp quyền sở hữu thư mục này cho người dùng backup bằng lệnh sudo chown -R backup:backup /var/lib/backupstore. Bước này đảm bảo người dùng backup có đầy đủ quyền đọc ghi vào thư mục này.
Bây giờ, chúng ta cần trao đổi khóa công khai từ Proxmox sang máy chủ lưu trữ. Đầu tiên, trên máy chủ lưu trữ, hãy tạo cặp khóa RSA cho người dùng backup nếu chưa có bằng lệnh sudo -u backup ssh-keygen -t rsa -b 4096 -f /home/backup/.ssh/id_rsa -N "". Sau khi tạo xong, hãy hiển thị khóa công khai bằng lệnh cat /home/backup/.ssh/id_rsa.pub và copy nội dung xuất hiện. Bạn sẽ cần nội dung này để dán vào cấu hình Proxmox sau này. Để bảo mật tốt nhất, hãy thêm khóa công khai này vào file authorized_keys của người dùng backup bằng lệnh cat /home/backup/.ssh/id_rsa.pub >> /home/backup/.ssh/authorized_keys và đặt quyền đúng bằng sudo chmod 600 /home/backup/.ssh/authorized_keys. Lưu ý rằng bạn cũng cần đảm bảo thư mục .ssh có quyền 700.
Cấu hình kho lưu trữ trên giao diện Proxmox VE
Sau khi hoàn tất các bước trên máy chủ từ xa, chúng ta quay lại giao diện quản trị của Proxmox VE. Hãy đăng nhập vào trình duyệt web của bạn vào địa chỉ Proxmox, sau đó nhấp vào nút Datacenter ở cột bên trái. Trong menu của Datacenter, chọn mục Storage, sau đó nhấn vào nút Add ở phía trên để thêm kho lưu trữ mới. Trong bảng biểu mẫu hiện ra, bạn cần chọn loại Type là PVE Backup. Đây là loại lưu trữ đặc thù của Proxmox dùng để chứa file sao lưu, không phải để chứa file đĩa ảo (ISO, QCOW2, Raw) như kho lưu trữ Local.
Trong phần Content, bạn chỉ nên chọn các mục liên quan đến sao lưu, bao gồm Backup, DNBackup (Deduplication Backup nếu dùng Proxmox Enterprise), và Container Backup. Bạn không cần chọn VZDump vì PVE Backup đã bao hàm chức năng này. Tiếp theo là phần cấu hình kết nối. Tại ô Server, hãy nhập địa chỉ IP hoặc tên miền của máy chủ lưu trữ từ xa bạn đã chuẩn bị ở phần trên. Tại ô Username, hãy nhập chính xác tên người dùng bạn đã tạo, ví dụ là backup. Quan trọng nhất là phần Path, bạn cần nhập đường dẫn tuyệt đối đến thư mục lưu trữ trên máy chủ đích, ví dụ là /var/lib/backupstore.
Tại mục SSH Port, mặc định là 22, bạn chỉ thay đổi nếu máy chủ lưu trữ của bạn đang chạy dịch vụ SSH trên cổng khác. Ở mục Use Compression, bạn nên chọn Yes để Proxmox tự động nén dữ liệu trước khi truyền, giúp tiết kiệm băng thông. Nếu máy chủ lưu trữ có CPU yếu, bạn có thể chọn loại nén nhẹ như lz4 hoặc zstd để cân bằng giữa tốc độ và dung lượng. Cuối cùng, tại mục Password, bạn cần nhập mật khẩu của người dùng backup nếu bạn đang sử dụng xác thực bằng mật khẩu. Tuy nhiên, như đã đề cập ở phần trên, cách tốt nhất là sử dụng khóa. Nếu bạn đã cấu hình SSH Key, Proxmox thường có thể tự động xác thực nếu người dùng đã được thêm vào danh sách authorized_keys trên máy chủ đích. Trong trường hợp Proxmox không tự động nhận diện, bạn có thể cần nhập nội dung khóa riêng tư (Private Key) vào một trường đặc biệt nếu giao diện hỗ trợ, hoặc đảm bảo rằng Proxmox có thể đọc key từ file /etc/pve/privesh (tùy phiên bản). Đối với phiên bản phổ biến hiện nay, việc cấu hình đúng authorized_keys ở máy chủ đích là đủ, trường mật khẩu có thể để trống hoặc nhập password của user đó.
Sau khi điền đầy đủ thông tin, nhấn Add để lưu cấu hình. Hệ thống Proxmox sẽ thực hiện một kiểm tra kết nối ngay lập tức. Nếu thấy thông báo thành công (thành công kết nối và xác thực), nghĩa là bạn đã hoàn thành phần cấu hình kho lưu trữ. Nếu thất bại, hãy kiểm tra lại firewall, địa chỉ IP, hoặc quyền hạn của user backup trên máy chủ đích.
Thiết lập kế hoạch sao lưu tự động
Để đảm bảo dữ liệu được sao lưu định kỳ mà không cần sự can thiệp thủ công, bạn cần cấu hình một kế hoạch sao lưu (Backup Schedule). Quay lại giao diện Proxmox, nhấp vào nút Datacenter ở cột trái, sau đó chọn menu Options. Trong danh sách này, tìm mục Backup Schedule và nhấn vào biểu tượng bánh răng hoặc nút Edit để chỉnh sửa. Giao diện cấu hình kế hoạch rất trực quan. Bạn cần chọn Retention để quyết định việc giữ lại bao nhiêu bản sao lưu theo ngày, tuần, tháng hoặc năm. Ví dụ, bạn có thể chọn giữ 7 bản sao lưu hàng ngày, 4 bản hàng tuần và 12 bản hàng tháng để có lịch sử phục hồi đa dạng.
Trong phần Storage, hãy chọn kho lưu trữ SSH mà bạn vừa tạo (thường có tên là IP của máy chủ đích). Phần VM cho phép bạn chọn phạm vi máy ảo cần sao lưu. Bạn có thể chọn tất cả máy ảo trong Datacenter, hoặc chọn lọc cụ thể theo ID, hoặc dùng thẻ Tags để chỉ sao lưu các máy ảo có gắn thẻ đặc biệt (ví dụ: critical). Phần Format nên chọn là dump để tạo file sao lưu nguyên bản, hoặc stream nếu bạn muốn sao lưu trực tuyến (tuy nhiên dump thường ổn định hơn cho lưu trữ từ xa qua SSH). Tại mục Compress, hãy chọn zstd hoặc lz4 để tối ưu hóa băng thông. Đừng quên thiết lập Mail-to để nhận thông báo email khi sao lưu thành công hoặc thất bại, đây là tính năng vô giá khi quản trị tự động.
Sau khi hoàn tất các thông số, nhấn Save để lưu kế hoạch. Proxmox sẽ chạy kế hoạch này theo thời gian thực. Bạn có thể kiểm tra trạng thái sao lưu bằng cách vào mục Backup Schedule hoặc xem trong log của từng máy ảo. Để kiểm tra nhanh lần đầu, bạn có thể nhấn nút Backup thủ công trên một máy ảo cụ thể, chọn kho lưu trữ SSH vừa tạo và thực hiện ngay lập tức để đảm bảo luồng dữ liệu hoạt động trơn tru.
Lưu ý quan trọng về bảo mật và hiệu năng
Mặc dù cấu hình SSH đã khá an toàn, nhưng bạn cần lưu ý một số điểm về bảo mật. Đảm bảo rằng người dùng backup trên máy chủ lưu trữ không có quyền sudo và không có khả năng đăng nhập shell tương tác. Bạn có thể khóa shell của user này bằng cách thay đổi shell của nó thành /sbin/nologin thông qua lệnh sudo usermod -s /sbin/nologin backup. Việc này không ảnh hưởng đến Proxmox vì Proxmox chỉ cần quyền ghi vào thư mục thông qua SSH, không cần mở shell giao diện. Ngoài ra, hãy cân nhắc việc sử dụng mạng riêng (VLAN) hoặc VPN chỉ dành riêng cho lưu lượng sao lưu để tránh bị tấn công từ mạng bên ngoài vào cổng SSH.
Về hiệu năng, hãy nhớ rằng tốc độ sao lưu sẽ bị giới hạn bởi băng thông mạng và sức mạnh CPU của cả hai bên. Nén dữ liệu (compression) sẽ tiêu tốn CPU trên máy chủ Proxmox, trong khi giải nén khi phục hồi sẽ tiêu tốn CPU trên máy chủ lưu trữ nếu bạn giải nén tại đó, hoặc ngược lại. Nếu thấy tốc độ sao lưu quá chậm, bạn có thể thử giảm mức độ nén hoặc sử dụng loại nén nhanh hơn như lz4. Một lưu ý nữa là không nên cấu hình sao lưu toàn bộ máy ảo vào cùng một khung giờ cao điểm để tránh nghẽn mạng nội bộ. Hãy phân bổ thời gian sao lưu cho các máy ảo quan trọng vào ban đêm hoặc khung giờ ít sử dụng.
Kết luận
Víệc thiết lập sao lưu Proxmox VE qua SSH sang máy chủ từ xa là một bước tiến lớn trong việc bảo vệ dữ liệu ảo hóa của bạn. Giải pháp này không chỉ đơn giản mà còn rất hiệu quả về chi phí, tận dụng được các máy chủ Linux hiện có mà không cần mua thêm phần cứng lưu trữ đắt tiền như SAN hay NAS chuyên dụng. Bằng cách tách biệt nơi lưu trữ và nơi vận hành, bạn đã xây dựng được một lớp phòng thủ quan trọng trước các thảm họa phần cứng. Hy vọng qua hướng dẫn chi tiết này, bạn đã có thể tự tin triển khai giải pháp sao lưu an toàn, tự động và đáng tin cậy cho cơ sở hạ tầng của mình. Hãy nhớ rằng, một bản sao lưu không được kiểm tra phục hồi chính là một bản sao lưu chưa hoàn chỉnh, vì vậy hãy định kỳ thực hiện các bài tập khôi phục dữ liệu để đảm bảo mọi thứ luôn hoạt động như mong đợi.