■ 國網青海省電力公司信息通信公司 徐鐵軍 李宏波
編者按:本文筆者通過深入分析Vmware 虛擬化平臺和開源KVM 虛擬化平臺的特點與差異,研究并解決遷移過程中數據傳輸、磁盤轉碼和驅動適配等關鍵流程和問題,在大量實驗論證基礎上探索出行之有效的V2V 遷移方案,實現了業(yè)務系統(tǒng)虛擬機在異構平臺之間自動化、流程化和標準化遷移。
隨著企業(yè)信息化建設的不斷發(fā)展和云計算技術水平的不斷提高,IaaS 層虛擬化平臺應用在企業(yè)經營、生產管理業(yè)務中逐漸普及,國家電網有限公司(以下簡稱“國網公司”)基于開源KVM 技術自研的SGVCS 虛擬化平臺在功能、性能及易用性等各方面已能夠滿足業(yè)務建設和技術發(fā)展的需求。

圖1 國網某電力公司虛擬化平臺典型架構
國網某電力公司IaaS應用的虛擬化生產環(huán)境由VMware 平臺和SG-VCS 平 臺組成,分別部署在不同的信息機房數據中心,平臺架構設計均沿用云計算主流虛擬化技術路線:主存采用FCSAN;計算節(jié)點由X86 物理服務器組成,通過將ESXI、KVM虛擬化引擎Hypervisor 部署在服務器實現虛擬化;控制節(jié)點Server 對包括宿主機、虛擬機、網絡、存儲等資源進行控制、管理;輔存包括操作系統(tǒng)鏡像文件、操作系統(tǒng)驅動文件、虛擬機磁盤備份文件等。其典型架構如圖1 所示。
國網某電力公司VMware平臺生產環(huán)境納管業(yè)務系統(tǒng)虛擬機546 臺,若通過在SGVCS 平臺重新部署業(yè)務系統(tǒng)的方式實現商業(yè)虛擬化軟件退運,按照平均一臺虛擬機遷移需耗時5 個工作日計算,完成遷移需2 730 個工作日,實施費用約300 萬 元,此方案耗費時間長、工作效率低、經濟成本高。
為解決遷移工作過程中面臨的遷移成本高和工作效率低等難題,國網某電力公司充分借鑒云開源社區(qū)的遷移經驗,通過對比分析商業(yè)VMware 平臺和SG-VCS 平臺的整體結構和系統(tǒng)內部的差異,梳理得出導致業(yè)務系統(tǒng)無法直接由VMware 平臺遷移至SGVCS 平臺的關鍵性因素在于以下兩點:
(1)虛 擬 化引 擎。 即Hypervisor,—種運行在基礎物理服務器和操作系統(tǒng)之間的中間軟件層,當服務器啟動并執(zhí)行Hypervisor 時,它會加載所有虛擬機客戶端的操作系統(tǒng)同時會分配給每一臺虛擬機適量的內存、CPU、網絡和磁盤。
VMware 采用裸機部署ESXI 虛擬化引擎,SG-VCS 則采用操作系統(tǒng)內核安裝KVM 虛擬化引擎,在不同的虛擬化引擎上衍生出不同磁盤格式、磁盤驅動和網卡類型的虛擬機,引擎不同是異構平臺虛擬機彼此不兼容的根本原因。
(2)管理數據庫。用于存放和管理整個系統(tǒng)的“元”數據和操作、告警信息,“元”數據是虛擬化平臺的各類軟硬件資源配置信息的合集,VMware 管理數據庫采用Oracle 數據庫,SG-VCS 則采用MariaDB 數據庫,不同的數據庫導致SG-VCS 平臺無法直接共享使用VMware 平臺的各類數據資源,虛擬機配置信息不能有效同步和匹配。
將虛擬機業(yè)務系統(tǒng)由VMware 平臺遷移至SG-VCS平臺的完整V2V 過程包括虛擬機配置數據遷移和虛擬機磁盤數據庫遷移,為盡可能的避免線下數據的導入導出,提升工作效率,在遷移工作開展之前搭建數據傳輸通道,貫通VMware 平臺和SGVCS 平臺數據中心聯接的以太網絡和SAN 網絡,保證遷移過程中數據傳輸安全。

