Proxmox 2. Kiến trúc Proxmox VE

VanTai

Intern

Tổng quan​

Bài viết này giúp bạn hiểu rõ hơn về cấu trúc bên trong của nền tảng Proxmox Virtual Environment (Proxmox VE). Trong quá trình vận hành hạ tầng, hầu hết các sự cố kỹ thuật thường không bắt nguồn từ quá trình khởi tạo máy ảo, mà chủ yếu xuất phát từ việc thiết kế chưa thực sự đồng bộ giữa các thành phần như: Điện toán (Compute), Lưu trữ (Storage), Mạng (Network) và Cụm máy chủ (Cluster/HA). Hiểu rõ cách các tầng thấp (low-level) tương tác lẫn nhau sẽ giúp bạn dễ dàng hơn trong việc thiết kế và vận hành một hệ thống ổn định và đáng tin cậy.

1. Mô Hình Kiến Trúc Phân Tầng (Layered Architecture)

Khác với các hypervisor nguyên khối truyền thống, Proxmox VE được phát triển như một nền tảng quản lý vi mô (micro-management platform) dựa trên hạt nhân Debian GNU/Linux. Hệ thống này được phân chia thành các lớp chức năng độc lập, qua đó tối ưu hóa hiệu suất và nâng cao tính minh bạch trong quá trình xử lý sự cố.
1781014162683.png

2. Hệ thống điện toán: Mối quan hệ giữa QEMU/KVM và LXC

Kiến trúc điện toán của Proxmox giải quyết hai vấn đề chính liên quan đến phân bổ tài nguyên thông qua hai công nghệ cốt lõi: ảo hóa phần cứng (VM) và container hệ thống (LXC).

A. Kiến Trúc của QEMU/KVM (Máy Ảo)​

Đây là nền tảng để vận hành các hệ điều hành độc lập với các hạt nhân riêng biệt (Windows, Linux tùy chỉnh).
  • KVM (Kernel-based Virtual Machine): Hoạt động ở mức hạt nhân (Ring 0). Bằng cách tận dụng các lệnh mở rộng của vi xử lý, KVM cho phép thực thi trực tiếp các lệnh của máy ảo trên lõi CPU vật lý, loại bỏ hoàn toàn độ trễ dịch mã.
  • QEMU: Tiến trình này chạy trong không gian người dùng, đảm nhiệm vai trò mô phỏng bo mạch chủ, BIOS/UEFI, bộ điều khiển lưu trữ và giao diện mạng.
  • Tối ưu hóa VirtIO (Paravirtualization): Việc QEMU mô phỏng hoàn toàn phần cứng (như card mạng e1000) sẽ tạo ra chi phí ngắt (interrupt overhead) cao. Proxmox giải quyết vấn đề này bằng tiêu chuẩn VirtIO, thiết lập các kênh bộ nhớ chia sẻ trực tiếp (vring) giữa hệ điều hành khách và máy chủ, giúp tối ưu hóa băng thông mạng và I/O lưu trữ.

B. Kiến Trúc LXC (Hệ Thống Container)​

LXC là công nghệ container cấp hệ điều hành, cho phép chia sẻ trực tiếp kernel của máy chủ vật lý, đem lại khả năng triển khai mật độ cao với mức tiêu thụ tài nguyên thấp. Cơ chế cô lập qua Unprivileged Containers là tiêu chuẩn được khuyến nghị cho môi trường thực tế. Công nghệ này dùng User Namespace để ánh xạ quyền root (UID 0) bên trong container thành một tài khoản không có quyền trên hệ thống chủ, giúp giảm thiểu rủi ro bảo mật từ các cuộc tấn công thoát vòng rào (container escape) ở cấp độ nhân.

3. Phân hệ lưu trữ (Storage Subsystem) và luồng I/O

Trình quản lý lưu trữ (pvesm) của Proxmox thiết lập một lớp trừu tượng, cung cấp API quản trị đồng nhất cho nhiều backend vật lý khác nhau.
1. Lưu trữ cấp độ tệp (File-level): Bao gồm Directory, NFS, SMB/CIFS. Phù hợp để lưu trữ các tệp đĩa ảo (.qcow2), tệp ISO, template và tệp tin sao lưu. Hiệu năng phụ thuộc nhiều vào độ trễ mạng (network latency) và chi phí của hệ thống tệp.
2. Lưu trữ cấp độ khối (Block-level): Bao gồm ZFS, LVM-Thin, Ceph RBD. Cho phép ghi dữ liệu trực tiếp dưới dạng khối. Ưu điểm nổi bật là khả năng tạo bản ghi nhanh (Snapshot) và nhân bản (Clone) với tốc độ cao thông qua cơ chế Copy-on-Write (CoW).
  • Khuyến nghị thiết kế I/O: Khi triển khai các hệ thống lưu trữ phân tán hoặc có cơ chế bộ đệm riêng (điển hình như ZFS với ARC hoặc Ceph), quản trị viên bắt buộc phải cấu hình tham số "Cache Mode" của đĩa ảo về mức "None" (sử dụng cờ O_DIRECT). Cấu hình này ngăn chặn hiện tượng lưu đệm song song (double-caching) tại cả Guest và Host, giúp tối ưu hóa bộ nhớ RAM và loại bỏ tình trạng khuếch đại I/O (I/O amplification).

