《Windows Azure Platform 系列文章目錄》
Update 2020-05-07 Azure File最大容量從5TB升級到了100TB。
首先,我們需要在Configuration里面,打開Large File Shares
然后可以看到最大的file share size為100TB
Update 2016-4-14。在Azure VM配置FTP和IIS,請參考:
http://blogs.iis.net/davidso/azurefile
Update 2015-12-28,如果讀者使用的是國內世紀互聯運維的Azure China,請使用以下Azure 腳本:
Azure PowerShell執行:
Select-AzureSubscription -SubscriptionName 'Internal Billing' #為存儲賬戶和密鑰創建上下文 $ctx=New-AzureStorageContext account-name account-key #創建名為sampleshare的新共享 $fs = New-AzureStorageShare sampleshare -Context $ctx #創建新的目錄sampledir New-AzureStorageDirectory -Share $fs -Path sampledir #將本地計算機C盤根目錄下的Log1.txt,拷貝到Azure File的sampledir目錄下 Set-AzureStorageFileContent -Share $fs -Source C:\Log1.txt -Path sampledir #Azure File的sampledir目錄下的所有文件 Get-AzureStorageFile -Share $fs -Path sampledir
Azure Virtual Machine執行CMD命令:
#允許Windows自動連接到文件共享 cmdkey /add:<storage-account>.file.core.chinacloudapi.cn /user:<storage-account> /pass:<account-key> #裝載Azure File,這里可以用file.core.chinacloudapi.cn\sampleshare net use z: \\<storage-account>.file.core.chinacloudapi.cn\<share-name>
============================================================
我們在傳統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,注意必須和VM在同一個數據中心),如下圖:
可以看到,上圖中已經出現了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的新共享。執行以下命令:
$fs = New-AzureStorageShare sampleshare -Context $ctx
3.在文件共享中,創建新的目錄sampledir。執行以下命令
New-AzureStorageDirectory -Share $fs -Path sampledir
上面1-3步驟的截圖,如下:
4.將本地計算機C盤根目錄下的Log1.txt,拷貝到Azure File的sampledir目錄下
Set-AzureStorageFileContent -Share $fs -Source C:\Log1.txt -Path sampledir
5.執行成功后,查看Azure File的sampledir目錄下的所有文件
Get-AzureStorageFile -Share $fs -Path sampledir
下圖可以看到,PowerShell已經列出了所有Azure。並且可以觀察到步驟4中,通過本地上傳Log1.txt文件
三.在Azure Virtual Machine裝載Azure File
1.我們通過Remote Desktop,登陸之前創建的Azure VM LeiZhangVMOne
請注意:不要在本地計算器運行以下命令,因為某些電信運營商會禁用445端口,造成在本地計算器添加SMB File失敗
請在Azure Virtual Machine執行以下命令
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
注意:上面命令中的sampleshare,就是我們在步驟二中創建的名為sampleshare的文件共享
我們可以查看到掛載成功的共享存儲,如下圖:
還可以看到sampleshare共享文件夾里的,我們在步驟二中創建的sampledir目錄。
重復執行步驟三的命令,我們可以同時在兩台Azure VM上掛載共享存儲,如下圖:
當筆者在第一台VM新建文件的時候,在第二台VM上也可以同時看到,如下圖:
默認情況下,Azure File容量為5TB,存儲在Azure File里的單個文件最大容量為1TB。
以下是Azure File與Blob的比較
以下是Azure File與Disk的比較
https://github.com/Azure/azure-content/blob/master/articles/storage-dotnet-how-to-use-files.md
=========================我是分隔符===================================
Update 2016-02-19
IIS如何使用Azure File呢?這里我簡單介紹一下:
場景:我們將ASP.NET項目文件保存在Azure File里,實現多台Azure Web Server使用共享目錄,hosting IIS Service
1.我們在Azure VM創建新的用戶,比如mystorage
用戶名是Azure File存儲賬號,密碼是Azure File存儲賬號密鑰
2.將該用戶(mystorage)加入到IIS_IUser組
3.在Azure虛擬機,運行inetmgr,進入IIS配置頁面
4.選擇我們需要配置的Web Site,點擊下圖的Basic Setting
5.在彈出的頁面中,我們要使用Azure File全路徑
\\mystorage.file.core.chinacloudapi.cn\fileshare\[你的網站項目路徑]
不可以設置為Z盤
6.在上圖的Connect as,選擇我們在步驟1中創建的用戶:mystorage
7.這樣就配置完成了。