作者:田逸([email protected])
每當部署完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 源站的遷移,也與此相同,不再重複說明。