4. Hệ thống phân lớp mạng (Network Stack)

Hệ thống phân lớp mạng của Proxmox được xây dựng hoàn toàn dựa trên các giao thức định tuyến tiêu chuẩn của Linux.
  • Linux Bridge (vmbr): Đóng vai trò như một thiết bị chuyển mạch ảo (vSwitch) ở lớp 2. Máy ảo kết nối với cầu nối thông qua giao diện TAP, trong khi container sử dụng cặp veth. Việc kích hoạt tính năng VLAN-aware trên cầu nối cho phép quản lý lưu lượng đa VLAN trên cùng một cổng giao tiếp vật lý.
  • Nguyên tắc thiết kế độc lập: Một trong những sai lầm nghiêm trọng trong thiết kế là khi gộp chung lưu lượng quản trị (Management), lưu trữ (Storage), cụm đồng bộ (Corosync) và di chuyển máy ảo (Live Migration) trên cùng một giao diện mạng vật lý. Trong các tình huống tải cao, như sao lưu, băng thông quá tải có thể làm gián đoạn nhịp tim (heartbeat) của Corosync, dẫn đến mất ổn định của toàn bộ cụm. Vì vậy, việc tách biệt lưu lượng mạng về mặt vật lý hoặc logic là một quy trình bắt buộc theo tiêu chuẩn.

5. Control Plane, Quorum và High Availability

Kiến trúc quản lý cụm của Proxmox theo mô hình phân tán (multi-master), nơi tất cả các node đều có vai trò ngang hàng trong việc duy trì trạng thái của hệ thống.
  • PMXCFS và giao thức Corosync: Cấu hình toàn bộ hệ thống được lưu trữ trong cơ sở dữ liệu SQLite có tên là pmxcfs. Cơ sở dữ liệu này hoạt động hoàn toàn trên bộ nhớ RAM nhằm giảm thiểu độ trễ và được ánh xạ qua thư mục /etc/pve. Giao thức Corosync đảm nhiệm vai trò sao chép dữ liệu theo thời gian thực giữa các nút mạng. Giới hạn lưu trữ cố định của phân vùng này là 30 MB; do đó, không được phép lưu trữ các tệp cố định như ISO hoặc script có kích thước lớn tại đây.
  • Cơ chế đa số (Quorum): Hệ thống chỉ chấp nhận các lệnh thay đổi cấu hình khi hơn một nửa số lượng node trong cụm đang hoạt động tuyến tính. Cơ chế này là biện pháp then chốt để ngăn chặn hoàn toàn nguy cơ phân mảnh cụm (Split-Brain).
  • Bảo vệ tính nhất quán với Watchdog Fencing: Trong kiến trúc High Availability (HA), việc bảo vệ tính toàn vẹn của dữ liệu trên phân vùng lưu trữ chung (Shared Storage) được xem là ưu tiên hàng đầu. Trong trường hợp một node bị mất kết nối mạng và không thể giao tiếp với hệ thống trong thời gian vượt quá 60 giây, mô-đun Watchdog ở mức hạt nhân sẽ kích hoạt cơ chế tự cô lập bằng cách thực hiện khởi động lại phần cứng cưỡng bức (Hard-Reset) đối với node đó. Phản ứng ngắt mạch này đảm bảo rằng mọi khóa đọc/ghi (I/O locks) của máy ảo đều được giải phóng triệt để, từ đó các node còn lại có khả năng tiếp quản và tiến hành khởi động lại máy ảo một cách an toàn.

Kết Luận

  • Kiến trúc của Proxmox VE thể hiện sự kết hợp chặt chẽ giữa tính phân tán, khả năng module hóa cao và việc khai thác tối đa các công nghệ nền tảng của nhân Linux. Hiểu rõ đường đi của I/O, luồng định tuyến mạng, cũng như cơ chế Quorum và Fencing là điều kiện tiên quyết để các kỹ sư hệ thống có thể thiết kế, vận hành và tối ưu hóa các trung tâm dữ liệu siêu hội tụ (HCI) đạt chuẩn Production.
 

Đính kèm

  • Screenshot 2026-06-09 210312.png
    Screenshot 2026-06-09 210312.png
    74.7 KB · Lượt xem: 0
Back
Top