一、  计算服务概览
使用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

      

   计算服务安装完成!

openstack-ocata-计算服务4的更多相关文章

  1. Openstack Ocata 公共服务端(三)

    Openstack Ocata 公共服务端 mysql 安装: yum install mariadb mariadb-server mysql 安装过程省略 rabbit-server 安装包: # ...

  2. openstack——nova计算服务

    一.nova介绍               Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源.OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是 ...

  3. OpenStack (nova 计算服务)

    nova介绍 Nova 负责维护和管理云环境的计算资源,Nova这个模块很重要,可以说是 OpenStack 的最核心的服务模块之一,以至于在 OpenStack 的初期版本里大部分的云系统管理功能都 ...

  4. CentOS7安装OpenStack(Rocky版)-04.安装Nova计算服务(控制节点)

    上一篇文章分享了glance镜像服务的安装配置,本文主要分享openstack的计算服务Nova的安装和配制方法 ------------------ 完美的分割线 ----------------- ...

  5. openstack (4)---部署Glance镜像服务,Nova计算服务

    一.Glance Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供Restful API可以查询虚拟机镜像的metadata及获取 ...

  6. Openstack Nova 控制服务 和 计算服务 (六)

    Openstack Nova 控制服务 和 计算服务 (六) 引用: https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/nova.htm ...

  7. 云计算OpenStack核心组件---nova计算服务(7)

    一.nova介绍 Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源.OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nova 来实现的. ...

  8. Centos7 install Openstack - (第四节)添加计算服务(Nova)

    Centos7 install Openstack - (第四节)添加计算服务(Nova) 我的blog地址:http://www.cnblogs.com/caoguo 该文根据openstack官方 ...

  9. 【openstack N版】——计算服务nova

    一.openstack计算服务nova 1.1nova介绍 Nova是openstack最早的两块模块之一,另一个是对象存储swift.在openstack体系中一个叫做计算节点,一个叫做控制节点.这 ...

  10. OpenStack实践系列④计算服务Nova

    OpenStack实践系列④计算服务Nova 3.6 Nova控制节点的部署创建服务的凭证,完成下列步骤: 创建nova用户,并加入到service项目中,赋予admin权限 [root@node1 ...

随机推荐

  1. String.Format 格式化货币的小问题

    今天在开发过程中,遇到一件让我觉得比较纳闷的事情:用String.Format 格式化充值金额的时候,我这样处理: String.Format("{0:C2}", dr[" ...

  2. Python-常用第三方库

    python常用框架及第三方库(转载) 一.Web框架 1.Django: 开源web开发框架,它鼓励快速开发,并遵循MVC设计,比较庞大,开发周期短.Django的文档最完善.市场占有率最高.招聘职 ...

  3. 【转】Matlab中的括号()[] {}

    Matlab中经常会用到括号去引用某Array或者是cell的内容,但三者有什么具体区别呢?] []

  4. django xadmin 集成DjangoUeditor富文本编辑器

    本文档记录自己的学习历程! 介绍 Ueditor HTML编辑器是百度开源的在线HTML编辑器,功能非常强大 额外功能 解决图片视频等无法上传显示问题 Ueditor下载地址 https://gith ...

  5. C#在winform中读写ini文件

    class WY_INI { static string IniFileName; static char[] TrimChar = { ' ', '\t' }; public string[] Ge ...

  6. 窗口缩小div内容隐藏看不到怎么解决?

    div的宽度设置为100%,并设置其背景颜色,但当窗口发生变化出现横向滚动条,拉滚动条的时候发现右面是空白的. 解决方法:body{min-width:1024px},给body加上一个最小宽度.ie ...

  7. POJ 1704 Georgia and Bob [阶梯Nim]

    题意: 每次可以向左移动一个棋子任意步,不能跨过棋子 很巧妙的转化,把棋子间的空隙看成石子堆 然后裸阶梯Nim #include <iostream> #include <cstdi ...

  8. linux指令札记

    1.有关文件压缩解压缩:Linux下自带了一个unzip的程序可以解压缩文件,解压命令是:unzip filename.zip 同样也提供了一个zip程序压缩zip文件,命令是 zip filenam ...

  9. 自己动手实践 spring retry 重试框架

    前序 马上过年了,预祝大家,新年快乐,少写bug 什么是spring retry? spring retry是从spring batch独立出来的一个能功能,主要实现了重试和熔断. 什么时候用? 远程 ...

  10. Centos-7 + Docker-1.12 中 devicemapper + direct_lvm 的 Docker 存储配置

    html,body { font-size: 12pt } body { font-family: Helvetica, "Hiragino Sans GB", "微软雅 ...