preface

上面安装好了glance,下面就开始部署nova计算服务了。

nova组件介绍

首先介绍下nova各个组件。

  1. api 用来接收和响应外部的请求唯一途径,支持Openstack api,EC2(亚马逊) api
  2. api-metadata 接受来自虚拟机发送的元数据请求
  3. compute 一个持续工作的守护进程,通过Hypervior的API来创建和销毁虚拟机实例,例如:
  • XenServer/XCP 的 XenAPI
  • KVM 或 QEMU 的 libvirt
  • VMware 的 VMwareAPI

    过程是蛮复杂的。最为基本的,守护进程同意了来自队列的动作请求,转换为一系列的系统命令如启动一个KVM实例,然后,到数据库中更新它的状态。
  1. scheduler 拿到一个来自队列请求虚拟机实例,然后决定那台计算服务器主机来运行它。
  2. conductor compute服务访问数据库得通过conductor来访问,相当于充当了一个中间价的角色。
  3. cert 服务器守护进程向Nova Cert服务提供X509证书。用来为euca-bundle-image生成证书。仅仅是在EC2 API的请求中使用。
  4. network -orker 与nova-compute服务类似,从队列中接受网络任务,并且操作网络。执行任务例如创建桥接的接口或者改变IPtables的规则。
  5. consoleauth 授权控制台的授权验证。
  6. novncproxy 提供一个代理,用于访问正在运行的实例,通过VNC协议,支持基于浏览器的novnc客户端。
Nova-api



api接受外部的请求并通过Message Queue将请求发送给其他的服务组件。

nova-scheduler

决定把虚拟机创建在哪个计算服务器主机来运行它。

决策一个虚拟机调度到某物理节点,分为两步骤:

  1. 过滤(filter)

    过滤出符合条件的主机,过滤条件有多种,比如你申请的虚拟机要8G内存,4台主机中只有一台主机空闲内存大于8G,再比如有一台主机连接不上glance服务器,或Neutron不正常等等,都是过滤条件。
  2. 计算权值(Weights)

    经过主机过滤后,需要对主机进行权值计算,根据策略选择到相应的某一台主机上。
nova-compute



通过Message queue接受并管理VM的生命周期。通过libvirt管理KVM。

安装Nova

控制节点安装它

1.安装它

[root@linux-node1 images]# yum install openstack-nova-api openstack-nova-conductor \
> openstack-nova-console openstack-nova-novncproxy \
> openstack-nova-scheduler

2.修改Nova配置文件

[root@linux-node1 images]# vim /etc/nova/nova.conf

[DEFAULT]
transport_url=rabbit://openstack:openstack@192.168.56.11 rabbit地址
enabled_apis=osapi_compute,metadata
auth_strategy = keystone # 启用keystone认证
use_neutron=True # 启用网络服务支持:
firewall_driver = nova.virt.firewall.NoopFirewallDriver #关闭防火墙 [api_database]
connection=mysql+pymysql://nova:nova@192.168.56.11/nova_api [database]
connection = mysql+pymysql://nova:nova@192.168.56.11/nova [keystone_authtoken]
auth_uri = http://192.168.56.11:5000
auth_url = http://192.168.56.11:35357
memcached_servers = 192.168.56.11:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = nova [vnc]
vncserver_listen=0.0.0.0
vncserver_proxyclient_address=192.168.56.11 [glance]
api_servers= http://192.168.56.11:9292 [oslo_concurrency]
lock_path = /var/lib/nova/tmp

3.初始化数据库

[root@linux-node1 images]#  su -s /bin/sh -c "nova-manage api_db sync" nova
[root@linux-node1 images]# su -s /bin/sh -c "nova-manage db sync" nova

4.启动服务

