尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

利用VMware Converter实现Linux物理机到ESXi虚拟机的无缝迁移

利用VMware Converter实现Linux物理机到ESXi虚拟机的无缝迁移 1. 为什么需要物理机到虚拟机的迁移最近几年虚拟化技术越来越普及很多企业都在把传统的物理服务器迁移到虚拟化环境。我自己就帮客户做过几十次这样的迁移最大的感受就是虚拟化带来的便利性真的太多了。想象一下以前一台服务器只能跑一个系统现在一台ESXi主机能同时运行十几台虚拟机硬件利用率直接翻了好几倍。对于Linux系统来说迁移到虚拟化环境有几个特别明显的优势。首先是硬件独立性虚拟机可以随时迁移到其他主机上再也不用担心硬件故障导致服务中断。其次是快照功能升级系统前打个快照出问题秒回滚比任何备份方案都方便。最后是资源调配灵活性CPU、内存不够用鼠标拖几下就能在线扩容这在物理机时代简直不敢想。VMware Converter这个工具我用了很多年它最大的特点就是能做到热迁移——也就是在不关机的情况下完成系统转换。这对生产环境特别重要毕竟谁也不想为了迁移服务就停个半天。工具本身是免费的从VMware官网就能下载不过要注意版本兼容性建议用最新版的Converter配合ESXi 6.7及以上版本。2. 迁移前的准备工作2.1 环境检查清单开始迁移前得做好充分准备我列了个必查清单网络环境确保Converter所在的Windows机、Linux物理机和ESXi主机在同一个局域网段最好都用千兆网线直连。有次我偷懒用了WiFi结果迁移速度只有30MB/s200GB的磁盘花了快两小时。权限配置Converter需要root权限操作Linux机器但直接暴露root密码不安全。我的做法是在sudoers文件里给特定账号免密sudo权限具体配置后面会详细说。服务管理像MySQL、Docker这些服务得提前停掉否则迁移过程中数据可能不一致。特别是数据库服务一定要先做完整备份。2.2 关键配置修改Linux系统有些默认配置会影响迁移成功率这几个地方必须检查SELinux建议临时设为permissive模式否则可能遇到权限问题setenforce 0防火墙关闭或者放行Converter需要的端口systemctl stop firewalldSSH配置确保允许root登录迁移完记得改回来sed -i s/PermitRootLogin no/PermitRootLogin yes/ /etc/ssh/sshd_config systemctl restart sshd3. 使用Converter执行迁移3.1 安装与配置Converter的安装过程很简单但有几个细节要注意安装时选择自定义安装把SSL加密选项勾上这样传输数据更安全安装完成后右键以管理员身份运行普通用户权限会导致迁移失败首次运行时会提示配置服务账户直接用本地系统账户就行3.2 迁移参数设置新建迁移任务时这几个参数特别关键源类型选已打开电源的计算机目标类型根据ESXi版本选择对应类型网络配置建议选自定义手动设置避免IP冲突磁盘选项薄置备可以节省空间但性能要求高的话选厚置备迁移过程中最常遇到的问题是磁盘空间不足。有次客户物理机有500GB磁盘但只用了50GB我直接按实际使用量分配结果系统启动失败。后来发现有些服务运行时会产生临时文件建议至少预留20%的buffer空间。4. 迁移后的验证与优化4.1 基础功能验证迁移完成后别急着下线物理机先做这些检查网络连通性ping网关、DNS、外网都要测服务状态用systemctl list-units --typeservice查看所有服务磁盘挂载检查df -h和mount输出是否正常定时任务查看crontab -l和/etc/cron.*下的任务4.2 性能调优建议虚拟机跑起来后建议做这些优化安装VMware Tools提升性能mkdir /mnt/cdrom mount /dev/cdrom /mnt/cdrom tar -xzvf /mnt/cdrom/VMwareTools-*.tar.gz -C /tmp/ cd /tmp/vmware-tools-distrib/ ./vmware-install.pl -d调整内核参数特别是swappiness值echo vm.swappiness10 /etc/sysctl.conf sysctl -p如果是数据库服务器记得禁用透明大页echo never /sys/kernel/mm/transparent_hugepage/enabled5. 常见问题解决方案5.1 迁移失败处理遇到迁移失败时先检查Converter日志默认在C:\ProgramData\VMware\VMware vCenter Converter Standalone\Logs我整理了几个典型错误错误代码可能原因解决方案21004网络不通检查防火墙和SELinux21010权限不足确认sudoers配置正确21100磁盘空间不足目标存储扩容或清理5.2 系统启动问题如果虚拟机启动卡住试试这些方法进单用户模式检查/etc/fstab特别是UUID是否正确查看dmesg输出常见的是缺少驱动重装grub引导grub-install /dev/sda update-grub有次迁移CentOS 7系统后网卡不识别原因是虚拟机用了vmxnet3驱动而原机是e1000。解决方法是在虚拟机设置里把网卡类型改成e1000或者提前在原机安装vmxnet3驱动。6. 高级技巧与注意事项6.1 批量迁移方案如果需要迁移大量服务器可以用Converter的CLI工具实现自动化。先准备好配置文件然后运行converter-tool.exe -b config.xml我做过一个20台服务器的迁移项目用脚本配合Excel表格管理IP和密码整个迁移过程只用了周末两天就完成了。6.2 安全防护建议迁移完成后务必做这些安全加固恢复原来的sudoers配置移除NOPASSWD权限修改SSH配置禁止root登录重新启用SELinux和防火墙更改所有账户密码包括数据库和应用账户记得有一次迁移完忘记改回sudoers配置结果被运维同事误操作删了重要数据。从此以后我都会在迁移文档里用红色大字标注记得恢复权限配置。迁移过程中如果遇到特别棘手的问题不妨试试先用VMware Workstation做本地转换测试。我有个客户的Ubuntu服务器死活迁移失败后来在笔记本上用Workstation测试发现是LVM分区的问题解决了再上生产环境就顺利多了。
返回列表