浓墨重彩之OpenStack-06-nova计算服务
来源:互联网 发布:电脑怎么检查网络 编辑:程序博客网 时间:2024/05/21 08:35
1、计算服务概览
使用OpenStack计算服务来托管和管理云计算系统。OpenStack计算服务是基础设施即服务(IaaS)系统的主要部分,模块主要由Python实现。
OpenStack计算组件请求OpenStack Identity服务进行认证;请求OpenStack Image服务提供磁盘镜像;为OpenStack dashboard提供用户与管理员接口。磁盘镜像访问限制在项目与用户上;配额以每个项目进行设定(例如,每个项目下可以创建多少实例)。OpenStack组件可以在标准硬件上水平大规模扩展,并且下载磁盘镜像启动虚拟机实例。
OpenStack计算服务由下列组件所构成:
nova-api 服务
接收和响应来自最终用户的计算API请求。此服务支持OpenStack计算服务API,Amazon EC2 API,以及特殊的管理API用于赋予用户做一些管理的操作。它会强制实施一些规则,发起多数的编排活动,例如运行一个实例。
nova-api-metadata 服务
接受来自虚拟机发送的元数据请求。``nova-api-metadata``服务一般在安装``nova-network``服务的多主机模式下使用.
``nova-compute``服务
一个持续工作的守护进程,通过Hypervior的API来创建和销毁虚拟机实例。例如:
- XenServer/XCP 的 XenAPI
- KVM 或 QEMU 的 libvirt
- VMware 的 VMwareAPI
过程是蛮复杂的。最为基本的,守护进程同意了来自队列的动作请求,转换为一系列的系统命令如启动一个KVM实例,然后,到数据库中更新它的状态。
``nova-scheduler``服务
拿到一个来自队列请求虚拟机实例,然后决定那台计算服务器主机来运行它。
``nova-conductor``模块
媒介作用于``nova-compute``服务与数据库之间。它排除了由``nova-compute``服务对云数据库的直接访问。nova-conductor模块可以水平扩展。但是,不要将它部署在运行``nova-compute``服务的主机节点上。
``nova-cert``模块
服务器守护进程向Nova Cert服务提供X509证书。用来为``euca-bundle-image``生成证书。仅仅是在EC2 API的请求中使用
nova-networkworker 守护进程
与``nova-compute``服务类似,从队列中接受网络任务,并且操作网络。执行任务例如创建桥接的接口或者改变IPtables的规则。
nova-consoleauth 守护进程
授权控制台代理所提供的用户令牌。详情可查看``nova-novncproxy``和 nova-xvpvncproxy。该服务必须为控制台代理运行才可奏效。
nova-novncproxy 守护进程
提供一个代理,用于访问正在运行的实例,通过VNC协议,支持基于浏览器的novnc客户端。
nova-spicehtml5proxy 守护进程
提供一个代理,用于访问正在运行的实例,通过 SPICE 协议,支持基于浏览器的 HTML5 客户端。
nova-xvpvncproxy 守护进程
提供一个代理,用于访问正在运行的实例,通过VNC协议,支持OpenStack特定的Java客户端。
nova-cert 守护进程
X509 证书。
``nova``客户端
用于用户作为租户管理员或最终用户来提交命令。
队列
一个在守护进程间传递消息的中央集线器。
SQL数据库
存储构建时和运行时的状态,为云基础设施,包括有:
- 可用实例类型
- 使用中的实例
- 可用网络
- 项目
理论上,OpenStack计算可以支持任何和SQL-Alchemy所支持的后端数据库,通常使用SQLite3来做测试可开发工作,MySQL和PostgreSQL 作生产环境。
2、安装并配置控制节点
先决条件
在安装和配置 Compute 服务前,你必须创建数据库服务的凭据以及 API endpoints。
- 为了创建数据库,必须完成这些步骤:
- 用数据库连接客户端以 root 用户连接到数据库服务器:
$ mysql -u root -p
- 创建 nova_api 和nova 数据库:
CREATE DATABASE nova_api;CREATE DATABASE nova;
- 对数据库进行正确的授权:
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY '000000';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY '000000';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY '000000';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '000000';
- 退出数据库客户端。
- 获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
$ . admin-openrc
- 要创建服务证书,完成这些步骤:
- 创建 nova 用户:
$ openstack user create --domain default --password-prompt novaUser
Password:
Repeat User Password:
- 给 nova 用户添加admin 角色:
$ openstack role add --project service --user nova admin
- 创建 nova 服务实体:
$ openstack service create --name nova --description "OpenStack Compute" compute
- 创建 Compute 服务 API 端点 :
$ openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1/%\(tenant_id\)s
$ openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1/%\(tenant_id\)s
$ openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1/%\(tenant_id\)s
安全并配置组件
- 安装软件包:
# yum install openstack-nova-api openstack-nova-conductor
openstack-nova-console openstack-nova-novncproxy
openstack-nova-scheduler
- 编辑``/etc/nova/nova.conf``文件并完成下面的操作:
- 在``[DEFAULT]``部分,只启用计算和元数据API:
[DEFAULT]
...
enabled_apis=osapi_compute,metadata
- 在``[api_database]``和``[database]``部分,配置数据库的连接:
[api_database]
...
connection=mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
[database]
...
connection=mysql+pymysql://nova:NOVA_DBPASS@controller/nova
用你为 Compute 数据库选择的密码来代替 NOVA_DBPASS。
- 在 “[DEFAULT]” 和 “[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列访问:
[DEFAULT]
...
rpc_backend=rabbit
[oslo_messaging_rabbit]
...
rabbit_host=controller
rabbit_userid=openstack
rabbit_password=RABBIT_PASS
用你在 “RabbitMQ” 中为 “openstack” 选择的密码替换 “RABBIT_PASS”。
- 在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问:
[DEFAULT]
...
auth_strategy=keystone
[keystone_authtoken]
...
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=nova
password=NOVA_PASS
使用你在身份认证服务中设置的``nova`` 用户的密码替换``NOVA_PASS``。
- 在 [DEFAULT 部分,配置``my_ip`` 来使用控制节点的管理接口的IP 地址。
[DEFAULT]
...
my_ip=10.0.0.11
- 在 [DEFAULT] 部分,使能 Networking 服务:
[DEFAULT]
...
use_neutron=True
firewall_driver=nova.virt.firewall.NoopFirewallDriver
- 在``[vnc]``部分,配置VNC代理使用控制节点的管理接口IP地址 :
[vnc]
...
vncserver_listen=$my_ip
vncserver_proxyclient_address=$my_ip
- 在 [glance] 区域,配置镜像服务 API 的位置:
[glance]
...
api_servers=http://controller:9292
- 在 [oslo_concurrency] 部分,配置锁路径:
[oslo_concurrency]
...
lock_path=/var/lib/nova/tmp
- 同步Compute 数据库:
# su -s /bin/sh -c "nova-manage api_db sync" nova# su -s /bin/sh -c "nova-manage db sync" nova
完成安装
3、安装和配置计算节点
安全并配置组件
- 安装软件包:
# yum install openstack-nova-compute
- 编辑``/etc/nova/nova.conf``文件并完成下面的操作:
- 在``[DEFAULT]`` 和 [oslo_messaging_rabbit]部分,配置``RabbitMQ``消息队列的连接:
[DEFAULT]
...
rpc_backend=rabbit
[oslo_messaging_rabbit]
...
rabbit_host=controller
rabbit_userid=openstack
rabbit_password=RABBIT_PASS
用你在 “RabbitMQ” 中为 “openstack” 选择的密码替换 “RABBIT_PASS”。
- 在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问:
[DEFAULT]
...
auth_strategy=keystone
[keystone_authtoken]
...
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=nova
password=NOVA_PASS
使用你在身份认证服务中设置的``nova`` 用户的密码替换``NOVA_PASS``。
- 在 [DEFAULT] 部分,配置my_ip 选项:
[DEFAULT]
...
my_ip=X.X.X.X(计算节点IP地址)
- 在 [DEFAULT] 部分,使能 Networking 服务:
[DEFAULT]
...
use_neutron=True
firewall_driver=nova.virt.firewall.NoopFirewallDriver
注解
缺省情况下,Compute 使用内置的防火墙服务。由于 Networking 包含了防火墙服务,所以你必须通过使用nova.virt.firewall.NoopFirewallDriver 来去除 Compute 内置的防火墙服务。
- 在``[vnc]``部分,启用并配置远程控制台访问:
[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 地址。基 本的 URL 指示您可以使用 web 浏览器访问位于该计算节点上实例的远程控制台的位置。
注解
如果你运行浏览器的主机无法解析``controller`` 主机名,你可以将 ``controller``替换为你控制节点管理网络的IP地址。
- 在 [glance] 区域,配置镜像服务 API 的位置:
[glance]
...
api_servers=http://controller:9292
- 在 [oslo_concurrency] 部分,配置锁路径:
[oslo_concurrency]
...
lock_path=/var/lib/nova/tmp
完成安装
4、验证操作
阅读全文
0 0
- 浓墨重彩之OpenStack-06-nova计算服务
- 浓墨重彩之OpenStack-11-heat编排服务
- 浓墨重彩之OpenStack-12-ceilometer监控服务
- OpenStack 计算服务Nova [四]
- 浓墨重彩之OpenStack-03-云计算概览(社区)
- 浓墨重彩之OpenStack-02-所安装服务概览
- 浓墨重彩之OpenStack-08-cinder块存储服务
- OpenStack Newton版本部署----计算服务(nova)
- 安装OpenStack计算服务(nova)
- OpenStack实践系列④计算服务Nova
- 浓墨重彩之OpenStack-开篇声明。
- openstack之nova-api服务流程分析
- openstack之nova-api服务流程分析
- OpenStack之Nova分析——Nova API服务
- OpenStack之Nova分析——Nova Scheduler服务启动
- OpenStack nova 服务指令
- 浓墨重彩之OpenStack-07-neutron网络服务
- OpenStack学习笔记(二)计算服务NOVA
- bzoj 4514: [Sdoi2016]数字配对(二分图+费用最大流)
- Go 的反射
- balabolka语音库下载 | balabolka中文语音库 | balabolka语音库怎么安装
- 没有/etc/rc.d/rc.local最方便的设置开机自启的方法
- 浓墨重彩之OpenStack-03-云计算概览(社区)
- 浓墨重彩之OpenStack-06-nova计算服务
- 解释Java中的值传递
- POJ 1797 Heavy Transportion Dijkstra变形
- 静态变量初始化的时机
- (M)Dynamic Programming:2 Keys Keyboard
- bzoj1306
- shiro整合spring
- CSDN博客编辑用html记录
- BZOJ 2177 最小曼哈顿生成树