快速入门:创建和使用 SMB Azure 文件共享
本文内容
Azure 文件 是易于使用的云文件系统。 可以在 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 PowerShell 模块 Az 版本 7.0.0 或更高版本。 我们建议安装最新可用版本。 若要找出正在运行的 Azure PowerShell 模块的版本,请执行 Get-InstalledModule Az
。 如果需要进行升级,请参阅 Install Azure PowerShell module (安装 Azure PowerShell 模块)。 还需运行 Login-AzAccount -Environment AzureChinaCloud
以登录到 Azure 帐户。 若要使用多重身份验证,需要提供你的 Azure 租户 ID,例如 Login-AzAccount -TenantId <TenantId> -Environment AzureChinaCloud
。
先决条件
如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI 。
本文需要 Azure CLI 版本 2.0.4 或更高版本。
默认情况下,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 = "chinaeast2"
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="chinaeast2"
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 文件共享。
创建存储帐户后,可以使用 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 来上传文件。
此示例将当前的日期和时间置于暂存驱动器的新文件中,然后将文件上传到文件共享。
# this expression will put the current date and time into a new file on your scratch drive
cd "../YourDrive/"
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"
上传文件后,可以使用 Get-AzStorageFile cmdlet 进行检查,确保文件已上传到 Azure 文件共享。
Get-AzStorageFile `
-Context $storageAcct.Context `
-ShareName $shareName `
-Path "myDirectory\" | Get-AzStorageFile
若要演示如何使用 az storage file upload
命令来上传文件,请先在驱动器上创建一个文件。 以下示例创建并上传该文件:
cd ../yourdrive/
date > SampleUpload.txt
az storage file upload \
--account-name $storageAccountName \
--share-name $shareName \
--source "SampleUpload.txt" \
--path "myDirectory/SampleUpload.txt"
上传文件以后,即可使用 az storage file list
命令,确保文件已上传到 Azure 文件共享:
az storage file list \
--account-name $storageAccountName \
--share-name $shareName \
--path "myDirectory" \
--output table
下载文件
若要下载已上传文件的副本,可以右键单击该文件并选择“下载”。 具体体验取决于所使用的操作系统和浏览器。
可以使用 Get-AzStorageFileContent cmdlet 下载已上传的文件的副本。
# 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 来查看该文件是否已下载。
Get-ChildItem | Where-Object { $_.Name -eq "SampleDownload.txt" }
可以使用 az storage file download
命令下载已上传的文件的副本:
# 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
下一步