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. 自己定义View-2-重写onMeasure

    效果图 布局文件 <?xml version="1.0" encoding="utf-8"? > <LinearLayout xmlns:an ...

  2. 建立window SVN服务器

    在windows下搭建SVN服务器: 首先从http://www.visualsvn.com/server/download/ 下载最新的VisualSVN-Server-x.x.x.msi,然后本机 ...

  3. 【Visual Studio】项目的引用显示黄色叹号

    情况一:个别引用的DLL显示黄色叹号. 通常是因为该DLL需要的.Net Framework版本与当前项目使用的版本不兼容.如该DLL需要的版本高于当前项目使用的版本.考虑修改项目的.Net Fram ...

  4. C语言 · 排列数 · 排列式

    蓝桥练习场上不断碰到类似的题,都是一个递归搜索的套路. 算法提高 排列数   时间限制:1.0s   内存限制:256.0MB      问题描述 0.1.2三个数字的全排列有六种,按照字母序排列如下 ...

  5. 解析Google集群资源管理系统Omega

    1. 背景 Google的第一代/第二代集群(资源)管理系统被称为Borg,Borg设计细节因零零星星出现在各种文章中而知名,但一直未公开(比如发一篇paper).然而,我们可从腾讯公布的Torca( ...

  6. SQL Server创建远程链接服务器

    --使用sp_addlinkedserver增加链接 EXEC sys.sp_addlinkedserver @server='127.0.0.1', --被访问的服务器别名(习惯上直接使用目标服务器 ...

  7. WinForm中播放视频示例(含源码)

    1背景 这几天一老友要求我做个小软件,在WinForm播放视频.印象中微软有个WM控件直接可以使用,晚上研究下 2实现方式 2.1微软草根 最简单的方式,是直接使用微软的WM控件,也是通过COM方式集 ...

  8. React Native布局

    一款好的APP离不了一个漂亮的布局,本文章将向大家分享React Native中的布局方式FlexBox. 在React Native中布局采用的是FleBox(弹性框)进行布局. FlexBox提供 ...

  9. 超级简单却不知道:html标签的嵌套规则

    XHTML的标签有许多:div.ul.li.dl.dt.dd.h1~h6.p.a.addressa.span. strong……我们在运用这些标签搭建页面结构的时候,是可以将它们无限嵌套的,但是,嵌套 ...

  10. WPF ICommandSource Implementations Leak Memory!

    Actually the title of this article should be entitled "How to use WeakEventManager with IComman ...