云迁移部署
环境
-
源主机需关闭防火墙,若为linux需关闭selinux。
-
transport/conductor部署在cu以及华云公有云等有默认防火墙控制的云平台上时,
需要放开上行和下行的端口限制,默认端口是80/443/902/8080/9088/9099/9900/9901/9902。
-
源主机若部署在cu以及华云公有云等有默认防火墙控制的云平台上时,
需要放开上行和下行的端口限制,默认端口是9902。
-
遇到问题前先阅读同级目录下的 cmigrate-faq.html 。
配置要求
- transport(非中转,task为并行任务数, CPU、宽带为推荐配置,内存为要求配置)
| cpu | memory | nic |
|---|
| 0.5core*task | 1G*task + 1.5G | 10MB*task |
备注:该类transport是作为接受端的transport,要在目标迁移的项目中。
- transport(纯中转,task为并行任务数,CPU、宽带为推荐配置,内存为要求配置)
| cpu | memory | nic |
|---|
| 0.5core*task | 0.2G*task + 1.5G | 10MB*task |
- 在线迁移packer-linux(CPU、宽带为推荐配置,内存为要求配置)
| cpu | memory | nic |
|---|
| 0.5core | 512MB | 10MB |
- 在线迁移packer-windows(CPU、宽带为推荐配置,内存为要求配置)
| cpu | memory | nic |
|---|
| 0.5core | 512MB | 10MB |
- 离线迁移packer-linux(CPU、宽带为推荐配置,内存为要求配置)
- 离线迁移packer-windows(CPU、宽带为推荐配置,内存为要求配置)
conductor/transport qcow2镜像安装方式
-
镜像地址:
http://220.231.216.27/cmigrate/v2.2.0/cmigrate_x64-2.2.0.qcow2
http://220.231.216.27/cmigrate/v2.2.0/cmigrate_aarch64-2.2.0.qcow2
-
web、conductor以及transport都已部署在该镜像中。
-
cmigrate_x64-2.2.0.qcow2 镜像采用bios启动方式,安超云平台上传镜像时,选择legacy模式。
-
把该镜像导入到安超平台后,通过该镜像创建的虚机,启动后web、conductor不会自启动,transport会自启动。
-
一套云迁移工具可以由一个web和conductor服务,多个transport服务,所以一套云迁移工具只能启动一个web和conductor服务。
-
启动 web及conductor的方法如下:
- systemctl enable nginx && systemctl start nginx
- supervisorctl start conductor
-
备注:
- 若需配置conductor服务自启动
修改 /etc/supervisord.d/conductor.ini 文件,修改 autostart = false 为 autostart = true。
- 无代理模式下,如果exsi为5.1及以下版本时,需替换transport程序,操作如下:
wget http://220.231.216.27/cmigrate/VMware-vix-disklib-5.1.0-774844.x86_64.tar.gz
tar -pzxvf VMware-vix-disklib-5.1.0-774844.x86_64.tar.gz -C /opt/
wget http://220.231.216.27/cmigrate/v2.2.0/transport-vsphere-v51-2.2.0.tgz
tar -pzxvf transport-vsphere-v51-2.2.0.tgz -C /
supervisorctl restart transport
supervisorctl restart vmware
-
若需要raw格式镜像,请通过下列命令转换
qemu-img convert -p -f qcow2 -O raw cmigrate_x64-2.2.0.qcow2 cmigrate_x64-2.2.0.raw
-
由于安超的限制,每个存储后端都需要部署一个transport。
-
若迁移的目标端为安超1.4,请更新 conductor 和 web包,操作如下:
wget http://220.231.216.27/cmigrate/v2.2.0/conductor_x64-2.2.0.tgz
tar xf conductor_x64-2.2.0.tgz -C /
或者
wget http://220.231.216.27/cmigrate/v2.2.0/conductor_aarch64-2.2.0.tgz
tar xf conductor_aarch64-2.2.0.tgz -C /
supervisorctl restart conductor
wget http://220.231.216.27/cmigrate/v2.2.0/web-2.2.0_for_archeros1.4.tgz
systemctl stop nginx
rm -rf /usr/share/nginx/html/*
tar xf web-2.2.0_for_archeros1.4.tgz -C /usr/share/nginx/html/
systemctl start nginx
- transport配置文件里的transport-ip项
a. 非中专模式下transport接受端和packer之间使用vpn协议通信场景下需要配置
b. 非中专模式下transport接受端ping工具ping packer地址, 同时packer上tcpdump -i <网卡> host <接受端Ip>,如果检测不到信息也需要配置
Packer 离线迁移
关闭源主机后,接入光盘或者usb启动盘,设置bios从光盘或usb启动,开机进入离线迁移系统。
Windows版本 光盘或usb启动盘刻录
- 下载windows离线镜像, http://220.231.216.27/cmigrate/v2.2.0/packer_windows_x64-2.2.0.iso
- 下载 UltraISO 镜像刻录工具,http://220.231.216.27/cmigrate/tools/UltraISOPortable_9.7.1.3519.rar
- 在windows上使用 UltraISO 进行刻录光盘或者usb启动盘。
- 此步骤开始,仅为U盘刻录使用。
- 制作usb启动盘时,写入方式选择 USB-HDD+ 。
Linux版本 光盘或usb启动盘刻录
- 下载linux离线镜像, 三个离线镜像使用场景如下:
```
a. centos8及以上,ubuntu20及以上 x86/x64 源系统:
http://220.231.216.27/cmigrate/v2.2.0/packer_linux_c8_x64-2.2.0.iso
b. 其它 x86/x64 源系统(包括opensuse):
http://220.231.216.27/cmigrate/v2.2.0/packer_linux_c7_x64-2.2.0.iso
c. arm 源系统:
http://220.231.216.27/cmigrate/v2.2.0/packer_linux_aarch64-2.2.0.iso
```
- 下载 UltraISO 镜像刻录工具,http://220.231.216.27/cmigrate/tools/UltraISOPortable_9.7.1.3519.rar
- 在windows上使用 UltraISO 进行刻录光盘或者usb启动盘。
- 此步骤开始,仅为U盘刻录使用。
- 制作usb启动盘时,写入方式选择 RAW 模式 (这个选择很重要!!!) 。
Packer 在线迁移
Windows
x64
- 安装packer
- wget http://220.231.216.27/cmigrate/v2.2.0/packer-windows-x64-2.2.0.zip
- 关闭防火墙,卸载杀毒软件
- 解压packer-windows-x64-2.2.0.zip, 以管理员身份运行cmd工具,使用cmd命令行执行install.bat脚本完成安装
- cmd命令行里使用"netstat -ano" 查看9902端口是否被监听
x86
- 安装packer
- wget http://220.231.216.27/cmigrate/v2.2.0/packer-windows-x86-2.2.0.zip
- 关闭防火墙,卸载杀毒软件
- 解压packer-windows-x86-2.2.0.zip, 以管理员身份运行cmd工具,使用cmd命令行执行install.bat脚本完成安装
- cmd命令行里使用"netstat -ano" 查看9902端口是否被监听
Linux
安装方式一: 脚本安装方式
-
安装packer
- wget http://220.231.216.27/cmigrate/v2.2.0/PackerInstallerForLinux.sh
- chmod +x PackerInstallerForLinux.sh 添加执行权限
- ./PackerInstallerForLinux.sh
-
备注:
- 使用自动化部署脚本的前提是yum或者apt可用
- 脚本搜索的本地路径默认是/opt/packer
- 脚本安装日志的默认路径是/var/log/install.log
- 用户现场如果能连外网,只要把kernel-devel包拷贝到/opt/packer目录后,直接执行安装脚本
- 用户现场如果不能连外网,需要把kernel-devel和datto相关包都拷贝到/opt/packer目录,配置本地源后再使用脚本
- 本地源配置方法
https://blog.csdn.net/wanghaitao95/article/details/10187339
https://blog.csdn.net/u011436548/article/details/21544297
- kernel-devel和datto包在
http://220.231.216.27/cmigrate/kernel-devel以及http://220.231.216.27/cmigrate/datto获取
安装方式二: 直接安装方式
Centos 7
-
安装kernel-devel
- 使用“uname -r”命令获取内核版本 KERNEL_VERSION
- 搜索kernel-devel-KERNEL_VERSION.rpm
推荐网站:
http://mirror.centos.org/centos/
https://www.rpmfind.net/linux/rpm2html/search.php?query=kernel-devel
- 使用rpm -ivh kernel-devel-KERNEL_VERSION.rpm 进行安装
-
安装datto
yum localinstall https://cpkg.datto.com/datto-rpm/repoconfig/datto-el-rpm-release-$(rpm -E %rhel)-latest.noarch.rpm
- yum install dkms-dattobd dattobd-utils
- modprobe dattobd 加载内核模块
- 使用"lsmod | grep datto"查看datto模块是否被加载上
-
安装dmidecode
- yum install dmidecode
-
安装packer
- wget http://220.231.216.27/cmigrate/v2.2.0/packer-linux-generic-2.2.0.tgz
- tar -pzxvf packer-linux-generic-2.2.0.tgz -C /
- packer_service start
- packer_service status
Centos 6
-
由于 centos6 的官方mirro yum源已经停止维护,需要手动更改yum源,如下方式修改baseurl:
vim /etc/yum.repos.d/CentOS-Base.repo
[base]
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=https://vault.centos.org/6.10/os/x86_64/
#released updates
[updates]
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=https://vault.centos.org/6.10/updates/x86_64/
#additional packages that may be useful
[extras]
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=https://vault.centos.org/6.10/extras/x86_64/
-
安装kernel-devel
- 使用“uname -r”命令获取内核版本 KERNEL_VERSION
- 搜索kernel-devel-KERNEL_VERSION.rpm
推荐网站:
http://mirror.centos.org/centos/
https://www.rpmfind.net/linux/rpm2html/search.php?query=kernel-devel
- 使用rpm -ivh kernel-devel-KERNEL_VERSION.rpm 进行安装
-
安装datto
wget https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm
- yum localinstall epel-release-6-8.noarch.rpm
yum localinstall https://cpkg.datto.com/datto-rpm/repoconfig/datto-el-rpm-release-$(rpm -E %rhel)-latest.noarch.rpm
- yum install dkms-dattobd dattobd-utils
- modprobe dattobd 加载内核模块
- 使用"lsmod | grep datto"查看datto模块是否被加载上
-
安装dmidecode
- yum install dmidecode
-
安装packer
- wget http://220.231.216.27/cmigrate/v2.2.0/packer-linux-centos6-2.2.0.tgz
- tar -pzxvf packer-linux-centos6-2.2.0.tgz -C /
- packer_service start
- packer_service status
Redhat
-
安装kernel-devel
- 使用“uname -r”命令获取内核版本 KERNEL_VERSION
- 搜索kernel-devel-KERNEL_VERSION.rpm
推荐网站:
http://mirror.centos.org/centos/
https://www.rpmfind.net/linux/rpm2html/search.php?query=kernel-devel
- 使用rpm -ivh kernel-devel-KERNEL_VERSION.rpm 进行安装
-
安装datto
- 源主机yum可用
1. yum install dkms 安装依赖
2. https://cpkg.datto.com/datto-rpm/EnterpriseLinux/进到相应发行版本的目录下载libdattobd、dkms-dattobd、dattobd-utils三个包到本地
3. yum localinstall 安装上述三个包
4. modprobe dattobd 加载内核模块
5. 使用"lsmod | grep datto"查看datto模块是否被加载上
- 源主机yum不可用
* 方法1:wget方式下载所有需要的包,本地安装
1. 依赖包,dkms, elfutils-default-yama-scope, elfutils-libelf-devel, elfutils-libs,推荐https://www.rpmfind.net
2. 驱动包,libdattobd、dattobd、dattobd-utils,下载地址https://cpkg.datto.com/datto-rpm/EnterpriseLinux/
3. modprobe dattobd 加载内核模块
4. 使用"lsmod | grep datto"查看datto模块是否被加载上
* 方法2:重装用户的yum软件(可能会同时安装一个内核升级包, 重启时注意选择原内核)
1. 重装yum,例如 https://segmentfault.com/a/1190000013590285、https://www.it610.com/article/1277727054657241088.htm
2. 修改/etc/yum.conf配置,将distroverpkg=centos-release替换为distroverpkg=redhat-release-server
3. yum localinstall https://cpkg.datto.com/datto-rpm/repoconfig/datto-el-rpm-release-$(rpm -E %rhel)-latest.noarch.rpm
4. yum install dkms-dattobd dattobd-utils
5. modprobe dattobd 加载内核模块
6. 使用"lsmod | grep datto"查看datto模块是否被加载上
-
安装dmidecode
- 源主机yum可用
- yum install dmidecode
- 源主机yum不可用
- 参考datto安装步骤
-
安装packer
- wget http://220.231.216.27/cmigrate/v2.2.0/packer-linux-centos6-2.2.0.tgz
- tar -pzxvf packer-linux-centos6-2.2.0.tgz -C /
- packer_service start
- packer_service status
Ubuntu
-
安装datto
- apt-get install wget
- wget https://cpkg.datto.com/DATTO-PKGS-GPG-KEY
- apt-key add DATTO-PKGS-GPG-KEY
- echo "deb [arch=amd64] https://cpkg.datto.com/datto-deb/public/$(lsb_release -sc) $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/datto-linux-agent.list
- apt-get update
- apt-get install dattobd-dkms dattobd-utils
- modprobe dattobd 加载内核模块
- 使用"lsmod | grep datto"查看datto模块是否被加载上
-
安装dmidecode
- apt-get install dmidecode
-
安装packer
- wget http://220.231.216.27/cmigrate/v2.2.0/packer-linux-generic-2.2.0.tgz
- tar -pzxvf packer-linux-generic-2.2.0.tgz -C /
- packer_service start
- packer_service status