本文總結了團隊幫助一餐飲客戶遷移上雲的始末,方案為其節省了運維人力和成本,并獲得了業務新增時擴容的彈性。
背景
客戶要将業務從自建的虛拟化資料中心遷移至UCloud,希望能夠将多年前的VMware體系換到公有雲體系。其訴求如下:
- 希望上雲過程不影響到現有業務;
- 去除機房托管的過保裝置,減少不必要的支出;
- 減少資源的維護人力和運維壓力;
- 另外,希望遷移過程不要太長,不要影響市場推廣等工作及業務創新。
遷移評估
經過可行性分析,至少存在以下挑戰:
- 客戶的作業系統類型較多且版本老舊,其中大多是Windows Server版本。
- 業務系統無法重建,原因是軟體沒有部署指導文檔及源碼,或找不到可以重新部署的人員。
- 資料遷移量較大,其中資料庫及備份資料較大。
基于以上原因,無法使用現成的工具,因為遷移工具對主流作業系統(CentOS、Ubuntu)支援較好,但是比較老的系統,由于新的硬體驅動缺乏廠商支援原因,導緻無法使用。是以,隻能通過鏡像方式遷移。
遷移方案
基于上述背景及遷移評估,整體遷移思路基本是2個方向:
2.1公網傳輸
前置條件是:
- 公網帶寬足夠大,且不影響現有生産業務。
- 資料敏感性不高,允許公網傳輸。
- 資料量不太大,最好不超過10T級。
2.2 線下磁盤拷貝
對于資料量太大、公網帶寬不夠大、安全因素考量等,是方案1做不到的,可以展現線下磁盤拷貝的優勢。這裡使用移動盤櫃來做鏡像的傳輸。主要有以下優勢:
- 資料安全性高、空間大:做了raid5的大容量空間,對于資料的安全性有保障。
- 傳輸速度快:接口支援USB3.0,速度最大支援500MB/s,存儲媒體讀寫速度在150MB/s左右。
- 可挂載實體伺服器:托管區實體機與公有雲區内網互通,且與公有雲US3服務内網連通,如需将大量機房外的資料拷貝到機房内,可通過這種方式進行資料傳輸。
在此例中,由于資料太大,為加快遷移速度,是以選擇了方案2,即線下磁盤遷移方式。
遷移詳情
遷移流程圖如下:
首先需要:
- 關閉Guest系統的Windows組政策;
- 解除安裝Guest系統的VMWARE-Tool工具;
- 關閉防病毒軟體;
- 關閉虛拟機。
上述流程中需提前建立實體雲伺服器,通過移動盤櫃進行系統盤和資料盤鏡像的傳輸,将存儲好資料的移動盤櫃挂載到實體雲伺服器,同時在實體雲主機内完成系統盤鏡像的格式轉換和驅動的注入過程。
在中轉雲主機内通過内部API,建立臨時中轉機器,并建立具有系統盤屬性的雲盤,把挂載的移動盤櫃當作本地盤,通過qemu-nbd,将移動盤櫃的系統盤和資料盤分别遠端挂載到中轉機的兩塊雲盤上(系統盤與資料盤)。
将臨時建立的中轉機綁定的兩塊雲盤解除安裝下來,通過系統盤建立雲主機(該過程需要内部API來實作),将另一塊磁盤當作資料盤挂載,完成對雲主機系統盤資料盤的遷移。
3.1 原IDC中VMware環境準備
(1)vSphere用戶端連接配接vCenter伺服器
安裝vsphere用戶端,遠端連接配接到IDC中VMware的管理節點vCenter,其将對應克隆出的鏡像傳輸到移動盤櫃中儲存。
(2)導出鏡像
對于關機離線的系統,可以直接導出OVF或者VMDK格式的鏡像;對于未能離線導出的系統,可進行鏡像克隆,克隆後的格式為VMDK。
3.2 中轉伺服器環境準備
(1)安裝KVM虛拟化環境
安裝CentOS7作業系統,并確定支援開啟硬體虛拟化功能;確定磁盤空間不少于遷移資料量。
(2)安裝virt-v2v
考慮到相容雲服務商的相容性問題(例如IO及網絡的加速,系統的高核心版本),針對老舊的系統,如:Windows2000,WindowsServer 2003/2008等,需要用virt-v2v轉換。
(3)主控端上安裝VirtIO驅動
Virtio驅動程式是KVM虛拟機的半虛拟化裝置驅動程式,半虛拟化驅動程式可提高機器性能,減少I / O延遲并将吞吐量提高到接近裸機水準。
(4)安裝ntfs-3g,用于挂載移動盤櫃
NTFS-3G支援在Linux, FreeBSD, Mac OS X, NetBSD, Haiku等作業系統下讀寫NTFS格式的分區。除了完全的檔案屬主和通路權限,它支援所有符合POSIX标準的磁盤操作。目的是為那些使用者需要與NTFS可靠互通的硬體平台和作業系統提供可信任的、功能豐富的高性能方案。
(5)編譯安裝NBD
安裝NBD可被用來進行遠端存儲和備份,NBD的驅動程式在本地用戶端模拟了一個塊裝置,比如一個磁盤或者是一塊磁盤分區,但實際提供實體支援的卻是通過網絡連接配接的遠端伺服器。具體編譯安裝可參考官方文檔。
3.3 鏡像格式轉換與VirtIO驅動注入
轉換磁盤檔案并注入VirtIO驅動程式,執行指令如下:
# export LIBGUESTFS_BACKEND=direct# virt-v2v -i vmx server2003.vmx -of qcow2 -o qemu -os ./// 注:執行指令virt-v2v-i vmx “vmx檔案名” –ofqcow2 –o qemu –os “轉換後磁盤檔案存放路徑”,預設是把系統盤與資料盤都進行轉換,為了節省轉換時間,可以修改vmx檔案隻進行系統盤的轉換。
3.4 通過API建立中轉系統盤及資料盤
通過API建立新的雲盤,作為用來開啟雲主機的系統盤,以及用來導入資料的資料盤(其中系統屬性的磁盤為内部API)。新建立的兩塊雲盤均為臨時中轉盤,用來存儲導入鏡像的系統以及資料。具體的API可參考:https://github.com/ucloud。
3.5 遠端挂載與磁盤拷貝
為減少遷移耗時,将移動盤櫃的系統盤和資料盤以網絡的形式直接挂載到新建立的VM上,然後将移動盤櫃内的資料與臨時中轉機建立的雲盤實作内網的磁盤資料拷貝。鑒于磁盤IO和網絡帶寬的限制,上述方案可省去公網傳輸和對象存儲US3存儲鏡像的中轉過程。 具體過程如下:使用qemu-nbd的遠端磁盤挂載,将移動盤櫃的資料盤,直接挂載到雲盤上。然後将雲盤解除安裝,挂載到對應的客戶機器上去。
(1)在實體雲伺服器上将移動盤櫃的磁盤鏡像挂載到nbd的特定端口
# qemu-nbd -r -t -v -f qcow2 -p 5000 web-sdc.qcow2// 注:5000為端口号,web-sdc為資料盤鏡像。
(2)在中轉機上安裝qemu-img,将遠端的資料盤鏡像挂載到新建立的雲硬碟
# qemu-img convert nbd://10.23.xx.xx:5000 /dev/vdc// 注:10.23.xx.xx為實體伺服器内網IP位址,/dev/vdc為新建立的雲盤。
3.6 建立雲主機并挂載資料盤
對于已經同步過資料的系統盤與資料盤,通過API對系統盤進行雲主機的建立;對于雲資料盤,需要先将中轉機上的雲盤進行解除安裝,然後挂載到需要開啟的目标雲主機上,進而達到雲主機的建立與資料盤的挂載功能。UCloud有自動化的腳本及程式來實作以上過程。
經驗
通過本次遷移,确認可以知道的限制因素如下,可供未來參考。
4.1 限制
- Windows 7 和WindowsServer 2008 R2需要開啟支援SHA-2證書。
- 如有一緻性要求,建議關閉業務IO寫。
- 建議解除安裝防病毒軟體。
- 建議解除安裝虛拟化平台工具。
4.2 價值
本遷移方案,最大的價值在于傳統行業能夠快速上雲,大大節省傳統實體伺服器的運維人力和成本;同時,在以後有業務新增、機器擴容、配置更新等需求時,雲上可以快速、動态、彈性的實作,而不用再采購新伺服器和交換機等裝置來做硬體的疊代更新以及舊裝置的維保。對于老舊系統還可繼續支援使用,把核心轉移到自己業務和生産力中。