作者:田逸(sery@163.com)


每当部署完proxmox环境,不管是单机还是集群,实际工作才完成了一半,准确地说是部署好底层环境。接下来还要根据需要创建虚拟机、安装虚拟机操作系统、部署应用程序、导入数据、调试程序并上线运行。新开发的应用还好,要是把运行的、不能随时停止服务的业务迁移到proxmox平台,是很考验实施者的经验和技术水平。对于一些数据量很大的迁移,数据还为往目标做完同步,源系统又产生了大量的新增数据。导入数据到目标系统以后,还不得不想法补齐新增数据。

 

另有一种特殊而常见的场景:一些商业软件在原系统运行多年,因担心系统崩溃想迁移到新系统上,很可能找不到安装介质或者找不到服务商支持。直接导入数据到目标系统,无法正常安装应用程序,更不用说提供服务了。

 

今年11月份,去内蒙古实施一个灾备项目,使用了一个商业工具,用来迁移数据非常的靠谱,于是我就试着拿它来把数据迁移到proxmox平台,完美!

 

基本架构

 

整个迁移环境由源、控制中心、目标三部分组成。

image.png

Ø  源站:可以是物理服务器,也可以是虚拟机;对操作系统而言,可以是linux,也可以是windows。

Ø  目标:proxmox单机或者超融合私有云集群,迁移完成后,生成与源站操作系统相一致的虚拟机。

Ø  控制中心:可以是独立的物理服务器或者proxmox虚拟机,系统为centos。

 

迁移架构网络有要求,即源站能直接连通控制中心及目标系统。连通目标系统的目的是,数据的传输,直接在源和目标之间进行,不通过控制中心。

 

环境部署

 

控制中心

 

控制中心基于centos 7,经多次验证,centos 7.5版本可正常支持迁移控制中心。在安装centos 7时,软件包的选择,需要定制一下。

image.png

 

从默认最新安装改选成虚拟话主机,并勾选如下几个选项,以利于后期安装。

image.png

按提示设置网络地址、网关、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地址,进行下一步操作。

 

鼠标点击“同意安装协议”,进行相关项目检查,如果不正常,需要逐个处理。

image.png

全部项目符合要求(绿色对勾),点击“下一步”。

image.png

 

完成安装以后,其界面如图所示。

image.png

 

ü  软件授权

安装完以后,点登录后台,或者直接浏览器输入服务器ip地址,进行登录。

image.png

 

索取授权码,然后粘贴到下面的编辑框。

image.png

 

激活以后,可以在界面看到相关授权信息。

image.png

 

到这里,控制中心的安装就顺利完成了。

 

源站(支持linux及windows)

 

 

ü  取得客户端软件

浏览器访问控制中心,在登录界面进行下载,然后把它传到源站,进行相应的安装。

image.png

 

Ø  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。

image.png

 

Ø  windows源站客户端安装

登录windows系统,鼠标双击文件“client_windows.exe”。

image.png

交互界命令行输入主控服务器的ip地址及默认端口(与linux源站客户端设置相同)。

image.png

执行完这个步骤,就能到主控制器管理界面看到此windows客户端已经跟主控服务器建立起连接。

image.png

 

安装界面点“next“安装客户端驱动。

image.png

安装完成,提示要重启服务器,这个…,等没有访问或者访问量很小的时候,计划性重启吧!.

注意:安装windows客户端时,如果被杀毒软件拦截,需要手工放行。

 

Ø  windows客户端验证

powershell查看进程agent及clone进程是否存在,正常是需要两个进程都在运行状态。

 image.png

 


 

目标站部署与设置

 

ü  获取目标站所需的操作系统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”。

image.png

设置好内存、网络等创建好该虚拟机。

image.png

 

ü  从proxmox管理界面启动刚创建好的虚拟机。从proxmox 管理界面“>_控制台”登录虚拟机系统。

image.png

从系统界面可判断,此系统是一个内存运行系统windows PE。

ü  为目标系统windows PE设置ip地址、子网掩码、默认网关等几项网络参数,使其能被源站访问。

image.png

 

ü  测试此windows PE的网络连通性。

image.png

 

ü  目标站windows PE客户端设置。目标站客户端集成在操作系统windows PE之中,因此不需要单独进行安装。接下来,需要对客户端进行设置,客户端的设置程序,在系统桌面上有快捷方式,鼠标双击之。

image.png

ü  调出交互命令行,输入所需信息,输入要仔细核实。

image.png

输入本地默认网关,回车,命令行窗口会自动关闭。

 

ü  双击桌面图标“AhdrStart”启动服务。

image.png

启动此服务后,片刻,命令行窗口自行消失。

 

ü  验证目标站服务是否正常。打开windows任务管理器,查看进程agent和move是否同时存在(考眼力呢),同时处于运行状态为正常。

image.png

 

到这里,源、控制中心、目标系统的安装、配置就全部完成了。

 

控制中心安装迁移模块

 

控制中心登录管理后台,选择本地模块“Move“进行在线安装。

image.png

安装正确完成以后,在模块列表查看其状态。

image.png

切换到“设备”菜单所属界面,在本地模块“Move”未被安装前,连接到控制器管理界面的设备,一会儿在线,一会而离线,但安装好本地模块“Move”以后,此现象消失。

image.png

 

系统迁移

 

登录控制中心管理后台,鼠标一次点击”设备“à”迁移管理”à“新增迁移任务”。

image.png

选择要迁移的源站,可以有多个源站,但如果要并行迁移,需要准备对等的目标系统。

image.png

选区源站需要迁移的分区,为了保证迁移后应用正常,建议选取源站全部分区,当然,如果理解每个分区的用途,也可以丢弃不不要的分区。

image.png

选择目标机,就是前边步骤部署的windows PE。如果要迁移多个源站,则需要准备多个windows PE作为接受方。

image.png

 

为源站迁移准备目标磁盘,目标系统windows PE也可以配置多个磁盘,用于接收源站的数据。

image.png

 

设定传输速度,一般情况不设置,保持默认值“0”。

image.png

 

提交后,如果正常,则可以看到任务列表有刚创建的任务存在。

image.png

 

点任务列表里的启动按钮,弹出确认界面。

image.png

一切正常的话,管理界面提示“任务成功”。如果启动失败,则需要从源站查找原因,看clone进程是否运行。另外,如果授权码错误,也可能导致任务失败。任务执行,在控制中心管理界面有进度显示。

image.png

 

 

系统切换

 

迁移任务完成数据复制以后,很可能源站还有新的数据进行写入。与相关人员协商好计划维护时间,停止相关应用程序,确保源站数据不再写入。登录到控制中心管理后台,鼠标点击迁移列表中正在进行迁移的按钮“增量同步”,就可以把源站与目标站的数据补齐,使其完全同步。

image.png

 

增量数据补齐到目标站以后,彻底关闭源站,使其不再产生任何新的数据。

 

登录proxmox web管理后台,重启做为目标站的虚拟机(就是那个windows PE)。

image.png

正常启动后,windows PE将会被迁移过来的centos 7所替代。

Windows 源站的迁移,也与此相同,不再重复说明。


打个小广告:更多proxmox内容,欢迎订阅专栏《人人都能玩的超融合私有云神器Proxmox》,先领券后订阅~