• 第四步(1):安装openstack-nova服务-计算节点


    部署nova-compute

    https://docs.openstack.org/nova/train/install/compute-install-rdo.html #nova-compute部署

    nova-compute 服务是安装在 node 节点上的服务
    
    1、hostnamectl set-hostname openstack-node1.example.local
    
    2、yum install centos-release-openstack-train.noarch -y #安装openstack的yum源
    
    3、yum install python-openstackclient -y   #安装openstack的客户端
    
    4、yum install openstack-selinux -y
    
    5、yum install https://rdoproject.org/repos/rdo-release.rpm -y  
    #安装rdo源;rdo源可以不安装,rdo源里面只是有一些新开发测试的包
    
    6、yum install openstack-nova-compute -y  #安装nova compute服务
    
    7、vim /etc/nova/nova.conf
    [DEFAULT]
    enabled_apis = osapi_compute,metadata  #指定支持的api类型
    transport_url = rabbit://openstack:openstack123@openstack-vip.linux.local 
    #指定连接的rabbitmq
    use_neutron = true   #通过neutron获取IP地址
    firewall_driver = nova.virt.firewall.NoopFirewallDriver
    
    [api]
    auth_strategy = keystone   #通过keystone认证
    
    [keystone_authtoken]   #配置keystone的认证信息
    www_authenticate_uri = http://openstack-vip.linux.local:5000/ #到此url去认证
    auth_url = http://openstack-vip.linux.local:5000/   #认证的keystone地址
    memcached_servers = openstack-vip.linux.local:11211
    auth_type = password
    project_domain_name = Default
    user_domain_name = Default
    project_name = service
    username = nova
    password = nova
    
    [vnc]       #此处如果配置不正确,则连接不上虚拟机的控制台
    enabled = true
    server_listen = 0.0.0.0   #指定vnc的监听地址
    server_proxyclient_address = 172.31.7.107  #server的客户端地址为本机地址;此地址是管理网的地址
    novncproxy_base_url = http://openstack-vip.linux.local:6080/vnc_auto.html
    #当访问controller vnc的6080时,controller会把请求转发到虚拟机所在node节点的server_proxyclient_address 所设置的地址,所以需要 server_proxyclient_address 指定好本机的监听地址
    
    [glance]
    api_servers = http://openstack-vip.linux.local:9292  #nova compute从指定的glance的api获取镜像
    
    [oslo_concurrency]
    lock_path = /var/lib/nova/tmp  #配置锁路径
    
    [placement]   #node节点需要向placement汇到当前node节点的可用资源
    region_name = RegionOne
    project_domain_name = Default
    project_name = service
    auth_type = password
    user_domain_name = Default
    auth_url = http://openstack-vip.linux.local:5000/v3
    username = placement
    password = placement
    
    8、egrep -c '(vmx|svm)' /proc/cpuinfo
    #验证node节点是否支持硬件辅助虚拟化;vmx是intel虚拟化,svm是amd虚拟化技术;一般每盒cpu都支持vmx;如果cpu不支持虚拟化,则需要编辑nova的主配置文件:
    vim /etc/nova/nova.conf
    [libvirt]
    virt_type = qemu  #指定qemu,模拟虚拟化,但是性能非常差
    
    9、vim /etc/hosts   #配置文件中指定了域名,所以需要配置解析
    172.31.7.248 openstack-vip.linux.local
    
    10、systemctl start libvirtd.service openstack-nova-compute.service
    
    11、tail -f /var/log/nova/nova-compute.log   #通过查看日志,判断 nova compute 是否启动成功
    
    12、systemctl enable libvirtd.service openstack-nova-compute.service
    

    测试

    1、. admin-openrc.sh
    
    2、openstack compute service list --service nova-compute
    #查看compute节点是否注册到controller上,通过消息队列;需要在controller节点执行
    
    3、su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
    #扫描当前openstack中有哪些计算节点可用,发现后会把计算节点创建到cell中,后面就可以在cell中创建虚拟机;相当于openstack内部对计算节点进行分组,把计算节点分配到不同的cell中
    
    4、第三步中,每次添加个计算节点,在控制端就需要执行一次扫描,这样会很麻烦,所以可以修改控制端nova的主配置文件:
    vim /etc/nova/nova.conf
    [scheduler]
    discover_hosts_in_cells_interval = 300  #设置每5分钟自动扫描一次可用计算节点
    

    验证操作

    https://docs.openstack.org/nova/train/install/verify.html #验证参考文档

    在进行验证操作之前,必须配置好控制端和 node 节点上的 nova 服务才可进行验证
    
    以下操作都需要在controller节点运行,因为controller节点有环境变量;
    1、. admin-openrc.sh
    
    2、openstack compute service list  #检查 nova 的各个服务是否都是正常,以及 compute 服务是否注册成功
    
    3、openstack catalog list  #查看各个组件的 api 是否正常
    
    4、openstack image list    #查看是否能够拿到镜像
    
    5、nova-status upgrade check  
    #查看cell的api和placement的api是否正常,只要其中一个有误,后期无法创建虚拟机
    
    6、nova service-list  #检查 nova 的各个服务是否都是正常
    

    注意

    1、controller 和 node 节点上的 nova 服务的日志中,不能有任何 error,只要有一个 error,就会造成 nova 服务无法启动;
    
    2、openstack中,主机名是绝对不能重复的;
    
  • 相关阅读:
    上下文管理
    复习1
    描述符
    迭代器斐波那契数列
    迭代器协议
    __call__ 方法
    析构方法__del__
    __module__和class
    1.8命令执行顺序控制与管道(学习过程)
    1.7文件系统操作与磁盘管理(学习过程)
  • 原文地址:https://www.cnblogs.com/dongzhanyi123/p/13299867.html
Copyright © 2020-2023  润新知