6.1 Nava说明

6.1.1 Nava是啥

OpenStack 是由 Rackspace 和 NASA 共同开发的云计算平台

类似 Amazon EC2 和 S3 的云基础架构服务

Nava 在 OpenStack 中提供云计算服务

6.1.2 组件说明

  • API

    • nova-api service

接收并相应终端用户计算API调用;

该服务支持 OpenStack 计算 API,Amazon EC2 和特殊的管理特权 API;

  • nova-api-metadata service

接受从实例元数据发来的请求;

该服务通常与 nova-network 服务在安装多主机模式下运行;

  • Core

    • nova-compute service

一个守护进程,通过虚拟化层 API 接口创建和终止虚拟机实例;

例如:XenAPI for XenServer/XCP, libvirt for KVM or QEMU, VMwareAPI for VMware;

  • nova-scheduler service

从队列中获取虚拟机请求实例,并确认由哪台计算机运行该虚拟机;

负责虚拟机创建时候的,宿主机负载判断;

  • nova-conductor module

协调 nova-compute 服务和 database 之间的交互数据;

避免 nova-compute 服务直接访问云数据库;

不要将该模块部署在 nova-compute 运行的节点上;

  • Networking

    • nova-network worker daemon

类似于 nova-conpute 服务,接受来自队列的网络任务和操控网络;

比如这只网卡桥接或改变iptables规则;

  • nova-consoleauth daemon

在控制台代理提供用户授权令牌;

  • nova-novncproxy daemon

提供了一个通过VNC连接来访问运行的虚拟机实例的代理;

支持基于浏览器的 novnc 客户端;

  • nova-spicehtml5proxy daemon

提供了一个通过spice连接老访问运行的虚拟机实例的代理;

支持基于浏览器的 HTML5 客户端;

  • nova-xvpnvncproxy daemon

提供了一个通过VNC连接来访问运行的虚拟机实例的代理;

支持 OpenStack-Specific Java客户端;

  • nova-cert daemon

x509 证书

  • Othor

    • nova-objectstore daemon

一个 Amazon S3 的接口,用于将 Amazon S3 的镜像注册到 OpenStack euca2ools client 用于兼容 Amazon E2 接口的命令行工具;

  • nova client

nova 命令行工具;

  • The queue

在进程之间传递消息的队列;

通常使用RabbitMQ;

  • SQL database

保存云计算基础设置,建立和运行时的状态信息;

6.2 部署 Nova Controller

在Controller节点部署;

6.2.1 创建 Nova Controller 数据库

mysql -uroot -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;

6.2.2 创建Nova Controller用户

加载 admin 凭证,来获取管理员命令的执行权限

[root@controller ~]# source admin-openrc

创建 nova 用户

[root@controller ~]# openstack user create --domain default --password-prompt nova

nova用户分配 admin 角色,并加入到 service 项目

[root@controller ~]# openstack role add --project service --user nova admin

创建 nova 服务

[root@controller ~]# openstack service create --name nova --description "OpenStack Compute" compute

创建 nova API 端点

[root@controller ~]# openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1

[root@controller ~]# openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1

[root@controller ~]# openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1


配置placement服务


数据库

mysql -u root -p

MariaDB [(none)]> CREATE DATABASE placement;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' \

IDENTIFIED BY 'plancement';

使用您选择的位置服务用户创建一个Placement服务用户: Placement

[root@controller ~]# openstack user create --domain default --password placement placement

将Placement用户添加到具有管理角色的服务项目中

[root@controller ~]# openstack role add --project service --user placement admin

在服务目录中创建Placement API条目:

[root@controller ~]# openstack service create --name placement --description "Placement API" placement

创建Placement API服务端点:

[root@controller ~]# openstack endpoint create --region RegionOne placement public http://controller:8778

[root@controller ~]# openstack endpoint create --region RegionOne placement internal http://controller:8778

[root@controller ~]# openstack endpoint create --region RegionOne placement admin http://controller:8778

安装openstack-placement-api

yum -y install openstack-placement-api

编辑/etc/placement/placement.conf

sed -i -e '/^#/d' -e '/^$/d' /etc/placement/placement.conf

[DEFAULT][api]auth_strategy = keystone[keystone_authtoken]auth_url = http://controller:5000/v3memcached_servers = openvip.com:11211auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultproject_name = serviceusername = placementpassword = 123[placement][placement_database]connection = mysql+pymysql://placement:123@openvip.com/placement

填充placement数据库

su -s /bin/sh -c "placement-manage db sync" placement

验证

placement-status upgrade check

+----------------------------------+| Upgrade Check Results            |+----------------------------------+| Check: Missing Root Provider IDs || Result: Success                  || Details: None                    |+----------------------------------+| Check: Incomplete Consumers      || Result: Success                  || Details: None                    |+----------------------------------+

