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.安装它

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

2.修改Nova配置文件

  1. [root@linux-node1 images]# vim /etc/nova/nova.conf
  2. [DEFAULT]
  3. transport_url=rabbit://openstack:openstack@192.168.56.11 rabbit地址
  4. enabled_apis=osapi_compute,metadata
  5. auth_strategy = keystone # 启用keystone认证
  6. use_neutron=True # 启用网络服务支持:
  7. firewall_driver = nova.virt.firewall.NoopFirewallDriver #关闭防火墙
  8. [api_database]
  9. connection=mysql+pymysql://nova:nova@192.168.56.11/nova_api
  10. [database]
  11. connection = mysql+pymysql://nova:nova@192.168.56.11/nova
  12. [keystone_authtoken]
  13. auth_uri = http://192.168.56.11:5000
  14. auth_url = http://192.168.56.11:35357
  15. memcached_servers = 192.168.56.11:11211
  16. auth_type = password
  17. project_domain_name = default
  18. user_domain_name = default
  19. project_name = service
  20. username = nova
  21. password = nova
  22. [vnc]
  23. vncserver_listen=0.0.0.0
  24. vncserver_proxyclient_address=192.168.56.11
  25. [glance]
  26. api_servers= http://192.168.56.11:9292
  27. [oslo_concurrency]
  28. lock_path = /var/lib/nova/tmp

3.初始化数据库

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

4.启动服务

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

5.添加Endpoint和服务

  1. [root@linux-node1 images]# openstack service create --name nova \
  2. > --description "OpenStack Compute" compute # 创建服务实体
  3. +-------------+----------------------------------+
  4. | Field | Value |
  5. +-------------+----------------------------------+
  6. | description | OpenStack Compute |
  7. | enabled | True |
  8. | id | 84f33de0de8c4da18cfb7f213b63a638 |
  9. | name | nova |
  10. | type | compute |
  11. +-------------+----------------------------------+
  12. [root@linux-node1 images]# openstack endpoint create --region RegionOne compute public http://192.168.56.11:8774/v2.1/%\(tenant_id\)s
  13. +--------------+----------------------------------------------+
  14. | Field | Value |
  15. +--------------+----------------------------------------------+
  16. | enabled | True |
  17. | id | b790368865d34112abba548991a98f79 |
  18. | interface | public |
  19. | region | RegionOne |
  20. | region_id | RegionOne |
  21. | service_id | 84f33de0de8c4da18cfb7f213b63a638 |
  22. | service_name | nova |
  23. | service_type | compute |
  24. | url | http://192.168.56.11:8774/v2.1/%(tenant_id)s |
  25. +--------------+----------------------------------------------+
  26. [root@linux-node1 images]# openstack endpoint create --region RegionOne compute internal http://192.168.56.11:8774/v2.1/%\(tenant_id\)s
  27. +--------------+----------------------------------------------+
  28. | Field | Value |
  29. +--------------+----------------------------------------------+
  30. | enabled | True |
  31. | id | 1b3d6aa26e55491faf2c01f779c4fe4c |
  32. | interface | internal |
  33. | region | RegionOne |
  34. | region_id | RegionOne |
  35. | service_id | 84f33de0de8c4da18cfb7f213b63a638 |
  36. | service_name | nova |
  37. | service_type | compute |
  38. | url | http://192.168.56.11:8774/v2.1/%(tenant_id)s |
  39. +--------------+----------------------------------------------+
  40. [root@linux-node1 images]# openstack endpoint create --region RegionOne compute admin http://192.168.56.11:8774/v2.1/%\(tenant_id\)s
  41. +--------------+----------------------------------------------+
  42. | Field | Value |
  43. +--------------+----------------------------------------------+
  44. | enabled | True |
  45. | id | 17547d9fc36e4e5fb3b5bf7c05ac4195 |
  46. | interface | admin |
  47. | region | RegionOne |
  48. | region_id | RegionOne |
  49. | service_id | 84f33de0de8c4da18cfb7f213b63a638 |
  50. | service_name | nova |
  51. | service_type | compute |
  52. | url | http://192.168.56.11:8774/v2.1/%(tenant_id)s |
  53. +--------------+----------------------------------------------+