添加开机自启动
[root@linux-node1 images]# systemctl enable openstack-nova-api.service \
> openstack-nova-consoleauth.service openstack-nova-scheduler.service \
> openstack-nova-conductor.service openstack-nova-novncproxy.service 启动服务
[root@linux-node1 images]# systemctl start openstack-nova-api.service \
> openstack-nova-consoleauth.service openstack-nova-scheduler.service \
> openstack-nova-conductor.service openstack-nova-novncproxy.service

5.添加Endpoint和服务

[root@linux-node1 images]# openstack service create --name nova \
> --description "OpenStack Compute" compute # 创建服务实体
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Compute |
| enabled | True |
| id | 84f33de0de8c4da18cfb7f213b63a638 |
| name | nova |
| type | compute |
+-------------+----------------------------------+
[root@linux-node1 images]# openstack endpoint create --region RegionOne compute public http://192.168.56.11:8774/v2.1/%\(tenant_id\)s
+--------------+----------------------------------------------+
| Field | Value |
+--------------+----------------------------------------------+
| enabled | True |
| id | b790368865d34112abba548991a98f79 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 84f33de0de8c4da18cfb7f213b63a638 |
| service_name | nova |
| service_type | compute |
| url | http://192.168.56.11:8774/v2.1/%(tenant_id)s |
+--------------+----------------------------------------------+
[root@linux-node1 images]# openstack endpoint create --region RegionOne compute internal http://192.168.56.11:8774/v2.1/%\(tenant_id\)s
+--------------+----------------------------------------------+
| Field | Value |
+--------------+----------------------------------------------+
| enabled | True |
| id | 1b3d6aa26e55491faf2c01f779c4fe4c |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 84f33de0de8c4da18cfb7f213b63a638 |
| service_name | nova |
| service_type | compute |
| url | http://192.168.56.11:8774/v2.1/%(tenant_id)s |
+--------------+----------------------------------------------+
[root@linux-node1 images]# openstack endpoint create --region RegionOne compute admin http://192.168.56.11:8774/v2.1/%\(tenant_id\)s
+--------------+----------------------------------------------+
| Field | Value |
+--------------+----------------------------------------------+
| enabled | True |
| id | 17547d9fc36e4e5fb3b5bf7c05ac4195 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 84f33de0de8c4da18cfb7f213b63a638 |
| service_name | nova |
| service_type | compute |
| url | http://192.168.56.11:8774/v2.1/%(tenant_id)s |
+--------------+----------------------------------------------+

6.验证操作:

[root@linux-node1 images]# openstack host list
+-------------------------+-------------+----------+
| Host Name | Service | Zone |
+-------------------------+-------------+----------+
| linux-node1.example.com | conductor | internal |
| linux-node1.example.com | consoleauth | internal |
| linux-node1.example.com | scheduler | internal |
+-------------------------+-------------+----------+

出现以上三行那么就说明没有问题

计算节点操作:

1.首先安装这个计算节点的nova服务

[root@linux-node2 ml2]# yum -y install openstack-nova-compute

2.修改配置文件,配置文件我们从控制节点上复制过去,然后删除数据库的连接信息,以及修改VNC的配置就行了。

[root@linux-node1 ~]# scp /etc/nova/nova.conf 192.168.56.12:/etc/nova/  # 从node1复制过去
[root@linux-node2 nova]# grep -E "^[a-Z]|^\[" nova.conf # 注意这是node2节点
[DEFAULT]
auth_strategy=keystone
use_neutron=True
enabled_apis=osapi_compute,metadata
firewall_driver = nova.virt.firewall.NoopFirewallDriver
transport_url=rabbit://openstack:openstack@192.168.56.11
[glance]
api_servers= http://192.168.56.11:9292
[keystone_authtoken]
auth_uri = http://192.168.56.11:5000
auth_url = http://192.168.56.11:35357
memcached_servers = 192.168.56.11:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = nova
[oslo_concurrency]
lock_path=/var/lib/nova/tmp
[vnc]
enabled=true
keymap=en-us
vncserver_listen=0.0.0.0
vncserver_proxyclient_address=192.168.56.12
novncproxy_base_url=http://192.168.56.11:6080/vnc_auto.html # 一定是控制节点上的IP

