Windows Azure Storage (20) 使用Azure File實現共享文件夾


  《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,命名為LeiZhangVMOneLeiZhangVMTwo

  -  這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的比較

 

 

  參考資料:http://blogs.msdn.com/b/windowsazurestorage/archive/2014/05/12/introducing-microsoft-azure-file-service.aspx

       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.這樣就配置完成了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM