作者:田逸(sery@163.com)
每当部署完proxmox环境,不管是单机还是集群,实际工作才完成了一半,准确地说是部署好底层环境。接下来还要根据需要创建虚拟机、安装虚拟机操作系统、部署应用程序、导入数据、调试程序并上线运行。新开发的应用还好,要是把运行的、不能随时停止服务的业务迁移到proxmox平台,是很考验实施者的经验和技术水平。对于一些数据量很大的迁移,数据还为往目标做完同步,源系统又产生了大量的新增数据。导入数据到目标系统以后,还不得不想法补齐新增数据。
另有一种特殊而常见的场景:一些商业软件在原系统运行多年,因担心系统崩溃想迁移到新系统上,很可能找不到安装介质或者找不到服务商支持。直接导入数据到目标系统,无法正常安装应用程序,更不用说提供服务了。
今年11月份,去内蒙古实施一个灾备项目,使用了一个商业工具,用来迁移数据非常的靠谱,于是我就试着拿它来把数据迁移到proxmox平台,完美!
基本架构
整个迁移环境由源、控制中心、目标三部分组成。
Ø 源站:可以是物理服务器,也可以是虚拟机;对操作系统而言,可以是linux,也可以是windows。
Ø 目标:proxmox单机或者超融合私有云集群,迁移完成后,生成与源站操作系统相一致的虚拟机。
Ø 控制中心:可以是独立的物理服务器或者proxmox虚拟机,系统为centos。
迁移架构网络有要求,即源站能直接连通控制中心及目标系统。连通目标系统的目的是,数据的传输,直接在源和目标之间进行,不通过控制中心。
环境部署
◎控制中心
控制中心基于centos 7,经多次验证,centos 7.5版本可正常支持迁移控制中心。在安装centos 7时,软件包的选择,需要定制一下。
从默认最新安装改选成虚拟话主机,并勾选如下几个选项,以利于后期安装。
按提示设置网络地址、网关、dns等项目,完成系统安装。
ü 安装控制中心软件包
我拿到的软件包是ahdr_server_20181201.zip,传到控制中心的系统上(可以是物理机,也可以是云主机),用unzip ahdr_server_20181201.zip 直接解包。然后进入目录ahdr_server.
[root@move182 ahdr_server]# ls -al
total 809464
drwxr-xr-x 3 root root 318 Dec 5 22:25 .
dr-xr-x---. 5 root root 215 Dec 5 22:19 ..
-rw-r--r-- 1 root root 54 Aug 29 2017 ahdr.conf
-rw-r--r-- 1 root root 27860308 Jun 28 04:14 ahdr.tar.gz
-rw-r--r-- 1 root root 237563865 Jun 28 03:13 apache.tar.gz
-rw-r--r-- 1 root root 37984 Dec 1 16:22 application.zip
-rw-r--r-- 1 root root 50703847 Apr 29 2018 depends.tar.gz
-rw-r--r-- 1 root root 6701875 Jan 13 2018 edk2.git.tar.gz
-rw-r--r-- 1 root root 16535145 Sep 18 2017 libvirt.tar.gz
-rw-r--r-- 1 root root 456031858 Aug 31 14:08 mysql.tar.gz
-rw-r--r-- 1 root root 145960 Nov 17 2017 nbd.tar.gz
-rw-r--r-- 1 root root 6168233 Jul 18 2017 novnc.tar.gz
-rw-r--r-- 1 root root 27068064 Jul 18 2017 php.tar.gz
-rw-r--r-- 1 root root 3035 Jul 20 2017 ReadMe.txt
drwxr-xr-x 2 root root 105 Jun 15 02:18 scripts
-rwxr-xr-x 1 root root 21438 Apr 29 2018 setup_move.sh
-rwxr-xr-x 1 root root 21642 Jun 6 2018 setup.sh
-rw-r--r-- 1 root root 2846 Jun 28 03:16 version.txt
[root@move182 ahdr_server]# ./setup_move.sh install
…….省略……..
edk2.git/ovmf-x64/OVMF_VARS-with-csm.fd
edk2.git/ovmf-x64/UefiShell.iso
edk2.git/ovmf-x64/OVMF-pure-efi.fd
nbd.ko
info:all install successfully
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.5.182 netmask 255.255.255.0 broadcast 172.16.5.255
inet6 fe80::e85e:acff:fe77:2e4 prefixlen 64 scopeid 0x20<link>
ether ea:5e:ac:77:02:e4 txqueuelen 1000 (Ethernet)
RX packets 984360 bytes 1010185836 (963.3 MiB)
RX errors 0 dropped 29 overruns 0 frame 0
TX packets 452969 bytes 208015165 (198.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
……………省略………………………
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:e7:af:b5 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
server lan ip:172.16.5.182 #交互方式,手工输入本机ip
server lan ip:172.16.5.182
server port(default 5000):5000
libvirtd start ok
mysqld start ok
httpd start ok
novncd start ok
ahdrd start ok
visitord start ok
mountd start ok
ü 安装web管理控制台
浏览器输入安装好控制中心软件包的ip地址,进行下一步操作。
鼠标点击“同意安装协议”,进行相关项目检查,如果不正常,需要逐个处理。
全部项目符合要求(绿色对勾),点击“下一步”。
完成安装以后,其界面如图所示。
ü 软件授权
安装完以后,点登录后台,或者直接浏览器输入服务器ip地址,进行登录。
索取授权码,然后粘贴到下面的编辑框。
激活以后,可以在界面看到相关授权信息。
到这里,控制中心的安装就顺利完成了。
◎源站(支持linux及windows)
ü 取得客户端软件
浏览器访问控制中心,在登录界面进行下载,然后把它传到源站,进行相应的安装。
Ø Linux源站安装客户端(以centos7.5为例)
登录系统,解压下载来的软件包client_linux.zip,然后进入解压后的目录ahdr_client。
[root@source184 ahdr_client]# ls -al
total 117904
drwxr-xr-x 4 root root 4096 Dec 5 23:06 .
dr-xr-x---. 5 root root 207 Dec 5 23:04 ..
-rw-r--r-- 1 root root 8605667 Dec 1 16:14 ahdr_4_32.zip
-rw-r--r-- 1 root root 8923112 Dec 1 16:14 ahdr_4_64.zip
-rw-r--r-- 1 root root 9946677 Dec 1 16:14 ahdr_5_32.zip
-rw-r--r-- 1 root root 9606400 Dec 1 16:14 ahdr_5_64.zip
-rw-r--r-- 1 root root 9749209 Dec 1 16:14 ahdr_6_32.zip
-rw-r--r-- 1 root root 12831206 Dec 1 16:14 ahdr_6_64.zip
-rw-r--r-- 1 root root 10782124 Dec 1 16:14 ahdr_7_64.zip
-rw-r--r-- 1 root root 81 Mar 26 2018 ahdr.conf
-rw-r--r-- 1 root root 11879353 Sep 27 15:07 ahdr_kylin.zip
-rw-r--r-- 1 root root 11424514 Dec 1 16:14 ahdr_suse11.zip
-rw-r--r-- 1 root root 9477048 Dec 1 16:15 ahdr_ubuntu.zip
-rw-r--r-- 1 root root 148 Mar 26 2018 depends_4_32.zip
-rw-r--r-- 1 root root 148 Mar 26 2018 depends_4_64.zip
-rw-r--r-- 1 root root 148 Mar 26 2018 depends_5_32.zip
-rw-r--r-- 1 root root 148 Mar 26 2018 depends_5_64.zip
-rw-r--r-- 1 root root 198218 Mar 26 2018 depends_6_32.zip
-rw-r--r-- 1 root root 195619 Mar 26 2018 depends_6_64.zip
-rw-r--r-- 1 root root 8942532 Oct 25 12:29 depends_7_64.zip
-rw-r--r-- 1 root root 148 Aug 16 16:10 depends_kylin.zip
-rw-r--r-- 1 root root 148 Mar 26 2018 depends_suse11.zip
-rw-r--r-- 1 root root 148 Mar 26 2018 depends_ubuntu.zip
-rw-r--r-- 1 root root 8058016 Nov 17 13:29 driver.zip
-rw-r--r-- 1 root root 9014 Nov 13 11:08 image.zip
drwxr-xr-x 2 root root 6 Apr 24 2018 oracle
-rw-r--r-- 1 root root 4223 Jan 8 2018 qinfo.pl
-rw-r--r-- 1 root root 2289 Mar 26 2018 ReadMe.txt
drwxr-xr-x 2 root root 19 Mar 26 2018 scripts
-rwxr-xr-x 1 root root 14957 Mar 15 2011 setup.sh
-rw-r--r-- 1 root root 24 Mar 26 2018 startup.nsh
执行如下命令进行安装:
[root@source184 ahdr_client]# ./setup.sh install
agent stop ok
start uninstall ahdr module
uninstall ahdr module successfully
info:uninstall_boot_image.sh ok
info:remove ahdr successfully
info:remove ahdrd successfully
[root@source184 ahdr_client]# ./setup.sh install
system_info = 7_64
Archive: ahdr_7_64.zip
creating: /usr/local/ahdr/
creating: /usr/local/ahdr/bin/
inflating: /usr/local/ahdr/bin/agent
……省略…………
Archive: image.zip
creating: /usr/local/ahdr/image/
creating: /usr/local/ahdr/image/backup/
inflating: /usr/local/ahdr/image/control_boot_image.pl
inflating: /usr/local/ahdr/image/install_boot_image.sh
inflating: /usr/local/ahdr/image/qinfo.pl
inflating: /usr/local/ahdr/image/uninstall_boot_image.sh
info:install_boot_image.sh ok
proxy host:172.16.5.182 #此处输入主控服务器的ip地址
proxy port(default 5000):5000
agent start ok
Ø centos客户端检查
安装完linux客户端以后,会自动启动两个进程:agent和clone,通过执行如下指令进行验证:
[root@source184 bin]# pwd
/usr/local/ahdr/bin
[root@source184 bin]# ps aux | grep -E "agent|clone"
root 14877 0.2 0.0 61712 6552 pts/0 S 00:56 0:01 /usr/local/ahdr/bin/agent
root 18042 0.0 0.0 112704 936 pts/0 S+ 01:03 0:00 grep --color=auto -E agent|clone
糟糕,只有agent进程,而没有clone进程。同级目录下,有一个工具,用来检查问题所在,命令如下:
[root@source184 bin]# ./check.sh
./clone: ../lib/libdevmapper.so.1.02: version `DM_1_02_141' not found (required by /lib64/liblvm2app.so.2.2)
由这个输出信息可知,是库文件有问题。进入lib目录,查看具体的文件。
[root@source184 lib]# pwd
/usr/local/ahdr/lib
[root@source184 lib]# ls -al
total 6768
drwxr-xr-x 2 root root 133 Oct 26 2017 .
drwxr-xr-x 9 root root 95 Dec 9 00:53 ..
-r-xr-xr-x 1 root root 356040 Oct 26 2017 libdevmapper.so
-r-xr-xr-x 1 root root 356040 Oct 26 2017 libdevmapper.so.1.02
-rwxr-xr-x 1 root root 2072378 Jun 10 2017 libparted-1.9.so.0
-rwxr-xr-x 1 root root 2072378 Jun 10 2017 libparted-1.9.so.0.0.0
-rwxr-xr-x 1 root root 2072378 Jun 10 2017 libparted.so
给文件libdevmapper.so.1.02改名或者删除,为保险起见,先改名,有问题可回滚恢复。
[root@source184 lib]# pwd
/usr/local/ahdr/lib
[root@source184 lib]# mv libdevmapper.so.1.02 libdevmapper.so.1.02_bk
再执行检查,注意看信息输出。
[root@source184 bin]# pwd
/usr/local/ahdr/bin
[root@source184 bin]# ./check.sh
无信息输出为正常。查看进程,看是clone进程是否启动。
[root@source184 bin]# ps aux | grep -E "agent|clone"
root 14877 0.2 0.0 61712 6552 pts/0 S 00:56 0:02 /usr/local/ahdr/bin/agent
root 23702 2.9 0.1 79324 13032 pts/0 S 01:15 0:03 /usr/local/ahdr/bin/clone 172.16.5.182 5000
root 24411 0.0 0.0 112704 940 pts/0 S+ 01:17 0:00 grep --color=auto -E agent|clone
启动完成,linux客户端完成安装配置。同时,我们切换到控制中心管理界面,可在“设备管理”菜单下发现源站linux。
Ø windows源站客户端安装
登录windows系统,鼠标双击文件“client_windows.exe”。
交互界命令行输入主控服务器的ip地址及默认端口(与linux源站客户端设置相同)。
执行完这个步骤,就能到主控制器管理界面看到此windows客户端已经跟主控服务器建立起连接。
安装界面点“next“安装客户端驱动。
安装完成,提示要重启服务器,这个…,等没有访问或者访问量很小的时候,计划性重启吧!.
注意:安装windows客户端时,如果被杀毒软件拦截,需要手工放行。
Ø windows客户端验证
powershell查看进程agent及clone进程是否存在,正常是需要两个进程都在运行状态。
◎目标站部署与设置
ü 获取目标站所需的操作系统ISO文件,并把它上传到proxmox ISO目录。
root@pve60:/var/lib/vz/template/iso# pwd
/var/lib/vz/template/iso
root@pve60:/var/lib/vz/template/iso# ls -al
total 19296512
drwxr-xr-x 2 root root 4096 Dec 5 22:48 .
drwxr-xr-x 5 root root 4096 Sep 3 14:07 ..
-rw-r--r-- 1 root root 877920256 Dec 5 17:19 AhdrPE_0608_12.iso
-rw------- 1 root root 4329570304 Oct 31 12:52 CentOS-7-x86_64-DVD-1511.iso
-rw-r--r-- 1 root root 4470079488 May 4 2018 CentOS-7-x86_64-DVD-1804.iso
-rw-r--r-- 1 root root 1648095232 Mar 26 2018 centreon-3.4.6.el6.x86_64.iso
-rw-r--r-- 1 root root 1093398528 Mar 26 2018 centreon-3.4.6.el7.x86_64.iso
-rw------- 1 root root 3341268992 Nov 2 23:49 cn_windows_7_ultimate_x64_dvd_x15-66043.iso
-rw------- 1 root root 3368962048 Nov 4 21:06 cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_vl_build_x64_dvd_617396.iso
-rw-r--r-- 1 root root 305135616 Jul 14 19:12 debian-9.5.0-amd64-netinst.iso
-rw-r--r-- 1 root root 322842624 Nov 4 20:13 virtio-win-0.1.160.iso
ü 在proxmox(单机或集群不论)创建虚拟机,磁盘的容量要大于源站磁盘的总容量,并设置“CD/DVD驱动器“为上传的镜像文件”AhdrPE_0608_12.iso”。
设置好内存、网络等创建好该虚拟机。
ü 从proxmox管理界面启动刚创建好的虚拟机。从proxmox 管理界面“>_控制台”登录虚拟机系统。
从系统界面可判断,此系统是一个内存运行系统windows PE。
ü 为目标系统windows PE设置ip地址、子网掩码、默认网关等几项网络参数,使其能被源站访问。
ü 测试此windows PE的网络连通性。
ü 目标站windows PE客户端设置。目标站客户端集成在操作系统windows PE之中,因此不需要单独进行安装。接下来,需要对客户端进行设置,客户端的设置程序,在系统桌面上有快捷方式,鼠标双击之。
ü 调出交互命令行,输入所需信息,输入要仔细核实。
输入本地默认网关,回车,命令行窗口会自动关闭。
ü 双击桌面图标“AhdrStart”启动服务。
启动此服务后,片刻,命令行窗口自行消失。
ü 验证目标站服务是否正常。打开windows任务管理器,查看进程agent和move是否同时存在(考眼力呢),同时处于运行状态为正常。
到这里,源、控制中心、目标系统的安装、配置就全部完成了。
控制中心安装迁移模块
控制中心登录管理后台,选择本地模块“Move“进行在线安装。
安装正确完成以后,在模块列表查看其状态。
切换到“设备”菜单所属界面,在本地模块“Move”未被安装前,连接到控制器管理界面的设备,一会儿在线,一会而离线,但安装好本地模块“Move”以后,此现象消失。
系统迁移
登录控制中心管理后台,鼠标一次点击”设备“à”迁移管理”à“新增迁移任务”。
选择要迁移的源站,可以有多个源站,但如果要并行迁移,需要准备对等的目标系统。
选区源站需要迁移的分区,为了保证迁移后应用正常,建议选取源站全部分区,当然,如果理解每个分区的用途,也可以丢弃不不要的分区。
选择目标机,就是前边步骤部署的windows PE。如果要迁移多个源站,则需要准备多个windows PE作为接受方。
为源站迁移准备目标磁盘,目标系统windows PE也可以配置多个磁盘,用于接收源站的数据。
设定传输速度,一般情况不设置,保持默认值“0”。
提交后,如果正常,则可以看到任务列表有刚创建的任务存在。
点任务列表里的启动按钮,弹出确认界面。
一切正常的话,管理界面提示“任务成功”。如果启动失败,则需要从源站查找原因,看clone进程是否运行。另外,如果授权码错误,也可能导致任务失败。任务执行,在控制中心管理界面有进度显示。
系统切换
迁移任务完成数据复制以后,很可能源站还有新的数据进行写入。与相关人员协商好计划维护时间,停止相关应用程序,确保源站数据不再写入。登录到控制中心管理后台,鼠标点击迁移列表中正在进行迁移的按钮“增量同步”,就可以把源站与目标站的数据补齐,使其完全同步。
增量数据补齐到目标站以后,彻底关闭源站,使其不再产生任何新的数据。
登录proxmox web管理后台,重启做为目标站的虚拟机(就是那个windows PE)。
正常启动后,windows PE将会被迁移过来的centos 7所替代。
Windows 源站的迁移,也与此相同,不再重复说明。
打个小广告:更多proxmox内容,欢迎订阅专栏《人人都能玩的超融合私有云神器Proxmox》,先领券后订阅~