OpenStack-Nova

Nova是OpenStack最核心的服务,负责维护和管理云环境的计算资源,虚拟机生命周期也是通过Nova来实现的。

用途与功能 :                                                                                                                                          1) 实例生命周期管理                                                                                                                   2) 管理计算资源                                                                                                                         3) 网络和认证管理                                                                                                                     4)REST 风格的 API                                                                                                                   5) 异步的一致性通信                                                                                                                 6)Hypervisor 透明:支持Xen,XenServer/XCP,KVM, UML, VMware vSphere and Hyper-V,Hypervisor(系统管理程序):虚拟化技术的核心,是物理服务器和操作系统之间的软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此可以看作是虚拟环境中的“元”操作系统,他可以协调访问服务器上的所有物理设备和虚拟机,也叫虚拟机监视器。

Nova组件:

1、Nova-api是这个Nova组件的门户,接收和响应客户的API调用,所有对Nova的请求都是首先由NOva-api处理,Nova-api向外界暴露若干HTTP REST API 接口。                                 2、Nova-scheduler虚拟机调度器,是compute core,主要负责决定在哪个计算节点是哪个运行虚拟机,OpenStack的默认调度器为:filter scheduler,调度器中含有的两部分:instance(实例),flavor(模板),在生成一个实例的时候可以根据模板中的规定去生成。  调度过程:                                                                                                                               

1)通过过滤器filter选择满足条件的计算机节点(nova-compute)                                      

2)通过计算权重(weighting)选择在最优的计算节点上创建instance                                 

3、Nova-compute管理虚拟机的核心服务,在计算节点上运行,通过调研hypervisor API实现节点上的instance的生命周期管理,OpenStack对instance的操作最后都是交给nova-compute来完成的,nova-compute和Hypervisor一起实现OpenStack对instance生命周期的管理。                   

4、Nova-conductor:nova-compute 经常需要更新数据库,比如更新和获取虚机的状态。 出于安全性和伸缩性的考虑,nova-compute 并不会直接访问数据库,而是将这个任务委托给 nova-conductor。                                                                      

5、nova-console: 用户可以通过多种方式访问虚机的控制台:                                            

6、nova-novncproxy: 基于 Web 浏览器的 VNC 访问

Nova的部署方案:Nova 的以上这些组件都会部署在两类节点上:计算节点、控制节点,其中只有nova-compute需要放在计算节点上,其他服务则放在控制节点上,计算节点和控制节点之间事通过集群网通信,两个节点之间虚拟机的通信是通过租户网。另外,可以将所有服务都放在一台物理机上,作为一个 All-in-One 的测试环境; 也可以将服务部署在多台物理机上,获得更好的性能和高可用。

Nova服务中各个组件之间协同工作:

OpenStack-Nova_第1张图片

1、客户(可以是 OpenStack 最终用户,也可以是其他程序)向 API(nova-api)发送请求:“帮我创建一个虚机”                                                                                                            2、API 对请求做一些必要处理后,向 Messaging(RabbitMQ)发送了一条消息:“让 Scheduler 创建一个虚机”                                                                                                           3、Scheduler(nova-scheduler)从 Messaging 获取到 API 发给它的消息,然后执行调度算法,从若干计算节点中选出节点 A                                                                                          4、Scheduler 向 Messaging 发送了一条消息:“在计算节点 A 上创建这个虚机”                      5、计算节点 A 的 Compute(nova-compute)从 Messaging 中获取到 Scheduler 发给它的消息,然后在本节点的 Hypervisor 上启动虚机。                                                                      6、在虚机创建的过程中,Compute 如果需要查询或更新数据库信息,会通过 Messaging 向 Conductor(nova-conductor)发送消息,Conductor 负责数据库访问。

验证Nova服务是否安装完成:                                                                                                              1、nova service-list  查看Nova下的服务状态 ,如果服务起不了,查看openstack用户是否存在: rabbitmqctl list_users                                                                                                     2、openstack endpoint list   查看openstack下各服务的API端点                                               3、nova image-list   查看可用的镜像文件                                                    

关于nova的命令:                                                                                                                             1、nova list             显示当前节点的虚拟机                                                                                2、nova list --all-t  显示所有节点的所有虚拟机   

配置文件注意点:

my_ip = 集群网ip                                                                                                                      主机名要做修改,还有openstack用户的密码                                                                                  [vnc]                                                                                                                                    novncproxy_base_url = http://192.168.254.230:6080/vnc_auto.html   ip 为集群网ip    

注意:在openstack界面无法建立虚机的时候执行以下命令:

        nova-manage cell_v2 discover_hosts --verbose   

你可能感兴趣的:(OpenStack-Nova)