1. Tổng quan
Trong mô hình Lab CloudStack, hệ thống gồm:
- Node 1 (Management Server): Chạy CloudStack Management Server và NFS Storage.
- Node 2 (KVM Host): Đóng vai trò Hypervisor, chịu trách nhiệm tạo và quản lý các máy ảo (Instance).
Do Node 2 chạy ảo hóa lồng nhau (Nested Virtualization) trên VMware, cần bật hỗ trợ ảo hóa phần cứng trước khi khởi động máy ảo.
2. Bật Nested Virtualization trên VMware
1. Tắt máy ảo Node 2.
2. Vào VM Settings -> Hardware -> Processors.
3. Tick chọn: Virtualize Intel VT-x/EPT or AMD-V/RVI.
4. Nhấn OK và khởi động lại máy.
3. Chuẩn bị hệ điều hành và cấu hình mạng
Trong mô hình Lab CloudStack, hệ thống gồm:
- Node 1 (Management Server): Chạy CloudStack Management Server và NFS Storage.
- Node 2 (KVM Host): Đóng vai trò Hypervisor, chịu trách nhiệm tạo và quản lý các máy ảo (Instance).
Do Node 2 chạy ảo hóa lồng nhau (Nested Virtualization) trên VMware, cần bật hỗ trợ ảo hóa phần cứng trước khi khởi động máy ảo.
2. Bật Nested Virtualization trên VMware
1. Tắt máy ảo Node 2.
2. Vào VM Settings -> Hardware -> Processors.
3. Tick chọn: Virtualize Intel VT-x/EPT or AMD-V/RVI.
4. Nhấn OK và khởi động lại máy.
3. Chuẩn bị hệ điều hành và cấu hình mạng
- Đổi hostname:
sudo hostnamectl set-hostname kvm1.cloudlab.local
- Cấu hình /etc/hosts thêm 2 đoạn sau dưới localhost
192.168.232.10 mgmt.cloudlab.local mgmt
192.168.232.20 kvm1.cloudlab.local kvm1
4. Cấu hình IP tĩnh và Bridge mạng
Mở file:
sudo nano /etc/netplan/00-installer-config.yaml
Cấu hình bridge cloudbr0 để CloudStack VM hoạt động:
192.168.232.20 kvm1.cloudlab.local kvm1
4. Cấu hình IP tĩnh và Bridge mạng
Mở file:
sudo nano /etc/netplan/00-installer-config.yaml
Cấu hình bridge cloudbr0 để CloudStack VM hoạt động:
- Áp dụng:
sudo netplan apply
- Cài công cụ:
sudo apt install -y chrony wget curl nano net-tools
5. Cài đặt KVM và CloudStack Agent
5. Cài đặt KVM và CloudStack Agent
- Thêm repository:
echo "deb https://download.cloudstack.org/ubuntu focal 4.18" | sudo tee /etc/apt/sources.list.d/cloudstack.list
wget -O - https://download.cloudstack.org/release.asc | sudo apt-key add -
wget -O - https://download.cloudstack.org/release.asc | sudo apt-key add -
- Cài đặt:
sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils cloudstack-agent
6. Cấu hình Libvirt
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils cloudstack-agent
6. Cấu hình Libvirt
- Sửa /etc/libvirt/qemu.conf:
vnc_listen = "0.0.0.0"
- Sửa /etc/libvirt/libvirtd.conf:
listen_tls = 1
listen_tcp = 1
auth_tcp = "none"
tls_port = "16514"
tcp_port = "16509"
listen_tcp = 1
auth_tcp = "none"
tls_port = "16514"
tcp_port = "16509"
- Enable listen /etc/default/libvirtd
libvirtd_opts="-l"
7. Khởi động dịch vụ
sudo systemctl restart libvirtd
sudo systemctl enable libvirtd
sudo systemctl restart cloudstack-agent
sudo systemctl enable cloudstack-agent
8. Cho phép SSH Root
sudo passwd root (đặt mật khẩu lại cho tài khoản root).
7. Khởi động dịch vụ
sudo systemctl restart libvirtd
sudo systemctl enable libvirtd
sudo systemctl restart cloudstack-agent
sudo systemctl enable cloudstack-agent
8. Cho phép SSH Root
sudo passwd root (đặt mật khẩu lại cho tài khoản root).
- Sửa /etc/ssh/sshd_config ( nếu báo lỗi file không tồn tải do chưa tải OpenSSH Server)
PermitRootLogin yes
sudo systemctl restart ssh
9. Thiết lập Zone trên Web UI CloudStack
9.1. Zone Type (Loại Zone)
Chọn Advance (Nâng cao).
Advanced Zone cho phép hỗ trợ VLAN, Public IP và tạo ra các Virtual Router
9.2. Zone Details (Thông tin cơ bản)
sudo systemctl restart ssh
9. Thiết lập Zone trên Web UI CloudStack
9.1. Zone Type (Loại Zone)
Chọn Advance (Nâng cao).
Advanced Zone cho phép hỗ trợ VLAN, Public IP và tạo ra các Virtual Router
9.2. Zone Details (Thông tin cơ bản)
- Name: Zone-POP-Lab (Hoặc bất kỳ tên nào bạn muốn).
- IPv4 DNS 1 & 2: 8.8.8.8 và 8.8.4.4 (Để máy ảo ra Internet).
- Internal DNS 1: 192.168.232.10 (Trỏ về chính con Node 1 để phân giải nội bộ).
- Hypervisor: KVM.
9.3. Physical Network
- Vì chúng ta làm Lab trên 1 card mạng (VMnet8), hãy gom tất cả các luồng dữ liệu (Traffic) vào chung 1 cổng vật lý:
- Bấm giữ chuột và kéo tất cả các luồng: Management, Public, Guest thả vào mục Physical Network 1.
- Việc này báo cho CloudStack biết rằng mọi loại dữ liệu đều chạy chung qua một đường cáp mạng vật lý duy nhất.
9.4. Public Traffic
- Đây là dải IP để truy cập vào máy ảo khách từ bên ngoài. Ta sẽ trích một đoạn IP trống trong dải NAT của VMware:
- Gateway: 192.168.232.2
- Netmask: 255.255.255.0
- VLAN/VNI: Để trống (Blank) vì ta dùng mạng phẳng trong Lab.
- Start IP: 192.168.232.100
- End IP: 192.168.232.150
- Bấm Add để lưu dải IP này.
9.5. Pod Configuration
- Pod là nơi cấp IP cho các máy ảo hệ thống (System VMs như Virtual Router, Console Proxy). Ta cắt một dải IP trống khác cho Pod:
- Pod Name: Pod-1
- Gateway: 192.168.232.2
- Netmask: 255.255.255.0
- Start IP: 192.168.232.30
- End IP: 192.168.232.50
- Phải đảm bảo dải IP của Pod (.30 - .50) không được trùng với dải IP Public (.100 - .150) ở trên.
9.6. Guest Traffic (Mạng dành cho máy ảo khách)
- VLAN/VNI Range: 100 - 200
- CloudStack sẽ tự động lấy các số ID từ 100 đến 200 này để tạo ra các mạng LAN ảo (VLAN) cách
9.7. Cluster (Cấu hình Cụm máy chủ)
Cluster Name: Cluster-1
9.8. Host (Thêm máy chủ vật lý / Node 2)
- Hostname: 192.168.232.20 (IP của Node 2).
- Username: root
- Password:mật khẩu đã đổi trước đó của con Node 2.
9.9. Primary Storage
- Name: Primary-Storage
- Protocol: NFS
- Server: 192.168.232.10 (Trỏ về Node 1 vì Node 1 đang làm NFS Server).
- Path: /export/primary
9.10. Secondary Storage (Kho lưu trữ ISO & Template)
- Provider: NFS
- Server: 192.168.232.10
- Path: /export/secondary
10. Xử lý lỗi nếu không add được Host và State vẫn để là Unsecurce
- Kiểm tra agent trạng thái Agent:
sudo systemctl status cloudstack-agent
- Xem log Agent và Management Server:
Sudo tail -f /var/log/cloudstack/agent/agent.log
sudo tail -f /var/log/cloudstack/management/management-server.log
sudo tail -f /var/log/cloudstack/management/management-server.log
- Cũng có thể Management không thể tự viết được agent.properties, có thể tự thêm thủ công:
Có thể thêm sẽ gặp lỗi không xác thực được do guid không chuẩn hãy kiểm tra đúng lại đoạn mã.
- Kiểm tra libvirt xem đã thông chưa:
ss -tulpn | grep 16509
- Cấp quyền:
sudo chmod 666 /var/run/libvirt/libvirt-sock
Cho QEMU chạy root:
user="root"
group="root"
Cho QEMU chạy root:
user="root"
group="root"
- Kiểm tra kết nối CloudStack Agent sử dụng port 8250:
ss -tulpn | grep 8250
- Cấu hình chứng chỉ bảo mật giữa Management Server và KVM Host
USE cloud;
#Tắt cơ chế CA Framework
UPDATE configuration SET value = 'false' WHERE name = 'ca.framework.enabled';
#Cho phép KVM dùng chứng chỉ tự ký (Native)
UPDATE configuration SET value = 'true' WHERE name = 'agent.security.selfsigned.use.native';
#Kiểm tra lại xem đã cập nhật chưa
SELECT name, value FROM configuration WHERE name IN ('ca.framework.enabled', 'agent.security.selfsigned.use.native');
exit;
- Tắt ca.framework.enabled = false
- Cơ chế CA Framework mặc định của CloudStack được tối ưu cho hệ điều hành CentOS/RedHat, sử dụng hệ thống chứng chỉ tại thư mục /etc/pki/.Trên Ubuntu 20.04, cấu trúc này không tồn tại, khiến CloudStack Agent không thể tạo hoặc lưu chứng chỉ và liên tục bị restart.
- Việc tắt tham số này giúp CloudStack không ép KVM Host sử dụng cơ chế CA mặc định, từ đó tránh lỗi xác thực Agent.
- Bật agent.security.selfsigned.use.native = true
- Sau khi tắt CA Framework, hệ thống vẫn cần đảm bảo kết nối bảo mật giữa Management Server và KVM Host.
- Tham số này cho phép KVM Agent sử dụng chứng chỉ tự ký (self-signed) do hệ điều hành Ubuntu tự tạo để thiết lập kết nối mã hóa TLS, thay vì chờ Management Server cấp phát chứng chỉ.
Kết luận:
Host chỉ hoạt động bình thường khi:\
- Agent Running
- Libvirt Listen OK
- Bridge cloudbr0 đúng
- SSH root truy cập được
Host chỉ hoạt động bình thường khi:\
- Agent Running
- Libvirt Listen OK
- Bridge cloudbr0 đúng
- SSH root truy cập được
Đính kèm
Bài viết liên quan
Được quan tâm
Bài viết mới