1. TỔNG QUAN
Tài liệu ghi lại các bước triển khai Node quản trị trung tâm (Management Node) cho hệ thống Private Cloud dựa trên document CloudStack 4.18. Để tối ưu hóa tài nguyên phần cứng đã tích hợp cả 3 thành phần cốt lõi lên cùng một Node 1:
Tài liệu ghi lại các bước triển khai Node quản trị trung tâm (Management Node) cho hệ thống Private Cloud dựa trên document CloudStack 4.18. Để tối ưu hóa tài nguyên phần cứng đã tích hợp cả 3 thành phần cốt lõi lên cùng một Node 1:
- Management Server: Apache CloudStack 4.18 LTS.
- Database: MySQL 8.0 (Native).
- Storage: NFS Server (Primary & Secondary Storage).
Node 1:
- Hệ điều hành: Ubuntu 20.04 LTS (64-bit).
- Mạng (Network): Chế độ NAT (VMnet8) - Đảm bảo tính cơ động khi di chuyển máy host.
- IP Tĩnh (Static IP): 192.168.232.10/24
- Gateway: 192.168.232.2
- DNS: 8.8.8.8, 8.8.4.4
2. QUY TRÌNH TRIỂN KHAI:
2.1 Chuẩn bị Hệ điều hành và Mạng:
2.1 Chuẩn bị Hệ điều hành và Mạng:
- Đảm bảo máy chủ có tên định danh rõ ràng và có thể tự phân giải tên miền nội bộ để các dịch vụ giao tiếp liền mạch.
# Đổi tên máy chủ thành mgmt
sudo hostnamectl set-hostname mgmt.cloudlab.local
# Khai báo phân giải IP nội bộ (Local DNS)
sudo nano /etc/hosts
# Thêm dòng sau vào dưới dòng localhost:
192.168.232.10 mgmt.cloudlab.local mgmt
sudo hostnamectl set-hostname mgmt.cloudlab.local
# Khai báo phân giải IP nội bộ (Local DNS)
sudo nano /etc/hosts
# Thêm dòng sau vào dưới dòng localhost:
192.168.232.10 mgmt.cloudlab.local mgmt
- Khai báo file /etc/hosts giúp máy chủ nhận diện chính nó qua tên miền mgmt thay vì chỉ dùng IP, ngăn chặn lỗi timeout khi khởi chạy các dịch vụ mạng.
2.2 Thiết lập Kho lưu trữ (NFS Storage):
- CloudStack yêu cầu phân vùng lưu trữ mạng (NFS) để chứa ổ cứng ảo của máy ảo (Primary) và các file ISO/Template (Secondary).
# Cài đặt dịch vụ NFS Server
sudo apt install -y nfs-kernel-server
# Tạo thư mục chứa dữ liệu
sudo mkdir -p /export/primary /export/secondary
# Cấu hình phân quyền chia sẻ mạng
sudo nano /etc/exports
# Dán 2 dòng sau vào cuối file để cho phép dải mạng 192.168.232.0/24 được quyền đọc/ghi:
/export/primary 192.168.232.0/24(rw,async,no_root_squash,no_subtree_check)
/export/secondary 192.168.232.0/24(rw,async,no_root_squash,no_subtree_check)
# Áp dụng cấu hình và bật dịch vụ chạy ngầm
sudo exportfs -a
sudo systemctl restart nfs-kernel-server
sudo systemctl enable nfs-kernel-server
sudo apt install -y nfs-kernel-server
# Tạo thư mục chứa dữ liệu
sudo mkdir -p /export/primary /export/secondary
# Cấu hình phân quyền chia sẻ mạng
sudo nano /etc/exports
# Dán 2 dòng sau vào cuối file để cho phép dải mạng 192.168.232.0/24 được quyền đọc/ghi:
/export/primary 192.168.232.0/24(rw,async,no_root_squash,no_subtree_check)
/export/secondary 192.168.232.0/24(rw,async,no_root_squash,no_subtree_check)
# Áp dụng cấu hình và bật dịch vụ chạy ngầm
sudo exportfs -a
sudo systemctl restart nfs-kernel-server
sudo systemctl enable nfs-kernel-server
- Tham số no_root_squash rất quan trọng, cho phép các máy chủ Compute (Node 2) có quyền root từ xa để tạo và xóa file ổ cứng ảo bên trong thư mục NFS này.
2.3 Thiết lập Cơ sở dữ liệu (MySQL 8.0):
- Management Server sử dụng MySQL để lưu trữ toàn bộ cấu trúc hạ tầng, tài khoản và trạng thái máy ảo.
# Cài đặt lõi MySQL Server
sudo apt install -y mysql-server
# Mở file cấu hình MySQL
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# Dán đoạn tham số bắt buộc sau vào ngay dưới thẻ [mysqld]:
server-id = 1
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION"
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'
bind-address = 0.0.0.0
# Lưu cấu hình và khởi động lại dịch vụ
sudo systemctl restart mysql
sudo systemctl enable mysql
sudo apt install -y mysql-server
# Mở file cấu hình MySQL
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# Dán đoạn tham số bắt buộc sau vào ngay dưới thẻ [mysqld]:
server-id = 1
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION"
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'
bind-address = 0.0.0.0
# Lưu cấu hình và khởi động lại dịch vụ
sudo systemctl restart mysql
sudo systemctl enable mysql
- Việc tăng max_connections lên 350 và thiết lập lại sql-mode là yêu cầu bắt buộc của CloudStack để xử lý lượng lớn truy vấn đồng thời và tránh các xung đột cú pháp SQL khi tự động tạo bảng (schema).
2.4 Cài đặt CloudStack 4.18 và SystemVM Template:
# Khai báo kho lưu trữ chính thức của Apache CloudStack và thêm khóa bảo mật GPG
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 -
# Cài đặt gói Management Server
sudo apt update
sudo apt install -y cloudstack-management
# Tự động hóa quá trình khởi tạo cấu trúc Database
sudo cloudstack-setup-databases cloud: password@localhost --deploy-as=root: -i 192.168.232.10
Công cụ cloudstack-setup-databases giúp tự động đăng nhập vào MySQL, tạo database tên cloud, cấp quyền và nạp sẵn dữ liệu hệ thống. Thao tác này an toàn và chuẩn xác hơn việc gõ lệnh SQL thủ công.
# Tải "Bản ghost" hệ thống (SystemVM Template) về Secondary Storage
sudo /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt \
-m /export/secondary \
-u https://download.cloudstack.org/systemvm/4.18/systemvmtemplate-4.18.0-kvm.qcow2.bz2 \
-h kvm -F
# Khai báo kho lưu trữ chính thức của Apache CloudStack và thêm khóa bảo mật GPG
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 -
# Cài đặt gói Management Server
sudo apt update
sudo apt install -y cloudstack-management
# Tự động hóa quá trình khởi tạo cấu trúc Database
sudo cloudstack-setup-databases cloud: password@localhost --deploy-as=root: -i 192.168.232.10
Công cụ cloudstack-setup-databases giúp tự động đăng nhập vào MySQL, tạo database tên cloud, cấp quyền và nạp sẵn dữ liệu hệ thống. Thao tác này an toàn và chuẩn xác hơn việc gõ lệnh SQL thủ công.
# Tải "Bản ghost" hệ thống (SystemVM Template) về Secondary Storage
sudo /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt \
-m /export/secondary \
-u https://download.cloudstack.org/systemvm/4.18/systemvmtemplate-4.18.0-kvm.qcow2.bz2 \
-h kvm -F
- File Template này là hạt nhân của hệ thống. CloudStack sẽ dùng nó để tự động sinh ra các máy ảo chức năng như Virtual Router (cấp IP cho máy ảo khách) và Console Proxy (cung cấp giao diện xem màn hình máy ảo trên trình duyệt).
2.5 Khởi chạy và Truy cập Web UI:
# Thực thi script kiểm tra cổng mạng và khởi động dịch vụ Java/Tomcat
sudo cloudstack-setup-management
# Theo dõi tiến trình khởi động của hệ thống
sudo tail -f /var/log/cloudstack/management/management-server.log
# Thực thi script kiểm tra cổng mạng và khởi động dịch vụ Java/Tomcat
sudo cloudstack-setup-management
# Theo dõi tiến trình khởi động của hệ thống
sudo tail -f /var/log/cloudstack/management/management-server.log
- Lệnh setup-management tự động cấu hình tường lửa và bật dịch vụ chạy cùng hệ thống. Do CloudStack chạy trên nền Java, cần chờ khoảng 2-3 phút. Giám sát file management-server.log giúp xác định chính xác thời điểm hệ thống sẵn sàng.
- Khi log hiển thị dòng CloudStack Management Server is running..., mở trình duyệt web trên máy host (Laptop) và truy cập:
- Tài khoản mặc định: admin
- Mật khẩu mặc định: password
3. KHẮC PHỤC SỰ CỐ (TROUBLESHOOTING)
Trình duyệt báo không thể truy cập Web UI (Connection Refused)
- Nguyên nhân: Dịch vụ Management Server chưa khởi động xong, hoặc máy ảo thiếu RAM dẫn đến tiến trình Java bị crash (Out of Memory).
- Xử lý:
- Đọc lại file log bằng lệnh: sudo tail -n 50 /var/log/cloudstack/management/management-server.log
- Đảm bảo Node 1 được cấp tối thiểu 4GB RAM. Nếu RAM quá ít, cần tắt máy ảo, tăng RAM và khởi động lại.
Bài viết liên quan
Được quan tâm
Bài viết mới