1. 與備份有關的VMWare基礎知識
1.1 VMware 虛機磁盤在 ESXi 宿主機上的文件
簡單來說,虛機的每個虛擬磁盤由ESXi 宿主機上的三個文件組成(這里的虛機名字是 sammy-target-win-small,下面是其第一個磁盤對應的三個文件):
其中,
第一個文件保存的是該磁盤的元數據,其中包括另外兩個文件的信息
# Extent descriptionRW 25165824 VMFS "sammy-target-win-small-flat.vmdk"# Change Tracking FilechangeTrackPath="sammy-target-win-small-ctk.vmdk"
第二個文件是 Extent description 文件,二進制數據保存在這個文件中。下面會介紹使用API獲取該文件中數據的方法。
第三個文件是 CTK 文件。下面講到 CTK 的時候再說。
1.2 快照(Snapshot)
虛機的快照是虛機在某個時間點的狀態和數據,其中,狀態是指虛機的狀態,包括運行狀態,配置等;數據是指虛機的虛擬磁盤中的數據??煺盏幕静僮靼ǎ?/p>
1.2.1 創建快照
對上面的虛機創建一個快照,除了快照定義文件以外,對該磁盤,新增了三個文件:
-rw------- 1 root root 786944 Jul 11 10:55 sammy-target-win-small-000001-ctk.vmdk-rw------- 1 root root 28672 Jul 11 10:55 sammy-target-win-small-000001-delta.vmdk-rw------- 1 root root 428 Jul 11 10:55 sammy-target-win-small-000001.vmdk
第一個依然是 ctk 文件,第二個是 delta 文件,第三個是非二進制文件。然后再創建第二個快照,就成了這樣子:
(RW = 讀寫,RO = 只讀)
從數據的角度看:
(綠色部分是從虛機視角看數據;最下面的紅框是 base vmdk 中的數據;中間的紅框是 delta vmdk 中的數據)
現在可以簡單總結一下 VMware 快照的特點:
1.2.2 刪除快照
顯然,快照只是內部數據,保存的是過去某時間點虛機的狀態,對外部不可見,因此,刪除快照不能影響虛機當前的狀態和數據。因此,這里有三種可能:
(1)快照是基于原始虛機的:delta vmdk 中的數據會向 base vmdk 合并,然后 delta vmdk 被刪除。(如下圖中的s1)
(2)待刪除快照在虛機的數據路徑上:delta vmdk 中的數據會想父快照的 vmdk 合并,然后delta vmdk 被刪除。(如下圖中的s2)
(3)待刪除快照不再虛機的數據路徑上:不需要合并,直接刪除。(如下圖中的 s3)
現在可以簡單總結一下刪除快照的特點:
1.2.3 快照合并(consolidation)
上面談到了快照刪除操作的數據合并可能會失敗。這種失敗會帶來很多問題,包括不必要的磁盤空間占用,以及虛機性能下降。因此,當出現這種情況時,vCenter 會向用戶提示需要做 consolidation 了。該操作會檢查虛機當前所有的 vmdk 分層,將冗余的 delta 文件先合并再刪除。
1.2.4 恢復到快照
恢復到快照操作也比較好理解,就是將虛機的 base vmdk 指向目標快照的 vmdk,其結果是自從目標快照創建后的一切改動都沒有了。
1.3 VMware API
VMware 提供非常豐富的 API:
其中,我們可以將與與備份相關的API分為兩類,一類是控制平面的API,它們主要用做管理 vSphere 虛擬化環境;另一類是數據平面API,它們用于操作虛機的虛擬磁盤。
1.3.1 VMware API 和 SDK
VMware 通過 Web Service 向客戶端提供訪問接口,這些接口可用于管理虛機和其他虛擬設施,包括數據中心(datacenter),數據存儲(datastore), 網絡(network)等。它還提供了包括Java, .NET, Python, Perl, REST, 以及 Ruby 等幾種語言在內的 SDK。對于其他語言,則需要通過 SOAP 協議訪問其 web service,gSoap 是一種比較常見的用于C/C++語言編寫 web service 客戶端程序的套件。
詳細情況請閱讀 https://www.vmware.com/support/pubs/sdk_pubs.html
1.3.2 VDDK 和 VADP
VDDK 全稱是 Virtual Disk Development Kit(虛擬磁盤開發包),它能幫助開發人員創建訪問虛機存儲的應用。VDDK 基于 Virtual disk API。
Virtual disk API,即 VixDiskLib,是一組操作 VMDK 格式的虛擬磁盤文件的函數。它的主要功能包括:
VADP 全稱是 VMware Storage APIs - Data Protection(VMware 存儲API-數據保護),它使用 virtual disk API 和部分 vSphre API 來創建和管理虛機的快照,支持全量和增量備份。
1.4 CBT (Changed Block Tracking 塊修改跟蹤)
CBT 是 VMware 在 vSphere 4.0 版本引入的為了實現增量備份的一個功能。VDAP 使用該功能,使得基于它開發的各種虛機備份應用能夠做到增量備份。
相對于全量備份時將vmdk 的全部數據塊都保存下來(左圖),基于 CBT 的增量備份只保存自從上次備份以來的發生了變化了的數據塊(右圖)。ESXi 為每個開啟了 CBT 的虛機的虛擬磁盤都創建了一個 ctk 文件,它用于保存變化塊的元數據。該功能將會對磁盤帶來一點性能損失,因為,不使用的時候,可以關閉它,但是它對備份帶來的好處是顯而易見的。
獲取 CBT 變化塊的函數的定義為:QueryChangedDiskAreas(snapshot, deviceKey, startOffSet, changeID)。其中,
其結果類似 “(117768192, 65536),(132120576, 65536),(145096704, 43122688),(265289728, 65536),(958398464, 65536)”,每項的格式為 (offset,length),表示一個發生變化的數據塊。
1.5 Quiseced Snapshot 和 VMware Tools
虛機快照按照不同的一致性可以分為三種:
默認的快照是第一種,要得到后兩種快照,需要增加相應的步驟。其實現方式主要可以分為兩種:
那 VSS 服務,SYNC driver, vmsync 內核模塊以及自定義腳本由誰來調用呢?VMware 提供了 VMware Tools,它是一個獨立的程序,有不同的操作系統版本,它需要被安裝在客戶機內。以 VSS 為例,VMware tools 承擔 VSS Requester 的角色,在做這種快照之前和之后,它調用 VSS 服務,VSS 服務又調用已經注冊的 VSS Writer 來執行相應的操作。下圖是個簡單示例:
后面兩種類型的快照被稱為 quiseced snapshot,包括 filesytem-quiseced snapshot 和 applicaiton-quiseced snapshot。其完整的流程大概為:
1.用戶發出 quiesced snapshot 創建請求給 vCenter,vCenter 給虛機所在的 ESXi 的 hostd 服務發出指令
2.ESXi 上的 Hostd 將請求傳給客戶機內的 VMware tools
3.VMware tools 以 VSS Requester 的身份通知 VSS,VSS 再通知已經注冊的文件系統以及各應用的 VSS writer 執行各自的數據下刷和凍結操作(應用的暫時凍結不能超過60秒)
4.一旦完成,VMware tools 將就結果告訴 hostd
5.Hostd 再執行快照操作
6.操作結束,按照前面的順序再對文件系統和應用進行解凍
再說一下 VMware tools。在 Windows 系統上,它的安裝包里面包括了很多的驅動,這些驅動能增強虛機的用戶體驗,比如鼠標更加平滑,分辨率更高,聲音效果更好等等;除了這些驅動以外,還有VSS support,它是 VMware tools 和 Windows VSS 之間交互的橋梁。要創建 quiseced snapshots,這項必須被安裝。
注意安裝 VMware tools 的時候,現在 VWC 里面選擇 Guest->Install/Upgrade VMware Tools,然后登錄虛機,找到前面步驟所掛接的磁盤,再雙擊安裝程序開始安裝過程。
在 vCenter 客戶端中,用戶可以選擇是否創建 quiesced snapshot:
不同的情況下,有如下幾種可能結果:
1.6 虛擬磁盤傳輸模式(Tranport modes)
這個傳輸模式是指虛機或者虛機快照的虛擬磁盤中的數據被傳送到備份程序的傳輸方式。VMware 在不同的環境中支持使用不同的傳輸模式,好的傳輸模式能大大增強傳輸傳輸效率。
1.6.1 SAN 模式
這種模式要求 VMware 備份程序所在的物理服務器能夠通過 FC/iSCSI/SAS SAN 網絡訪問到虛擬磁盤。對備份來說,這是效率最高的傳輸模式。這種傳輸模式下,VADP API 從vCenter 或者 ESXi 上獲取 VMFS LUN 的信息,然后再基于這些信息從 VMDK 所在的 FC/iSCSI/SAS LUN 中直接讀取數據。下圖是一個示例:
要使用這種模式:
1.6.2 LAN(NBD) 模式
這種模式下,ESX/ESXi 主機從其存儲中讀取數據,再通過 LAN 網絡發到備份程序所在的主機。這種模式支持任何類型的存儲。備份程序可以運行在一個虛機之內。需要的時候,可以使用 SSL 加密(NBDSSL)。
1.6.3 HotAdd 模式
當備份存儲運行在虛機之內時,可以利用 ESXi 的 SCSI HotAdd 特性來將虛擬磁盤直接掛在到該虛機上成為其一個本地磁盤。這種模式只能用于 SCSI 模式的虛擬磁盤,而不適用于 IDE 類型的。
如果虛機的快照有兩個虛擬磁盤,當備份程序在其所在的虛機(proxy)上使用 hotadd 模式連接到第一個磁盤后,你可以在 proxy 上看到該磁盤以及它的兩個分區:
Disk /dev/sdc: 12.9 GB, 12884901888 bytes255 heads, 63 sectors/track, 1566 cylinders, total 25165824 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x836df02a Device Boot Start End Blocks Id System/dev/sdc1 * 2048 206847 102400 7 HPFS/NTFS/exFAT/dev/sdc2 206848 25163775 12478464 7 HPFS/NTFS/exFAT
然后 proxy 就可以象讀取自己的磁盤一樣從該磁盤讀取文件了。簡單來說,hotadd 和你手工把一個快照的某個vmdk 掛接到另一個運行著的虛機的原理和要求是一樣的。你也可以通過手工的方式來確定hotadd是否能成功。hotadd 和 nbd(ssl)都走的是以太網,但是區別在于,nbd 走的是管理網絡,而這種網絡的帶寬往往有限;而 hotadd 走的是數據/存儲網絡,而這種網絡往往被單獨出來,而且帶寬往往比較大。
關于各種傳輸模式的概念,使用,要求和最佳實踐等,請閱讀 MVware 的相關文檔。
1.6.4 傳輸模式的選擇
備份程序都是調用 VDAP 的 Connect/ConnectEx 接口來建立和 vmdk 的連接的。如果不指定傳輸模式的話,在這個過程中,VADP API 會按照順序,依次嘗試 san,hotadd 和 nbd 三種模式,直到有一種成功或者全部失敗。當有成功時,客戶端程序可以調用 GetTransportMode() API 返回該連接所使用的傳輸模式。當然,客戶端程序也可以指定特定的傳輸模式。在操作結束后,客戶端程序需要調用 Disconnect API 來斷開已經建立的連接。
2. 傳統VMware環境的備份軟件的基本架構
3. 簡要 VMware 虛機鏡像備份和恢復流程
3.1 備份流程
簡要過程:
1.備份程序使用 vSphere API 建立和虛機的連接,并備份虛機的配置信息
2.使用 vSphere API 創建快照,往往會創建 Quiseced 類型的快照,來保證應用或者文件系統一致性
3.使用 VDDK API 建立和快照的第一個磁盤的連接,連接的傳輸模式將會是 san/hotadd/nbdssl/nbd 中的一種。
4. 對該磁盤,調用 QueryChangedDiskAreas 接口,獲取它與上次備份時磁盤之間發生了變化的數據塊列表
5.調用 VDDK API,讀取發生了變化的數據塊的內容并寫入存儲中的備份
6.依次處理其它磁盤
7.所有磁盤處理完畢后,刪除快照,并斷開與虛機的連接
特點:
3.2 恢復流程
簡要過程:
1.備份程序使用 vSphere API 建立和待恢復虛機的連接,并恢復虛機的配置信息
2.使用 vSphere API 創建快照,往往會創建 Quiseced 類型的快照,來保證應用或者文件系統一致性
3.使用 VDDK API 建立和快照的第一個磁盤的連接
4. 對該磁盤,調用 QueryChangedDiskAreas 接口,獲取它與上次備份時磁盤之間發生了變化的數據塊列表
5.調用 VDDK API,從所存備份中讀取變化塊的數據,再寫入快照磁盤的相應位置。該磁盤的所有變化塊寫入完成后,關閉與磁盤的連接。
6.依次處理其它磁盤
7.將虛機revert到已恢復快照
8.刪除快照,并斷開與虛機的連接
特點:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答
圖片精選