圖2 配置數據遷移流轉圖
國網某電力公司通過設計數據抽取工作流、編譯ETL代碼、封裝處理過程,完成VMware 平臺Oracle 數據庫中的元數據同步至SG-VCS平臺MariaDB 數據庫,最終實現虛擬機配置數據自動化、流程化遷移的目標,整個數據遷移流轉如圖2 所示。
虛擬機元數據抽取工作流,采用Java 語言編程實現ETL 處理過程,將VMware 平臺Oracle 數據庫的配置數據自動抽取到ODS 數據中心,匹配調度規(guī)則按照關鍵字段值進行自動轉換清洗后,存放到DW 數據倉庫。
清洗加工后的DW 虛擬機配置數據自動裝載成單個的XML 元數據文件,便于MD5 校驗和數據糾錯,最后將完整的XML 元數據文件導入SGVCS 平臺的MariaDB 數據庫,
(1)在KVM 主 機 安 裝vmfs-tools、qemu-img 等 工具。vmfs-tools 是 一 套可以在Linux 操作系統(tǒng)中管理識別ESXI 主機文件系統(tǒng)的管理工具,為保證遷移過程中磁盤數據傳輸的安全高效,需要借助安裝vmfs-tools 文件系統(tǒng)的管理工具掃描讀取vmdk 虛擬機磁盤文件,將VMware 平臺的主存儲直接映射掛載到SGVCS 平臺的KVM 主機。
(2)KVM 主 機 讀 取 到vmdk 虛擬機磁盤文件后,執(zhí)行qemu-img convert 磁盤格式轉換命令:
qemu-img convert [-c] [-f fmt] [-O output_fmt] [-o options] filename% [filename2 [...]] output_filename
將fmt 格式的filename鏡像文件根據options 選項轉換為格式為output_fmt的名為output_filename 的鏡像文件。一般來說,輸入文件格式fmt 由qemu-img工具自動檢測到,而輸出文件格式output_fmt 根據自己需要來指定,默認會被轉換為與raw 文件格式。
(3)通過dd 命令將轉換完成的虛擬機磁盤寫入SGVCS 平臺的主存儲,并適配KVM 虛擬機virtio 驅動,保證虛擬機正常啟動。
dd 是Linux 系統(tǒng)磁盤數據塊快拷貝命令,可從標準輸入或文件中讀取數據,根據指定的格式來轉換數據,再輸出到文件、設備或標準輸出,常見的使用方式如下:
執(zhí)行dd if=/path/file of=/path/file count=n bs=x(n 代表指僅拷貝n 個塊;x 代表 塊大小為x 個 字節(jié))。
對上述VMware 平臺虛擬機磁盤掃描發(fā)現、磁盤數據轉換、磁盤數據寫入SG-VCS平臺存儲等操作步驟進行編排和串聯,并封裝成圖形化工具,使整個磁盤數據遷移過程更加自動化、流程化和標準化。至此完成虛擬機跨平臺、跨數據中心磁盤數據遷移的全部操作過程。
國網某電力公司通過深入研究商業(yè)VMware 和SGVCS 異構虛擬化平臺之間的特點與差異,充分挖掘開源ETL 數據加工融合技術、qemu-img 磁盤轉碼技術和dd 磁盤鏡像拷貝技術, 研發(fā)開源V2V 技術在異構虛擬化平臺跨數據中心遷移的實現過程和圖形化處理工具,解決了因異構虛擬化平臺管理數據庫不同、虛擬機的磁盤格式不兼容和驅動程序有差異而導致虛擬機無法直接跨平臺遷移整合的難題。和傳統(tǒng)重新部署應用系統(tǒng)或采購商業(yè)V2V 遷移工具相比,采用開源V2V 遷移方案在短短60 個工作日內,安全無差錯地跨平臺和數據中心遷移546 臺虛擬機業(yè)務系統(tǒng),提前高質地完成了徹底退運商業(yè)VMware 平臺的目標任務,直接節(jié)約工期210 天、經濟300萬元。