在Azure公有云服務(wù)中,存儲(chǔ)服務(wù)是用戶非常依賴也是非常核心的一項(xiàng)功能,之前博文也有提到過一些與Azure存儲(chǔ)相關(guān)的內(nèi)容,都是從一些實(shí)用場(chǎng)景來(lái)切入的,比如SQL備份到Blob并還原。
用過Azure存儲(chǔ)服務(wù)的筒子們都知道Azure主要分為存儲(chǔ)賬戶,容器,此外還有文件服務(wù)(可能國(guó)內(nèi)還沒有上線),粒度更細(xì)的劃分還包括三類存儲(chǔ)類型,分別是Blob、table以及queue。blob應(yīng)該是用途最廣泛的,我的理解它應(yīng)該是一種典型的對(duì)象類存儲(chǔ);后兩者table是用來(lái)存放非結(jié)構(gòu)化數(shù)據(jù)的,queue呢我個(gè)人感覺用途更窄一些。對(duì)于國(guó)內(nèi)版本Azure每個(gè)訂閱下最多應(yīng)該能夠支持50個(gè)存儲(chǔ)賬戶,每個(gè)存儲(chǔ)賬戶下各種類型的數(shù)據(jù)大小總和上限應(yīng)該是500GB如果沒記錯(cuò)的話,那么顯然Azure能夠提供PB級(jí)的數(shù)據(jù)量管理能力,想想還是夠用的。。。
Blob里面又分塊blob和頁(yè)blob,單個(gè)塊blob最大容量200GB,適用于一些圖片,音頻,視頻等文件類型,頁(yè)blob適用于一些隨即寫入類型的文件,最典型的就是虛擬機(jī)的vhd文件。因此Azure VM默認(rèn)都是以頁(yè)blob來(lái)存放vhd文件的,單個(gè)容量最大1TB,這也是為什么我們?cè)贏zure上給VM附加磁盤時(shí)最大只能1TB。
###################################################################
想要管理并使用Azure存儲(chǔ)上的數(shù)據(jù),除了通過接口調(diào)用之外,微軟提供了幾種現(xiàn)成的管理工具,以便用戶能夠隨時(shí)在本地和云端上傳下載,AzCopy就是其中一個(gè)選擇。
AzCopy可以通過官方網(wǎng)站下載離線安裝包,如下圖:
或者可以通過Web Installer安裝Azure PowerShell也會(huì)一并把AzCopy裝上,安裝后的路徑如下:
打開AzCopy后(Microsoft Azure Storage tools),可以通過/?來(lái)查看使用幫助和一些簡(jiǎn)單示例:
###################################################################
下面就在我的環(huán)境里做幾個(gè)簡(jiǎn)單并且常用的演示,首先我在本地D:\test下準(zhǔn)備了三個(gè)文件,后綴都不一樣,如下圖:
另外在我Azure訂閱下準(zhǔn)備了一個(gè)叫做labstorage01的storage account,里面會(huì)用到兩個(gè)容器(container),分別為labcontainer01和02,如下圖:
AzCopy的語(yǔ)法還是很好理解的,基本就是圍繞source和destination,key這些關(guān)鍵字段來(lái)進(jìn)行的,以下面的截圖為例,我將本地d:\test下的文件拷貝到labcontainer01容器下,/S指定遞歸模式,也就是將test文件夾下的所有文件全部上傳:
完成后可以在Azure門戶上查看到,如下圖:
根據(jù)上傳文件類型的不同,可以指定blob類型為塊或者頁(yè),如下圖所示:
上傳后的vhd文件屬性顯示為頁(yè)blob,如下圖:
這里我再準(zhǔn)備另外一個(gè)存儲(chǔ)賬戶labstorage02,并且在這個(gè)賬戶下創(chuàng)建了新的容器labcontainer03:
通過AzCopy就可以在不同的存儲(chǔ)賬戶中轉(zhuǎn)移數(shù)據(jù),如下圖:
通過上面的指令將labstorage01下labcontainer02里面vhd文件拷貝到labstorage02下labcontainer03容器中,如下圖:
此外如果是想模糊匹配指定的文件名或單獨(dú)的文件,可以通過/pattern:來(lái)定義,例如下圖指定所有t開頭的文件,并以/S方式全部拷貝至目的路徑:
同樣AzCopy如果在執(zhí)行過程中意外中斷,可以通過/Z來(lái)生成日志文件并恢復(fù)操作(journal file),/V用來(lái)生成Log;對(duì)于這兩個(gè)參數(shù)如果不指定其他路徑的話,文件就生成在默認(rèn)路徑當(dāng)中:
很奇怪的是我用/Z沒有找到j(luò)ournal file,但是Log文件還是可以正常生成的,默認(rèn)路徑在下圖所示:
當(dāng)然日志文件中的內(nèi)容和大家通過command line窗口中看到的差不多,如下圖:
###################################################################
總的來(lái)說(shuō),AzCopy是一個(gè)很不錯(cuò)的工具,用來(lái)管理Azure存儲(chǔ)中的數(shù)據(jù)非常方便,這里依然還有不少?zèng)]有提及的功能,例如設(shè)置并發(fā)執(zhí)行數(shù)(concurrent),在Azure Blob與Azure FileShare中彼此拷貝數(shù)據(jù),管理table數(shù)據(jù)等等,并且AzCopy也在不斷更新當(dāng)中,相信在日后會(huì)帶來(lái)更多優(yōu)秀的功能。