概述
Azure 存儲(chǔ)提供創(chuàng)建 Blob 快照的功能。 快照將捕獲該時(shí)間點(diǎn)的 Blob 狀態(tài)。 本文介紹有關(guān)如何使用快照維護(hù)虛擬機(jī)磁盤備份的方案。 如果選擇不使用 Azure 備份和恢復(fù)服務(wù),但想要為虛擬機(jī)磁盤創(chuàng)建自定義備份策略,則可以使用此方法。
Azure 虛擬機(jī)磁盤在 Azure 存儲(chǔ)中存儲(chǔ)為頁(yè) Blob。 本文中介紹的是虛擬機(jī)磁盤的備份策略,因此,我們指的是頁(yè) Blob 上下文中的快照。 若要詳細(xì)了解快照,請(qǐng)參閱創(chuàng)建 Blob 的快照。
什么是快照?
Blob 快照是在某個(gè)時(shí)間點(diǎn)捕獲的 Blob 只讀版本。 在創(chuàng)建快照后,可以讀取、復(fù)制或刪除該快照,但無(wú)法對(duì)其進(jìn)行修改。 利用快照,可以在某個(gè)時(shí)間點(diǎn)備份顯示的 Blob。 在 REST 2015-04-05 版之前,可以復(fù)制完整快照。 使用 REST 2015-07-08 版或更高版本,還可以復(fù)制增量快照。
完整快照復(fù)制
可將快照作為 Blob 復(fù)制到另一個(gè)存儲(chǔ)帳戶,以保留基本 Blob 的備份。 你還可以復(fù)制快照覆蓋基本 Blob,這類似于將 Blob 還原到以前的版本。 將快照從某個(gè)存儲(chǔ)帳戶復(fù)制到另一個(gè)存儲(chǔ)帳戶時(shí),將占用與基本頁(yè) Blob 相同的空間。 因此,將整個(gè)快照從某個(gè)存儲(chǔ)帳戶復(fù)制到另一個(gè)存儲(chǔ)帳戶時(shí)速度較慢,并且會(huì)消耗目標(biāo)存儲(chǔ)帳戶中的大量空間。
Note
如果將基本 Blob 復(fù)制到另一個(gè)目標(biāo),則不會(huì)一起復(fù)制 Blob 的快照。 同樣,如果使用副本覆蓋基本 Blob,與基本 Blob 關(guān)聯(lián)的快照不會(huì)受到影響,并且可讓基本 Blob 名稱保持不變。
使用快照備份磁盤
作為虛擬機(jī)磁盤的備份策略,可以創(chuàng)建磁盤或頁(yè) Blob 的定期快照,并使用復(fù)制 Blob操作或AzCopy之類的工具將其復(fù)制到另一個(gè)存儲(chǔ)帳戶。 可將快照復(fù)制到具有不同名稱的目標(biāo)頁(yè) Blob。 生成的目標(biāo)頁(yè) Blob 是可編寫(xiě)的頁(yè) Blob,而不是快照。 本文稍后介紹使用快照創(chuàng)建虛擬機(jī)磁盤備份的步驟。
使用快照還原磁盤
需要將磁盤還原到以前在某個(gè)備份快照中捕獲的穩(wěn)定版本時(shí),可以復(fù)制一個(gè)快照來(lái)覆蓋基本頁(yè) Blob。 將快照升級(jí)到基本頁(yè) Blob 之后,快照會(huì)保留,但會(huì)使用可讀寫(xiě)的副本覆蓋其源。 本文稍后介紹從快照還原以前磁盤版本的步驟。
實(shí)現(xiàn)完整快照復(fù)制
可以通過(guò)執(zhí)行以下操作實(shí)現(xiàn)完整快照復(fù)制:
首先,使用快照 Blob操作創(chuàng)建基本 Blob 的快照。
然后,使用復(fù)制 Blob將快照復(fù)制到目標(biāo)存儲(chǔ)帳戶。
重復(fù)此過(guò)程以保留基本 Blob 的備份副本。
增量快照復(fù)制
GetPageRangesAPI 中的新功能提供更好的方式來(lái)備份頁(yè) Blob 或磁盤的快照。 該 API 返回基本 Blob 和快照之間的更改列表。 這可以減少備份帳戶上使用的存儲(chǔ)空間量。 該 API 支持高級(jí)存儲(chǔ)以及標(biāo)準(zhǔn)存儲(chǔ)的頁(yè) Blob。 現(xiàn)在,可以使用此 API 為 Azure VM 構(gòu)建更快速且有效的備份解決方案。 此 API 適用于 REST 2015-07-08 版和更高版本。
增量快照復(fù)制可讓你將以下兩者之間的差異從一個(gè)存儲(chǔ)帳戶復(fù)制到另一個(gè)存儲(chǔ)帳戶:
基本 Blob 及其快照,或
基本 Blob 的任意兩個(gè)快照
必須符合以下先決條件:
Blob 是在 2016 年 1 月 1 日或之后創(chuàng)建。
未在兩個(gè)快照之間使用PutPage或復(fù)制 Blob覆蓋 Blob。
注意:此功能適用于高級(jí)和標(biāo)準(zhǔn) Azure 頁(yè) Blob。
如果存在使用快照的自定義備份策略,則將快照從一個(gè)存儲(chǔ)帳戶復(fù)制到另一個(gè)存儲(chǔ)帳戶可能非常慢,并且將消耗大量的存儲(chǔ)空間。 可以將連續(xù)快照之間的差異寫(xiě)入備份頁(yè) Blob,而不是將整個(gè)快照復(fù)制到備份存儲(chǔ)帳戶。 這樣,便可以大量減少?gòu)?fù)制的時(shí)間和存儲(chǔ)備份的空間。
實(shí)現(xiàn)增量快照復(fù)制
可以通過(guò)執(zhí)行以下操作實(shí)現(xiàn)增量快照復(fù)制:
使用快照 Blob創(chuàng)建基本 Blob 的快照。
使用復(fù)制 Blob將快照復(fù)制到目標(biāo)備份存儲(chǔ)帳戶。 這將是備份頁(yè) Blob。 創(chuàng)建此備份頁(yè) Blob 的快照,并將其存儲(chǔ)在備份帳戶中。
使用快照 Blob 創(chuàng)建基本 Blob 的另一個(gè)快照。
使用GetPageRanges獲取基本 Blob 的第一個(gè)與第二個(gè)快照之間的差異。 使用新參數(shù)prevsnapshot指定要用于獲取差異的快照的 DateTime 值。 如果提供此參數(shù),REST 響應(yīng)將只包含在目標(biāo)快照與先前快照之間更改的頁(yè)面(包括清除頁(yè)面)。
使用PutPage將這些更改應(yīng)用到備份頁(yè) Blob。
最后,創(chuàng)建備份頁(yè) Blob 的快照,并將其存儲(chǔ)在備份存儲(chǔ)帳戶中。
下一部分詳細(xì)說(shuō)明如何使用增量快照復(fù)制維護(hù)磁盤的備份
方案
在本部分中,我們會(huì)介紹一種方案,它涉及到使用快照針對(duì)虛擬機(jī)磁盤實(shí)施自定義的備份策略。
假設(shè)在某個(gè) DS 系列 Azure VM 上附加了一個(gè)高級(jí)存儲(chǔ) P30 磁盤。 名為mypremiumdisk的 P30 磁盤存儲(chǔ)在名為mypremiumaccount的高級(jí)存儲(chǔ)帳戶中。 名為mybackupstdaccount的標(biāo)準(zhǔn)存儲(chǔ)帳戶用于存儲(chǔ)mypremiumdisk的備份。 我們希望每隔 12 小時(shí)保留mypremiumdisk的一個(gè)快照。
若要了解如何創(chuàng)建存儲(chǔ)帳戶和磁盤,請(qǐng)參閱關(guān)于 Azure 存儲(chǔ)帳戶。
若要了解如何備份 Azure VM,請(qǐng)參閱規(guī)劃 Azure VM 備份。
使用增量快照維護(hù)磁盤備份的步驟
下述步驟將創(chuàng)建mypremiumdisk的快照,并在mybackupstdaccount中維護(hù)備份。 備份將是名為mybackupstdpageblob的標(biāo)準(zhǔn)頁(yè) Blob。 備份頁(yè) Blob 始終反映與mypremiumdisk的最新快照相同的狀態(tài)。
首先,創(chuàng)建高級(jí)存儲(chǔ)磁盤的備份頁(yè) Blob。 為此,請(qǐng)為mypremiumdisk創(chuàng)建名為mypremiumdisk_ss1的快照。
將此快照復(fù)制到 mybackupstdaccount,用作名為mybackupstdpageblob的頁(yè) Blob。
使用創(chuàng)建 Blob 快照為mybackupstdpageblob創(chuàng)建名為mybackupstdpageblob_ss1的快照,并將其存儲(chǔ)在mybackupstdaccount中。
在備份時(shí)段內(nèi),創(chuàng)建mypremiumdisk的另一個(gè)快照(即mypremiumdisk_ss2),并將其存儲(chǔ)在mypremiumaccount中。
在prevsnapshot參數(shù)設(shè)置為mypremiumdisk_ss1的時(shí)間戳的情況下,對(duì)mypremiumdisk_ss2使用GetPageRanges獲取兩個(gè)快照(mypremiumdisk_ss2與mypremiumdisk_ss1)之間的增量更改。 將這些增量更改寫(xiě)入到mybackupstdaccount中的備份頁(yè) Blobmybackupstdpageblob。 如果增量更改中有已刪除的范圍,則必須從備份頁(yè) Blob 中清除這些范圍。 使用PutPage將增量更改寫(xiě)入備份頁(yè) Blob。
為備份頁(yè) blobmybackupstdpageblob創(chuàng)建名為mybackupstdpageblob_ss2的快照。 從高級(jí)存儲(chǔ)帳戶刪除以前的快照mypremiumdisk_ss1。
在每個(gè)備份時(shí)段內(nèi)重復(fù)步驟 4-6。 這樣,即可在標(biāo)準(zhǔn)存儲(chǔ)帳戶中維護(hù)mypremiumdisk的備份。

從快照還原磁盤的步驟
下述步驟將高級(jí)磁盤mypremiumdisk從備份存儲(chǔ)帳戶mybackupstdaccount還原到以前的快照。
確定要將高級(jí)磁盤還原到的時(shí)間點(diǎn)。 假設(shè)這是存儲(chǔ)在備份存儲(chǔ)帳戶 mybackupstdaccount 中的快照 mybackupstdpageblob_ss2。
在 mybackupstdaccount 中,將快照mybackupstdpageblob_ss2升級(jí)為新的備份基本頁(yè) Blobmybackupstdpageblobrestored。
為此已還原的備份頁(yè) Blob 創(chuàng)建名為mybackupstdpageblobrestored_ss1的快照。
將已還原頁(yè) Blobmybackupstdpageblobrestored從mybackupstdaccount復(fù)制到mypremiumaccount,作為新的高級(jí)磁盤mypremiumdiskrestored。
為mypremiumdiskrestored創(chuàng)建名為mypremiumdiskrestored_ss1的快照,以便將來(lái)執(zhí)行增量備份。
將 DS 系列 VM 指向已還原的磁盤mypremiumdiskrestored,并從 VM 分離舊的mypremiumdisk。
使用mybackupstdpageblobrestored作為備份頁(yè) Blob,根據(jù)前一部分中所述,開(kāi)始針對(duì)已還原的磁盤mypremiumdiskrestored執(zhí)行備份過(guò)程。

后續(xù)步驟
使用以下鏈接詳細(xì)了解如何創(chuàng)建 Blob 的快照和規(guī)劃 VM 備份基礎(chǔ)結(jié)構(gòu)。
規(guī)劃 VM 備份基礎(chǔ)結(jié)構(gòu)? ? ? ?立即訪問(wèn)http://market.azure.cn