Ảo hóa (Virtual Environment) một khái niệm rất hay khi tìm hiểu về máy chủ Linux, và bây giờ khi sử dụng các máy tính đơn bo mạch (Single Board Computer) sử dụng kiến trúc ARM cũng chỉ dùng được Linux, nó lại càng được áp dụng nhiều hơn, mặc dù một máy chủ lớn so với một máy tính đơn bo mạch (SBC) là khác nhau hoàn toàn về cả kích thước lẫn sức mạnh, nhưng chúng lại được áp dụng nhiều trong cả 2.
Docker chính là ví dụ trong ảo hóa, nhưng Docker chỉ là ảo hóa ở cấp ứng dụng gói các ứng dụng thành các container và chạy trên một máy chủ và dùng chung lõi kernel của máy chủ (ở đây khái niệm máy chủ không phải là server, mà là máy chính chạy các ứng dụng hay máy ảo bên trong nó mà thôi). Trước kia, khi cài các ứng dụng trên Orange Pi, tôi đã từng phải chật vật khi cài một ứng dụng khi không biết nó có thể chạy được trên hệ điều hành nào, Debian hay Ubuntu, rồi phiên bản nào Buster hay Bullseye, Jammy hay Focal, hay chỉ chạy trên Alpine hoặc ArchLinux .v.v Rồi khi cài nó, cài thiếu các thư viện hoặc cài nhầm thư viện là phải format thẻ nhớ đi cài lại từ hệ điều hành ban đầu, rất cực nhọc và mất thời gian. Giờ đây với Docker, thì chỉ cần một hệ điều hành chạy được Docker là chạy được, hoặc khi build thử chỉ cần vài câu lệnh, nếu sai hoặc hỏng hóc ở đâu thì xóa, sửa Dockerfile rồi build lại, không cần phải cài lại cả Hệ điều hành, quả thực là đơn giản hơn rất nhiều.
Lan man hơi nhiều, giờ tôi xin giới thiệu về Promox và ảo hóa trong Linux …
Ảo hóa trong Linux là gì?
Ảo hóa là công nghệ cho phép tạo ra các hệ thống máy tính ảo (gọi là máy ảo) trên một máy tính vật lý duy nhất. Điều này giúp chia sẻ tài nguyên như CPU, RAM, và ổ đĩa cứng một cách hiệu quả giữa nhiều hệ điều hành hoặc ứng dụng độc lập.
Nói cách đơn giản: ảo hóa giúp một máy tính “biến hình” thành nhiều máy tính ảo khác nhau, hoạt động độc lập với nhau.
Tại sao lại có ảo hóa?
- Tối ưu hóa tài nguyên:
Thay vì để một máy tính chỉ chạy một hệ điều hành hoặc một ứng dụng, ảo hóa giúp tận dụng tối đa tài nguyên của máy tính. - Tiết kiệm chi phí:
Thay vì mua nhiều máy tính vật lý, bạn chỉ cần một máy mạnh rồi tạo nhiều máy ảo. - Dễ quản lý và triển khai:
Máy ảo có thể được tạo, xóa, sao lưu và di chuyển dễ dàng. - Cô lập môi trường:
Ảo hóa giúp các hệ điều hành hoặc ứng dụng trên cùng máy vật lý chạy độc lập, tránh xung đột với nhau.
Docker và Proxmox có phải là ảo hóa không?
- Docker: Docker không phải là ảo hóa toàn bộ như máy ảo thông thường. Nó sử dụng công nghệ container để “ảo hóa ở cấp ứng dụng”.
- Container chia sẻ cùng một nhân Linux (kernel) của hệ điều hành chính, nhưng tách biệt ứng dụng và thư viện cần thiết thành từng môi trường nhỏ gọn.
- Docker nhanh hơn, nhẹ hơn và tốn ít tài nguyên hơn máy ảo truyền thống.
Ví dụ: Docker giống như nhiều “phòng riêng” trong một tòa nhà lớn. Mỗi phòng có nội thất riêng, nhưng tất cả đều chia sẻ chung nền móng và tường của tòa nhà.
- Proxmox: Proxmox là một nền tảng ảo hóa toàn phần, dùng để tạo và quản lý các máy ảo. Nó sử dụng KVM (Kernel-based Virtual Machine) để ảo hóa phần cứng và chạy nhiều hệ điều hành khác nhau trên cùng một máy vật lý.
- Mỗi máy ảo trong Proxmox có hệ điều hành và tài nguyên (CPU, RAM, ổ cứng) riêng biệt.
- Đây là ảo hóa truyền thống và mạnh mẽ hơn so với Docker.
Ví dụ: Proxmox giống như xây dựng nhiều “nhà riêng” trên cùng một mảnh đất. Mỗi nhà có nền móng, tường và hệ thống riêng biệt.
Các bài viết trước, tôi đã giới thiệu nhiều về Docker, giờ tôi sẽ giới thiệu và hướng dẫn các bạn cài Promox trên Orange Pi, cụ thể là Orange Pi 5 series, máy tính đơn bo mạch mạnh nhất tại thời điểm hiện tại.
Giới thiệu chi tiết về Proxmox
Proxmox Virtual Environment (Proxmox VE) là một nền tảng mã nguồn mở mạnh mẽ để ảo hóa và quản lý máy chủ. Proxmox hỗ trợ hai công nghệ chính: KVM (Kernel-based Virtual Machine) cho ảo hóa toàn phần và LXC (Linux Containers) cho ảo hóa nhẹ. Nó cũng tích hợp các tính năng quản lý lưu trữ, mạng, sao lưu, và phục hồi dữ liệu.
Đặc trưng nổi bật của Proxmox:
- Tích hợp quản lý KVM và LXC:
- KVM: Chạy các máy ảo với hiệu suất cao, hỗ trợ các hệ điều hành như Linux, Windows, BSD.
- LXC: Tạo container nhẹ, phù hợp để chạy ứng dụng hoặc các dịch vụ Linux độc lập.
- Quản lý qua giao diện web:
- Giao diện web hiện đại, dễ sử dụng.
- Cho phép quản lý toàn bộ cụm (cluster), xem tài nguyên, và thao tác các máy ảo/container từ trình duyệt.
- Hỗ trợ clustering:
- Hỗ trợ xây dựng cụm máy chủ (cluster) để chia sẻ tài nguyên và quản lý tập trung.
- Tính năng High Availability (HA) giúp đảm bảo dịch vụ liên tục nếu một nút trong cụm bị lỗi.
- Backup và phục hồi:
- Cung cấp các tính năng backup theo lịch trình với Proxmox Backup Server.
- Hỗ trợ snapshot để lưu trữ trạng thái của máy ảo/container.
- Hệ thống mạng và lưu trữ:
- Hỗ trợ bridge, VLAN, và SDN.
- Tích hợp ZFS, Ceph, và các giải pháp lưu trữ phổ biến khác.
- Khả năng mở rộng:
- Dễ dàng mở rộng tài nguyên bằng cách thêm các nút mới vào cụm.
- Tích hợp với các công cụ giám sát như Prometheus.
So sánh Proxmox với các nền tảng khác
Tiêu chí | Proxmox VE | VMware ESXi | Hyper-V | Docker (container) |
---|---|---|---|---|
Mã nguồn | Mã nguồn mở | Mã nguồn đóng | Mã nguồn đóng | Mã nguồn mở |
Ảo hóa | KVM, LXC | ESXi (toàn phần) | Hyper-V (toàn phần) | Container |
Chi phí | Miễn phí, có gói hỗ trợ | Đắt đỏ | Miễn phí (phiên bản cơ bản) | Miễn phí |
Giao diện quản lý | Giao diện web | Giao diện web, client | Giao diện Windows Admin | Dòng lệnh và web |
Hiệu năng container | Cao | Không hỗ trợ container | Không hỗ trợ container | Rất cao |
Tích hợp backup | Có | Cần mua riêng | Có nhưng hạn chế | Không tích hợp |
Ưu điểm của Proxmox cài trên Orange Pi 5 series
- Tiết kiệm chi phí phần cứng:
- Orange Pi 5 series với CPU Rockchip RK3588/RK3588S mạnh mẽ và RAM 8GB/16GB hoặc thậm chí lên tới 32GB là một lựa chọn tiết kiệm chi phí so với máy chủ x86. Ngoài ra các tính năng khác như NPU, GPU, RTC Clock, SSD, eMMC, Dual LAN Giagabit, v.v. đều có thể dùng để chia sẻ cho các máy ảo khác nhau, tận dụng tối đa công suất của Orange Pi 5 series
- Năng lượng tiêu thụ thấp:
- Phù hợp để làm máy chủ mini chạy 24/7, theo dõi bằng máy đo, Orange Pi 5 series chỉ tiêu thụ 0.5Wh ở chế độ chờ (Idle) và tiêu thụ tối đa không quá 5Wh ở chế độ chạy full tải 100% 8 CPU (Peak)
- Hiệu quả cho các ứng dụng nhẹ:
- Phù hợp để chạy các container hoặc máy ảo phục vụ các ứng dụng nhỏ (web server, database server …) hoặc các dịch vụ đơn giản microservices, database, ghi dữ liệu, edge computing v.v.
- Hỗ trợ ARM:
- Tuy Proxmox không chính thức hỗ trợ ARM, nhưng cộng đồng đã phát triển các phương pháp để chạy trên nền ARM, như trên Orange Pi 5 series sắp hướng dẫn tới đây, bạn hoàn toàn có thể chạy được cả Proxmox 7 lẫn Proxmox 8 trên Orange Pi 5, kết nối thành cluster, phân chia dịch vụ v.v.
Phần sau: Hướng dẫn Cài đặt Proxmox trên Orange Pi