中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

安装Nova

Nova管理OpenStack项目中虚拟机实例计算资源的全部生命周期,包括创建、调度和结束。请在控制节点和计算节点安装Nova。在控制节点和计算节点场景安装Nova的操作有所不同,操作过程中请仔细分辨。

在控制节点安装和配置Nova

  1. 创建数据库、服务凭证和API端点。
    1. 以root用户登录数据库。
      mysql -u root -p 
    2. 创建数据库。
      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数据库用户的密码,请根据实际情况进行设置。密码中请勿包含字符“#@$”,支持特殊字符“&=- _ . + ! * ()”

    1. 退出数据库。
      exit
    2. 创建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

      密码中请勿包含字符“#@$”,支持特殊字符“&=- _ . + ! * ()”

    3. 创建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
  2. 安装软件包。
    yum install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler
  3. 编辑配置文件。
    1. 打开文件。
      vi /etc/nova/nova.conf
    2. 按“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。
    1. 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
  4. 同步数据库。
    1. 同步nova-api数据库。
      su -s /bin/sh -c "nova-manage api_db sync" nova
    2. 注册cell0数据库。
      su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
    3. 创建cell1 cell。
      su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
    4. 同步nova数据库。
      su -s /bin/sh -c "nova-manage db sync" nova
    5. 验证cell0和cell1注册正确。
      su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
  5. 启动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

  1. 安装组件。
    yum install openstack-nova-compute edk2-aarch64
  2. 编辑配置文件。
    1. 打开文件。
      vi /etc/nova/nova.conf
    2. 按“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用户的密码。
    3. 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
  3. 创建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
  4. 修改“/etc/libvirt/qemu.conf”文件。
    1. 打开文件。
      vi /etc/libvirt/qemu.conf
    2. 按“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"]
    3. 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
  5. 启动Compute服务。
    systemctl enable libvirtd.service openstack-nova-compute.service 
    systemctl start libvirtd.service openstack-nova-compute.service
  6. 在控制节点执行如下命令。
    su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

在控制节点验证Nova

  1. 验证Nova。
    source ~/.admin-openrc
  2. 列出服务组件,验证每个服务都成功启动和注册。
    openstack compute service list
  3. 列出身份服务中的API端点,验证与身份服务的连接。
    openstack catalog list
  4. 检查cells是否运作成功,以及其他必要条件是否已具备。
    nova-status upgrade check