6.2.3 安装配置 Nova Controller

[root@controller ~]# yum install openstack-nova-api openstack-nova-conductor \

openstack-nova-console openstack-nova-novncproxy \

openstack-nova-scheduler openstack-nova-placement-api -y

# 配置nova

vim /etc/nova/nova.conf

配置 compute 和 metadata APIs

[DEFAULT]

enabled_apis=osapi_compute,metadata

配置数据连接

[api_database]

connection = mysql+pymysql://nova:nova@controller/nova_api

[database]

connection = mysql+pymysql://nova:nova@controller/nova

配置RabbitMQ (如果RabbitMQ和Nova Controller不在同一节点,不能使用RabbitMQ的guest用户)

[DEFAULT]

transport_url = rabbit:// openstack: openstack @controller:5672/

在[DEFAULT]节中,启用对网络服务的支持:

默认情况下,Compute使用内部防火墙驱动程序。由于网络服务包括防火墙驱动程序,所以必须使用nova.virt.firewall.NoopFirewallDriver防火墙驱动程序

[DEFAULT]

# ...

use_neutron = True

firewall_driver = nova.virt.firewall.NoopFirewallDriver

配置认证服务访问

[api]

auth_strategy = keystone

[keystone_authtoken]

auth_url = http://controller:5000/

memcached_servers = controller:11211

auth_type = password

project_domain_name = Default

user_domain_name = Default

project_name = service

username = nova

password = nova

配置管理IP

[DEFAULT]
my_ip = 你的IP

配置vnc代理

[vnc]
enabled = true
server_listen = $my_ip
server_proxyclient_address = $my_ip

配置Glance API

[glance]

api_servers = http://controller:9292

配置锁路径

[oslo_concurrency]

lock_path = /var/lib/nova/tmp

配置Placement

[placement]

region_name = RegionOne

project_domain_name = Default

project_name = service

auth_type = password

user_domain_name = Default

auth_url = http://controller:5000/v3

username = placement

password = placement

因包装缺陷,必须将以下配置添加到Placement API中,从而启用对Placement 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,denyAllow from all</IfVersion>
</Directory>

重新启动httpd服务:

# systemctl restart httpd

6.2.4 初始化数据库

# 初始化 nava_api 数据库

忽略此输出中的任何弃用消息。

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 单元

su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova

fb8e991a-8c1b-4b73-9802-3fb125cf6335

# 初始化 nava 数据库

su -s /bin/sh -c "nova-manage db sync" nova

# 验证 cell0 和 cell1 是否正确注册

su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova

6.2.5 启动服务

systemctl start openstack-nova-api

systemctl start openstack-nova-scheduler

systemctl start openstack-nova-conductor

systemctl start openstack-nova-novncproxy

systemctl enable openstack-nova-api

systemctl enable openstack-nova-scheduler

systemctl enable openstack-nova-conductor

systemctl enable openstack-nova-novncproxy

查看服务

[root@controller ~]# nova service-list

6.3 部署 Nova Compute

在Compute节点部署

6.3.1 安装配置Nova Compute

yum install -y openstack-nova-compute

# 配置nova

vim /etc/nova/nova.conf

  1. 编辑/etc/nova/nova.conf归档并完成以下操作:

    • [DEFAULT]节中,只启用计算和元数据API:
    • [DEFAULT]
    • # ...
    • enabled_apis = sapi_compute,metadata
    • [DEFAULT]节,配置RabbitMQ消息队列访问:
    • [DEFAULT]
    • # ...
    • transprt_url = rabbit://penstack:RABBIT_PASS@controller

取代RABBIT_PASS使用您为openstack记帐RabbitMQ.

  • [api][keystone_authtoken]各节,配置身份服务访问:
  • [api]
  • # ...
  • auth_strategy = keystne
  • [keystne_authtoken]
  • # ...
  • auth_uri = http://cntroller:5000
  • auth_url = http://cntroller:35357
  • memcached_servers = cntroller:11211
  • auth_type = passwrd
  • prject_domain_name = default
  • user_dmain_name = default
  • prject_name = service
  • username = nva
  • passwrd = NOVA_PASS

取代NOVA_PASS使用您为nova身份服务中的用户。

类中的任何其他选项注释掉或删除。[keystone_authtoken]部分。

  • [DEFAULT]节中,配置my_ip备选方案:
  • [DEFAULT]
  • # ...
  • my_ip = cmputeIP

取代MANAGEMENT_INTERFACE_IP_ADDRESS对于计算节点上的管理网络接口的IP地址,通常为第一个节点的10.0.0.31示例体系结构.

  • [DEFAULT]节中,启用对网络服务的支持:
  • [DEFAULT]
  • # ...
  • use_neutrn = True
  • firewall_driver = nva.virt.firewall.NoopFirewallDriver

