OpenStack腾讯云部署_Nova部署

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/v3

memcached_servers = openvip.com:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = placement

password = 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,deny
      Allow 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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值