6.验证操作:

  1. [root@linux-node1 images]# openstack host list
  2. +-------------------------+-------------+----------+
  3. | Host Name | Service | Zone |
  4. +-------------------------+-------------+----------+
  5. | linux-node1.example.com | conductor | internal |
  6. | linux-node1.example.com | consoleauth | internal |
  7. | linux-node1.example.com | scheduler | internal |
  8. +-------------------------+-------------+----------+

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

计算节点操作:

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

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

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

  1. [root@linux-node1 ~]# scp /etc/nova/nova.conf 192.168.56.12:/etc/nova/ # 从node1复制过去
  2. [root@linux-node2 nova]# grep -E "^[a-Z]|^\[" nova.conf # 注意这是node2节点
  3. [DEFAULT]
  4. auth_strategy=keystone
  5. use_neutron=True
  6. enabled_apis=osapi_compute,metadata
  7. firewall_driver = nova.virt.firewall.NoopFirewallDriver
  8. transport_url=rabbit://openstack:openstack@192.168.56.11
  9. [glance]
  10. api_servers= http://192.168.56.11:9292
  11. [keystone_authtoken]
  12. auth_uri = http://192.168.56.11:5000
  13. auth_url = http://192.168.56.11:35357
  14. memcached_servers = 192.168.56.11:11211
  15. auth_type = password
  16. project_domain_name = default
  17. user_domain_name = default
  18. project_name = service
  19. username = nova
  20. password = nova
  21. [oslo_concurrency]
  22. lock_path=/var/lib/nova/tmp
  23. [vnc]
  24. enabled=true
  25. keymap=en-us
  26. vncserver_listen=0.0.0.0
  27. vncserver_proxyclient_address=192.168.56.12
  28. novncproxy_base_url=http://192.168.56.11:6080/vnc_auto.html # 一定是控制节点上的IP

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

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

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

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

  1. [libvirt]
  2. virt_type = qemu # 默认是KVM

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

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

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

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

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

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

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. Java线程池关闭1-shutdown和isTerminated<转>

    shutdownvoid shutdown()启动一次顺序关闭,执行以前提交的任务,但不接受新任务.若已经关闭,则调用没有其他作用.抛出:SecurityException - 如果安全管理器存在并且 ...

  2. JBoss Wildfly (1) —— 7.2.0.Final编译

    JBoss Wildfly (1) -- 7.2.0.Final编译 wildfly版本: 7.2.0.Final-testsuite-fix jdk版本: jdk1.7.0_79 maven版本: ...

  3. ANT配合FIS执行前端打包任务

    <target name="help"> <exec executable="cmd"> <arg value="/c& ...

  4. metrics 开发监控实现jdbc

    Metrics 主要有五大基本组件1:Counter  记录执行次数2:Gauge  获取某个值3:Meter  用来计算事件的速率4:Histogram  可以为数据流提供统计数据. 除了最大值,最 ...

  5. 记录第一次使用jni编译so包的入门操作

    1.配置 下载自己相对应的ndk平台版本后配置到studio 在local.properties加入路径 在gradle.properties文件添加 2.创建工具类(注意方法都是native的) 3 ...

  6. jQuery 与 prototype 共存

    方法一: <html>   <head>     <script src="prototype.js"></script>     ...

  7. 高大上的动态CSS

    项目里要添加 custom css 功能 (dynamic stylesheet ),总结一下实现方法. 1.在JSP中动态设定文件path 预先生成一些css文件,由用户选择,在jsp被请求时,动态 ...

  8. Selenium常用操作汇总二——如何操作select下拉框

    下面我们来看一下selenium webdriver是如何来处理select下拉框的,以http://passport.51.com/reg2.5p这个页面为例.这个页面中有4个下拉框,下面演示4种选 ...

  9. Ogre 编辑器一(MyGUI+Ogre整合与主界面)

    在查看Ogre例子时,想看材质要里的纹理,着色器代码都需要每个去查找,非常麻烦.也想看更新每个Ogre里的对象后有什么效果.然后看到Compositor组件与粒子组件时,想到能实时编辑着色器代码实时更 ...

  10. 在Unity场景中控制日夜的轮转

    一.介绍 目的:通过在Unity场景中添加C#脚本完成日夜轮转的效果. 软件环境:Unity 2017.3.0f3,VS2013 二.操作过程 通过拖拽场景中的Directional Light我们知 ...