OpenStack Nova组件

概述

OpenStack 项目是一个开源云计算平台,支持所有类型的云环境。该项目旨在实现简单、可扩展性和丰富的功能集。来自世界各地的云计算专家为该项目做出了贡献。

OpeY s e A u TnStack 通过各种互补服务提供基; 1 ( { Y础架构即服务 (IaaS) 解决方案。每个服务都提供了一个应用程序编程接口 (API),有助于进行这种集成。

本指南介绍主要 Ope} , . D / InStacv J Q d [ Ok 服务的分步部署,使用的功能示例体系结构,该体系结构适用于具有足够 Linux 体o M S k 8 =验的 OpenStack2 Z q 新用户。本指南不用于生产系统安装,而是用于创建最小安装的概念验证,以便了解 OpenS( @ ltack。

在熟悉这些 OpenStack 服务的基本安装、配置、操作和故障排除后,应考虑使用生产体系结构进行部署的以下步骤:

  • 确定并实施必要的核心和可选服务,以满足性能和冗余要求。
  • 使用防火墙、加密和服务策略等方法提高安全性。
  • 实施部署工具(j - . @ 1 j如 Ansible、Chef、Puppet 或 Salt)以自动化生产环境的部署和管理。` R P , 7 # % [ M

体系结构示例

示例体系结构至少需要两个节点(主机)才能启动基本虚拟X + M机 (VM) 或实例。块存储和对象存储等可选服务需要额外的节点。

重要

本指南中使用的示例体系结构是最小配置,不适用于生产系统安装。它旨在为了解 OpenStack 提供最低限度的概念验证。有关为特定用例创建体系结构或如何确定需要哪种体系结构的信息,请参阅体系结构设计指南。+ - w ;

此示例体系结构不同于最小生产体系结构,如下所示:

  • 网络代理驻留在控制器节点上,而不是一个或多K 9 G N o )个专用网络节点上。
  • self-service 网络的叠加(隧道)流量遍历管理网络,而不是专用网络。
  • 本文档使用 self-service 网络模式部署。

有关生产体系结构的信息,请参阅体系结构设计指南、OpenStack 操作指南和OpenStack 网络指南。

OpenStack Nova组件

4 1 D件要求

Controllerhttps://docs.openstack.org/nova/traX H Y q iin/install/overview.html#controller)

控制器节点运行标识服务、映像服X { 7 T b ] K务、计算管理部分、网络管理部分、各种网络代理和仪F ^ R 6 r $ & i表板。它还包括支持服务,如 SQ6 ; a # f ` Z 1L 数据库、消息队列和网络时间协议 (NTP)。

可选控制器节点运行块存储、对象存储、业务流程和 Telemw { l X 9 ketry 服务的某些部分。

控制器节点至少需要两个网络接口。

Computehttps://docs.openstack.ok i X G P @ prg/nova/train/install/overview.html#compute)

计算节点运行操作实例的"计算"的虚拟机管理程序部分。默认情况下,计算使用基于内核的 VM (KVM) 虚拟机管理程序。计j k [ 2 !算节点还运行一个网络服务代理,该代理将实例连接到虚拟网络,并通过安全组向实例提供防火墙服务。

您可以部d ` x @署多个计算节点。每个节点至少需要两个网络接口。

Block S` ^ q a R @ atorage

可选的块存储节点包含块存储和共享文件系统服务为实例预x / ! A A ;配的磁盘。

为简单起见,计算节点和此- - * q ~ ^节点之间的服务流量使用管理网络。生产环境应实现单独的存储网络,以提高性[ | L i E ( ? + T能和安全性。

您可以部署多2 y 7 M个块存储节点。每个节点至少需要一个网络接口。

Object Storage

可选的对象存储节点包含对象存储服务用于存储帐户、容器和对象的磁盘。

为简单起见,计算节点和此节点之间的服务流量使用管理网络。生产环境应实现单独的存储网络,以提高性能和安全性。

此服务需要O { G b两个节点。& ` 4 ] A v $每个节点至少需要一个网8 E d ~络接口。您可以部署两个多个对象存储节点。

Nh A o Petworking

选择以下虚拟网络选项之一。

网络选项 1:? t u z mProvider networkshttps://docs.opX 6 ] s , o /enstack.org/nova/train/install/i i 7 3 7 {overview.Q t & { # - 2html#networking-option-1: ( 8 A z ~ |-provider-networks)

提供商网络C : l [ [ Y - 5选项以最简单的方式部署 Opeu ( X i mnStack 网络服| _ 0 K V s W务,主要使1 W K ? 0 k v r用第 2 层(桥接/交换)服务a k i M e : ^和网络 VLAN 分段。从本质上讲,它将虚拟网络桥接到物理网络,并依赖于物理网络基础设施进行第 3 层(路由D A v e $ 4 + S)服务。此外,DHCP < 动态主机配置协议 (DHCP) 服务为实例提供 IP 地址信息。

OpJ ) t & K ; I -enStack 用户需要有关基础网络基础结构的更多信息,以创建虚拟网络以完全匹配基础结构。

警告

4 v j : + 选项不支持自助服务(专用)网络、第 3 层(路由)服务和高级服务,如负载均衡器一种服务 (LBaaS) 和 FireWall 一种服务 (FWaaS)。如果您需要这些功f $ l能,请考虑下面的 self-service 务网络选项。

OpenStack Nova组件

网络选项 2:Self-service netwo0 : $ I A H 0rks

自助服务网络选项通过第 3 层(路由Z K 6)服务增强提供程序网络选项,这些服务使用覆盖分段方法(如虚拟可扩展 LAN (VXLAN))启用自助服务网络。从本质上讲,它使用网络地址转换 (NAT) 将虚拟网络路由到物理网络。此外,此选项为 LBaaS 和 FWaaS 等高级服务W ] Z E , ) @ ! `奠定了基础。

OpenStack 用户可以在数据网络上基础基础结构不知情的情况下创建虚拟网络。如果相应配置了第 2 层0 f - U N 9 ( ,插件,这也可v e m ? o 3以包括 VLAN 网络。

OpenStack Nova组件

Compute Service概述

使用 OpenStack compute 来托管和管理云计算系统。OpenStack 计算是基础架构即服务 (Ih u R t 2 ; b qaaS) 系统的主要部分。主要模块在 Python 中实现。

OpenStack compu3 { z z & xte 与 OpenStack IdeT s Q Q A y e Cntity 进行身份验证、用于资源清单跟踪和选择的 OpenStack 放置、用于磁盘和服务器镜像的 Opeb D d [ ; 8 + } ,nStack 镜像服务以及用于用户和管理界面的 OpenStack 仪表板进行交互。图像访问受项目和用户限制;每个项目的配额是有限的(例如实例数)。OpenStack Compute 可以在标准硬件上水平缩放,并下载映像以启动实例。

Opes . 2 % _ ! wnStack 计算由以下区域及其组件组成:

  • nova-api service

    8 j . # h受并响应最终用户计算 AT w A 6 , . VPI 调用。该服务支持 OpenStack 计算 API。它强制实施某些策略并启动大多数业务流程活动,例如运行实例。

  • nova-api-metadata service

    接受来自实例的元数@ t L E C X据请求。当您在多主机模式下使用安装时,通常使用该服务。有关详细信息,请参阅计算管理员指南中的元数据服务。u 0 F C t @ m B =nova-api-metadata``nova-network

  • nova-compute service

    通过虚拟机管理程序 API 创建和终止虚拟机实例的工作程序守护程序。

    例如

    XenAPI 表示C ` P o @ V Xenserver/XCPKvm 或 Qemu 的 libvirt用于} f Q $ E q n t VMware 的 VMwareAPI处理相当复杂。基本上,守护进程接受队列中的操作并执行一系列系统命令,例如启动 KVM 实例和更0 w , T {新其在数据库中的状态。

  • nova-scheduler service

    从队列中接F ( % x ; a x q -受虚拟机实例请求,并确定它运行在哪个计算( @ ~ @ T r服务器主机上。

  • nova-conductor service

    调解服务和数据库之间的交互。它消除了对服务对云数据库的直接访问。模块水平缩放。- b =但是,不要将其部署到n W Y r F 0运行服务的节点上。有关 I # ? M ( f N详细信息,请参阅配置选项 中的部分。nova-compute nova-compute nova-conductor nova-compute conductor

  • nova-novJ v S - ( Bncproxy daemon

    提供用于通过 VNC 连接访问正在运行的实例的代理。支持基于浏览{ J ( W = x器的 novnc 客户端。

  • no $ N 9 P C ] +ova-spicehtml5proxydaemon

    提供用于通过 SPX ^ j } _ $ICE 连接访问正在运行的实例的代理。支持基于浏览器的 HTML5 客户端。

  • no& % h , $ F % ;va-xvpC M S l avncproxy daemon

    提供用于通T @ * y x F Q ` )过 VNC 连接访问正在运行的实例的代理。支持特定于 OpenStack= U k q | 的 Java 客户端。 自版本 19.0.0 以来已弃用:nova-xvpvnxproxy自 19.0.0 (Stein) 起已弃用,将在即将发布的版本中删除。

  • The queue

    用于在守护进程Z O T = ` n之间传递消息的中心中心。通常实现与兔子MQ,但其他选项是可用的。

  • SQL database

    存储云基础结构的大多数生成时间和运行时状态,包括:可用实例类型正在使用的实例可用网络项目从理论上讲,Open 2 ! p P RStack 计算可以V j ( n % E n支持 SQLAlchemy 支持的任何数据库。通用数据库是用于测试和开发工作的 SQLite3、) e 4 = ! / J ; bMySQL、MariaDB 和 PostgreSV t ! _ 5 ] H _QL。

安装并配置在 controller node

本节介绍如何在控制器节点上安装和配置计算服务,代号为 nova。

先决条件

在安i v I R W装和配置计算服务之前,必须创建数据库、服务凭据和 API 终结点。

  1. 若要创建数据库,请完成以下步骤:

    • 使用数l E D据库访问客户端以用户方式连接到数据库服务器:root

      $ mysql -u root -p
    • 创建 和 数据库:nova_api``nova``novS +a_D Y N z : o % zcell0

      M_ r * 3ariaDB [(none)]> CREATE DATABASE nova_api;
      MariaDB [(none)]&g} G + J et; CREATE DATABASE nova;
      MariaDl B E XB [(none)]> CR$ 8 4EATE DATABASE nova_cell0;
    • 授予对数据库的适当访问权限:

      MariaDB [(none)]> GRANT ALL PRIVI_ ! t V a ] E h ULEGES ON nova_api.* TO 'novah 8 i'@'localhost' IDA | HENTIFIED BY 'noZ ) O : s : Lvar Y l T';
      MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'nova';
      MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO g V x e'nova'@'localhost' IDENTIFIED BY 'nova';
      MaF X = Y 7 T v / zriaDB [(none)]> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova# U ; ^ S [';
      MariaDB [(none)]> GRANT ALL PRIVILEGES ONL k z z nova, N j_cell0.* TO 'novaH h # A C Z e k a'@'localhost' IDENTIFIED BY 'nova';
      MariaDB [(none)]> GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'nov7 C [ L 9 f na';

      替换为合适的密码。NOVA_DBPASS

    • 退出数据库访问客户端。
  2. 源凭据以访问仅管理员 CLI 命令:admin

    $ . admin-openrc
  3. 创建计算服务凭据:

    • 创建用户:nova

      $ opL U + ~enstack user create --domain dT U v s k @efault --pas+ Q ,sword-prompt nova
      User Password:
      Repeat User Password:
      +---------------------+c q 3 k ~ / 2 l %----------------------------------+
      | Field               | Value                            |
      +----------------Y 3 w--T  B 2---+----------------------------------+
      | domain_id           |, O W , O H s default                          |
      | enabled             | True                             |
      | id                  | d517f9af62a44c2c91d77d3ef71c954f |
      | name                | nova                             |
      | options             | {}                               |
      | password_expires_at | N3 * v & g I 5 k None                             |
      +---------------------+---------------------E M g 8 5-------------+
    • 将角色添加到用户:admin nova

      $ openstack role add --project service --user nova admin
    • 创建服务实体: nova

      $ openstack service create --name nova --description "OpenStackI . u ` u z Compute" compute
      +-------------+----------------------o 0 ~ H------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | OpenStack Compute                |
      | enabled     | True                             |
      | id          | de43f2854b234e339962aa2624e8e79eO c  , & |m 5 }
      | name        | nova                             |
      | typ} ^ = Y ] I *e        | compute                          |
      +-------------+--------B + b v w I--------------------------+
  4. 创建 Compute API 服务 endpoE P J a Pints:

    [root@controller ~]# openstack endpoint create --region RegionOne compute public2 q G l _ http://controller:8774/v2.1
    +------G 6 x J R--------+--------------D [ 3 i M w L L v----r l + - 9 } &---------f T 7 } 5-------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           |2 ! ; 5 i ; y fa12674701734cc59597ba9b4da00ece |
    | interface    | public                           |
    | reK p U = k Pg{ K @ Q Y # x R -ion       | RegionOne                        |
    | regio^ } ^ ? h P yn_id    | Regi) 4 b ; u a N L onOne                        |
    | service_iO ] N l p !d   | de43f2854b234e33R F 0 l ( ?9962aa2624e8e7] ] f ;9e |
    | service_name | nova                             |
    | service_t| [ n V G T x 8ype |P ! J 0 1 0 A 2 compute                          |
    | url          | http:R ` S//controller:8774/v2.1      |
    +------_ @ V J E . 8 c ,--------+-----------Z 3 3 } V ) j u K-----------------------+
    [root@controller ~]# openstack endpoint create --region RegionOO / Q @ % D * mne compute internal http? & e://controller:8 z +774/v2.1
    +--------------+----------------------------------+
    | Field        | Value                            |
    +-X 8 p S @ 6-------------+------------------q U J i L +------3 r Q----------+
    | enabled` p | v ; ; ( ] {      | True                             |
    | id           | 2d2d03409a6cJ Q T4d7983f7c2827f0f84cb |
    | ing A a B eterface    | internal                         |
    | region       | RegionOne                        |
    | regionr ` x_id    | RegionOne                        |
    | service_id   | de43f2854b2+ { v v ! C34e339962aa2624e8e79e |
    | service_name | nova                             |
    | service_type | comG 5 ; -putev , V 2                          |
    | url          | http://controller= X j:8774/v2.1      |
    +--------------+----------------------------------+
    [root@controller ~]# opens* A ` j a | Xtackv * U b  6 C Q 7 endpoint create --region RegionOne compute admin  http://controller:8774/v2.1  +--------------+--_ ! | C u } t  J--------------------------------+
    | Field        | Value                            |
    +---+ k { ^ W v )-----------+----------------------------------+
    | enabled      | True                             |
    | id           | 96cedbb8058140fb* ( 8 +9877f46df51c2254 |
    | interface    | admin                            |
    | region       | RegionOne                        |
    | region_id    | RegionOneq K 0 q                        |
    | serv8 G + W 1 R ; Pice_id   | de43f2854b: S = $234e339# $ !962aa2624e8e79e |
    | service_name | nova                             |
    | service_type | compute                          |
    | url          | http://controllt p D l * G c er! 5 d / +:8774/v2.1      |
    +--------------+----| E r o V-I c V = e x ?-----------------------------+

安装和配置组件

注意

默认配置文件因分布而异。您可能需要添加这些节和选项,而不是修改现有节和选项。此外,* B 4 ` N配置代码段中的省略号 () 指示应保L C 3 t I留的潜在默认6 2 = 4 M * L配置选项。...

  1. 安装包:

    # yum install openstack-nova-api openstack-nova-conductor openst4 e n +ack) 0 R-nova-novncproxy openstack-nova-scheduler
  2. 编辑文件并完成以下操作:/etc/ny ` 3 f A [ Rova/no@ { Hva.conf

    • 在本节中,仅启用计算和元数据 API:[DEFAULT]

      [DEFW ; m ~ U r x ; zAULT]
      # ...
      enableA b v Md_apis = osapi_compute,q F Imetadata
    • 在 和 部分中,配置数据库访问:[api_database] [database]

      [api_database]
      # ...
      connection = mysql+pymysql://nov? ` r _ a:nova@controller/nova_api
      [@ ; n 0 j s H S 1database]
      # ...
      connection = mysql+pymysql://nova:nova@controller/nova

      替换为为计算数据库选择的密码。NOVA_DBPm H # CASS

    • 在 部分中,配置消息队列访问:[DEFAULT] RabbitM+ [ 3 e R 0 * W ;Q

      [DEFAULT]
      # ...
      transport O g g  I (_url = rabbit://op; C + 9 d }enstack:openstack@controller:5672/

      替换为为 帐户选择的密w e J码。RABBIT_PASS openstack RabbitMQ

    • 在 和 部分中,配置标识服务访问:[api] [kef y . G h b g Zyston) { = . h ?e_authtoken]

      [api]
      # ...
      auth_strategy = keystone
      [keystone_authtoken]
      # ...
      www_authenticate_uri = http://controller:5000/% } 1 4 R % N G
      auth_url = http://contrV j N 9 |oller:5000/
      memcached_servers = controller:11211
      auth_tyR C U pe = password
      project_domain_name = Default
      user_domain_name = Default
      pq b , 7roject_name = service
      username = nova
      password = nova

      替换为"标识"服务中为用户选择的密码。NOVA_PA2 - ] ! k $ 3 % 1SS nova

      注意

      注释掉或删除部分中任何其他选项。[keystone_authb : L =token]

    • 在 本节中,配置使用控制器节点的= K H 2 [ B = q &管理接口 IP 地址的选项:[DEFAULT] my_ip

      [DEFAULT]
      # ...
      my_ip = 172.16.3& r : R G ! E0.30
    • 在 部分中,启用对网络服务的支持:[DEFAo 8 . mULT]

      [DEFAULT]
      # ...
      use_neutron = true
      firewall_driver = nova.t - v jvirt.firewall.NoopFirewallDriver

      注意

      默认情况下,计算使用内部防火墙驱动程序。由于网络服务包括防火墙驱X I c i M ] s动程序,因此必须使用防火墙驱动程序禁用计算防火墙; @ V 9 1 d g / :驱动程序。n% E U l a kova.virt.firewall.NoopFirewallDr9 ; v v #iver

    • 配置/etc/nova/novaT J N [ | ] ! N.conf 的部分。有关详细信息,请参阅网络服务安装指南。[neutron]

    • 在 本节中,配置 VNC 代理以使用控制器节点的管理接口 IP 地址:[vnc]

      [vnc]
      enabled = true
      # ...
      server_listen = $P 5 T i zmy_ip
      server_proxyclient_address = $my_ip
    • 在 本节中,配置影像服务 API 的位置:[glance]

      [glance]
      # ...
      api_servers = http://controlleQ Q o $ r L d $r:9292
    • 在 本节中,配置锁定路径:[oslo_concurrency]

      [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 =$ S x t p u s n G http://controller:5000/v3
      username = placement
      password = placement

      替换为为安装放置时创建的服务用户选择的密码。注释掉或删除部分中任何其他选项。w ] J ; q 2 [ |PLACEMENT_P{ S y l q R ,ASS placement [placement]

  3. 填充数据库:nk j #ova-api

    # su -s /bin/sh -c "nova-manage api_db sync" nova
  4. 注册数据库:cell0

    # su -s /bin/shC ( ^ [ i R y -c "nova-manage cell_v2 map_cell0" nova
  5. 创建单元格:cell1

    # su -s /bin/sh -c "nova-manage cell_q # O - 7 *v2 create_celD _ } Vl --name=cell1 --verbose" nova
    4dcdd538-f978-4cc7-b867-5ec82e270cf9
  6. 填充 nova 数据库:

    # su -s /bin/sh -c "nova-manage db sync" nova
  7. 验证 nova cell0 和 cell1 注册正确:

    # su -! = O @ S i * K Qs /bin/sh -c "nx # + v u o ( qova-manage cell_v2 list_cells" nova
    +--f i x d i e : /--, L # U k Y---+--------------------------E Z } 2 | [ # O ,------------+------------------V + P B [ R h P 1---------m ` o y T  ! ^---------&  B ! f #  d 5------2 l { _ W n $ h+-------------------------------------------------+----------+
    |  Name |                 UUID                 |              Transport URL               |               Database Connection               | DisabB N U Z x rled |
    +-------+------------C M $ e--------------------------+---------3 n z ; w P O ~---------------------------------+------------------------------------------F R z 9 A G-------+----------+
    | cell0 | 00000000-0000-0000-0000-000000000000 |                  none:/                  | mysql+pymysql://nova:****@controller/nova_cell0 |  False   |
    | cell1 | 4dcdd538-f978a 6 K C 0 R G-4cc7-bV G y * ! X867-5ec82e270cf9 | rabbit://openstack:***{ ( 3 % S + 7 K +*/ l ` . Q i@controller:5672/ |    mysql+pymysql://nova:****@controller/nova    |  False   |? l 9 s J F * B !
    +-------0 3 s g G - : E+--------------------------------------+------------------------------------------+---u L , 9 6 7 E-------------------------b $ c Y ^---------------------+----------+

完成安装

  • 启动计算服务并将其配置为在系统启动时启动:

    # systemctl en, D ! E ; f qable \
    openstack-nova-api.service \
    openstack-nova-scheduler.service \
    openstack-nova-conductor.service \
    openstack-nova-novncproxy.service
    # systemctl start \
    openstack-nova-api.service \
    o4 $ P L q # xpenstack-nova-scheduler.service \
    ope0 + $ * +nstack-nova-conductor.service \
    openstack-nov[ O + C ;a-novncproxy.service

安装和配置 compute node

本节介绍如何在计算节点上安装和配置计算服务。该服务支持多个虚拟机管理程序来部署实例或虚拟机 (VM)。为简单起见,此配置使用快速 EMUlator (QEMU) 虚拟机管理程序与基于内核的 VM (KVM) 扩展在支持虚拟机硬件加速的计算节点上。在旧硬件上,此配置使用通用 QEMU 虚拟机管理程序。您可以* z Y q x a按照这些说明进行细微的修改,通过3 _ v E j D 9其他计算节点水平缩放环境。

注意

本节假定您按{ . E d照本指南中的说明逐步配置第一个计算节点。如果要配置其他计算节点,请以与示例体系结构部分中的第一个6 8 J g @ : 7 E x计算节点类似的方式& C C A s准备它们。每个附加计算节点都需要一个唯` _ q d g R一的 IP 地址。

安装和配置组件

注意

默认配置文件因分布而异。o d ; 2 2 u 0您可能需要添加这些节和选项,J , g F f K w | 0而不是修改现有节和选项。此外,配置代码段中的省略号 () 指示应保留的潜在默认配置选项。...

  1. 安装包:J B k

    # yum2 = Z r Z installo H T b j U openstack-nova-co[ y f ! J g d ; wmpute
  2. 编辑文件并完成以下操作:/etc/nova/nova.conf

    • 在本节中,仅启用计算和元数据 API:[DEFAULT]

      [DEFAULT]
      # ...
      enabled_apis = osapi_compute,metadata
    • 在 部分中,配置消息队列访问:[DEFAUz 3 F s z 4 % OLT] Rabb/ u g = p + WitMQ

      [DEFAULT]
      # ...
      transport_url = rabbit://? y  { ] I $ mopenstack:openstack@controller

      替换为为 帐户选择的密码。RABBIT_PASS openstaH b ` Q ?ck RabbitMQ

    • 在 和 部] K f * s 3 1 0分中,配置标识服务访问:[api] [keystone_authtoken]

      [api]
      # ...
      auth_strategy = keystone
      [keystone_authtoken]
      # ...
      www_authenticate_uri = http://controller:5000/
      auth_url = http://controller:5000/
      memcached_servers6 q r E ! y = controller:11211
      auth_type = password
      project_domain_name = Default
      user_domain_name = Default
      project_name = service
      useq [ @ E xre d + u zname = nova
      password = nova

      替换为"标识"服务中1 p 8 ~ q 7 M B为用户选择的密e H p D { 8 | ;码。NOVA_PASS nova

      注意

      注释掉或删除部分中任何其他选项。[keB 7 @ 2 7ystone_authtoken]

    • 在 本节中,配置选项:[D4 U J ) K [ s | rEFAULT] my_ip

      [DEFAULT]
      # ...
      my_ip = 172.16.P S B d ( ` R S S30.31

      替换为计算节点上管理网络接口的 Iy , A lP 地址,通常为示例体系结构中的第一个节点的 10.0.0.31。 MANAGEMENT_INTERFACE_IP_ADDRESS

    • 在 部分中,启用对- M F网络服务的支持:[DEFAULT]

      [DEFAULT]
      # ...
      user F y Q 3 W q Z Z_neutronz 5 2 ^ v = true
      firewall_driver = nova.virt.firewall.NoopFirewallDriver

      注意

      默认情况下,计算使用内部防火墙服务。e 7 Q , s y由于网络包括防火墙服务,因此必须使用防火墙驱动程序禁用计算防火墙服务。] a 0 1nova.virt.firewall.NoopFirewaly | H x } P plDriver

    • 配置/etc/nova/nova.conf 的部分。有关详细信息,请参阅网络服务安装指南。[neutronb N w v b }]

    • 在 本节中,启用并配置远程控制台访问:[vnc]

      [vnc]
      # ...
      enabled = true
      server_listen = 0.0.0.0
      ser} r _ R )  8 zver_proxyclient_address = $my_ip
      novncproxy_base_url = http://controller:6080/vnc_auto.hk K 6tml

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

      注意

      如果访问远程控制台的 Web 浏览器驻留在无法解析主[ , v e机名的主机上,则必须替换为控制器节点的管R F 5 A $ k $理接口 IP 地址。controller``controller

    • 在 本节中,配置影像服务 API 的位~ x ~ q置:[glance]

      [glance]
      # ...
      api_se8 ] 0 y | rvers = http://controller:9292
    • 在 本节中,配置锁定路径:[oslo5 Z & J_concurrency]% h U 8 [ E

      [oslo_concurrency]
      # ..l 2 o y ( S P X.
      lock_path = /var/lib/nova/tmp
    • 在本节中,配置放置 API:[placement]

      [placement]e J M V / c @
      # ...
      region_name = RegionOne
      project_domain_name = Default
      project_name = service
      auth_type = password
      usV x 3 mer_B d % | 3 *domain_name = Default F H f ^ [
      auth_url = http://controller:5000/v3
      username = placement
      password = placement

      替换为在标识服务: R f F [中为用户选择的密码。注释掉本节中的其他选; e ) S 1项。PLACEMENT_PASS``placement``[pl| | Wacement]

完成安装

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

    $ egrep -ct n } V v w u '(v7 8 T ) - 7mx|svm)' /proc/cpuinfo

    如果此命令返回一个或多个的值,则计算节点支持硬件加速,通常不需要其他配置。one or greater

    如果此命令未返回值,则计算节点不支持硬件加速,并且必须配置为使用 QEMU 而不是 KVM。zero lw 8 V 1ibvirt

    • 编辑文件中的节,如下所示:[libvirt] /etc/nova/nova.conf

      [libvirt]
      # ...
      virt_type = qemu
  2. 启动计算服务(包括其依赖项,并将其 W 4配置为在系e d j + Q @ j统启动时自动启动:

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

注意

如果服务无法启动,请检查 。错V p N j 6 Q B 2 误消息可能表示控制器节点上的防8 p A ` h 1 r c 1火墙阻止访问端口R Z - 1 5672。配置防火墙以打开控制器节点上的端口 56F p %72 并在计算节点上重新启动服务。nova-compute /var/log/nova/nova-compute.log AMQE K L } V k WP server on controller:5672 is unreachable nova-compute

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

重要

在 control node 上运行以下命令。

  1. 源管理员凭据以启用仅管理员 CLI 命令,然后确认o ) s数据库中有compute node:

    $ . admin-openrc
    $ openstack compute service list --service nova-compute
    +----+------------6 4 O 1 , )--+---------+------+---------+-------+p A Z e  V 5----------------------------+
    | ID | Binary       | Host    | Zone | Status  | State | Updated At                 |
    +----+--------------+---------+------+---------+-------+------------------------} + L v q S  _----+
    |  6 | nova-compute | compute | nova | enabled | up    | 2020-12-09T09:15:54.000000 |
    +--p e D--+--------------+---| @ A R g i------+------+----P W a p-----+-------+----------------------------+
  2. 发现 compute node:

    # su -s /bin/sh -c "nova-maz k H 7  t . $ wnage cel, Y h 6 D %l_v2 discover_hosts --verbose" nova
    Found 2 cell mappings.
    Skipping cell0 since it does not contain{ A N 8 = b ; b a hosts.
    Getting computes fro% W E P r 4m cell R M W ] K'celY i v m e jl1': 4dcdd538-f978-4S W O E F qcc7-b867-5ec82e270cf9
    CheckinS ~ a zg host mapping for compute host 'compute': c4f438de-128d-42ab-94b5-8460f9c9d4a7
    Creating hf G ^ @ i  G X Cost mapping for comp` ? - B { p k $ yute host 'compute': c4f438de-128d-42ab-94b5-j 3 @ E M8460f9c9d4a7
    Found 1 unmapped computes in cell: 4dcdd538-f978-4cc7-b867-o ] H # ] /5ec82e270cf9

    注意

    添加新计算节点时,必须在控制器节点上运行以注册这些新计算节点。或K P ; | Y F b者,您可以在 中设置适当的间隔:nova-manage cell_v2 discover_hosts /etc/nova/nova.conf

    [sche% ~ U &duler]
    discover_hosts_in_cells_interval = 300

k , C c } M j P证操作

验证 compute service 的操作。

注意

在控制器节点上执行这些命令。

  1. 源凭据以访问仅管理员 CLI 命令:admin

    $ . admin-openrc
  2. 列出服务组件以验证每个进程的成功启动和注册:

    $ openstack compute service list
    +----+----------------+------------+----------+---------+-------+----------------------------+
    | ID | Binary         | Host       | Zone     | Status  | State | Updated At                 |
    +----+-------1 c N I h---------+------------+----------+---------+-------+----------E t  L W V G I------------------+
    |  1 | nova-conductor | c. F D . : 4 Q pontroller | internal | enabled | up    |9  @ t 2020-12-2 z B l ( }09T09:41:D l W24.000000 |
    |  2 | nova-schedule : ! &r | controller | internal | enabled | up    | 2020-12-09T09:41:14.000000 |
    |  6 | nova-compute   | compute    | nova     | enabled | up    | 2020-12-09T09:41:24.000000 |
    +----+--------------6 ` K--+------T Z u ( Y------+----------+---------+-------+----------------------------+

    注意

    此输出应指示在控制@ L 7 & 1 ^器节点上启用的两个服务组4 { s $ E h a件和在计算节点上启用的一个服务组件。

  3. 在标识q b 6 r ^服务中列出 API 终q f U结点以验证与标识服务的连接:

    注意

    下面的终结点列表可能因 OpenStack 组件的安装而异。

    $ openstack catalog list
    +-----------+-----------+-----------------------------------------+
    | Name      | Type      | Endpoints                               |
    +-----------+------N  !-----+-----------------------------------------z T x [ =+
    | placement | placement | RegionOne                               |
    |           |           |   public: http://controller:8778        |
    |           |           | Regid 2 +onOne                               |
    |           |           |   internal: http://controller:8778      |
    |           |           | RegionOne                               |
    |           |           |   admin: http://controller:8778         |
    |           |           |                                         |
    | glance    | image     | RegionOne                               |
    |           |           |   admin: hte G w + S p N =tp://controller:9292         |
    |           |           | RegionOne                               |
    |           |           |   internt D v J 5 q ] [ Wal: http://controller:9292      |
    |           |           | RegionOne                               |
    |           |           |   public: http://controller:9292        |
    |           |           |                                         |
    | keystone  | identity  | RegionOne                               |
    |           |           |   public: http://controller:5000/v3/    |
    |           |           | RegionOne                               |
    |           |           |   internal: http://controller:5000/v3/  |
    |           |           | RegionOnh { V ) 6 i - le                               |
    |           |           |   admin:0 t } ! p 0 B v f http://controllP [ f , C * y 0 %er:5000/v3/     |
    |           |           |                                         |
    | nova      | compute   | RegionOne                               |
    |           |           |   internaP v n _ : (l: http://controller:8774/v2.1 |
    |           |           | RegionOne                               |
    |           |           |   admin: http://controller:8r F n @ : - E # ?774/v2.1    |
    |           |           | RegionOne                               |
    |           |           |   publih R 3 # f ~c: http://controller:87741 ~ 8 } y y [ Z/v2.1   |
    |           |           |                                         |
    +-----------+-----------+-----------------------------------------+

    注意

    忽略此输出中的任何警告。

  4. 在影像服务中列出图像以验证与影像服务的连接:

    $ opensV x 0 1tack image list
    +--------------------------------------+[ ~ I m H P------------+--------+
    | ID                                   | Namez ] O ? o X       | Status |
    +----8 C q @ r P o E G----------------------------------+-----------_ W  i 3 7 0 L /-+--------+
    | 19073eea-c2f0-47b5-9a55-f084815f1c0f | cirros     | active |
    | 807815i 5 7 & e x Y Iff-450f-4be2-85ee-87841928451f | cirros_x64& D C o w | active |
    +----------------------------^ b * R p 4----------+--6 4 N ( 0 N Z Z----------+--------+
  5. 检查单元格和放置 API 是否正常工作,以及是否已设置Z T * 0 $ o #其他m k & S l Z t必要的先决条件:

    # nova-status upgrade check
    +---------------------------+ J w _ r-----+
    | Upgrade Check Results          |
    +------------------h R B  B--------------+
    | Check: Cells v2                |
    | Result: Success                |
    | Details: None                  |
    +------------------x } } ` o m s L A--------------+
    | Check: Placement API           |
    | ResS W # r n q } XulB a at: Success                |
    |G O D V h Details: None                  |
    +------------------b c + b u ~--------------+
    | Check: Ironic Flavor Migration |
    | Result: Success                |
    | Details: None                  |
    +--------------------------------+
    |a J ! S x ; Check: Cinder API              |
    | Result: Success                |
    | Details: None                  |
    +----Z : ~ c %------G @ H ~ - p +-----------------i I X _ V S-----+