• 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.cnsampleshare
    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.netsampleshare

      注意:上面命令中的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.cnfileshare[你的网站项目路径]

      不可以设置为Z盘

      

      6.在上图的Connect as,选择我们在步骤1中创建的用户:mystorage

      7.这样就配置完成了。

  • 相关阅读:
    调优Java virtual machine常见问题汇总整理
    Social Media POC KT Session
    框架Hibernate笔记系列 基础Session
    JVM相关命题的博客整理及总结
    项目总结笔记系列 wsTax KT Session1
    项目总结笔记系列 Autonomy IDOL Server KT Session1
    项目总结笔记系列 Maven Session2
    项目总结笔记系列 Maven Session1
    Data Structures/Algorithms 小甲鱼99讲笔记系列(1~~15讲)
    循环有序数组查找
  • 原文地址:https://www.cnblogs.com/threestone/p/4441388.html
Copyright © 2020-2023  润新知