4.5. 简化工作负载迁移
使用 Optimize 服务(watcher)与 区域 迁移策略,在不中断用户的情况下有效地迁移多个实例,并在 OpenShift (RHOSO)环境中进行硬件维护的最小停机时间。
区域 迁移策略中的术语区域指的是用户定义的计算节点和存储池集合。zone 不引用 Openstack 可用区。
目标 | 策略 |
---|---|
|
|
先决条件
- 您有一个可正常工作的 RHOSO 18.0,在其上运行 Optimize 服务(watcher)。
- 您的 RHOSO 环境至少包含两个 Compute 节点,每个节点至少运行一个实例。
-
在工作站上安装了
oc
命令行工具。 -
以具有
cluster-admin
权限的用户身份登录到可访问 RHOSO 控制平面的工作站。
步骤
从您的工作站访问 OpenStackClient pod 的远程 shell:
oc rsh -n openstack openstackclient
$ oc rsh -n openstack openstackclient
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 RHOSO 环境是否包含至少两个 Compute 节点,每个节点至少运行一个实例:
openstack server list --long
$ openstack server list --long
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
在本例中,两个实例在
compute1
上运行,一个实例在compute2
上运行。compute1
节点计划进行维护,因此我们希望使用带有区迁移策略的 Optimize 服务,在不中断用户的情况下将实例实时迁移到其他 Compute 节点:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建使用 strategy、
zone_migration
和目标hardware_maintenance
的审计模板。Example
在本例中,audit 模板名为
ZoneMigration
:openstack optimize audittemplate create -s zone_migration ZoneMigration hardware_maintenance
$ openstack optimize audittemplate create -s zone_migration ZoneMigration hardware_maintenance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关此策略使用的参数的更多信息,请参阅 区域迁移。
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认已创建了 audit 模板:
openstack optimize audittemplate list
$ openstack optimize audittemplate list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
+----------------------+------------------+ | Goal | Strategy | +----------------------+------------------+ | hardware_maintenance | zone_migration | +----------------------+------------------+
+----------------------+------------------+ | Goal | Strategy | +----------------------+------------------+ | hardware_maintenance | zone_migration | +----------------------+------------------+
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行基于 strategy、
zone_migration
和目标hardware_maintenance
的审计模板。使用适合您环境的值更新策略参数。Example
本例中使用
ZoneMigration
audit 模板,具有以下策略参数值:-
src_node
: 包含值compute1
,这是执行维护的节点。 dst_node
: 包含值compute2
,这是将迁移compute1
上运行的实例的节点。openstack optimize audit create -a ZoneMigration -p compute_nodes=\ '[{"src_node":"compute1.ctlplane.localdomain", "dst_node":"compute2.ctlplane.localdomain"}]'
$ openstack optimize audit create -a ZoneMigration -p compute_nodes=\ '[{"src_node":"compute1.ctlplane.localdomain", "dst_node":"compute2.ctlplane.localdomain"}]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
确认 Optimize 服务创建了审计:
openstack optimize audit list
$ openstack optimize audit list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
如果
State
的值为SUCCEEDED
,则审计运行并创建了操作计划:+--------------------------------------+-----------+------------------+ | UUID | State | Strategy | +--------------------------------------+-----------+------------------+ | 9e9eeb70-63bd-427e-a5a6-a2f049f1bc73 | SUCCEEDED | zone_migration | +--------------------------------------+-----------+------------------+
+--------------------------------------+-----------+------------------+ | UUID | State | Strategy | +--------------------------------------+-----------+------------------+ | 9e9eeb70-63bd-427e-a5a6-a2f049f1bc73 | SUCCEEDED | zone_migration | +--------------------------------------+-----------+------------------+
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查操作计划。
Example
openstack optimize actionplan list \ --audit 9e9eeb70-63bd-427e-a5a6-a2f049f1bc73 \ -c UUID -c State -c "Global efficacy"
$ openstack optimize actionplan list \ --audit 9e9eeb70-63bd-427e-a5a6-a2f049f1bc73 \ -c UUID -c State -c "Global efficacy"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
在本例中,
Live_instance_migrate_ratio
代表在操作计划中实时迁移的实例百分比:操作计划中的实时迁移数量除以用户输入的实例数量。例如,如果src_node
有 4 个活跃的实例,但 2 在操作计划中迁移,则比率为 50%Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出操作计划中包含的操作。
Example
openstack optimize action list \ --action-plan 40305df2-c240-464b-ac56-62e51bf139ef \ -c 'UUID' -c 'State' -c 'Action'
$ openstack optimize action list \ --action-plan 40305df2-c240-464b-ac56-62e51bf139ef \ -c 'UUID' -c 'State' -c 'Action'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
在本例中,操作计划包含两个用于迁移两个实例的操作:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以查看更多有关操作的详情:
Example
在本例中,为 migrate 操作请求更详细的信息,即
680e6152-e163-443d-9bd4-178b73494aa4
:openstack optimize action show 680e6152-e163-443d-9bd4-178b73494aa4
$ openstack optimize action show 680e6152-e163-443d-9bd4-178b73494aa4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
在本例中,操作计划会将
test01
实例从compute1
节点迁移到compute2
节点:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 执行操作计划。
Example
openstack optimize actionplan start \ 40305df2-c240-464b-ac56-62e51bf139ef
$ openstack optimize actionplan start \ 40305df2-c240-464b-ac56-62e51bf139ef
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
在本例中,两个实例都从
compute1
实时迁移到compute2
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认操作是否成功。
Example
openstack optimize action list \ --action-plan 40305df2-c240-464b-ac56-62e51bf139ef
$ openstack optimize action list \ --action-plan 40305df2-c240-464b-ac56-62e51bf139ef
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认所有实例都已迁移到不同的 Compute 节点:
openstack server list --long
$ openstack server list --long
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
在本例中,
compute1
上运行的两个实例现在在compute2
上运行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 退出
openstackclient
pod:exit
$ exit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow