计算服务
计算服务是云算机控制器,它是IaaS系统的主要部分,用它来承载和管理云计算系统,主模块是用python来实现的,与keystone验证,对于图像服务以及dashboard和管理接口,获取镜像是通过项目和用户配额限制,如实例数量,
组件:
API
Nova-api请求和回复一个用户计算的API,支持openstack 计算API,Amazon EC2 api和Admin Api对特权用户执行管理操作,另外启动最新的任务,如运行一个实例,安装一个虚拟机
Nova-api-metadata 接受来自实例的元数据请求
Comput core
Nova-comput 进程,一个守护进程,通过虚拟机管理程序的API创建和终止虚拟机实例,如xenapi for xenserver/xcp libvirt适用于kvm 或qemu vmwareapi 适用于vmware
Nova-scheduler 进程,调度,从消息队列中取一个虚拟机实例的请求,并执行在其虚拟主机上。
Nova-conductor 模式,介于nova-computer和database之间,设计目的在于消除直接nova-computer直接访问云数据库。
Networking for VMs
Nova-network 工作守护进程,类nova-computer它接受消息队列中的任务闭幕式执行,如设立桥接接口或者更改iptables规则,
Nova-dhcpbridge 脚本,跟踪IP地址租约,并通过使用dnsmasq的DHCP脚本记录在数据库中。
Console interface
Noca-consoleauth 守护进程,由用户的console控制台代理提供授权tokens,两种模式nova-novncproxy和nova-xvpnvcproxy
nova-novncproxy 守护进程,提供了VNC连接访问正在运行的实例的代表,基于novnc客户浏览器
Nova-console 已经弃用,被 nova-xvpnvncproxy取代
nova-xvpnvncproxy 守护进程,通过vnc连接访问正在运行的实例代理,支持专门设计的Openstack的java客户端
Nova-cert 守护进程,管理x509证书
Image management
nova-objectstore 提供了一个用于注册S3接口的镜像服务,主要必须支持euca2ools安装,nova-objectstore转换S3请求镜像服务的请求
Euca2ools 客户端,一组命令解释器来管理云资源,可以配置nova-api来支持EC2接口。
Command-line clients and other interfaces
Nova 客户端 使用户、租客管理员提交命令
Nova-manage 客户端,使云管理员提交命令
Other components
The queue 消息队列 rabbitmq,apache qpid zeromq
Sql database 数据库mysql,sqlite,PostgreSQL
逻辑图:
安装
可以配置在一个节点或多个节点。
1、安装包
# apt-get install nova-novncproxy novnc nova-api nova-ajax-console-proxy nova-cert nova-conductor nova-consoleauth nova-doc nova-scheduler python-novaclient
2、配置连接数据库/etc/nova/nova.conf和注册keystone服务
[database]
connection = mysql://nova:stack@controller/nova
[keystone_authtoken]
auth_host = controller
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = nova
admin_password = stack
3、配置使用消息队列rabbitmq
rpc_backend = nova.rpc.impl_kombu
rabbit_host = controller
rabbit_password = rabbit
4、删除默认数据库
# rm /var/lib/nova/nova.sqlite
5、创建数据库以及授权访问
mysql> create database nova;
mysql> GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@’localhost’ IDENTIFIED BY ‘stack’;
mysql> GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@’controller’ IDENTIFIED BY ‘stack’;
6、同步计算服务数据表
# nova-manage db sync
查看数据库的表
7、设制自己的IP以及其它VNC监控的项
8、在keystone中注册nova
# keystone user-create –name=nova –pass=stack –email=zwhset@163.com
# keystone user-role-add –user=nova –tenant=service –role=admin
9、配置使用keystone验证以及更改nova_pass密码 [DEFAULT]项里
auth_strategy=keystone
10、添加认证方式和密码等文件/etc/nova/api-paste.ini
[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = controller
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = nova
admin_password = stack
注意:在nova.conf文件里有这个文件的指向:
11、注册keystone服务让其它服务找到他,并且创建终端。
# keystone service-create –name=nova –type=compute –description=”Nova Compute service”
使用刚才的ID创建终端,
keystone endpoint-create \
> –service-id=2c4823bba2a0455ab1f45ab956cd830a \
> –publicurl=http://controller:8774/v2/%\(tenant_id\)s \
> –internalurl=http://controller:8774/v2/%\(tenant_id\)s \
> –adminurl=http://controller:8774/v2/%\(tenant_id\)s
12、重启计算服务
# service nova-api restart
# service nova-cert restart
# service nova-consoleauth restart
# service nova-scheduler restart
# service nova-conductor restart
# service nova-novncproxy restart
13、列出计算可用的镜像