云迁移部署
环境
- Centos7.2(transport/conductor)
- 关闭防火墙、selinux
- 部署在海河v1.2以及华云公有云等有默认防火墙控制的公有云上时,
要放开上行和下行的端口限制,默认端口是8080/9088/9099/9900/9901/9902。
配置要求
| cpu |
memory |
带宽 |
| 2core |
4G |
10M |
- transport(非中转,task为并行任务数, CPU、宽带为推荐配置,内存为要求配置)
| cpu |
memory |
nic |
| 0.5core*task |
2G*task + 0.5G |
10MB*task |
备注:该类transport是作为接受端的transport,要在目标迁移的项目中。
- transport(纯中转,task为并行任务数,CPU、宽带为推荐配置,内存为要求配置)
| cpu |
memory |
nic |
| 0.5core*task |
0.2G*task + 0.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、宽带为推荐配置,内存为要求配置)
| cpu |
memory |
nic |
| 1core |
1GB |
10MB |
- 离线迁移packer-windows(CPU、宽带为推荐配置,内存为要求配置)
| cpu |
memory |
nic |
| 2core |
3GB |
10MB |
Conductor & Web
安装方式一 Docker安装方式
-
安装docker
- yum -y install docker
- 禁用 docker bridge
向 /etc/docker/daemon.json 添加 {"bridge": "none"} 。
cat /etc/docker/daemon.json 结果如下:
{"bridge": "none"}
- systemctl enable docker
- systemctl start docker
-
下载并启动docker image
- wget http://117.48.207.245/cmigrate/v1.3.0/docker_conductor_v1.3.0.image
- docker load -i docker_conductor_v1.3.0.image
- docker run --privileged -d --net=host --restart=always cmigrate/conductor:v1.3.0
-
进入docker终端(查看日志时使用)
- docker ps 获取container id
- docker exec -it e8659d31a313 bash #e8659d31a313 是 container id
-
备注:
- web 已经部署在了 conductor docker 镜像中,不需要额外部署。
- 删除已有docker镜像的方法:
a. docker ps 获取container id
b. docker container rm -f e8659d31a313
c. docker image rm cmigrate/conductor:v1.3.0
安装方式二 直接安装方式
Transport
安装方式一 Docker安装方式
-
安装docker
- yum -y install docker
- 禁用 docker bridge
向 /etc/docker/daemon.json 添加 {"bridge": "none"} 。
cat /etc/docker/daemon.json 结果如下:
{"bridge": "none"}
- systemctl enable docker
- systemctl start docker
-
下载并启动docker image
- 如果需要使用无代理模式迁移5.1以及更老版本vsphere上的虚拟机,wget http://117.48.207.245/cmigrate/v1.3.0/docker_transport_vsphere_v51_v1.3.0.image, 否则wget http://117.48.207.245/cmigrate/v1.3.0/docker_transport_v1.3.0.imag
- docker load -i docker_transport_vsphere_v51_v1.3.0.image 或者 docker load -i docker_transport_v1.3.0.image
- docker run --privileged -d --net=host -v /dev:/dev --restart=always cmigrate/transport_vsphere_v51:v1.3.0 或者docker run --privileged -d --net=host -v /dev:/dev --restart=always cmigrate/transport:v1.3.0
-
进入docker终端(查看日志时使用)
- docker ps 获取container id
- docker exec -it e8659d31a313 bash #e8659d31a313 是 container id
安装方式二 直接安装方式
-
安装virt-v2v
- yum install libguestfs-winsupport virt-v2v ntfs-3g ntfsprogs -y
- systemctl enable libvirtd
- systemctl start libvirtd
- yum install http://117.48.207.245/cmigrate/virtio-win-0.1.141-1.noarch.rpm -y
-
安装grub-install
- wget http://117.48.207.245/cmigrate/grub-0.97-99.el6.x86_64.rpm
- rpm -ivh grub-0.97-99.el6.x86_64.rpm --nodeps
-
安装Vmware-vix-disklib
- 如果需要使用无代理模式迁移5.1以及更老版本vsphere上的虚拟机, wget http://117.48.207.245/cmigrate/VMware-vix-disklib-5.1.0-774844.x86_64.tar.gz, 否则wget http://117.48.207.245/cmigrate/VMware-vix-disklib-6.5.0-4604867.x86_64.tar.gz
- tar -pzxvf VMware-vix-disklib-5.1.0-774844.x86_64.tar.gz -C /opt/ 或者 tar -pzxvf VMware-vix-disklib-6.5.0-4604867.x86_64.tar.gz -C /opt/
-
安装supervisor
- yum install supervisor -y
- systemctl enable supervisord
- systemctl start supervisord
-
安装transport
- 如果需要使用无代理模式迁移5.1以及更老版本vsphere上的虚拟机, wget http://117.48.207.245/cmigrate/v1.3.0/transport-vsphere-v51-1.3.0.tgz, 否则wget http://117.48.207.245/cmigrate/v1.3.0/transport-1.3.0.tgz
- tar -pzxvf transport-vsphere-v51-1.3.0.tgz -C / 或者 tar -pzxvf transport-1.3.0.tgz -C /
- systemctl restart supervisord
-
备注:
- 删除已有docker镜像的方法:
a. docker ps 获取container id
b. docker container rm -f e8659d31a313
c. docker image rm cmigrate/transport_vsphere_v51:v1.3.0 或者 docker image rm cmigrate/transport:v1.3.0
- 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://117.48.207.245/cmigrate/v1.3.0/packer-offline-windows-1.3.0.iso
- 下载 UltraISO 镜像刻录工具,http://117.48.207.245/cmigrate/tools/UltraISOPortable_9.7.1.3519.rar
- 在windows上使用 UltraISO 进行刻录光盘或者usb启动盘。
- 此步骤开始,仅为U盘刻录使用。
- 制作usb启动盘时,写入方式选择 USB-HDD+ 。
Linux 光盘或者usb启动盘刻录
- 下载linux离线镜像, http://117.48.207.245/cmigrate/v1.3.0/packer-offline-linux-1.3.0.iso
- 下载 UltraISO 镜像刻录工具,http://117.48.207.245/cmigrate/tools/UltraISOPortable_9.7.1.3519.rar
- 在windows上使用 UltraISO 进行刻录光盘或者usb启动盘。
- 此步骤开始,仅为U盘刻录使用。
- 制作usb启动盘时,写入方式选择 RAW 模式 (这个选择很重要!!!) 。
Packer 在线迁移
Windows
x64
-
安装packer
- wget http://117.48.207.245/cmigrate/v1.3.0/packer-1.3.0-windows-x64.zip
- 关闭防火墙,卸载杀毒软件
- 解压packer-1.3.0-windows-x64.zip, 以管理员身份运行cmd工具,使用cmd命令行执行install.bat脚本完成安装
- cmd命令行里使用"netstat -ano" 查看9902端口是否被监听
x86
-
安装packer
- wget http://117.48.207.245/cmigrate/v1.3.0/packer-1.3.0-windows-x86.zip
- 关闭防火墙,卸载杀毒软件
- 解压packer-1.3.0-windows-x86.zip, 以管理员身份运行cmd工具,使用cmd命令行执行install.bat脚本完成安装
- cmd命令行里使用"netstat -ano" 查看9902端口是否被监听
Linux
安装方式一 脚本安装方式
-
安装packer
- wget http://117.48.207.245/cmigrate/v1.3.0/PackerInstallerForLinux.sh
- chmod +x PackerInstallerForLinux.sh 添加执行权限
- ./PackerInstallerForLinux.sh
-
备注:
- 脚本搜索的本地路径默认是/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://117.48.207.245/cmigrate/kernel-devel以及http://117.48.207.245/cmigrate/datto获取
安装方式二 直接安装方式
Centos 7
-
安装kernel-devel
- 使用“uname -r”命令获取内核版本KERNEL_VERSION,推荐http://mirror.centos.org/centos/ 或者https://www.rpmfind.net/linux/rpm2html/search.php?query=kernel-devel
- 搜索kernel-devel-KERNEL_VERSION.rpm
- 使用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://117.48.207.245/cmigrate/v1.3.0/packer-1.3.0-linux-generic.tgz
- tar -pzxvf packer-1.3.0-linux-generic.tgz -C /
- packer_service start
- packer_service status
Centos 6
-
安装kernel-devel
- 使用“uname -r”命令获取内核版本KERNEL_VERSION,推荐http://mirror.centos.org/centos/ 或者https://www.rpmfind.net/linux/rpm2html/search.php?query=kernel-devel
- 搜索kernel-devel-KERNEL_VERSION.rpm
- 使用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://117.48.207.245/cmigrate/v1.3.0/packer-1.3.0-linux-centos6.tgz
- tar -pzxvf packer-1.3.0-linux-centos6.tgz -C /
- packer_service start
- packer_service status
Redhat 6.6
-
安装kernel-devel
- 使用“uname -r”命令获取内核版本KERNEL_VERSION,推荐http://mirror.centos.org/centos/ 或者https://www.rpmfind.net/linux/rpm2html/search.php?query=kernel-devel
- 搜索kernel-devel-KERNEL_VERSION.rpm
- 使用rpm -ivh kernel-devel-KERNEL_VERSION.rpm 进行安装
-
安装datto
-
源主机yum可用
- yum install dkms 安装依赖
- yum localinstall
https://cpkg.datto.com/datto-rpm/EnterpriseLinux/6.6/x86_64/libdattobd-0.10.9-23.1.el6.x86_64.rpm
- yum localinstall
https://cpkg.datto.com/datto-rpm/EnterpriseLinux/6.6/x86_64/dkms-dattobd-0.10.9-23.1.el6.noarch.rpm
- yum localinstall
https://cpkg.datto.com/datto-rpm/EnterpriseLinux/6.6/x86_64/dattobd-utils-0.10.9-23.1.el6.x86_64.rpm
- modprobe dattobd 加载内核模块
- 使用"lsmod | grep datto"查看datto模块是否被加载上
-
源主机yum不可用
-
方法1:wget方式下载所有需要的包,本地安装
- 依赖包,dkms, elfutils-default-yama-scope, elfutils-libelf-devel, elfutils-libs,推荐
https://www.rpmfind.net
- 驱动包,libdattobd-0.10.9-23.1.el6.x86_64.rpm,dattobd-0.10.9-23.1.el6.noarch.rpm,dattobd-utils-0.10.9-23.1.el6.x8664.rpm, 推荐
https://cpkg.datto.com/datto-rpm/EnterpriseLinux/6.6/x86_64/
- modprobe dattobd 加载内核模块
- 使用"lsmod | grep datto"查看datto模块是否被加载上
-
方法2:重装用户的yum软件(可能会同时安装一个内核升级包, 重启时注意选择原内核)
- 重装yum,推荐
https://segmentfault.com/a/1190000013590285
- 修改/etc/yum.conf配置,将
distroverpkg=centos-release替换为distroverpkg=redhat-release-server
- 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可用
- yum install dmidecode
-
源主机yum不可用
- 参考datto安装步骤
-
安装packer
- wget http://117.48.207.245/cmigrate/v1.3.0/packer-1.3.0-linux-centos6.tgz
- tar -pzxvf packer-1.3.0-linux-centos6.tgz -C /
- packer_service start
- packer_service status
Ubuntu 14.04/16.04
-
安装datto
- apt-key adv --recv-keys --keyserver keys.fedoraproject.org 370C85D709D26407
- 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://117.48.207.245/cmigrate/v1.3.0/packer-1.3.0-linux-generic.tgz
- tar -pzxvf packer-1.3.0-linux-generic.tgz -C /
- packer_service start
- packer_service status