Cài đặt Openstack Nova.
Các thành phần của Openstack Compute (Nova):
nova-api
service : Nhận và phản hồi các yêu cầu API của người dùng cuối đến Openstack Compute.nova-api-metadata
service: Chấp nhận yêu cầu metadata từ máy ảo.nova-compute
service: Giao tiếp với hypervisor API để thực hiện các thao tác với máy ảo như tạo, sửa, xóa. Daemon này sẽ nhận yêu cầu từ queue message và thực hiện một loạt các câu lệnh hệ thống để làm việc với hypervisor theo yêu cầu từ queue.nova-scheduler
service: nhận yêu cầu tạo máy ảo và quyết định xem máy ảo sẽ được chạy trên host nào.nova-conductor
module: Trung gian giữa nova-compute và database, ngăn giao tiếp trực tiếp từ nova-compute đến database. Nó có thể mở rộng theo chiều ngang, tuy nhiên, không cài đặt nova-conductor cùng host với nova-computenova-novncproxy
daemon: Cung cấp một proxy cho phép truy cập vào máy ảo thông qua VNC. Hỗ trợ browser-based novnc clients.nova-spicehtml5proxy
daemon: Cung cấp một proxy cho phép truy cập vào máy ảo thông qua kết nối SPICE.nova-xvpvncproxy
: Cung cấp một proxy cho phép truy cập vào máy ảo thông qua VNC. Hỗ trợ OpenStack-specific Java client.
queue
Một trung tâm để truyền tin nhắn giữa các daemon. Thường là RabbitMQ.
SQL database
Lưu trữ trạng thái built-time, run-time của hệ thống.
Mô hình cài đặt
Cài đặt Openstack Nova trên Controller
Chuẩn bị
- Tạo database. ``` mysql -uroot -pSQLROOTPASS « EOF CREATE DATABASE nova_api; CREATE DATABASE nova; CREATE DATABASE nova_cell0;
GRANT ALL PRIVILEGES ON nova_api.* TO ‘nova’@’localhost’
IDENTIFIED BY ‘NOVA_DBPASS’;
GRANT ALL PRIVILEGES ON nova_api.* TO ‘nova’@’%’
IDENTIFIED BY ‘NOVA_DBPASS’;
GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@’localhost’
IDENTIFIED BY ‘NOVA_DBPASS’;
GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@’%’
IDENTIFIED BY ‘NOVA_DBPASS’;
GRANT ALL PRIVILEGES ON nova_cell0.* TO ‘nova’@’localhost’
IDENTIFIED BY ‘NOVA_DBPASS’;
GRANT ALL PRIVILEGES ON nova_cell0.* TO ‘nova’@’%’
IDENTIFIED BY ‘NOVA_DBPASS’;
EOF
2. Tạo tài khoản và dịch vụ cho nova.
. admin-openrc
openstack user create –domain default –password=NOVA_PASS nova
openstack role add –project service –user nova admin
openstack service create –name nova
–description “OpenStack Compute” compute
openstack endpoint create –region RegionOne
compute public http://192.168.30.171:8774/v2.1
openstack endpoint create –region RegionOne
compute internal http://192.168.30.171:8774/v2.1
openstack endpoint create –region RegionOne
compute admin http://192.168.30.171:8774/v2.1
### Cài đặt và cấu hình các thành phần
1. Cài đặt gói:
yum install openstack-nova-api openstack-nova-conductor
openstack-nova-novncproxy openstack-nova-scheduler
2. Backup và chỉnh sửa file cấu hình **/etc/nova/nova.conf** \
mv /etc/nova/nova.conf /etc/nova/nova.conf.orig cat « EOF > /etc/nova/nova.conf [DEFAULT] enabled_apis = osapi_compute,metadata transport_url = rabbit://openstack:RABBIT_PASS@192.168.30.171:5672/ my_ip = 192.168.30.171 use_neutron = true firewall_driver = nova.virt.firewall.NoopFirewallDriver
[api_database] connection = mysql+pymysql://nova:NOVA_DBPASS@192.168.30.171/nova_api
[database] connection = mysql+pymysql://nova:NOVA_DBPASS@192.168.30.171/nova
[api] auth_strategy = keystone
[keystone_authtoken] www_authenticate_uri = http://192.168.30.171:5000/ auth_url = http://192.168.30.171:5000/ memcached_servers = 192.168.30.171:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = nova password = NOVA_PASS
[vnc] enabled = true server_listen = $my_ip server_proxyclient_address = $my_ip
[glance] api_servers = http://192.168.30.171:9292
[oslo_concurrency] lock_path = /var/lib/nova/tmp
[placement] region_name = RegionOne project_domain_name = Default project_name = service auth_type = password user_domain_name = Default auth_url = http://192.168.30.171:5000/v3 username = placement password = PLACEMENT_PASS EOF
3. Đồng bộ database:
su -s /bin/sh -c “nova-manage api_db sync” nova
su -s /bin/sh -c “nova-manage cell_v2 map_cell0” nova
su -s /bin/sh -c “nova-manage cell_v2 create_cell –name=cell1 –verbose” nova
su -s /bin/sh -c “nova-manage db sync” nova
su -s /bin/sh -c “nova-manage cell_v2 list_cells” nova
### Hoàn tất cài đặt
Khởi động các dịch vụ:
systemctl enable
openstack-nova-api.service
openstack-nova-scheduler.service
openstack-nova-conductor.service
openstack-nova-novncproxy.service
systemctl start
openstack-nova-api.service
openstack-nova-scheduler.service
openstack-nova-conductor.service
openstack-nova-novncproxy.service
## Cài đặt Openstack Nova trên Compute
### Cài đặt và cấu hình các thành phần
1. Cài đặt gói cần thiết
yum install -y openstack-nova-compute
2. Backup và chỉnh sửa file cấu hình **/etc/nova/nova.conf**:
mv /etc/nova/nova.conf /etc/nova/nova.conf.orig cat « ‘EOF’ >/etc/nova/nova.conf [DEFAULT] enabled_apis = osapi_compute,metadata transport_url = rabbit://openstack:RABBIT_PASS@controller:5672 my_ip = 192.168.30.172 use_neutron = true firewall_driver = nova.virt.firewall.NoopFirewallDriver
[api] auth_strategy = keystone
[keystone_authtoken] www_authenticate_uri = http://192.168.30.171:5000/ auth_url = http://192.168.30.171:5000/ memcached_servers = 192.168.30.171:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = nova password = NOVA_PASS
[vnc] enabled = true server_listen = 0.0.0.0 server_proxyclient_address = $my_ip novncproxy_base_url = http://192.168.30.171:6080/vnc_auto.html
[glance] api_servers = http://192.168.30.171:9292
[oslo_concurrency] lock_path = /var/lib/nova/tmp
[placement] region_name = RegionOne project_domain_name = Default project_name = service auth_type = password user_domain_name = Default auth_url = http://192.168.30.171:5000/v3 username = placement password = PLACEMENT_PASS
EOF
### Hoàn tất cài đặt
1. Kiểm tra phần cứng hỗ trợ
- Chạy lệnh sau để kiểm tra:
egrep -c ‘(vmx|svm)’ /proc/cpuinfo
Nếu kết quả trả về 1 hoặc lớn hơn thì Compute node hỗ trợ phần cứng phù hợp để chạy và không cần phải cấu hình thêm.
2. Khởi động dịch vụ Compute:
systemctl enable libvirtd.service openstack-nova-compute.service systemctl start libvirtd.service openstack-nova-compute.service
3. Cấu hình firewalld trên compute node
firewall-cmd –add-port={8773-8775/tcp,6080-6082/tcp} –permanent firewall-cmd –reload
4. Cấu hình firewalld trên các compute:
firewall-cmd –add-port=5900-5999/tcp –permanent firewall-cmd –reload ```