第 3 章 将数据库迁移到 control plane
要开始创建 control plane,启用后端服务并从原始 Red Hat OpenStack Platform 17.1 部署中导入数据库。
3.1. 检索特定于拓扑的服务配置 复制链接链接已复制到粘贴板!
在将数据库迁移到 OpenShift (RHOSO) control plane 上的 Red Hat OpenStack Services 之前,请先从 Red Hat OpenStack Platform (RHOSP)环境中检索特定于拓扑的服务配置。您需要此配置,理由如下:
- 检查您当前的数据库是否有不准确
- 要确保在迁移前具有您需要的数据
- 将您的 RHOSP 数据库与采用的 RHOSO 数据库进行比较
先决条件
定义以下 shell 变量:将示例值替换为您的环境正确的值:
注意如果您使用 IPv6,请定义没有方括号的
SOURCE_MARIADB_IP
值。例如,SOURCE_MARIADB_IP=fd00:bbbb::2
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 定义以下 shell 变量:将示例值替换为您的环境正确的值:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
为源 director 云的任何非单元控制器提供
CONTROLLER1_SSH
设置。 -
对于
CELLS
中定义的每个单元,将SOURCE_MARIADB_IP[*]= ...
替换为源 director 云的单元名称和 VIP 地址的记录列表,包括源 director 云的单元格。 要获取
SOURCE_MARIADB_IP
的值,请查询 Controller 和 CellController 节点上的 puppet 生成的配置:sudo grep -rI 'listen mysql' -A10 /var/lib/config-data/puppet-generated/ | grep bind
$ sudo grep -rI 'listen mysql' -A10 /var/lib/config-data/puppet-generated/ | grep bind
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意源云始终对单元数据库使用相同的密码。因此,相同的密码文件用于所有单元堆栈。但是,split-stack 拓扑允许为每个堆栈使用不同的密码文件。
-
为源 director 云的任何非单元控制器提供
流程
导出以下输出的 shell 变量,并测试到 RHOSP 数据库的连接:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果连接成功,则预期的输出不会进行任何操作。
注意nova
、nova_api
和nova_cell0
数据库包含在主 overcloud Orchestration 服务(heat)堆栈的同一数据库主机上。其他单元使用其本地 Galera 集群的nova
数据库。在 RHOSP 数据库上运行
mysqlcheck
以检查是否存在不准确:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取 Compute 服务(nova)单元映射:
export PULL_OPENSTACK_CONFIGURATION_NOVADB_MAPPED_CELLS=$(oc run mariadb-client-1 ${MARIADB_RUN_OVERRIDES} -q --image ${MARIADB_IMAGE} -i --rm --restart=Never -- \ mysql -rsh "${SOURCE_MARIADB_IP['default']}" -uroot -p"${SOURCE_DB_ROOT_PASSWORD['default']}" nova_api -e \ 'select uuid,name,transport_url,database_connection,disabled from cell_mappings;')
export PULL_OPENSTACK_CONFIGURATION_NOVADB_MAPPED_CELLS=$(oc run mariadb-client-1 ${MARIADB_RUN_OVERRIDES} -q --image ${MARIADB_IMAGE} -i --rm --restart=Never -- \ mysql -rsh "${SOURCE_MARIADB_IP['default']}" -uroot -p"${SOURCE_DB_ROOT_PASSWORD['default']}" nova_api -e \ 'select uuid,name,transport_url,database_connection,disabled from cell_mappings;')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取注册的 Compute 服务的主机名:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取映射的 Compute 服务单元列表:
export PULL_OPENSTACK_CONFIGURATION_NOVAMANAGE_CELL_MAPPINGS=$($CONTROLLER1_SSH sudo podman exec -it nova_conductor nova-manage cell_v2 list_cells)
export PULL_OPENSTACK_CONFIGURATION_NOVAMANAGE_CELL_MAPPINGS=$($CONTROLLER1_SSH sudo podman exec -it nova_conductor nova-manage cell_v2 list_cells)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 存储导出的变量以供以后使用:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果在 RHOSP 部署中运行
neutron-sriov-nic-agent
代理,获取用于数据平面的配置。
后续步骤
之后,在 data plane 采用后检查过程中,需要此配置和导出的值。关闭 RHOSP control plane 服务后,如果任何导出的值丢失,重新运行 export
命令会失败,因为 control plane 服务不再在源云上运行,且无法检索数据。为了避免数据丢失,请在关闭 control plane 服务前保留环境文件中的导出值。