安装Nova
Nova管理OpenStack项目中虚拟机实例计算资源的全部生命周期,包括创建、调度和结束。请在控制节点和计算节点安装Nova。在控制节点和计算节点场景安装Nova的操作有所不同,操作过程中请仔细分辨。
在控制节点安装和配置Nova
- 创建数据库、服务凭证和API端点。
- 以root用户登录数据库。
mysql -u root -p
- 创建数据库。
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';
将NOVA_DBPASS替换为Nova数据库用户的密码,请根据实际情况进行设置。密码中请勿包含字符“#@$”,支持特殊字符“&=- _ . + ! * ()”
- 退出数据库。
exit
- 创建Nova服务凭证。
source ~/.admin-openrc openstack user create --domain default --password-prompt nova openstack role add --project service --user nova admin openstack service create --name nova --description "OpenStack Computer" compute
密码中请勿包含字符“#@$”,支持特殊字符“&=- _ . + ! * ()”
- 创建Nova API端点。
openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1 openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1 openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1
- 以root用户登录数据库。
- 安装软件包。
yum install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler
- 编辑配置文件。
- 打开文件。
vi /etc/nova/nova.conf
- 按“i”进入编辑模式,添加如下内容。
[DEFAULT] enabled_apis = osapi_compute,metadata transport_url = rabbit://openstack:RABBIT_PASSWORD@controller:5672/ my_ip = 192.168.14.2 use_neutron = true firewall_driver = nova.virt.firewall.NoopFirewallDriver block_device_allocate_retries = 360 block_device_allocate_retries_interval = 5 [api_database] connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api [database] connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova [api] auth_strategy = keystone [keystone_authtoken] www_authenticate_uri = http://controller:5000/ auth_url = http://controller:5000/ memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = nova password = NOVA_PASSWORD [vnc] enabled = true server_listen = 192.168.14.2 server_proxyclient_address = 192.168.14.2 [glance] api_servers = http://controller: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://controller:5000/v3 username = placement password = PLACEMENT_PASSWORD [neutron] url = http://controller:9696 auth_url = http://controller:5000 auth_type = password project_domain_name = default user_domain_name = default region_name = RegionOne project_name = service username = neutron password = NEUTRON_PASSWORD service_metadata_proxy = true metadata_proxy_shared_secret = NEUTRON_PASSWORD
- [default]字段的内容用于启用计算和元数据的API,配置RabbitMQ消息队列入口,配置my_ip,启用网络服务Neutron。
- [api_database] [database]字段的内容用于配置数据库参数。
- [api] [keystone_authtoken]字段的内容用于配置身份认证服务入口。
- [vnc]字段的内容用于启用并配置远程控制台入口。
- [glance]字段的内容用于配置镜像服务API的地址。
- [oslo_concurrency]字段的内容用于配置lock path。
- [placement]字段的内容用于配置Placement服务的入口。
- 将RABBIT_PASSWORD替换为RabbitMQ中OpenStack账户的密码。
- my_ip为当前节点的管理IP地址。
- server_listen为对应节点的管理IP地址。
- server_proxyclient_address为对应节点的管理IP地址。
- 将NOVA_DBPASS替换为Nova数据库的密码。
- 将NOVA_PASSWORD替换为Nova用户的密码。
- 将PLACEMENT_PASSWORD替换为Placement用户的密码。
- 将NEUTRON_PASSWORD替换为Neutron用户的密码。
- 将METADATA_SECRET替换为合适的元数据代理secret。
- 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
- 打开文件。
- 同步数据库。
- 同步nova-api数据库。
su -s /bin/sh -c "nova-manage api_db sync" nova
- 注册cell0数据库。
su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
- 创建cell1 cell。
su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
- 同步nova数据库。
su -s /bin/sh -c "nova-manage db sync" nova
- 验证cell0和cell1注册正确。
su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
- 同步nova-api数据库。
- 启动Compute服务并设置为系统引导时启动。
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
在计算节点安装和配置Nova
- 安装组件。
yum install openstack-nova-compute edk2-aarch64
- 编辑配置文件。
- 打开文件。
vi /etc/nova/nova.conf
- 按“i”进入编辑模式,添加如下内容。
[DEFAULT] enabled_apis = osapi_compute,metadata transport_url = rabbit://openstack:RABBIT_PASSWORD@controller:5672/ my_ip = 192.168.14.4 use_neutron = true firewall_driver = nova.virt.firewall.NoopFirewallDriver block_device_allocate_retries = 360 block_device_allocate_retries_interval = 5 compute_driver=libvirt.LibvirtDriver instances_path = /var/lib/nova/instances/ lock_path = /var/lib/nova/tmp log_dir = /var/log/nova [api] auth_strategy = keystone [keystone_authtoken] www_authenticate_uri = http://controller:5000/ auth_url = http://controller:5000/ memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = nova password = NOVA_PASSWORD [vnc] enabled = true server_listen = 192.168.14.4 server_proxyclient_address = 192.168.14.4 novncproxy_base_url = http://controller:6080/vnc_auto.html [glance] api_servers = http://controller:9292 [placement] region_name = RegionOne project_domain_name = Default project_name = service auth_type = password user_domain_name = Default auth_url = http://controller:5000/v3 username = placement password = PLACEMENT_PASSWORD [neutron] url = http://controller:9696 auth_url = http://controller:5000 auth_type = password project_domain_name = default user_domain_name = default region_name = RegionOne project_name = service username = neutron password = NEUTRON_PASSWORD [libvirt] virt_type = kvm live_migration_uri = qemu+ssh://root@%s/system live_migration_inbound_addr = 192.168.14.4
- [default]字段用于启用计算和元数据的API,配置RabbitMQ消息队列入口,配置my_ip,启用网络服务Neutron。
- [vnc]字段用于启用并配置远程控制台入口。
- [glance]字段用于配置镜像服务API的地址。
- [placement]字段用于配置Placement服务的入口。
- 将RABBIT_PASSWORD替换为RabbitMQ中OpenStack账户的密码。
- my_ip为当前节点的管理IP地址。
- live_migration_inbound_addr为当前节点的管理IP地址。
- server_listen为对应节点的管理IP地址。
- server_proxyclient_address为对应节点的管理IP地址。
- 将NOVA_DBPASS替换为Nova数据库的密码。
- 将NOVA_PASSWORD替换为Nova用户的密码。
- 将PLACEMENT_PASSWORD替换为Placement用户的密码。
- 将NEUTRON_PASSWORD替换为Neutron用户的密码。
- 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
- 打开文件。
- 创建AAVMF文件和链接。
mkdir -p /usr/share/AAVMF chown nova:nova /usr/share/AAVMF ln -s /usr/share/edk2/aarch64/QEMU_EFI-pflash.raw /usr/share/AAVMF/AAVMF_CODE.fd ln -s /usr/share/edk2/aarch64/vars-template-pflash.raw /usr/share/AAVMF/AAVMF_VARS.fd
- 修改“/etc/libvirt/qemu.conf”文件。
- 打开文件。
vi /etc/libvirt/qemu.conf
- 按“i”进入编辑模式,添加如下内容。
nvram = ["/usr/share/AAVMF/AAVMF_CODE.fd:/usr/share/AAVMF/AAVMF_VARS.fd", "/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw:/usr/share/edk2/aarch64/vars-template-pflash.raw"]
- 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
- 打开文件。
- 启动Compute服务。
systemctl enable libvirtd.service openstack-nova-compute.service systemctl start libvirtd.service openstack-nova-compute.service
- 在控制节点执行如下命令。
su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
在控制节点验证Nova
- 验证Nova。
source ~/.admin-openrc
- 列出服务组件,验证每个服务都成功启动和注册。
openstack compute service list
- 列出身份服务中的API端点,验证与身份服务的连接。
openstack catalog list
- 检查cells是否运作成功,以及其他必要条件是否已具备。
nova-status upgrade check
父主题: 部署并验证