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,命名为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.这样就配置完成了。
Windows Azure Storage (20) 使用Azure File实现共享文件夹的更多相关文章
- [New Portal]Windows Azure Storage (14) 使用Azure Blob的PutBlock方法,实现文件的分块、离线上传
<Windows Azure Platform 系列文章目录> 相关内容 Windows Azure Platform (二十二) Windows Azure Storage Servic ...
- Windows Azure Storage (23) 计算Azure VHD实际使用容量
<Windows Azure Platform 系列文章目录> 对于A系列和D系列的虚拟机来说,使用的是普通存储. 普通存储的存储资源,是按照每GB每月计费的.Microsoft Azur ...
- Windows Azure Storage (24) 启用Azure Blob日志
<Windows Azure Platform 系列文章目录> 之前有一个业务需求,客户想知道Azure Storage是否有日志功能,可以检查某个Azure Blob文件在某个时间点被删 ...
- windows宿主机和docker容器设置挂载共享文件夹
docker容器内的程序经常需要访问.调用宿主机目录中的数据,每次都要导入导出非常麻烦费力. 接下来,一步步实现将宿主机的指定文件夹挂载到docker容器中. 1. 打开Oracle VM Vitua ...
- Azure File Storage 基本用法 -- Azure Storage 之 File
Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure Blob Storage 基 ...
- Windows Azure Storage (19) 再谈Azure Block Blob和Page Blob
<Windows Azure Platform 系列文章目录> 请读者在参考本文之前,预习相关背景知识:Windows Azure Storage (1) Windows Azure St ...
- Azure Queue Storage 基本用法 -- Azure Storage 之 Queue
Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure File Storage 基 ...
- Azure Blob Storage 基本用法 -- Azure Storage 之 Blob
Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure Table storage ...
- Azure Table storage 基本用法 -- Azure Storage 之 Table
Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table,其中的 Table 就是本文的主角 Azure Tabl ...
随机推荐
- UWP 颜色选择器(ColorPicker) 和 自定义的Flyout(AdvancedFlyout)
ColorPicker 故事背景 项目里面需要一个像Winfrom里面那样的颜色选择器,如下图所示: 在网上看了一下.没有现成的东东可以拿来使用.大概查看了一下关于颜色的一些知识,想着没人种树,那就由 ...
- AES加密解密通用版Object-C / C# / JAVA
1.无向量 128位 /// <summary> /// AES加密(无向量) /// </summary> /// <param name="plainByt ...
- JS—事件对象
在触发DOM上的某个事件时,会产生一个事件对象event.这个对象中包含着所有与事件有关的信息.包括导致事件的元素,事件的类型以及其他与特定事件相关的信息. 举例鼠标操作导致的事件对象中,会包含鼠标位 ...
- ctf汇总
IDF实验室:牛刀小试 IDF实验室:倒行逆施 linux shell 常用指令 汇编笔记 堆栈溢出
- 车销宝无线开单PDA 一款互联网+POS神器 无缝与电脑数据同步 无线POS开单解决方案
1.无线POS开单解决方案是基于后台系统开发的一套系统,它实现了采购入库退货.销售出库退货.盘点调拨等功能. 2.系统通过(WIFI.GPRS.GSM.蓝牙)实时后台库存.客户.商品.价格跟踪等信息, ...
- 6种方法实现asp.net返回上一页
其实要实现返回上一页的功能,主要还是要用到JavaScript. 一: 在ASP.net的aspx里面的源代码中 <input type="button onclick="J ...
- js 怎么屏蔽微信打开网页后的分享
我们知道 js 可以通过 window.navigator.userAgent 来获取浏览器的相关信息,比如:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537. ...
- js排序算法总结——冒泡,快速,选择,插入,希尔,归并
相信排序是任何一个程序猿都会用到的东西,今天简单总结记录下常见的排序算法. 一.冒泡排序 说起冒泡排序,可能每个人都不会陌生,实现思路相当简单明了,就是不停的对数组进行两两比较,将较大(较小)的一项放 ...
- 初探javascript
javascript是一种在网络广泛应用的脚本语言,虽然名字与java相近,但其实两者并没有直接的关系,脚本语言是一种为了便于操作和拓展功能而开发出来的解释性语言,不同于传统的编程语言,脚本语言不需要 ...
- 基于java平台的常用资源整理
这里整理了基于java平台的常用资源 翻译 from :akullpp | awesome-java 大家一起学习,共同进步. 如果大家觉得有用,就mark一下,赞一下,或评论一下,让更多的人知道.t ...