节点伸缩


支持收缩或者扩展的节点类型

节点类型 扩展? 收缩? 备注
Controller N N 一旦部署完成,控制节点不支持收缩或者扩展。
Compute Y Y
Ceph Storage Nodes Y Y 在部署时至少有一个ceph节点时,才支持扩展。
Block Storage Nodes N N 一旦部署完成,Cinder节点不支持收缩或者扩展。
Object Storage Nodes Y Y

增加计算节点

注意! 本章节不讨论自定义的计算节点的伸缩,仅仅针对默认计算节点的伸缩展开讨论。

如何新增计算节点:

  1. 收集硬件信息,编写节点配置文件。
  2. 导入节点配置。
  3. introspection 新增节点。
  4. 定义新增节点的根磁盘
  5. 定义新增节点的capability。
  6. 修改ComputeCount
  7. 执行openstack overcloud deploy

收集硬件信息

我们需要收集每一个新增节点的PXE网卡的MAC地址,然后定义新增节点的配置文件。

新增节点的json文件

newnode.json

  1. {
  2. "nodes": [
  3. {
  4. "pm_user": "root",
  5. "arch": "x86_64",
  6. "name": "10.0.10.126_compute",
  7. "pm_addr": "10.0.10.126",
  8. "pm_password": "PQ79ISF7ha7G",
  9. "pm_type": "pxe_ipmitool",
  10. "mac": [
  11. "24:6E:96:06:2E:05"
  12. ],
  13. "cpu": "32",
  14. "memory": "8192",
  15. "disk": "599"
  16. }
  17. ]
  18. }

导入节点配置

  1. $ openstack baremetal import newnode.json

introspection 新增节点

  1. $ openstack baremetal node manage <NODE UUID>
  2. $ openstack overcloud node introspect <NODE UUID> --provide

定义新增节点的根磁盘

查看新增加点的磁盘信息,找出定义类型的参数,比如name 或者 wwn

  1. openstack baremetal introspection data save <NODE UUID> | jq ".inventory.disks"
  2. [
  3. {
  4. "size": 500107862016,
  5. "rotational": false,
  6. "vendor": "ATA",
  7. "name": "/dev/sda",
  8. "wwn_vendor_extension": null,
  9. "wwn_with_extension": "0x5002538da029699b",
  10. "model": "Samsung SSD 850",
  11. "wwn": "0x5002538da029699b",
  12. "serial": "5002538da029699b"
  13. }
  14. ]

比如这里使用wwn定义跟磁盘:

  1. #wwn
  2. ironic node-update $i add properties/root_device=properties/root_device='{"wwn": "xxx"}'

定义新增节点的类型

  1. ironic node-update <NODE-UUID> add properties/capabilities='profile:compute,boot_option:local'

修改部署environment中,计算节点的数量

原始base-environment.yaml

  1. parameter_defaults:
  2. ControllerCount: 3
  3. ComputeCount: 2
  4. OvercloudControlFlavor: control
  5. OvercloudComputeFlavor: compute
  6. NtpServer: 0.pool.ntp.org
  7. NeutronEnableIsolatedMetadata: true

修改后base-environment.yaml

  1. parameter_defaults:
  2. ControllerCount: 3
  3. ComputeCount: 3
  4. OvercloudControlFlavor: control
  5. OvercloudComputeFlavor: compute
  6. NtpServer: 0.pool.ntp.org
  7. NeutronEnableIsolatedMetadata: true

注意!扩展节点的时候需要使用部署时所有的参数,如果缺了哪一个环境参数,在更新stack时可能会失败。所以,在一个stack第一次部署完成之后或者使用tripleO变更之后,就把你的部署脚本录入版本控制库是一个很好的习惯,这样可以对你们的overcloud进行有效的版本控制。

删除计算节点

如何删除计算节点:

  1. 禁用被删除节点 nova service。
  2. 迁移被删除计算节点中的instance。
  3. 删除它的 nova service
  4. 删除它的 neutron-agent
  1. 在 undercloud中,查询stack 名称
    1. $ heat stack-list
  2. 在undercloud中,查询要删除的nova compute 节点的UUID

    1. openstack overcloud node delete --stack [STACK_UUID] --templates \
    2. -e [ENVIRONMENT_FILE] [NODE1_UUID] [NODE2_UUID] [NODE3_UUID]

    在删除节点时需要使用和部署时一样的environment参数(e.g. -e 或者 —environment-file)。不需要其他的参数。

  3. 在删除nova-service

    1. $ source ~/stack/overcloudrc
    2. $ nova service-delete [service-id]
    3. $ source ~/stack/stackrc
  4. 删除nuetro agent

    1. $ source ~/stack/overcloudrc
    2. $ neutron agent-list
    3. $ neutron agent-delete [openvswitch-service-id]
    4. $ source ~/stack/stackrc

参考

https://access.redhat.com/documentation/en/red-hat-openstack-platform/10/paged/director-installation-and-usage/chapter-8-scaling-the-overcloud