关于novncproxy_base_url,实际上这是连接控制节点上的6080端口,如果我们创建好云主机以后,发现无法使用控制台,那么就得检查下这一行配置是否正确,一定是控制节点上的IP,第二查看控制节点的6080端口是否存活,服务是否运行了。

3.确定计算节点是否支持虚拟机的硬件加速

[root@linux-node2 nova]#  egrep -c '(vmx|svm)' /proc/cpuinfo
2

如果这个命令返回了大于等于1的值,那么你的计算节点支持硬件加速且不需要额外的配置。如果这个命令返回了0,那么你的计算节点不支持硬件加速。你必须配置 libvirt 来使用 QEMU 去代替 KVM,那么需要修改在 /etc/nova/nova.conf 文件:

[libvirt]
virt_type = qemu # 默认是KVM

4.启动服务并设置为开机自启动:

[root@linux-node2 nova]# systemctl enable libvirtd.service openstack-nova-compute.service
[root@linux-node2 nova]# systemctl start libvirtd.service openstack-nova-compute.service

如果服务启动失败,请查看日志/var/log/nova/nova-compute.log

5.启动之后,计算节点能够自动在控制节点能够注册,千万不要修改主机名,改了主机名会认为这个计算节点是新机器,所有在跑的虚拟机都停止。

6.在控制节点查看这个新配置的计算节点是否注册到位:

[root@linux-node1 ~]# source admin_openrc
[root@linux-node1 ~]# nova service-list # 或者 openstack compute service list
+----+------------------+-------------------------+----------+---------+-------+----------------------------+-----------------+
| Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
+----+------------------+-------------------------+----------+---------+-------+----------------------------+-----------------+
| 1 | nova-conductor | linux-node1.example.com | internal | enabled | up | 2017-01-03T13:27:52.000000 | - |
| 2 | nova-consoleauth | linux-node1.example.com | internal | enabled | up | 2017-01-03T13:27:56.000000 | - |
| 3 | nova-scheduler | linux-node1.example.com | internal | enabled | up | 2017-01-03T13:28:00.000000 | - |
| 10 | nova-compute | linux-node2.example.com | nova | enabled | up | 2017-01-03T13:27:53.000000 | - | # computer服务注册到位 [root@linux-node1 ~]# openstack host list
+-------------------------+-------------+----------+
| Host Name | Service | Zone |
+-------------------------+-------------+----------+
| linux-node1.example.com | conductor | internal |
| linux-node1.example.com | consoleauth | internal |
| linux-node1.example.com | scheduler | internal |
| linux-node2.example.com | compute | nova | # computer服务注册到位
+-------------------------+-------------+----------+

