OpenNebula: ‘Cứu cánh’ Quản Lý Tập Trung KVM và VMware Cho Hệ Thống Private Cloud

Virtualization tutorial - IT technology blog
Virtualization tutorial - IT technology blog

Khi Proxmox và KVM đơn lẻ không còn gánh vác nổi hệ thống

Hãy tưởng tượng bạn đang quản lý một hạ tầng “hỗn hợp”: vài cụm VMware ESXi cũ, một dàn server chạy KVM qua dòng lệnh và vài node Proxmox nằm rải rác. Khi sếp yêu cầu một cổng tự phục vụ (Self-service Portal) để team Dev tự tạo máy ảo, chia tài nguyên theo phòng ban (Multi-tenancy) với ngân sách 0 đồng, bạn sẽ thấy các công cụ quản lý đơn lẻ bắt đầu hụt hơi.

Trong môi trường Homelab, mình từng dùng Proxmox để chạy 12 VM. Nó rất tốt cho các cụm cluster nhỏ. Tuy nhiên, khi tiến lên mô hình IaaS (Infrastructure as a Service) thực thụ, bạn cần sự tách biệt hoàn toàn giữa lớp hạ tầng vật lý và dịch vụ người dùng. Đây chính là lúc OpenNebula chứng minh giá trị của một nền tảng điều phối (Orchestrator) chuyên nghiệp.

Lựa chọn nào cho doanh nghiệp: OpenStack, Proxmox hay OpenNebula?

Trước khi gõ lệnh cài đặt, mình đã làm một bảng so sánh nhanh dựa trên kinh nghiệm thực tế:

  • OpenStack: Một “gã khổng lồ” đúng nghĩa. Việc vận hành OpenStack đòi hỏi đội ngũ ít nhất 3-5 kỹ sư chuyên trách. Nếu team IT của bạn mỏng, đây sẽ là một gánh nặng vận hành khủng khiếp.
  • Proxmox VE: Giao diện thân thiện, dễ dùng. Tuy nhiên, Proxmox thiếu khả năng quản lý đa nền tảng. Bạn không thể quản lý máy ảo VMware ngay trên giao diện của Proxmox được.
  • OpenNebula: Điểm giao thoa hoàn hảo. Nó nhẹ hơn OpenStack nhưng mạnh mẽ hơn Proxmox về khả năng điều phối. Bạn có thể quản lý đồng thời KVM, VMware, và cả Container (LXC, Firecracker) trên cùng một dashboard.

Tại sao OpenNebula Community Edition lại đáng thử?

Điểm cộng:

  • Triển khai cực nhanh, chỉ mất khoảng 30-40 phút cho một cụm cơ bản.
  • Giao diện Sunstone tối giản, giúp người dùng không chuyên cũng có thể khởi tạo máy ảo trong 3 cú click.
  • Hỗ trợ Hybrid Cloud mạnh mẽ. Bạn dễ dàng đẩy workload từ server nội bộ lên AWS hoặc Azure khi cần mở rộng gấp.

Điểm trừ:

  • Bản Community không có script cập nhật tự động one-deploy. Bạn sẽ phải tự tay quản lý các bản update thủ công.
  • Cộng đồng tại Việt Nam còn khá khiêm tốn, chủ yếu phải tham khảo tài liệu tiếng Anh.

Các bước triển khai OpenNebula trên Ubuntu 22.04 LTS

Hệ điều hành lý tưởng nhất hiện tại là Ubuntu 22.04. Node quản trị (Frontend) cần tối thiểu 2 vCPU và 4GB RAM. Đối với các Node chạy máy ảo, hãy ưu tiên RAM và tốc độ ổ cứng SSD/NVMe.

1. Thiết lập môi trường

Đầu tiên, hãy khai báo IP của các node vào file /etc/hosts để chúng nhận diện được nhau. Việc tắt tạm thời Firewall sẽ giúp bạn loại bỏ các rắc rối về port trong quá trình cấu hình ban đầu.

