【实践目的】实现本地的windows2008R2等镜像上云迁移,让迁移后的云机保持本地的业务环境。
【迁移关键】本地Windows镜像制作 、镜像文件迁移到腾讯云COS对象存储、使用【迁移服务平台】。
【迁移价值】体系全,成本低、【存储】无上限、弹性【服务器】、【数据】多冗余、【网络】自由调度、【安全】专业服务。
【迁移步骤】:
制作系统盘镜像导出时需要做以下检查,数据盘镜像导出可以忽略。
bcdedit /enum {current}
运行示例:
C:\WINDOWS\system32>bcdedit /enum {current}
Windows 启动加载器
-------------------
标识符 {current}
device partition=C:
path \WINDOWS\system32\winload.exe
description Windows 10
locale zh-CN
inherit {bootloadersettings}
recoverysequence {f9dbeba1-1935-11e8-88dd-ff37cca2625c}
displaymessageoverride Recovery
recoveryenabled Yes
flightsigning Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \WINDOWS
resumeobject {1bcd0c6f-1935-11e8-8d3e-3464a915af28}
nx OptIn
bootmenupolicy Standard
请根据实际使用的操作系统位数,下载对应版本的 cloudbase-init 工具安装包进行安装。具体详情请参见 Cloudbase-Init 官网。
Cloudbase-init 分为以下版本:
安装 cloudbase-init 的过程中,请注意以下两点:
[DEFAULT]
username=Administrator
groups=Administrators
inject_user_password=true
config_drive_raw_hhd=true
config_drive_cdrom=true
config_drive_vfat=true
bsdtar_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\bsdtar.exe
mtools_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\
metadata_services=cloudbaseinit.metadata.services.configdrive.ConfigDriveService
plugins=cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin,cloudbaseinit.plugins.common.networkconfig.NetworkConfigPlugin,cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin,cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin,cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin,cloudbaseinit.plugins.common.userdata.UserDataPlugin
verbose=true
debug=true
logdir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\
logfile=cloudbase-init.log
default_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN,requests=WARN
logging_serial_port_settings=COM1,115200,N,8
mtu_use_dhcp_config=true
ntp_use_dhcp_config=true
first_logon_behaviour=no
netbios_host_name_compatibility=false
allow_reboot=false
activate_windows=true
kms_host="kms.tencentyun.com"
local_scripts_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\
C:\powershell
PS C:\Set-ExecutionPolicy Unrestricted
将 TencentCloudRun.ps1 脚本拷贝到 C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\ 路径下。
如果待导出系统是在物理机,或者不想使用平台工具导出,那么可以选择 disk2vhd 工具。 下载 disk2vhd
安装后界面如下图:
注:这里注意,我在导出时需要勾选100MB的保留分区,否则会导入云机时会失败。
如上所述,当不停服制作镜像或者其它原因,可能导致制作出的镜像文件系统有误,因此建议在制作镜像后检查是否无误。
当镜像格式和当前平台支持的格式一致时,可以直接打开镜像检查文件系统。 例如 Windows 平台可以直接附加 vhd 格式镜像,Linux 可以使用 qemu-nbd 打开 qcow2 格式镜像,Xen 平台可以直接启用 vhd 文件。 以 Linux 平台为例:
modprobe nbd
qemu-nbd -c /dev/nbd0 xxxx.qcow2
mount /dev/nbd0p1 /mnt
如果 qcow2 镜像的第一个分区导出时文件系统被破坏,mount 时将会报错。
此外还可以在上传镜像前,先启动虚拟机测试镜像文件是否可以使用。
3.1使用迁移镜像服务
首先非常感谢架构师飞哥的项目指导,他做了linux上云的解决方案实践,我根据他的思路做了一份windows上云的技术实践,并且非常感谢【腾讯云迁移服务产品团队】大力支持和指导,下面就介绍下本次实践的经验,谢谢。
1.制作windows镜像时,需要提前安装两个软件,一个是virt驱动和cloud-ini软件(另外注意安装一个更新模块)。
CloudbaseInitSetup_0_9_11_x64、InstallQCloud、Windows6.1-KB2533623-x64.msu
2.使用disk2vhd-tmp导出系统镜像时注意,不要勾选use vhdx格式;导出时一定要勾选保留的分区。
3.cos上传后,有客户想要直接强制导入镜像的方式创建云机,但产品团队给我提示,哪样的方式会存在受限制,“系统的虚拟内存,不是实际的内存”。
这个目前是有限制的 类似你系统盘df -h 看到实际大小2G,但是实际上文件系统大小可以达到200G一样。如果使用镜像导入方式迁移,则会失败,因为镜像导入最大只支持50GB限制。
4.导入后的系统是没有激活,还有很多云安全软件需要自己去安装,这是我自己发现的,比如云镜基础防护agent,和系统激活服务。
最后忠诚的感谢腾讯云迁移服务产品团队大力指导和支持,感谢!本实践只是迁移服务平台的功能的一部分,有兴趣的同学可以可以尝试实践,欢迎广大用户使用腾讯云【迁移服务平台( M S P)】 谢谢。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。