openstack-ocata-计算服务4

一、  计算服务概览
使用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服务的多主机模式下使用。更详细的信息,请参考OpenStack管理员手册中的链接`Metadata service <http://docs.openstack.org/admin-guide/compute-networking-nova.html#metadata-service>`__ in the OpenStack Administrator Guide。
nova-compute服务
一个持续工作的守护进程,通过Hypervior的API来创建和销毁虚拟机实例。
例如:
XenServer/XCP 的 XenAPI
KVM 或 QEMU 的 libvirt
VMware 的 VMwareAPI
过程是蛮复杂的。最为基本的,守护进程同意了来自队列的动作请求,转换为一系列的系统命令如启动一个KVM实例,然后,到数据库中更新它的状态。
nova-placement-api 服务
跟踪每个提供者的库存和使用情况。see Placement API。
nova-scheduler服务
拿到一个来自队列请求虚拟机实例,然后决定那台计算服务器主机来运行它。
nova-conductor模块
媒介作用于nova-compute服务与数据库之间。它排除了由nova-compute服务对云数据库的直接访问。nova-conductor模块可以水平扩展。但是,不要将它部署在运行nova-compute服务的主机节点上。参考Configuration Reference Guide <http://docs.openstack.org/mitaka/config-reference/compute/conductor.html> 。
nova-cert模块
服务器守护进程向Nova Cert服务提供X509证书。用来为euca-bundle-image生成证书。仅仅是在EC2 API的请求中使用
nova-consoleauth 守护进程
授权控制台代理所提供的用户令牌。详情可查看``nova-novncproxy``和 nova-xvpvncproxy。该服务必须为控制台代理运行才可奏效。在集群配置中你可以运行二者中任一代理服务而非仅运行一个nova-consoleauth服务。更多关于nova-consoleauth的信息,请查看`About nova-consoleauth <http://docs.openstack.org/admin-guide/compute-remote-console-access.html#about-nova-consoleauth>。
nova-novncproxy 守护进程
提供一个代理,用于访问正在运行的实例,通过VNC协议,支持基于浏览器的novnc客户端。
nova-spicehtml5proxy 守护进程
提供一个代理,用于访问正在运行的实例,通过 SPICE 协议,支持基于浏览器的 HTML5 客户端。
nova-xvpvncproxy 守护进程
提供一个代理,用于访问正在运行的实例,通过VNC协议,支持OpenStack特定的Java客户端。
The queue队列
守护进程间传递信息的中心。通常用RabbitMQ实现,也可以使用另一个AMQP消息队列来实现,比如ZeroMQ。
SQL database (SQL数据库)
存储构建时和运行时的状态,为云基础设施,包括有:
可用实例类型
使用中的实例
可用网络
项目
理论上,OpenStack计算可以支持任何和SQL-Alchemy所支持的后端数据库,通常使用SQLite3来做测试可开发工作,MySQL和PostgreSQL 作生产环境。
二、 安装并配置控制节点
这个部分将描述如何在控制节点上安装和配置 Compute 服务,即 nova。
1. 先决条件
在安装和配置 Compute 服务前,你必须创建数据库服务的凭据以及 API endpoints。
① 为了创建数据库,必须完成这些步骤:
mysql -u root -p
create database nova_api;
create database nova;
create database nova_cell0;
grant all privileges on nova_api.* to 'nova'@'localhost' identified by 'nova';
grant all privileges on nova_api.* to 'nova'@'%' identified by 'nova';
grant all privileges on nova.* to 'nova'@'localhost' identified by 'nova';
grant all privileges on nova.* to 'nova'@'%' identified by 'nova';
grant all privileges on nova_cell0.* to 'nova'@'localhost' identified by 'nova';
grant all privileges on nova_cell0.* to 'nova'@'%' identified by 'nova';
flush privileges ;
exit

      

        ②  获得admin凭证来获取只有管理员能执行的命令的访问权限
. admin-openrc
③ 创建计算服务凭证
创建nova用户:
openstack user create --domain default --password-prompt nova

      

        给nova用户添加 admin 角色:
openstack role add --project service --user nova admin
创建nova服务实体
openstack service create --name nova --description "OpenStack Computr" 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 service的一个用户placement
openstack user create --domain default --password-prompt placement

      

        ⑥  增加placement用户到service project和admin角色
openstack role add --project service --user placement admin
⑦ 创建placement API服务目录
openstack service create --name placement --description "Placement API" placement

      

        ⑧  创建placement API 服务端点
openstack endpoint create --region RegionOne placement public http://http://controller:8778
openstack endpoint create --region RegionOne placement internal http://controller:8778
openstack endpoint create --region RegionOne placement admin http://controller:8778

         

   2. 安装并配置组件

        ①  安装数据包
yum install openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-api
② 编辑/etc/nova/nova.conf文件完成以下操作。
在[DEFAULT]部分下,只激活compute和metadata 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
在 “[DEFAULT]”部分,配置 “RabbitMQ” 消息队列访问:
[DEFAULT]
transport_url = rabbit://openstack:RABBIT_PASS@controller
#RABBIT_PASS:也就是安装rabbitmq时候创建的openstack的用户名和密码

在 “[api]” 和 “[keystone_authtoken]” 部分,配置认证服务访问:
[api]
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
在 [DEFAULT 部分,配置my_ip来使用控制节点的管理接口的IP 地址。
[DEFAULT]
my_ip = 10.0.0.11
在 [DEFAULT] 部分,激活支持Networking 服务:
[DEFAULT]
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
注意:
默认情况下,计算服务使用内置的防火墙服务。由于网络服务包含了防火墙服务,你必须使用nova.virt.firewall.NoopFirewallDriver防火墙服务来禁用掉计算服务内置的防火墙服务。

在[vnc]部分,配置VNC代理使用控制节点的管理接口IP地址 :
[vnc]
enabled = true
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
在[placement]部分,配置placement API:
[placement]
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:35357/v3
username = placement
password = PLACEMENT_PASS
由于数据包bug,必须启用访问位置API通过添加以下配置/etc/httpd/conf.d/00-nova-placement-api.conf:
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
③ 填充nova-api数据库(同步compute数据库)
su -s /bin/sh -c "nova-manage api_db sync" nova
④ 注册cell0数据库
su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
⑤ 创建cell1 cell
su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova 109e1d4b-536a-40d0-83c6-5f121b82b650
⑥ 填充nova数据库
su -s /bin/sh -c "nova-manage db sync" nova

        

        ⑦  核查nova cell0和cell1 是否注册成功
nova-manage cell_v2 list_cells

        

    3. 完成安装
启动compute服务和设置开机自动启动
systemctl enable openstack-nova-api.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-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
三、 安装和配置一个计算节点
本节描述如何安装和配置在一个计算节点的计算服务。服务支持多种虚拟机监控程序或vm部署实例。为简单起见,这个配置使用QEMU虚拟机监控程序在计算节点上通过KVM扩展,支持虚拟机的硬件加速。在传统硬件,这个配置使用通用QEMU虚拟机监控程序。您可以遵循这些指令和少量修改与额外的计算节点横向扩展您的环境。
这部分假设您遵循本指南中的说明一步一步配置第一个计算节点。如果你想配置额外的计算节点,他们准备以类似的方式对第一个计算节点在示例架构部分。每个额外的计算节点需要一个唯一的IP地址。
接下来操作在计算节点上操作
1. 安装和配置组件
① 安装数据包
yum install openstack-nova-compute -y
② 编辑/etc/nova/nova.conf文件完成以下操作。
在[DEFAULT]部分,仅仅激活compute和metadata APIS:
[DEFAULT]
enabled_apis = osapi_compute,metadata
在[DEFAULT]部分,配置RabbitMQ信息队列接入:
[DEFAULT]
transport_url = rabbit://openstack:RABBIT_PASS@controller
在[api]和[keystone_authtoken]部分,配置身份服务接入:
[api]
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

在[DEFAULT]部分,配置my_ip选项:(ip是计算节点的管理段ip:10.0.0.31)
[DEFAULT]
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
在[DEFAULT]部分,激活支持networking服务:
[DEFAULT]
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
通知:
默认情况下,计算使用内部防火墙服务。因为网络包含防火墙服务,您必须使用nova.virt.firewall禁用防火墙计算服务 通过nova.virt.firewall.NoopFirewallDriver firewall driver

在[vnc]部分,激活和配置远程console接入:
[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浏览器来访问远程主机的实例计算节点。

在[glance]部分,配置镜像服务的API位置:
[glance]
api_servers = http://controller:9292
在[oslo_concurrency]部分,配置锁定路径:
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
在[placement]部分,配置placement API:
[placement]
os_region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = http://controller:35357/v3
username = placement
password = PLACEMENT_PASS
2. 完成安装
① 确定您的计算节点支持虚拟机的硬件加速:
egrep -c '(vmx|svm)' /proc/cpuinfo
如果这个命令的返回值是1或者更大,则代表支持虚拟化。
如果这个命令的返回值为零,计算节点不支持硬件加速,您必须配置libvirt KVM使用QEMU。
编辑/etc/nova/nova.conf,在[libvirt]部分,virt_type = qemu
② 启动计算服务包括依赖项和开机自动启动
systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service openstack-nova-compute.service
注意:
如果nova-compute服务启动失败,检查/var/log/nova/nova-compute.log。错误消息:The error message AMQP server on controller:5672 is unreachable likely indicates that the firewall on the controller node is preventing access to port 5672,表明控制器节点上的防火墙阻止访问端口5672。在控制节点配置防火墙打开5672端口控制器节点和计算节点重启nova-compute服务。
3. 增加一个计算节点到cell数据库
  接下来操作在控制节点上操作
1. 获得 admin 凭证来获取只有管理员能执行的命令的访问权限,并确认1个计算节点是在主机列表中:
   . admin-openrc
  openstack hypervisor list

       

        2. 发现compute主机列表:
su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

      

        注意:
当你添加新的计算节点,您必须运行nova-manage cell_v2 discover_hosts控制器节点上注册新计算节点
四、 验证操作
接下来操作在控制节点上操作
1. 获得 admin 凭证来获取只有管理员能执行的命令的访问权限,
. admin-openrc
2. 列出服务组件:

    

        该输出显示三个服务组件在控制节点上启用,一个服务组件在计算节点上启用。
3. 在标识服务API端点列表与身份验证连接服务:
注意:下面端点列表可能不同,这取决于OpenStack的安装组件。在这个输出忽略任何警告。
openstack catalog list

      

    4. 验证镜像服务和镜像列表:
openstack image list

      


计算服务安装完成!
posted @ 2017-04-25 15:47  506554897  阅读(1657)  评论(0编辑  收藏  举报