第五章——安装和配置计算服务Nova
基础知识:Nova简介
Nova是OpenStack中的计算模块,是三大核心组件中最重要的一个模块,负责云计算环境中虚拟机的管理。
在Nova内部为Nova内部进程提供各种服务的小型组件
1.虚拟机管理:nova-api:为Nova模块提供了Restful API
nova-compute:虚拟机管理模块
nova-scheduler:调度模块,主要是选择合适的主机来创建虚拟机
2.虚拟机VNC及日志管理:nova-novncproxy:NoVNC代理服务
nova-consoleauth:虚拟机开机日志服务
nova-xvpnvncproxy:xvpnvnc代理服务
3.数据库管理:nova-conductor:数据库操作服务
4.安全管理:nova-consoleauth:VNC及日志安全认证服务
nova-cert:产生证书
Nova内部各组件的通信依赖于消息通信服务,这样做的好处是部署灵活、代码耦合低,添加小服务简单且可扩展性强。缺点就是RabbitMQ的失效会导致Nova服务不可用。如图(a)所示。
5.1、在控制节点上安装和配置Nova
注意:以下操作均在控制节点
1.创建数据库
1)登录mysql
相关命令:mysql
-u root -p
2)创建nova数据库
相关命令:CREATE
DATABASE nova;
3)授权
相关命令:GRANT
ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
IDENTIFIED BY 'NOVA_DBPASS';
GRANT
ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
IDENTIFIED BY 'NOVA_DBPASS';
4)退出mysql
相关命令:exit
2.生效环境变量
相关命令:source
admin-openrc.sh
3.创建服务认证
1)创建一个nova用户
相关命令:keystone
user-create --name nova --pass NOVA_PASS
2)给nova用户授予admin角色
相关命令:keystone
user-role-add --user nova --tenant service --role admin
3)创建nova服务实例
相关命令:keystone
service-create --name nova --type compute \
--description "OpenStack Compute"
4.创建nova服务API endpoints
相关命令:keystone endpoint-create \
--service-id $(keystone service-list | awk '/ compute / {print $2}') \
--publicurl http://controller:8774/v2/%\(tenant_id\)s \
--internalurl http://controller:8774/v2/%\(tenant_id\)s \
--adminurl http://controller:8774/v2/%\(tenant_id\)s \
--region regionOne
5.安装配置计算控制组件
相关命令:apt-get
install nova-api nova-cert nova-conductor nova-consoleauth \
nova-novncproxy nova-scheduler
python-novaclient
6.编辑文件nova.conf(注意:文件里东西参数不全就自己添加)
相关命令:gedit /etc/nova/nova.conf
1)在[database]部分,配置数据库连接
[database]
connection
= mysql://nova:NOVA_DBPASS@controller/nova
2)在
[DEFAULT]部分,配置RabbitMQ
消息代理访问
[DEFAULT]
rpc_backend
= rabbit
rabbit_host
= controller
rabbit_password
= RABBIT_PASS
3) 在[DEFAULT]
和
[keystone_authtoken]部分,配置认证访问
[DEFAULT]
auth_strategy = keystone
[keystone_authtoken]
auth_uri = http://controller:5000/v2.0
identity_uri = http://controller:35357
admin_tenant_name = service
admin_user = nova
admin_password = NOVA_PASS
4)在 [DEFAULT]部分,配置控制节点,管理网络的ip地址my_ip 选项
[DEFAULT]
my_ip
= 10.0.0.11
5)在 [DEFAULT] 部分,配置VNC 代理,使用控制节点管理网络ip地址
[DEFAULT]
vncserver_listen
= $my_ip
vncserver_proxyclient_address
= $my_ip
6)在[glance]部分,配置image服务
[glance]
host
= controller
7)为排除故障,在[DEFAULT]部分,启用详细日志
[DEFAULT]
verbose
= True
7.同步数据库
相关命令:su
-s /bin/sh -c "nova-manage db sync" nova
8.重启计算服务
相关命令:service
nova-api restart
service
nova-cert restart
service
nova-consoleauth restart
service
nova-scheduler restart
service
nova-conductor restart
service
nova-novncproxy restart
9.如果存在SQLite 数据库,则删除
相关命令:rm
-f /var/lib/nova/nova.sqlite
5.2、在计算节点上安装和配置Nova
注意:以下操作均在计算节点
1.安装计算组件
相关命令:apt-get
install nova-compute sysfsutils
2.编辑文件nova.conf
相关命令:gedit /etc/nova/nova.conf
1)在[DEFAULT]部分,配置RabbitMQ 消息代理访问
[DEFAULT]
rpc_backend
= rabbit
rabbit_host
= controller
rabbit_password
= RABBIT_PASS
2)在 [DEFAULT] 和
[keystone_authtoken] 部分,配置认证服务访问
[DEFAULT]
auth_strategy = keystone
[keystone_authtoken]
auth_uri = http://controller:5000/v2.0
identity_uri = http://controller:35357
admin_tenant_name = service
admin_user = nova
admin_password = NOVA_PASS
3)在 [DEFAULT]部分配置,配置计算节点管理网络ip地址,my_ip 选项
[DEFAULT]
my_ip
= 10.0.0.31
4)在 [DEFAULT]部分,启用配置远程访问
[DEFAULT]
vnc_enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html
注意: 这个服务组件侦听所有IP地址,代理组件仅监听计算节点管理网络ip地址。novncproxy_base_url表示的是你可以通过浏览器远程访问计算节点产生的实例控制台【也就是我们自己启动的虚拟机】,如果controller服务器超时,就novncproxy_base_url中更改controller为对应ip。
5)在 [glance]部分,配置Image 服务的host
[glance]
host
= controller
6)为排除故障,在[DEFAULT]部分,启用详细日志记录
[DEFAULT]
verbose
= True
3.通过下面命令,测试是否支持虚拟机硬件加速
egrep
-c '(vmx|svm)' /proc/cpuinfo
如果输出的不是0,那么不需要额外配置
如果输出的是0.则使用QEMU 代替KVM编辑文件nova-compute.conf
相关命令:gedit /etc/nova/nova-compute.conf
[libvirt]
virt_type
= qemu
4.重启计算服务
相关命令:service
nova-compute restart
5.如果存在SQLite 数据库,则删除
相关命令:rm
-f /var/lib/nova/nova.sqlite
5.3、验证计算服务Nova
注意:以下操作均在控制节点
1.生效环境变量
相关命令:source
admin-openrc.sh
2.列出创建成功的组件进程
相关命令:nova
service-list
3.列出镜像服务目录
相关命令:nova
image-list