迁移到 Azure 云服务(外延支持)的技术详细信息
本文讨论与云服务(经典)相关的迁移工具相关技术详细信息。
迁移所支持的功能/方案的相关详细信息
扩展和插件迁移
- 所有已启用并受支持的扩展都会进行迁移。
- 已禁用的扩展则不会进行迁移。
- 插件是一种旧概念,应该在迁移前予以删除。 支持迁移插件,但在迁移之后,如果需要启用扩展,则必须先删除插件,然后才能安装扩展。 此限制对远程桌面插件和扩展的影响最大。
证书迁移
- 在云服务(外延支持)中,证书存储在密钥保管库中。 在迁移过程中,我们会为客户创建具有云服务名称的密钥保管库,并将所有证书从 Azure Service Manager 传输到密钥保管库。
- 对该密钥保管库的引用是在模板中指定,或通过 PowerShell 或 Azure CLI 传递。
服务配置和服务定义文件
- 需要为云服务(外延支持)更新 .cscfg 和 .csdef 文件,进行少量更改。
- 虚拟网络和虚拟机 (VM) SKU 等资源的名称不相同。 请参阅迁移后的资源转换和命名约定
- 客户可以通过 PowerShell 和 REST API 检索其新部署。
云服务和部署
- 每个云服务(外延支持)部署都是独立的云服务。 部署不再使用槽分组到云服务中。
- 如果云服务(经典)中有两个槽,你需要删除一个槽(过渡),并使用迁移工具将另一个(生产)槽移至 Azure 资源管理器。
- 迁移至 Azure 资源管理器之后,云服务部署上的公共 IP 地址保持不变,并以基本 SKU IP(动态或静态)资源的形式公开。
- 已迁移的云服务的 DNS 名称和域 (chinacloudapp.cn) 保持不变。
虚拟网络迁移
- 如果云服务部署位于虚拟网络中,则在迁移过程中,所有的云服务和关联的虚拟网络资源会一起迁移。
- 迁移后,该虚拟网络与该云服务位于不同的资源组中。
- 对于包含多个云服务的虚拟网络,各个云服务会一个接一个地迁移。
不在虚拟网络中的部署的迁移
- 在 2018 年底,Azure 开始将新部署(不含由客户指定的虚拟网络)自动创建到平台所创建的“默认”虚拟网络中。 这些默认虚拟网络对客户不可见。
- 在迁移过程中,这个默认虚拟网络会在 Azure 资源管理器中向客户公开一次。 若要在 Azure 资源管理器中管理或更新该部署,客户需要将该虚拟网络信息添加至 .cscfg 文件的 NetworkConfiguration 部分。
- 迁移至 Azure 资源管理器后,默认虚拟网络与云服务位于同一个资源组中。
- 在此时间之前(在 2018 年底之前)创建的云服务不会位于任何虚拟网络中,因此无法使用该工具进行迁移。 请考虑直接在 Azure 资源管理器中重新部署这些云服务。 另一种方法是通过创建新的过渡部署和 VIPSwap 进行迁移。请在此处查看更多详细信息
- 若要检查某个部署是否符合迁移条件,请在该部署上运行验证 API。 验证 API 的结果会包含错误消息,明确指出该部署是否符合迁移条件。
负载均衡器
- 对于使用公用终结点的云服务,在 Azure 资源管理器中的客户订阅中,将会公开一个由平台创建并与该云服务相关联的负载均衡器。 负载均衡器是只读的资源,只能通过服务配置 (.cscfg) 和服务定义 (.csdef) 文件进行更新。
密钥保管库
- 在迁移过程中,Azure 会自动创建新的密钥保管库,并将所有证书迁移到其中。 该工具不允许使用现有的密钥保管库。
- 云服务(外延支持)需要一个位于同一区域和订阅中的密钥保管库。 该密钥保管库会在迁移过程中自动创建。
不可迁移的资源和功能
此列表包含涉及到资源、功能和云服务组合的主要方案。 此列表并不详尽。
资源 | 后续步骤/解决方法 |
---|---|
自动缩放规则 | 迁移会继续,但规则将被删除。 迁移后在云服务(外延支持)上重新创建规则。 |
警报 | 迁移会继续,但警报将被删除。 迁移后在云服务(外延支持)上重新创建规则。 |
VPN 网关 | 开始迁移之前请删除 VPN 网关,并在迁移完成后重新创建 VPN 网关。 |
Express Route 网关(仅限在虚拟网络所在的同一订阅中) | 开始迁移之前请删除 Express Route 网关,并在迁移完成后重新创建该网关。 |
配额 | 不会迁移配额。 迁移之前在 Azure 资源管理器上请求新配额,以便验证成功。 |
地缘组 | 不支持。 在迁移之前删除任何地缘组。 |
使用虚拟网络对等互连的虚拟网络 | 在迁移某个已对等互连到另一虚拟网络的虚拟网络之前,请删除对等互连,将该虚拟网络迁移到资源管理器,然后重新创建对等互连。 这可能会导致停机,具体取决于体系结构。 |
包含应用服务环境的虚拟网络 | 不支持 |
具有 Azure Batch 部署的虚拟网络 | 不支持 |
包含 HDInsight 服务的虚拟网络 | 不支持。 |
包含 Azure API 管理部署的虚拟网络 | 不支持。 若要迁移虚拟网络,请更改 API 管理部署的虚拟网络。 此操作不会造成停机。 |
经典 Express Route 线路 | 不支持。 这些线路需要在开始 PaaS 迁移之前迁移到 Azure 资源管理器。 有关详细信息,请参阅将 ExpressRoute 线路从经典部署模型转移到资源管理器部署模型。 |
基于角色的访问控制 | 迁移后,资源的 URI 将从 Microsoft.ClassicCompute 更改为 Microsoft.Compute 。迁移后需要更新 RBAC 策略。 |
应用程序网关 | 。 开始迁移之前删除应用程序网关,并在完成到 Azure 资源管理器的迁移后重新创建应用程序网关 |
不支持的配置/迁移方案
配置/方案 | 后续步骤/解决方法 |
---|---|
迁移某些不在虚拟网络中的旧部署 | 不支持迁移某些不在虚拟网络中的云服务部署。 1. 使用“验证”API 检查部署是否符合迁移条件。 2.如果符合条件,则部署将迁移到 Azure 资源管理器中前缀为“DefaultRdfeVnet”的虚拟网络下 |
迁移使用动态 IP 地址的、包含生产槽部署和过渡槽部署的部署 | 迁移双槽云服务需要删除过渡槽。 删除过渡槽后,在 Azure 资源管理器中将生产槽作为独立的云服务(外延支持)迁移。 然后,将过渡环境重新部署为新的云服务(外延支持),并将其设置为可与第一个云服务交换。 |
迁移使用保留 IP 地址的、包含生产槽部署和过渡槽部署的部署 | 不支持。 |
迁移位于不同虚拟网络中的生产部署和过渡部署 | 迁移双槽云服务需要删除过渡槽。 删除过渡槽后,在 Azure 资源管理器中将生产槽作为独立的云服务(外延支持)迁移。 然后,可以在为新的云服务(外延支持)部署启用可交换属性后,将其链接到已迁移的部署。 可以重复使用旧过渡槽部署的部署文件来创建这个新的可交换部署。 |
迁移空云服务(无部署的云服务) | 不支持。 |
迁移包含远程桌面插件和远程桌面扩展的部署 | 选项 1:在迁移之前删除远程桌面插件。 这需要对部署文件进行更改。 然后进行迁移。 选项 2:删除远程桌面扩展并迁移部署。 迁移后,删除插件并安装扩展。 这需要对部署文件进行更改。 在迁移之前删除插件和扩展。 不建议将插件用于云服务(外延支持)。 |
具有 PaaS 和 IaaS 部署的虚拟网络 | 不支持 将 PaaS 或 IaaS 部署移到不同的虚拟网络中。 这会导致停机时间。 |
使用旧式角色大小(例如“小”或“超大”)的云服务部署。 | 迁移前需要更新角色大小。 更新所有部署项目以引用这些新式角色大小。 有关详细信息,请参阅可用的 VM 大小。 |
将云服务迁移到不同的虚拟网络 | 不支持 1. 迁移之前将部署移到不同的经典虚拟网络。 这会导致停机时间。 2. 将新虚拟网络迁移到 Azure 资源管理器。 或 1.将虚拟网络迁移到 Azure 资源管理器 2. 将云服务移到新虚拟网络。 这会导致停机时间。 |
位于虚拟网络中但未分配有显式子网的云服务 | 不支持。 缓解措施涉及到将角色移入子网中,这需要重启角色(造成停机) |
迁移后的资源转换和命名约定
在迁移过程中,资源名称会更改,而且有些云服务功能会以 Azure 资源管理器资源的形式公开。 下表总结云服务迁移特定的更改。
云服务(经典) 资源名称 |
云服务(经典) 语法 |
云服务(外延支持) 资源名称 |
云服务(外延支持) 语法 |
---|---|---|---|
云服务 | cloudservicename |
未关联 | 未关联 |
部署(由门户创建) 部署(并非由门户创建) |
deploymentname |
云服务(外延支持) | cloudservicename |
虚拟网络 | vnetname Group resourcegroupname vnetname 未关联 |
虚拟网络(并非由门户创建) 虚拟网络(由门户创建) 虚拟网络(默认) |
vnetname group-resourcegroupname-vnetname VNet-cloudservicename |
未关联 | 未关联 | 密钥保管库 | KV-cloudservicename |
未关联 | 未关联 | 云服务部署的资源组 | cloudservicename-migrated |
未关联 | 未关联 | 虚拟网络的资源组 | vnetname-migrated group-resourcegroupname-vnetname-migrated |
未关联 | 未关联 | 公共 IP(动态) | cloudservicenameContractContract |
保留 IP 名称 | reservedipname |
保留 IP(并非由门户创建) 保留 IP(由门户创建) |
reservedipname group-resourcegroupname-reservedipname |
未关联 | 未关联 | 负载均衡器 | LB-cloudservicename |
迁移问题及其处理方式。
迁移长时间停滞在某一项操作中。
- 提交、准备和中止可能需要很长时间,具体取决于部署数量。 操作将在 24 小时后超时。
- 提交、准备和中止操作都是幂等的。 大部分问题可以通过重试来修正。 可能存在暂时性错误,这些错误可能会在几分钟后消失,我们建议你稍候片刻,然后重试。 如果使用 Azure 门户进行迁移,但操作停滞在“正在进行”状态,请使用 PowerShell 重试该操作。
- 请联系支持人员,从后端帮助你迁移或回滚该部署。
迁移在操作中失败。
- 如果验证失败,则原因是该部署或虚拟网络包含不受支持的方案/功能/资源。 请使用不支持的方案列表在文档中查找解决方法。
- 准备操作会先执行验证,包括未涵盖在“验证”中的一些高成本验证。 准备失败的原因可能是方案不受支持, 请在公用文档中查找该方案和解决方法。 需要调用“中止”以回到原始状态,并解除部署锁定以执行更新和删除操作。
- 如果中止失败,请重试该操作。 如果重试失败,请联系支持人员。
- 如果提交失败,请重试该操作。 如果重试失败,请联系支持人员。 即使在提交失败时,部署也不应有任何数据平面问题。 你的部署应能够处理客户流量,不会出现任何问题。
完成准备后,门户随即刷新。 体验会重新开始,“提交”或“中止”不再可见。
- 门户会将迁移信息存储在本地,因此在刷新后,它会从“验证”阶段开始,即使云服务处于准备阶段也是如此。
- 你可使用门户来完成“验证”和“准备”步骤,以公开“中止”和“提交”按钮。 这不会导致任何故障。
- 客户可以使用 PowerShell 或 REST API 来中止或提交。
操作可能会花费多长时间?
按照设计,执行验证的速度非常快。 运行准备的时间最长,需要一些时间,具体取决于所要迁移的角色实例总数。 中止和提交也需要一些时间,但与准备相比需要的时间较少。 所有操作都会在 24 小时后超时。
后续步骤
如需将云服务(经典)部署迁移到云服务(扩展支持)方面的帮助,请参阅支持和故障排除登陆页面。