虚拟机迁移会带来哪些云计算兼容性问题?
将虚拟机(VM)移动到公共云时可能会出现许多兼容性问题。工作人员需要注意与分区、操作系统和映像格式的兼容性问题,以确保顺利迁移。
企业在虚拟机迁移过程中需要检查云计算兼容性,以确保虚拟机移动到公共云时尽可能不受干扰。
在理想情况下,任何公共云实例都应该支持任何有效的虚拟机(VM)。尽管像亚马逊网络服务(AWS)和谷歌云平台(GCP)这样的公共云提供商试图支持广泛的虚拟机(VM)客户端,但兼容性并不普遍或不能保证。常见的兼容性问题可能包括操作系统版本、图像格式和实例支持。在企业尝试将任何虚拟机迁移到公共云之前,检查云计算兼容性是必要的。
例如,Amazon Elastic Compute Cloud(EC2)实例支持多种操作系统,但不是全部。通常,EC2支持Windows 7及更高版本的桌面操作系统版本,以及Windows Server 2003 Service Pack 1及更高版本——32位和64位。 Windows支持仅在Windows 8.1和Windows Server 2008 R2中转换为64位。
分区和文件系统影响云计算兼容性
Windows操作系统应使用NT文件系统使用传统的主引导记录(MBR)分区。以后的卷技术(如全局唯一标识符分区表卷)可能不受支持。
同样,EC2支持一系列64位Linux版本,包括Ubuntu 12.04,CentOS 5.1,Red Hat企业Linux(RHEL)5.1,SUSE Linux Enterprise Server 11 SP1,内核2.6.32.12-0.7,Debian 6.0.0、Oracle Linux 6.1、Fedora Server 19,以及这些操作系统的所有后续版本。
其他公共云提供商可能会施加类似的限制。例如,谷歌云平台实例支持Windows Server 2008 R2; 2012 R2或2016,以及RHEL,CentOS或Oracle Linux 6或7,Debian 8或9以及Ubuntu 14.04或16.04。
企业准备好将虚拟机迁移到云端了吗?
在迁移任何虚拟机之前,需要检查其虚拟机是否已正确配置。由于不同的公共云提供商有各种各样的要求,预迁移的流程可能很长,但是尽早检查正确的配置将使整个流程更加高效。
企业需要评估适合性和成本,以确定迁移过程是否适合,以及可能需要做些什么才能进一步做好准备。根据每个虚拟机的工作负载,迁移过程可能会有很大的不同。迁移需要逐一检查,特别要注意复杂性、资源需求、性能和依赖性。
在准备好之后,企业应该学习如何执行升级和移位迁移,这些迁移可以将虚拟机及其所有依赖项带到公共云。此过程通常涉及大量人工操作步骤,但使用AWS、谷歌云平台和Microsoft Azure提供的工具,企业可以自动执行大部分流程。
就Linux下的分区和文件系统而言,AWS需要使用ext2、ext3、ext4、btrfs、jfs或xfs文件系统格式化的MBR分区。谷歌云平台建议安装带有Grand Unified Bootloader的MBR分区。
这里的问题在于,公共云提供商可能不支持托管时间较早或替代操作系统的虚拟机,这将导致无法将该虚拟机迁移到公共云实例。例如,在公共云中运行高度修改或定制的Linux版本时可能会出现问题。测试云计算兼容性至关重要。
检查虚拟机映像格式
要迁移虚拟机,通常需要创建映像文件,将该映像文件上传到存储资源,执行一系列转换以在公共云中运行该映像,并将转换后的映像部署到计算实例中。但是,公共云提供商可能会对兼容的虚拟机映像格式施加限制。
例如,AWS公共云以开放虚拟化格式启用虚拟机导入和导出;与VMware ESX和vSphere兼容的虚拟机磁盘映像格式;固定和动态虚拟硬盘映像格式,与Microsoft Hyper-V和Citrix Xen兼容;以及原始格式。
实际上,这种兼容性覆盖了绝大多数企业虚拟机,但验证映像格式兼容性非常重要。可能需要转换映像格式,将用户端的虚拟机以兼容格式导出或考虑完全移除虚拟机迁移。
评估公共云提供商的目标实例类型。尽管大多数类型的公共云实例都应该支持虚拟机迁移,但可用的实例类型对于某些操作系统可能会受到限制。例如,AWS将Linux VM限制为通用实例的t2.micro、t2.small、t2.medium、m3.medium、m3.large、m3.xlarge和m3.2xlarge。对于计算优化、内存优化、存储优化以及加速AWS实例,存在类似的云计算兼容性限制。
尽管大多数类型的公共云实例都应该支持虚拟机迁移,但可用的实例类型对于某些操作系统可能会受到限制。
例如,对于Windows VM,谷歌云平台无法导入配置为多个磁盘的映像。每个磁盘都需要单独的步骤来导入和附加图像。同样,Windows VM也不能使用3.0以前的PowerShell版本,因为它们可能会导致谷歌云实例的启动和关闭问题。
当Secure Shell(SSH)未在端口22上运行时,可能会发生Linux VM的其他潜在云计算兼容性问题。谷歌云平台使用端口22进行SSH登录,而且如果SSH使用不同的端口,则云控制台和gcloud命令行界面等客户端可能无法运行一个不同的端口。