搜索

4.2. 在 Compute 服务中创建单元

download PDF

使用新单元堆栈部署 overcloud 后,您必须在计算服务内创建单元。要在计算服务中创建单元格,您可以为全局 API 数据库中的单元和消息队列映射创建条目。注意:您必须对创建和启动的每个单元重复这个过程。您可以自动执行 Ansible playbook 中的步骤。如需 Ansible playbook 的示例,请参阅 OpenStack 社区文档中的 创建单元和发现 Compute 节点 部分。社区文档按原样提供,不受正式支持。

流程

  1. 获取 control plane 和单元控制器的 IP 地址:

    $ CTRL_IP=$(ansible-inventory -i /home/stack/overcloud-deploy/overcloud/config-download/overcloud/tripleo-ansible-inventory.yaml --host <controller_node> | jq -r .ctlplane_ip)
    $ CELL_CTRL_IP=$(ansible-inventory -i /home/stack/overcloud-deploy/cell1/config-download/cell1/tripleo-ansible-inventory.yaml --host <cell_controller_node> | jq -r .ctlplane_ip)
    • <controller_node > 替换为 Controller 节点的名称,例如 controller-0
    • <cell_controller_node > 替换为单元 Controller 节点的名称,如 cell1-controller-0
  2. 在所有 Controller 节点中添加单元信息。此信息用于从 undercloud 连接到单元端点。以下示例使用前缀 cell1 来只指定单元系统并排除控制器系统:

    (undercloud)$ CELL_INTERNALAPI_INFO=$(ssh tripleo-admin@${CELL_CTRL_IP} \
     egrep cell1.*\.internalapi /etc/hosts)
    (undercloud)$ ansible -i /home/stack/overcloud-deploy/overcloud/config-download/overcloud/tripleo-ansible-inventory.yaml \
     Controller -b -m lineinfile -a "dest=/etc/hosts line=\"$CELL_INTERNALAPI_INFO\""
  3. transport_url 参数获取控制器单元的消息队列端点,以及来自 database.connection 参数的控制器单元的数据库连接:

    (undercloud)$ CELL_TRANSPORT_URL=$(ssh tripleo-admin@${CELL_CTRL_IP} \
     sudo crudini --get /var/lib/config-data/puppet-generated/nova/etc/nova/nova.conf \
     DEFAULT transport_url)
    (undercloud)$ CELL_MYSQL_VIP=$(ssh tripleo-admin@${CELL_CTRL_IP} \
     sudo crudini --get /var/lib/config-data/puppet-generated/nova/etc/nova/nova.conf \
     database connection | awk -F[@/] '{print $4}')
  4. 登录到其中一个全局 Controller 节点并创建单元:

    $ ssh tripleo-admin@${CTRL_IP} sudo podman \
     exec -i -u root nova_api \
     nova-manage cell_v2 create_cell --name cell1 \
     --database_connection "{scheme}://{username}:{password}@$CELL_MYSQL_VIP/nova?{query}" \
     --transport-url "$CELL_TRANSPORT_URL"
  5. 检查单元是否已创建并出现在单元列表中:

    $ ssh tripleo-admin@${CTRL_IP} sudo podman \
     exec -i -u root nova_api \
     nova-manage cell_v2 list_cells --verbose
  6. 重启 Controller 节点上的 Compute 服务:

    $ ansible -i /usr/bin/tripleo-ansible-inventory Controller -b -a \
    "systemctl restart tripleo_nova_api tripleo_nova_conductor tripleo_nova_scheduler"
  7. 检查单元控制器服务是否已置备:

    (overcloud)$ openstack compute service list -c Binary -c Host -c Status -c State
    +----------------+-------------------------+---------+-------+
    | Binary         | Host                    | Status  | State |
    +----------------+-------------------------+---------+-------+
    | nova-conductor | controller-0.ostest     | enabled | up    |
    | nova-scheduler | controller-0.ostest     | enabled | up    |
    | nova-conductor | cellcontroller-0.ostest | enabled | up    |
    | nova-compute   | compute-0.ostest        | enabled | up    |
    | nova-compute   | compute-1.ostest        | enabled | up    |
    +----------------+-------------------------+---------+-------+
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.