你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn 。
快速入门:创建和使用 SMB Azure 文件共享
本文内容
Azure 文件 是 Microsoft 推出的易用云文件系统。 可以在 Windows、Linux 和 macOS 操作系统中装载 SMB Azure 文件共享。 本文介绍如何使用 Azure 门户、Azure CLI 或 Azure PowerShell 创建 Azure 文件共享。
适用于
本快速入门仅适用于 SMB Azure 文件共享。 标准和高级 SMB 文件共享支持本地冗余存储 (LRS) 和区域冗余存储 (ZRS)。 标准文件共享还支持异地冗余存储 (GRS) 和异地区域冗余存储 (GZRS) 选项。 有关详细信息,请参阅 Azure 文件存储冗余 。
文件共享类型
SMB
NFS
标准文件共享 (GPv2)、LRS/ZRS
标准文件共享 (GPv2)、GRS/GZRS
高级文件共享 (FileStorage)、LRS/ZRS
入门
如果没有 Azure 订阅,请在开始之前创建一个免费帐户 。
如果没有 Azure 订阅,请在开始之前创建一个免费帐户 。
Azure Cloud Shell
Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用来使用 Azure 服务。 可以使用 Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。
若要启动 Azure Cloud Shell,请执行以下操作:
选项
示例/链接
选择代码或命令块右上角的“试用”。 选择“试用”不会自动将代码或命令复制到 Cloud Shell。
转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。
选择 Azure 门户 右上角菜单栏上的 Cloud Shell 按钮。
若要使用 Azure Cloud Shell,请执行以下操作:
启动 Cloud Shell。
选择代码块(或命令块)上的“复制”按钮以复制代码或命令。
在 Windows 和 Linux 上选择 Ctrl+Shift+V,或在 macOS 上选择 Cmd+Shift+V 将代码或命令粘贴到 Cloud Shell 会话中。
选择“Enter”运行代码或命令。
如果你想要在本地安装和使用 PowerShell,则需要使用 Azure PowerShell 模块 Az 7.0.0 或更高版本。 我们建议安装最新可用版本。 若要找出正在运行的 Azure PowerShell 模块的版本,请执行 Get-InstalledModule Az
。 如果需要进行升级,请参阅 Install Azure PowerShell module (安装 Azure PowerShell 模块)。 如果在本地运行 PowerShell,则还需运行 Login-AzAccount
以登录到 Azure 帐户。 若要使用多重身份验证,需要提供你的 Azure 租户 ID,例如 Login-AzAccount -TenantId <TenantId>
。
先决条件
本文需要 Azure CLI 版本 2.0.4 或更高版本。 如果使用 Azure Cloud Shell,则最新版本已安装。
默认情况下,Azure CLI 命令返回 JavaScript 对象表示法 (JSON),这是从 REST API 发送和接收消息的标准方法。 为了便于处理 JSON 响应,本文中的某些示例使用基于 Azure CLI 命令的 query 参数。 该参数使用 JMESPath 查询语言 来分析 JSON。 若要详细了解如何按照 JMESPath 查询语言的规范来使用 Azure CLI 命令的结果,请参阅 JMESPath tutorial (JMESPath 教程)。
创建存储帐户
存储帐户是一个共享的存储池,可以在其中部署 Azure 文件共享或其他存储资源,例如 Blob 或队列。 一个存储帐户可以包含无数个共享。 一个共享可以存储无数个文件,直至达到存储帐户的容量限制为止。
若要使用 Azure 门户创建存储帐户,请执行以下操作:
在“Azure 服务”下,选择“存储帐户” 。
选择“+ 创建”以创建存储帐户。
在“项目详细信息”下,选择要在其中创建存储帐户的 Azure 订阅。 如果只有一个订阅,则默认值应是该订阅。
如果你要创建新的资源组,请选择“新建”并输入名称,例如 myexamplegroup。
在“实例详细信息”下,提供存储帐户的名称。 可能需要添加几个随机数,使其变成全局唯一名称。 存储帐户名称必须全部为小写字母和数字,并且必须介于 3 到 24 个字符之间。 记下存储帐户名称。 稍后将使用它。
在“区域”中,选择要在其中创建存储帐户的区域。
在“主要服务” 中,选择“Azure 文件存储” 。
在“性能”中,保留默认值“标准”。
在“冗余”中,选择“本地冗余存储 (LRS)”。
选择“查看 + 创建 ”以查看设置。 Azure 将运行最终验证。
完成验证后,选择“创建”。 你应该会看到一条通知,指出部署正在进行。
看到指示部署已完成的通知时,请选择“转到资源” 。
PowerShell - 创建资源组
资源组是在其中部署和管理 Azure 资源的逻辑容器。 如果没有 Azure 资源组,请使用 New-AzResourceGroup cmdlet 新建一个。 你需要使用资源组来创建存储帐户。
以下示例在“美国西部 2”区域创建名为“myResourceGroup” 的资源组:
$resourceGroupName = "myResourceGroup"
$region = "westus2"
New-AzResourceGroup `
-Name $resourceGroupName `
-Location $region | Out-Null
PowerShell - 创建存储帐户
存储帐户是一个存储共享池,可以用来部署 Azure 文件共享。
此示例使用 New-AzStorageAccount cmdlet 创建存储帐户。 存储帐户名为 mystorageaccount<随机数字>,对该存储帐户的引用存储在变量 $storageAcct 中。 存储帐户名称必须唯一,因此请使用 Get-Random
将一个随机数字追加到名称末尾,使之变得唯一。
$storageAccountName = "mystorageacct$(Get-Random)"
$storageAcct = New-AzStorageAccount `
-ResourceGroupName $resourceGroupName `
-Name $storageAccountName `
-Location $region `
-Kind StorageV2 `
-SkuName Standard_LRS `
-EnableLargeFileShare
CLI - 创建资源组
资源组是在其中部署和管理 Azure 资源的逻辑容器。 如果还没有 Azure 资源组,可以使用 az group create 命令创建一个。 你需要使用资源组来创建存储帐户。
以下示例在“美国西部 2” 位置创建名为“myResourceGroup” 的资源组:
export resourceGroupName="myResourceGroup"
region="westus2"
az group create \
--name $resourceGroupName \
--location $region \
--output none
CLI - 创建存储帐户
存储帐户是一个存储共享池,可以在其中部署 Azure 文件共享。
以下示例使用 az storage account create 命令创建一个存储帐户。 存储帐户名称必须唯一,因此请使用 $RANDOM
将一个随机数字追加到名称末尾,使之变得唯一。
export storageAccountName="mystorageacct$RANDOM"
az storage account create \
--resource-group $resourceGroupName \
--name $storageAccountName \
--location $region \
--kind StorageV2 \
--sku Standard_LRS \
--enable-large-file-share \
--output none
创建 Azure 文件共享
若要创建 Azure 文件共享,请执行以下操作:
从仪表板中选择存储帐户。
在服务菜单中的“数据存储”下,选择“文件共享” 。
在“文件共享”页顶部的菜单中,选择“+ 文件共享”。 “新建文件共享”页此时会向下拉开。
在“名称”中,键入 myshare 。 文件共享名称必须是所有小写字母、数字和单个连字符,并且必须以小写字母或数字开头和结尾。 名称不能包含两个连续的连字符。 有关为文件共享和文件命名的详细信息,请参阅命名和引用共享、目录、文件和元数据 。
对于“访问层”,请让“事务优化”处于选中状态。
选择“备份 ”选项卡。默认情况下,使用 Azure 门户创建 Azure 文件共享时会启用备份 。 如果要禁用文件共享的备份,请取消选中“启用备份 ”复选框。 如果想要启用备份,可以保留默认值,也可以在存储帐户所在的同一区域和订阅中创建新的恢复服务保管库。 若要创建新的备份策略,请选择创建新策略 。
选择“查看 + 创建 ”,然后选择“创建 ”以创建 Azure 文件共享。
创建存储帐户后,可以使用 New -AzRmStorageShare cmdlet 创建你的第一个 Azure 文件共享。 此示例创建名为 myshare 的共享,其配额为 1024 GiB。 配额最大可为 100 TiB。
$shareName = "myshare"
New-AzRmStorageShare `
-StorageAccount $storageAcct `
-Name $shareName `
-EnabledProtocol SMB `
-QuotaGiB 1024 | Out-Null
创建存储帐户后,可以使用 az storage share-rm create 命令创建你的第一个 Azure 文件共享。 此示例创建名为 myshare 的共享,其配额为 1024 GiB。 配额最大可为 100 TiB。
shareName="myshare"
az storage share-rm create \
--resource-group $resourceGroupName \
--storage-account $storageAccountName \
--name $shareName \
--quota 1024 \
--enabled-protocols SMB \
--output none
创建目录
若要在 Azure 文件共享的根目录中创建名为 myDirectory 的新目录,请执行以下操作:
在“文件共享设置”页面中,选择“myshare”文件共享。 此时将打开文件共享页面,指示找不到文件。
在页面顶部的菜单中选择“+ 添加目录”。 “新建目录”页此时会向下拉开。
键入“myDirectory”,然后选择“确定”。
若要在 Azure 文件共享的根目录中创建名为 myDirectory 的新目录,请使用 New-AzStorageDirectory cmdlet。
New-AzStorageDirectory `
-Context $storageAcct.Context `
-ShareName $shareName `
-Path "myDirectory"
若要在 Azure 文件共享的根目录中创建名为 myDirectory 的新目录,请使用 az storage directory create
命令:
注意
如果未通过命令提供凭据,Azure CLI 将查询存储帐户密钥。 还可以通过使用变量(如 --account-key $storageAccountKey
)或纯文本(如 --account-key "your-storage-account-key-here"
)为命令提供存储帐户密钥。
az storage directory create \
--account-name $storageAccountName \
--share-name $shareName \
--name "myDirectory" \
--output none
上传文件
首先,需要创建一个文件或选择要上传的文件。 可以采用任何适当的方式完成此步骤。 确定要上传的文件后,请执行以下步骤:
选择“myDirectory”目录。 此时会打开 myDirectory 面板。
在顶部菜单中,选择“上传”。 “上传文件”面板此时会打开。
选择文件夹图标,打开一个用来浏览本地文件的窗口。
选择文件,然后选择“打开”。
在“上传文件”页中验证文件名,然后选择“上传”。
完成后,文件会显示在 myDirectory 页的列表中。
若要演示如何使用 Set-AzStorageFileContent cmdlet 来上传文件,首先需要在 PowerShell Cloud Shell 的暂存驱动器中创建要上传的文件。
此示例将当前的日期和时间置于暂存驱动器的新文件中,然后将文件上传到文件共享。
# this expression will put the current date and time into a new file on your scratch drive
cd "~/CloudDrive/"
Get-Date | Out-File -FilePath "SampleUpload.txt" -Force
# this expression will upload that newly created file to your Azure file share
Set-AzStorageFileContent `
-Context $storageAcct.Context `
-ShareName $shareName `
-Source "SampleUpload.txt" `
-Path "myDirectory\SampleUpload.txt"
如果在本地运行 PowerShell,请将 ~/CloudDrive/
替换为计算机上的现有路径。
上传文件后,可以使用 Get-AzStorageFile cmdlet 进行检查,确保文件已上传到 Azure 文件共享。
Get-AzStorageFile `
-Context $storageAcct.Context `
-ShareName $shareName `
-Path "myDirectory\" | Get-AzStorageFile
若要演示如何使用 az storage file upload
命令来上传文件,请首先在 Cloud Shell 暂存驱动器上创建要上传的文件。 以下示例创建并上传该文件:
cd ~/clouddrive/
date > SampleUpload.txt
az storage file upload \
--account-name $storageAccountName \
--share-name $shareName \
--source "SampleUpload.txt" \
--path "myDirectory/SampleUpload.txt"
如果在本地运行 Azure CLI,请将 ~/clouddrive
替换为计算机上的现有路径。
上传文件以后,即可使用 az storage file list
命令,确保文件已上传到 Azure 文件共享:
az storage file list \
--account-name $storageAccountName \
--share-name $shareName \
--path "myDirectory" \
--output table
下载文件
若要下载已上传文件的副本,可以右键单击该文件并选择“下载”。 具体体验取决于所使用的操作系统和浏览器。
可以使用 Get-AzStorageFileContent cmdlet 下载已上传到 Cloud Shell 暂存驱动器的文件的副本。
# Delete an existing file by the same name as SampleDownload.txt, if it exists because you've run this example before.
Remove-Item `
-Path "SampleDownload.txt" `
-Force `
-ErrorAction SilentlyContinue
Get-AzStorageFileContent `
-Context $storageAcct.Context `
-ShareName $shareName `
-Path "myDirectory\SampleUpload.txt" `
-Destination "SampleDownload.txt"
下载文件以后,可以使用 Get-ChildItem
cmdlet 来查看该文件是否已下载到 PowerShell Cloud Shell 的暂存驱动器。
Get-ChildItem | Where-Object { $_.Name -eq "SampleDownload.txt" }
可以使用 az storage file download
命令下载已上传到 Cloud Shell 暂存驱动器的文件的副本:
# Delete an existing file by the same name as SampleDownload.txt, if it exists, because you've run this example before
rm -f SampleDownload.txt
az storage file download \
--account-name $storageAccountName \
--share-name $shareName \
--path "myDirectory/SampleUpload.txt" \
--dest "./SampleDownload.txt" \
--output none
清理资源
完成后,删除资源组。 删除资源组时会删除该资源组中部署的存储帐户、Azure 文件共享和其他所有资源。
如果存储帐户上存在锁,则需要先将其移除。 导航到存储帐户,然后选择“设置 ”>“锁 ”。 如果列出了任何锁,请将其删除。
你可能还需要删除 Azure 备份恢复服务保管库 ,然后才能删除资源组。
选择“主页”,然后选择“资源组”。
选择要删除的资源组。
选择“删除资源组”。 此时会打开一个窗口,其中显示有关将要与资源组一起删除的资源的警告。
输入资源组的名称,然后选择“删除”。
完成后,可以使用 az group delete
命令删除资源组以及资源组中包含的所有资源:
az group delete --name $resourceGroupName
下一步