CONTENTS
1、Nova-计算服务介绍
1.1 Nova是什么?
- Openstack是由Rackspace 和NASA 共同开发的云计算平台
- 类似于Amazon EC2和S3的云基础架构服务
- Nova在Openstack 中提供云计算服务
- 超过140家企业及18470 为开发者参与开发
1.2 组件说明
(1)组件说明-API
- nova-api service 接收并响应终端用户计算API调用。该服务支持OpenStack 计算API,Amazon EC2和特殊的管理特权API
- nova-api-metadata service 接受从实例元数据发来的请求。该服务通常与nova-network 服务在安装多主机模式下运行
(2)组件说明-Core
- nova-compute service 一个守护进程,通过虚拟化层API接口创建和终止虚拟机实例。例如: XenAPI for XenServer/XCP,libvirt for KVM or QEMU,VMwareAPI for Vmware
- nova-scheduler service 从队列中获取虚拟机实例请求,并确认由哪台计算服务运行该虚拟机
- nova-conductor module 协调nova-compute 服务和database 之间的交互数据。避免nova-compute服务直接访问云数据库。不要将该模块部署在nova-compute 运行的节点上
(3)组件说明-Networking
- nova- network worker daemon 类似于nova- compute服务,接受来自队列的网络任务和操控网络。比如这只网卡桥接或改变iptables规则
- nova-consoleauth daemon在控制台代理提供用户授权令牌
- nova- novneproxy daemon 提供了一个通过VNC连接来访问运行的虚拟机实例的代理。支持基于浏览器的novnc客户端
- nova-spicehtml5proxy daemon 提供了-一个通过spice 连接来访问运行的虚拟机实例的代理。支持基于浏览器的HTML5客户端
- nova-xvpnvncproxy daemon 提供了一个通过VNC连接来访问运行的虚拟机实例的代理。支持OpenStack-specific Java 客户端
- nova-cert daemon x509证书
(4)组件说明-other
- nova-objectstore daemon 一个Amazon S3的接口,用于将Amazon S3的镜像注册到OpenStackeuca2ools client 用于兼容于Amazon E2接口的命令行工具
- nova client nova命令行工具
- The queue 在进程之间传递消息的中心。通常使用RabbitMQ
- SQLdatabase保存云基础设置建立和运行时的状态信息
1.3 组件沟通方式
(1)组件的位置顺序
(2)Nova内部沟通
(3)Nova同其他组件沟通
(4)虚拟机启动流程
2、Nova安装配置
请在前面实验的基础上继续做以下操作。
2.1 controller节点配置
(1)配置先决条件
#1、创建数据库,完成下列步骤:
#a.使用数据库管理员root登录数据库
mysql-u root -p
#b.创建nova数据库
CREATE DATABASE nova;
#c.创建数据库用户nova,并授予nova用户对nova数据库的完全控制权限。
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';
#2、执行admin环境脚本
source admin-openrc.sh
#3、在认证服务中创建计算服务的认证信息。完成下列步骤:
#a.创建nova用户
keystone user-create --name nova --pass NOVA_PASS
#b.链接nova用户到service租户和admin角色
keystone user-role-add --user nova --tenant service --role admin
#c.创建nova服务
#keystone service-create --name nova --type compute --description "OpenStackCompute"
#4、创建计算服务端点
keystone endpoint-create --service-id $(keystone service-list | awk '/ compute / {print $2}') --publicurl http://controller.nice.com:8774/v2/%\(tenant_id\)s --internalurl http://controller.nice.com:8774/v2/%\(tenant_id\)s --adminurl http://controller.nice.com:8774/v2/%\(tenant_id\)s --region regionOne
(2)安装和配置计算控制组件
#1、安装软件包
yum install openstack-nova-api openstack-nova-cert openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler python-novaclient -y
#2、编辑/etc/nova/nova.conf文件,完成如下操作:
#a.编辑[database]小节,配置数据库访问:
[database]
...
connection=mysql://nova:NOVA_DBPASS@controller.nice.com/nova
#b.编辑[DEFAULT]小节,配置RabbitMQ消息队列访问:
[DEFAULT]
...
rpc_backend=rabbit
rabbit_host=controller.nice.com
rabbit_password=guest
#c.编辑[DEFAULT]和[keystone_authtoken]小节,配置认证服务
[DEFAULT]
...
auth_strategy=keystone
[keystone_authtoken]
...
auth_uri=http://controller.nice.com:5000/v2.0
identity_uri=http://controller.nice.com:35357
admin_tenant_name=service
admin_user=nova
admin_password=NOVA_PASS
#d.编辑[DEFAULT]小节,配置my_ip选项为controller节点的管理接口ip:
[DEFAULT]
...
my_ip=192.168.119.181
#e.编辑[DEFAULT]小节,配置VNCdialing服务的使用controller节点的管理接口ip:
[DEFAULT]
...
vncserver_listen=192.168.119.181
vncserver_proxyclient_address=192.168.119.181
#f.编辑[glance]小节,配置镜像服务器的位置:
[glance]
...
host=controller.nice.com
#g.(可选)在[DEFAULT]小节中配置详细日志输出。方便排错。
[DEFAULT]
...
verbose=True
#3、初始化计算数据库
su -s /bin/sh -c "nova-manage db sync" nova
(3)启动计算服务并配置开机自动启动:
systemctl enable openstack-nova-api.service openstack-nova-cert.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
systemctl start openstack-nova-api.service openstack-nova-cert.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
2.2 compute节点配置
(1)安装并配置计算虚拟化组件
#1、安装软件包
yum install openstack-nova-compute sysfsutils
#2、编辑/etc/nova/nova.conf文件,完成下列步骤:
#a.编辑[DEFAULT]小节,配置RabbitMQ消息队列访问:
[DEFAULT]
...
rpc_backend=rabbit
rabbit_host=controller.nice.com
rabbit_password=guest
#b.编辑[DEFAULT]和[keystone_authtoken]小节,配置认证服务访问:
[DEFAULT]
...
auth_strategy=keystone
[keystone_authtoken]
...
auth_uri=http://controller.nice.com:5000/v2.0
identity_uri=http://controller.nice.com:35357
admin_tenant_name=service
admin_user=nova
admin_password=NOVA_PASS
#c.编辑[DEFAULT]小节,配置my_ip配置项:
[DEFAULT]
...
my_ip=192.168.119.179
#d.编辑[DEFAULT]小节,开启并配置远程控制台访问
[DEFAULT]
...
vnc_enabled=True
vncserver_listen=0.0.0.0
vncserver_proxyclient_address=192.168.119.179
novncproxy_base_url=http://controller.nice.com:6080/vnc_auto.html
#e.编辑[glance]小节,配置镜像服务器位置
[glance]
...
host=controller.nice.com
#f.(可选)在[DEFAULT]小节中配置详细日志输出。方便排错。
[DEFAULT]
...
verbose=True
(2)确认你的计算节点是否支持硬件虚拟化
egrep -c '(vmx|svm)' /proc/cpuinfo
- 如果返回值>=1,则说明你的计算节点硬件支持虚拟化,无需额外配置。
- 如果返回值=0,则活命你的计算节点硬件不支持虚拟化,你必须配置libvirt由使用KVM改为QEMU。
因为我用的是VMware,我返回值为0,不支持虚拟化,我们要想在虚拟机再实现虚拟化,需要手动编辑虚拟机设置(需关机进行):
(3)在/etc/nova/nova.conf文件中编辑[libvirt]小节
[libvirt]
...
virt_type=qemu
(4)启动计算服务及依赖服务,并设置他们开机自动启动。
systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service
systemctl start openstack-nova-compute.service
3、验证配置
(1)compute节点登录数据库,查看nova数据库中的表
(2)先启用admin环境脚本:source admin-openrc.sh。然后列出服务组件确认每一个进程启动成功
(3)列出镜像服务中的镜像列表,确认连接认证服务器和镜像服务器成功。