默认情况下,Compute使用内部防火墙服务。由于网络包括防火墙服务,所以必须使用nova.virt.firewall.NoopFirewallDriver防火墙驱动程序。

  • [vnc]节中,启用和配置远程控制台访问:
  • [vnc]
  • # ...
  • enabled = True
  • vncserver_listen = 0.0.0.0
  • vncserver_prxyclient_address = $my_ip
  • nvncproxy_base_url = http://cntroller:6080/vnc_aut.html

服务器组件侦听所有IP地址,代理组件只侦听计算节点的管理接口IP地址。基URL指示可以使用Web浏览器访问此计算节点上实例的远程控制台的位置。

如果要访问远程控制台的web浏览器驻留在无法解析controller主机名,您必须替换controller具有控制器节点的管理接口IP地址。

  • [glance]节中,配置图像服务API的位置:
  • [glance]
  • # ...
  • api_servers = http://cntroller:9292
  • [oslo_concurrency]节中,配置锁路径:
  • [slo_concurrency]
  • # ...
  • lck_path = /var/lib/nva/tmp
  • [placement]节中,配置Placement API:
  • [placement]
  • # ...
  • s_region_name = ReginOne
  • prject_domain_name = Default
  • prject_name = service
  • auth_type = passwrd
  • user_dmain_name = Default
  • auth_url = http://cntroller:5000/v3
  • username = placement
  • passwrd = PLACEMENT_PASS

取代PLACEMENT_PASS使用您为placement身份服务中的用户。中的任何其他选项注释掉。[placement]部分。

最后安装

  1. 确定计算节点是否支持虚拟机的硬件加速:
  2. $ egrep -c '(vmx|svm)' /proc/cpuinfo

如果此命令返回值为one or greater,您的计算节点支持硬件加速,这通常不需要额外的配置。

如果此命令返回值为zero,您的计算节点不支持硬件加速,您必须配置libvirt使用QEMU而不是KVM。

  • 编辑[libvirt]部分/etc/nova/nova.conf档案如下:

    • [libvirt]
    • # ...
       virt_type = qemu

启动Compute服务,包括其依赖项,并将其配置为在系统启动时自动启动:

# systemctl enable libvirtd.service openstack-nova-compute.service

# systemctl start libvirtd.service openstack-nova-compute.service

将计算节点添加到单元数据库中

重要

运行以下命令 控制器节点。

  1. 获取管理凭据以启用只管理的CLI命令,然后确认数据库中有计算主机:
  2. $ . admin-openrc
  3. $ openstack hypervisor list (一开始没有执行下面的语句后就有了) 或者 nova service-list

发现计算主机:

# su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

Found 2 cell mappings.

Skipping cell0 since it does not contain hosts.

Getting compute nodes from cell 'cell1': ad5a5985-a719-4567-98d8-8d148aaae4bc

Found 1 computes in cell: ad5a5985-a719-4567-98d8-8d148aaae4bc

Checking host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3

Creating host mapping for compute host 'compute': fe58ddc1-1d65-4f87-9456-bc040dc106b3

添加新的计算节点时,必须运行nova-manage cell_v2 discover_hosts在控制器节点上注册这些新的计算节点。或者,您可以在/etc/nova/nova.conf:(自动发现新节点)

[scheduler]

discover_hosts_in_cells_interval = 300

下面是验证:

验证1:列出服务组件以验证每个进程的成功启动和注册

[root@controller ~]# openstack compute service list

验证2:列出Identity服务中的API端点以验证与Identity服务的连接

[root@controller ~]# openstack catalog list

验证3:列出Image服务中的图像以验证与Image服务的连接

[root@controller ~]# openstack image list

验证4:检查单元格和放置API是否正常运行以及其他必要的先决条件是否到位

[root@controller ~]# nova-status upgrade check

验证nova控制端

[root@controller ~]# nova service-list

注:部分内容参考和引用他人文章,如有侵权请联系删除 atlantis_0425@outlook