6 云计算系列之Nova安装与配置的更多相关文章

  1. 7 云计算系列之Neutron安装与配置

    preface 紧接上一章,我们这里开始部署网络服务Neutron,可参考官网文档:http://docs.openstack.org/newton/install-guide-rdo/neutron ...

  2. 《Visual C++ 2010入门教程》系列二:安装、配置和首次使用VS2010

    作者:董波 日期:2010.6.15 写在前面 在我还在上学的时候,我选择了C++,最初我用VC6作为我的IDE,我看过很多本C++的教材,有的适合我,有的不适合我,其中有一本叫<Visual ...

  3. nova安装与配置

    一.实验目的: 1.理解nova服务在OpenStack中的作用 2.掌握在控制节点上安装配置nova的方法和步骤 3.掌握在计算节点上安装与配置nova的方法和步骤 二.实验步骤: 1.在contr ...

  4. SpringCloud入门系列0-Nacos的安装与配置

    背景 工作有一些年头了,自从19年初彻底转了java(这又是另一篇心酸的故事),突然感觉自己荒废了好几年(不是说.net不好,而是回顾自己这几年做的很多东西都浮于表面,有时候弄成很忙的样子,回头看看自 ...

  5. 转 --maven系列之二 安装与配置

    http://blog.csdn.net/jiuqiyuliang/article/details/45390313 [项目管理和构建]——Maven下载.安装和配置(二) 标签: 工具开发maven ...

  6. Dynamics AX 2012 R3 仓库和运输管理系列 - 仓库管理模块安装与配置

        在AX 2012 R3版本中,新增了仓库和运输管理模块,同时提供了一个在移动设备上进行仓库管理工作的网站.在这个系列里,与Reinhard一起,了解仓库和运输管理模块吧.     需要注意的是 ...

  7. (五)OpenStack---M版---双节点搭建---Nova安装和配置

    ↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓ >>>>>>传送门 1.创建nova 和 nova_api数据库 2.获得 admin 凭证来获取只有管理员能执行的 ...

  8. zabbix系列之九——安装后配置四web监控

    1web监控 描述 详细 备注 概要 1)      需要定义 web 场景(包括一个或多个 HTTP请求),zabbix服务器根据预定义的命令周期性的执行这些步骤. 2)      Web 场景和 ...

  9. OpenStack云计算快速入门之二:OpenStack安装与配置

    原文:http://blog.chinaunix.net/uid-22414998-id-3265685.html OpenStack云计算----快速入门(2) 该教程基于Ubuntu12.04版, ...

随机推荐

  1. [Linux实用工具]Windows下同步Linux文件(Linux安装Samba和配置)

    场景需求: 安装了Ubuntu在虚拟机上,但是代码编辑或者其它更多的操作的时候,还是习惯在windows下进行.如果windows下编辑完再上传到服务器,再编译执行,就太繁琐了.一次两次还好说,这编译 ...

  2. PHPUnit 在phpstrom中composer项目的应用配置

    在phpstorm的composer搭建的项目调试时出现这种错误时:是其配置的错误 'Cannot create phar '/data/AppStorm/DesignPatternsPHP/vend ...

  3. WPF 系列学习

    WPF CheckBox 自定义样式 给Button设置ToolTip 圆角Button 样式

  4. 【Unity笔记】用代码动态修改Animator状态机的状态

    通常情况下,Animator修改状态机,是在Animator定义参数(变量),状态之间建立切换的条件(箭头),然后代码中修改参数(变量),实现状态之间的切换. 而另一种情况下,不需要预先准备定义参数( ...

  5. logback的日志文件中出现大量的ESC符号

    如下图: 这个日志文件是用less命令打开的,然后看到就惊呆了,日志文件乱成这样的. 开始我以为是我把logback的配置文件弄错了,还看了半天pattern. 然后百度了一下,找了这篇博客: htt ...

  6. <买基金为自己加薪>读书笔记

    定时定额买基金跟买股票不同,到达停利点就应该不要恋战,将获利连同本金转入再投资,才能达到定时定额的复利效果 傻傻地买,聪明地卖 不在乎过程,只在乎结果 不懂的东西不要随便碰,在对一种投资工具有基本认识 ...

  7. RavenDb学习(四)处理文档相关性

    RavenDb是文档型数据库,但是我们常常也需要定义对象之间的关系,那RavenDb当中是如何处理的呢? RavenDb提供了优雅的解决方式,使用正确的话,可以减少数据开销以及网络拥堵 Denorma ...

  8. UI设计,使用 线框图(页面示意图或页面布局图)

    在进行页面框架设计的时候,尝试画个 线框图(页面示意图或页面布局图)吧.

  9. linq操作符:聚合操作符

    一.Aggregate操作符 Aggregate操作符对集合值执行自定义聚合运算.来看看Aggregate的定义: public static TSource Aggregate<TSource ...

  10. 制作nodejs项目镜像,实现docker下的快速部署

    前言 前面的文章<centos7+ docker1.12 实践部署docker及配置direct_lvm>中,已经实践了如何在centos7下安装,配置docker, 所以接下来就打算去制 ...