Nova Api :提供统一Rest-api风格API接口,作为Nova组件的入口,接受用户的请求
Nova Scheduler :负责调度,将实例分配到具体计算节点
Nova Conductor :负责Nova与数据库进行交互
Nova Compute :用于虚拟机实例的创建和管理
Message Queue : Nova各个组件之间的信息传递
Database :数据库
---------------------
Nova api接受用户的Cli命令或horizon创建实例请求,以消息队列的形式将请求发送给Nova scheduler,Nova scheduler通过Nova conductor与数据库进行交互,计算当前节点的负载及使用情况,将虚拟机实例分配到当前节点负载最小且满足启动虚拟机实例的节点上,而最终的实例还是要通过Nova compute来创建,而Nova compute将会与Nova volume、Nova network等等一些组件通过消息队列的方式实现相互的协作,最终完成虚拟机实例的创建。
未画出的nova-placement-api,主要追踪每个提供者的库存和使用量情况,比如追踪计算节点的资源,存储池的使用情况以及IP的分配情况等等。
常用术语:
KVM :内核虚拟化,OpenStack默认的是Hypersvisor
Qemu :KVM的替补角色,没有KVM效率高,不支持全虚拟化
Flavor :新建虚拟机的配置列表,虚拟机模板
Keypair :ssh连接访问实例的密钥对
安全组 :用来控制实例访问策略的容器
安全组规则 :用来控制访问的具体实例
1. 配置数据库。
数据库安装官方文档,应该已经安装过。以client登陆进去,以root身份创建nova_api, nova 和 nova_cell0三个数据库,然后退出数据库。
2.新建nova compute和placement。
创建一个名为nova 的openstack用户。
# openstack user create --domain default --password-prompt nova
创建nova服务实体:nova compute
# openstack service create --name nova --description "OpenStack Compute" compute
创建这个服务实体的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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
同理,创建一个名为placement的openstack用户。
创建一个placement API 实体
创建API服务endpoint,注册到控制端端口。
3. 下载nova-api、nova-conductor、nova-console、nova-novncproxy(远程代理)、openstack-nova-scheduler、openstack-nova-placement-api。
4. 配置nova-controller。
配置其网络、vnc、镜像服务API地址、placement 的API等,让安装的组件与环境相符。
5.初始化
初始化nova_api数据库,向nova数据库同步数据。
# su -s /bin/sh -c "nova-manage api_db sync" nova
注册cell0,创建cell1,初始化nova数据库。之后启动。
1.安装nova-compute软件包。
2.网络配置,包括IP、vnc等。然后启动nova-comopute。
3.到controller上对接,发现刚安装的compute节点,也可以设置成自动发现。
注:1、对于最小化安装,compute上需要nova和networking,所以以上装完之后还需要安装neutron2、。
2、配置中有创建cell的相关东西,cell从G版本引入,目的是支持更大规模的部署,结构是树的形式,默认关闭,暂时没有探究。
controller上list一下compute服务:
#openstack compute service list
#openstack catalog list
#openstack image list
#nova-status upgrade check
#openstack host list
#nova service-list
先disable要删除的节点
#nova service-disable nova-node2.openstack nova-compute
在数据库里清理(nova库)
# mysql -p
use nova;
delete from nova.services where host="nova-node2.openstack";
delete from compute_nodes where hypervisor_hostname="nova-node2.openstack";
select host from nova.services;
select hypervisor_hostname from compute_nodes;
参考资料:
https://blog.csdn.net/lks1139230294/article/details/67152854