標籤:
《Windows Azure Platform 系列文章目錄》
我們在傳統IDC託管環境營運網站的時候,經常會遇到多台Web伺服器實現負載平衡的時候,後面使用同一個網路儲存(SAN)。通過這種方式,可以解決檔案同步的問題。
伺服器部署圖,如所示:
在Windows Azure公用雲端環境,想實現上面的架構會比較困難,主要原因有:
1.Azure公用雲端不允許使用者把網路儲存(SAN)放置在Azure資料中心
2.如果使用單獨一台Azure Virtual Machine類比網路儲存,則這一台Azure VM會出現單點故障。
需要手動建立一台Active Azure VM和一台StandBy Azure VM。當Active VM宕機的時候,由StandBy VM進行託管。
在Azure File出現之前,對於這種共用儲存的方案可以提供的解決方案是,讓使用者基於Azure Storage進行二次開發,將需要共用的檔案儲存在Azure Storage中。但是這樣的開發代價太大了,非常不方便。
現在可以使用Azure File來實現共用資料夾的功能,讓多台Azure Virtual Machine使用同一個Azure File,如:
Azure File特點如下:
1.是一個PaaS服務,提供99.9% SLA,不會出現單點故障
2.可以同時被多台Azure VM共用,解決檔案分享權限設定的問題
3.基於SMB2.1協議,可以被Windows和Linux同時使用。
4.可以通過REST API訪問
接下來,筆者做一個簡單的DEMO,給各位簡單介紹一下Azure File。工作內容主要分為以下幾步:
一.準備工作
二.使用PowerShell建立檔案分享權限設定
三.在Azure Virtual Machine裝載Azure File
一.準備工作:確認Azure Storage是否可以使用Azure File功能
1.Azure File功能目前是Preview階段,如果我們之前建立的老的Azure Storage Account,是無法查看到Azure File的。比如筆者很久以前在香港資料中心(East Asia)建立的Azure Storage Account為leivms,是沒有Azure File功能的,如:
為了示範相關的功能,筆者建立了新的儲存帳號,命名為leifiledemo,建立在香港資料中心(East Asia),如:
可以看到,中已經出現了Files,我們可以使用這個命名空間,來建立Azure File。
2.接下來,我們需要準備以下環境:
- 建立一個新的虛擬網路LeiVNet
- 建立2台Windows VM,命名為LeiZhangVMOne和LeiZhangVMTwo
- 這2台VM使用通過一個Cloud Service Name:LeiZhangVM
- 這2台VM設定高可用集:LeiAvbSet
- 這2台VM儲存在我們之前建立的儲存帳號leivms,注意這個儲存帳號和我們之前建立的leifiledemo不同
- 注意:我們Azure VM所在的儲存帳號,和Azure File所在儲存帳號,必須在同一個資料中心。這裡筆者使用的都是香港資料中心(East Asia)
二.使用PowerShell建立檔案分享權限設定
注意:Azure File只咋最新的0.8.5版本及更高的Azure PowerShell模組中提供,請下載最新的Azure PowerShell工具,請在http://azure.microsoft.com/en-us/downloads/ 進行下載。
以下命令可以在Azure Virtual Machine或者本機電腦,通過Azure PowerShell執行:
1.為儲存賬戶和密鑰建立上下文
執行以下命令:
$ctx=New-AzureStorageContext account-name account-key
比如筆者在步驟一中建立的Azure File名稱為leifiledemo,則執行以下命令
$ctx=New-AzureStorageContext leifiledemo [儲存帳號的密鑰]
2.建立新的檔案分享權限設定,這裡我們建立名為sampleshare的新共用
執行以下命令:
$s = New-AzureStorageShare sampleshare -Context $ctx
三.在Azure Virtual Machine裝載Azure File
1.我們通過Remote Desktop,登陸之前建立的Azure VM LeiZhangVMOne
2.開啟Azure VM的PowerShell
3.儲存虛擬機器的儲存賬戶憑據
為了保證Azure VM在重啟時,允許Windows自動連接到檔案分享權限設定,我們需要執行以下命令:
cmdkey /add:<storage-account>.file.core.windows.net /user:<storage-account> /pass:<account-key>
筆者的環境中,我們執行以下命令:
cmdkey /add:leifiledemo.file.core.windows.net /user:leifiledemo /pass:[儲存帳號的密鑰]
在LeiZhangVMOne這台VM上執行的如下:
4.裝載Azure File
我們可以使用net use命令,將Azure File裝載為本地共用儲存
net use z: \\<storage-account>.file.core.windows.net\<share-name>
在筆者的環境中,我們執行以下命令
net use z: \\leifiledemo.file.core.windows.net\sampleshare
我們可以查看到掛載成功的共用儲存,如:
重複執行步驟三的命令,我們可以同時在兩台Azure VM上掛載共用儲存,如:
當筆者在第一台VM建立檔案的時候,在第二台VM上也可以同時看到,如:
預設情況下,Azure File容量為5TB,儲存在Azure File裡的單個檔案最大容量為1TB。
以下是Azure File與Blob的比較
以下是Azure File與Disk的比較
參考資料:http://blogs.msdn.com/b/windowsazurestorage/archive/2014/05/12/introducing-microsoft-azure-file-service.aspx
Windows Azure Storage (20) 使用Azure File