OpenStack腾讯云部署_Nova部署相关推荐

  1. 腾讯云服务器配置https 部署安装ssl证书

    腾讯云服务器配置https 部署安装ssl证书 配置:CentOS 7 我是使用nginx服务器对Vue项目进行挂载,所以这里主要说明nginx服务器如何配置https服务 如何安装nginx Ngi ...

  2. django部署iiswin10_基于Windows平台的Django在本地部署和腾讯云服务器上部署的方法教程(一)...

    环境: VS2015 IIS python3.6.1 django 1.11.14 打开VS2015,新建一个django项目. 这里注意一点:确保python的安装路径中没有中文,没有空格. 我的安 ...

  3. 腾讯云https证书部署nginx

    域名在腾讯云申请的,直接去 登录 - 腾讯云 我的证书 下操作申请证书, 申请免费证书. 再到 一键https 下,去一键添加一下 cName,若不是腾讯的域名,要手工去加一下域名Cname解析. 之 ...

  4. 腾讯云开发环境部署系列教程一 【申请免费的腾讯云主机】

    最近在研究微信小程序,为了方便测试,决定将数据库访问后端程序发布到云服务器,这也是为了以后的正式环境做准备. 本系统采用 微信小程序+spring boot+mysql+jdk1.8,其中spring ...

  5. 腾讯云服务器镜像部署 Java Web 环境

    操作场景 腾讯云市场中提供了例如包含多种操作系统.热门软件等不同类型的镜像.您可选择这些镜像,在腾讯云云服务器(CVM)上快速部署具有较高稳定性和安全性的软件环境以及个人网站. 本文档介绍在 Linu ...

  6. 在Linux系统(CentOS 8.2)腾讯云服务器下部署原神云崽机器人(Yunzai-Bot)【保姆入门级】

    在决定记录这篇文章之前,我从几天前开始接触云服务器到一步步部署完成,确实是从无到有,一点点理解一点点实践.实践真的非常重要!!!因为肯定比你看书看教程视频强太多太多.这篇文章仅仅只是做一个我部署成功的 ...

  7. 阿里域名+腾讯云服务器组合部署网站

    前段时间,我在阿里云上购买了一个域名.本想着也在阿里云上购买一台入门级服务器先玩玩,但是在看完一系列的产品后,还是放弃了阿里云的服务器.对比几家之后还是选择了腾讯云,接下来,就是踩坑和避坑的经验了. ...

  8. 阿里云/腾讯云服务器上部署Nginx,域名,SSL证书

    你将会从这篇文章中学到: 在服务器上部署Nginx. 域名的购买. 添加域名,让域名解析到你的服务器上. 教你如何添加SSL证书. 在你的服务器上面配置Nginx,实现http和https的访问. 如 ...

  9. 【云贝学院】腾讯云TDSQL独立部署最佳实践

    [云贝学院]云贝学院TDSQL TCP认证课程已上线,学院有不定期公开课 需要的同学可以加老师微信:19941464235 作者:崔鹏 创建四台云主机或者本地四台Centos7.6的VM虚拟机 (四台 ...

  10. 腾讯云GPU服务器部署Ai绘画Stable Diffusion 小白可用

    一.服务器购买 本人本地是个win10的PC 安装了 显示GPU 算力不够,升级配置也需要钱 云服务商的选择上,很普通,大家随意选择腾讯云/阿里云/移动云/华为云-都可以.我是之前用的腾讯云,在腾讯云 ...

最新文章

  1. python中in_python中的min和in用代码实现
  2. BroadcastReceiver 启动activity(在activity之外启动一个activity)
  3. 写一下这两天的生活吧!开学了,也没有多少时间了
  4. 教你以 4G 的速度克隆 Github 项目!
  5. linux增量编译不成功,Linux学习笔记-增量编译(Makefile进一步使用)
  6. Android广播的学习和使用
  7. jmeter执行python脚本,Jmeter+Python-1问题记录jmeter执行Python3的脚本时报 ValueErro
  8. hdu4746(莫比乌斯反演)
  9. 【learning】洲阁筛
  10. echart vue 图表大小_vue之将echart封装为组件
  11. 计算机二级C语言考的函数,【帮考网】2012计算机等级二级考试C语言:函数递归...
  12. C语言深度剖析书籍学习记录 第二章 符号
  13. word整个表格首行缩进_Word排版对不齐?别忘了这个明星按键
  14. JAVA调用接口简单封装,Mvp+Retrofit2+RxJava2 项目中使用的简洁封装
  15. 黑马博客——详细步骤(三)项目功能的实现之新增用户
  16. 【论文笔记】Recover Canonical-View Faces in the Wild with Deep Neural Network
  17. STM8L052低功耗模式
  18. 双管道(CreatePipe)与本地cmd.exe进程通信(附源代码及编译好的程序,免费下载)
  19. 怎样利用闲鱼赚差价?教你在闲鱼卖货赚钱!
  20. Win10系统电脑声卡驱动正常但没声音?驱动人生解决方案

热门文章

  1. python实践——时间序列分析建模理论及代码实现
  2. 同方微电子3S理念护航金融IC卡
  3. android 7.0原生room,小米5S 安卓9.0 原生体验 LineageOS16.0 ROOT
  4. echarts中折线图、柱状图之间的转换
  5. 在命令行窗口中打开win10的显示设置
  6. 【python】Python语言程序设计/嵩天老师入门课程笔记整理
  7. 新型Linux恶意软件隐藏在无效日期中、黑客通过微软漏洞监视目标电脑|11月26日全球网络安全热点
  8. Java设计模式面试专题
  9. 图片太大怎么压缩变小?
  10. 美团的战略、战术和能力圈 附下载地址