南网平台虚机跨租户迁移方案
2021年9月
南网平台虚机跨租户迁移方案 1
1. 目标 3
1.1 目标 3
1.2 现网高可用问题分析 3
2. 解决方案 4
2.1 方案总结 4
3. 操作步骤 5
4. 参考 6
需要将虚机从一个项目迁移到另一个项目下。
南网云平台基础云是基于OpenStack实现的,基础云资源都是多租户隔离的。
计算资源多租户隔离
在OpenStack中,计算资源多租户隔离的技术是主机集(HostAggregate),即云管理员事先创建一个主机集,之后将特定的计算节点主机加入这个主机集,再为主机集设置元数据值(filter_tenant_id),这样当该租户创建虚拟机时,Nova的scheduler会将请求调度到与该租户关联的主机集中,主机集以外的计算节点不会被该租户使用。
存储资源多组合隔离
存储资源的隔离在cinder和ceph 中都可以实现。由于cinder支持多后端存储机制,因此云管理员可以为每个后端创建一个队员的volume type,并通过设置volume type的quotas形式将租户的ID与Type关联,这样租户在创建volume时只需指定volume type,则租户的volume就会自动创建在与租户关联的存储后端上。
如果在OpenStack 中使用的是Ceph分布式式存储集群,则通过定制ceph中不同的Crush Rule也可以实现Ceph数据存储的物理隔离。例如将性能要求极高的租户数据存储在SSD组成的池中,将仅对容量有要求的租户数据存储在SATA盘组成的池中。
网络资源多组合隔离
OpenStack中的网络隔离主要采取逻辑隔离的方式,每个租户可以自己创建自己的虚拟网络,不同租户之间的网络通过软件技术实现逻辑隔离。例如VLAN、VXLAN和GRE都是Openstack中最常见的网络隔离模式。
综上所述,需要要实现虚机跨租户迁移,从逻辑角度分析就是就需要把虚机对应的各个资源(系统盘,数据盘,网络,安全组...)等等所有资源的的租户id都替换成新的租户id,但是从平台而言,暴力的修改租户id涉及面非常广,网络的租户id是不可以直接修改的,需要新租户下创建网络重新做绑定的操作。修改租户id这块可行性几乎不存在,最终能操作的还是对卷(系统盘,数据盘)进行迁移,然后通过迁移到新租户下的系统盘创建虚机。如果您需要相同的 IP/MAC,请在新租户创建具有相同 IP/MAC 的网络端口并附加到实例。
方案一
- 关闭虚机
- 把虚机的系统盘创建快照
- 把步骤2创建快照新建一个云硬盘
- 通过云硬盘传送(cinder transfer)功能修改该云硬盘的租户信息。
# cinder transfer-create VOLUME //VOLUME 是云硬盘的名称或者ID +------------+---------------------------------------+ | Property | Value | +------------+---------------------------------------+ | auth_key | f03bf51ce7ead189 | | created_at | 2014-12-08T03:46:31.884066 | | id | 3f5dc551-c675-4205-a13a-d30f88527490 | | name | None | | volume_id | bcf7d015-4843-464c-880d-7376851ca728 | +------------+---------------------------------------+ # cinder transfer-accept TRANSFERID TRANSFERKEY |
- 如果有其他数据盘,可以通过云硬盘传送方式修改数据盘的租户信息。
- 在新租户下通过传送过来的云硬盘创建虚机。
- 把数据盘挂载到新创建的虚机中。
方案二
- 关闭虚机
- 把虚机系统盘制作成镜像
- 把步骤2创建的镜像设置成共享
- 在新租户下使用步骤3共享的镜像创建虚机
- 通过云硬盘传送方式把数据盘的租户信息改成新的租户。
- 把数据盘挂载到新创建的虚机中。
以上两种方案都没有考虑网络,如果您需要相同的 IP/MAC,请在新租户创建具有相同 IP/MAC 的网络端口并附加到实例。
操作步骤
方案一需要全部命令操作。
|
方案二除云硬盘传送需要手动操作,其他步骤都可以在页面操作。