sudo ufw disable
sudo apt update && sudo apt upgrade -y

2. Cấu hình Repository

OpenNebula yêu cầu bạn đăng ký tài khoản trên trang chủ để nhận Token cho bản Community. Đừng quên thay <TOKEN> bằng mã riêng của bạn trong lệnh dưới đây:

wget -q -O- https://downloads.opennebula.io/repo/repo.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/opennebula.gpg
echo "deb https://<TOKEN>@downloads.opennebula.io/repo/6.6/Ubuntu/22.04 stable opennebula" | sudo tee /etc/apt/sources.list.d/opennebula.list
sudo apt update

3. Cài đặt Frontend (Bộ não hệ thống)

Frontend sẽ quản lý database và giao diện web. Mặc dù mặc định dùng SQLite, nhưng nếu chạy thực tế cho công ty, bạn nên cân nhắc chuyển sang MariaDB để đảm bảo hiệu năng.

sudo apt install -y opennebula opennebula-sunstone opennebula-gate opennebula-flow
sudo systemctl start opennebula opennebula-sunstone
sudo systemctl enable opennebula opennebula-sunstone

4. Truy cập giao diện quản trị

Mật khẩu admin được hệ thống tự khởi tạo ngẫu nhiên. Bạn hãy dùng lệnh sau để lấy thông tin đăng nhập:

cat /var/lib/one/.one/one_auth

Bây giờ, hãy mở trình duyệt và truy cập vào địa chỉ http://<IP_FRONTEND>:9869.

Kết nối KVM Node vào hệ thống

Để server có thể chạy được máy ảo, bạn cần cài đặt gói thành phần node. Thực hiện lệnh sau trên các server đóng vai trò thực thi:

sudo apt install -y opennebula-node-kvm
sudo systemctl restart libvirtd

Cấu hình SSH không mật khẩu (Passwordless SSH)

Đây là mắt xích quan trọng nhất. Nếu bước này sai, Frontend sẽ không thể điều khiển được các Node. Bạn cần copy SSH key của user oneadmin từ Frontend sang các Node.

sudo su - oneadmin
ssh-keyscan <NODE_IP> >> ~/.ssh/known_hosts
ssh-copy-id <NODE_IP>

Thử SSH trực tiếp từ Frontend sang Node. Nếu không bị hỏi mật khẩu, bạn đã vượt qua thử thách khó nhất.

Tích hợp VMware vCenter: Không cần cài Agent

Điểm ăn tiền của OpenNebula là khả năng kết nối trực tiếp với vCenter API. Bạn không cần can thiệp gì vào các host ESXi hiện có.

  1. Tại giao diện Sunstone, chọn Infrastructure -> Hosts.
  2. Bấm dấu + và chọn loại vCenter.
  3. Điền thông tin API của vCenter.
  4. Hệ thống sẽ tự động liệt kê các Cluster và Datastore để bạn chọn import.

Kinh nghiệm xử lý lỗi: Khi trạng thái báo “ERR”

Nếu thấy Node báo đỏ, đừng quá lo lắng. Log của OpenNebula cực kỳ chi tiết, hãy kiểm tra tại file /var/log/one/oned.log. Lỗi thường gặp nhất là user oneadmin chưa có quyền điều khiển ảo hóa. Hãy xử lý nhanh bằng lệnh:

sudo usermod -aG libvirt,kvm oneadmin

Lời kết

OpenNebula là lựa chọn thực dụng cho những ai muốn xây dựng Private Cloud mà không muốn sa lầy vào sự phức tạp của OpenStack. Nó giúp bạn tận dụng tối đa sức mạnh của KVM trong khi vẫn quản lý được các tài nguyên VMware cũ kỹ.

Sau khi cài đặt xong, bạn hãy tìm hiểu thêm về Virtual Network (VNET). Việc quy hoạch dải IP và VLAN ngay từ đầu sẽ giúp hạ tầng của bạn chuyên nghiệp và bảo mật hơn rất nhiều.

Share: