如何解決Windows Azure Storage的共享存儲問題
我們在傳統(tǒng)IDC托管環(huán)境運維網(wǎng)站的時候,經(jīng)常會遇到多臺Web服務器實現(xiàn)負載均衡的時候,后面使用同一個網(wǎng)絡存儲(SAN)。通過這種方式,可以解決文件同步的問題。
服務器部署圖,如下圖所示:
在Windows Azure公有云環(huán)境,想實現(xiàn)上面的架構會比較困難,主要原因有:
1.Azure公有云不允許用戶把網(wǎng)絡存儲(SAN)放置在Azure數(shù)據(jù)中心
2.如果使用單獨一臺Azure Virtual Machine模擬網(wǎng)絡存儲,則這一臺Azure VM會出現(xiàn)單點故障。
需要手動創(chuàng)建一臺Active Azure VM和一臺StandBy Azure VM。當Active VM宕機的時候,由StandBy VM進行托管。
在Azure File出現(xiàn)之前,對于這種共享存儲的方案可以提供的解決方案是,讓用戶基于Azure Storage進行二次開發(fā),將需要共享的文件保存在Azure Storage中。但是這樣的開發(fā)代價太大了,非常不方便。
現(xiàn)在可以使用Azure File來實現(xiàn)共享文件夾的功能,讓多臺Azure Virtual Machine使用同一個Azure File,如下圖:
Azure File特點如下:
1.是一個PaaS服務,提供99.9% SLA,不會出現(xiàn)單點故障
2.可以同時被多臺Azure VM共享,解決文件共享的問題
3.基于SMB2.1協(xié)議,可以被Windows和Linux同時使用。
4.可以通過REST API訪問
#p#
接下來,筆者做一個簡單的DEMO,給各位簡單介紹一下Azure File。工作內(nèi)容主要分為以下幾步:
一.準備工作
二.使用PowerShell創(chuàng)建文件共享
三.在Azure Virtual Machine裝載Azure File
一.準備工作:確認Azure Storage是否可以使用Azure File功能
1.Azure File功能目前是Preview階段,如果我們之前創(chuàng)建的老的Azure Storage Account,是無法查看到Azure File的。比如筆者很久以前在香港數(shù)據(jù)中心(East Asia)創(chuàng)建的Azure Storage Account為leivms,是沒有Azure File功能的,如下圖:
為了演示相關的功能,筆者創(chuàng)建了新的存儲賬號,命名為leifiledemo,創(chuàng)建在香港數(shù)據(jù)中心(East Asia),如下圖:
可以看到,上圖中已經(jīng)出現(xiàn)了Files,我們可以使用這個命名空間,來創(chuàng)建Azure File。
2.接下來,我們需要準備以下環(huán)境:
-創(chuàng)建一個新的虛擬網(wǎng)絡LeiVNet
-創(chuàng)建2臺Windows VM,命名為LeiZhangVMOne和LeiZhangVMTwo
-這2臺VM使用通過一個Cloud Service Name:LeiZhangVM
-這2臺VM設置高可用集:LeiAvbSet
-這2臺VM保存在我們之前創(chuàng)建的存儲賬號leivms,注意這個存儲賬號和我們之前創(chuàng)建的leifiledemo不同
-注意:我們Azure VM所在的存儲賬號,和Azure File所在存儲賬號,必須在同一個數(shù)據(jù)中心。這里筆者使用的都是香港數(shù)據(jù)中心(East Asia)
二.使用PowerShell創(chuàng)建文件共享
1.為存儲賬戶和密鑰創(chuàng)建上下文
執(zhí)行以下命令:
- $ctx=New-AzureStorageContext account-name account-key
比如筆者在步驟一中創(chuàng)建的Azure File名稱為leifiledemo,則執(zhí)行以下命令
- $ctx=New-AzureStorageContext leifiledemo [存儲賬號的密鑰]
2.創(chuàng)建新的文件共享,這里我們創(chuàng)建名為sampleshare的新共享
執(zhí)行以下命令:
- $s = New-AzureStorageShare sampleshare -Context $ctx
#p#
三.在Azure Virtual Machine裝載Azure File
1.我們通過Remote Desktop,登陸之前創(chuàng)建的Azure VM LeiZhangVMOne
2.打開Azure VM的PowerShell
3.保存虛擬機的存儲賬戶憑據(jù)
為了保證Azure VM在重啟時,允許Windows自動連接到文件共享,我們需要執(zhí)行以下命令:
- cmdkey /add:.file.core.windows.net /user: /pass:
筆者的環(huán)境中,我們執(zhí)行以下命令:
- cmdkey /add:leifiledemo.file.core.windows.net /user:leifiledemo /pass:[存儲賬號的密鑰]
在LeiZhangVMOne這臺VM上執(zhí)行的截圖如下:
4.裝載Azure File
我們可以使用net use命令,將Azure File裝載為本地共享存儲
- net use z: \\.file.core.windows.net\
在筆者的環(huán)境中,我們執(zhí)行以下命令
- net use z: \\leifiledemo.file.core.windows.net\sampleshare
我們可以查看到掛載成功的共享存儲,如下圖:
重復執(zhí)行步驟三的命令,我們可以同時在兩臺Azure VM上掛載共享存儲,如下圖:
當筆者在***臺VM新建文件的時候,在第二臺VM上也可以同時看到,如下圖:
默認情況下,Azure File容量為5TB,存儲在Azure File里的單個文件***容量為1TB。
以下是Azure File與Blob的比較
以下是Azure File與Disk的比較