使用 Azure 文件同步,即可将组织的文件共享集中在 Azure 文件中,同时又不失本地文件服务器的灵活性、性能和兼容性。 Azure 文件同步可将 Windows Server 转换为 Azure 文件共享的快速缓存。 可以使用 Windows Server 上提供的任何协议在本地访问数据,包括服务器消息块(SMB)、网络文件系统(NFS)和 SSL/TLS 上的文件传输协议(FTPS)。 您可以在世界各地根据需求设置任意数量的缓存。
强烈建议在完成本文中的步骤之前阅读“计划”来部署 Azure 文件和规划 Azure 文件同步部署。
Prerequisites
需要位于要在其中部署 Azure 文件同步的同一区域中的 Azure 文件共享。建议为所有新部署预配 v2 文件共享。 有关详细信息,请参见:
必须启用以下存储帐户设置,才能授予 Azure 文件同步对存储帐户的访问权限:
- SMB 安全设置必须允许 SMB 3.1.1 协议版本、NTLM v2 身份验证和 AES-128-GCM 加密。 若要查看存储帐户的 SMB 安全设置,请参阅 SMB 安全设置。
-
允许存储帐户密钥访问 必须设置为 “已启用”。 若要检查此设置,请转到存储帐户,然后在“设置”部分选择“配置”。
至少需要一个受支持的 Windows Server 实例才能与 Azure 文件同步同步。有关受支持的 Windows Server 版本和建议的系统资源的详细信息,请参阅 Windows 文件服务器的注意事项。
必须在 Windows Server 实例上安装以下 Windows 更新:
注册服务器并创建云终结点的管理员必须是存储 同步服务的 Azure 文件同步管理员、所有者或参与者的管理角色的成员。 可以在存储同步服务的 Azure 门户页上的 访问控制(IAM) 下配置此角色。
如果打算将 Azure 文件同步与 Windows Server 故障转移群集配合使用,则必须在群集中的每个节点上安装 Azure 文件同步代理之前,将 文件服务器配置为常规使用 角色。 有关如何在故障转移群集上 为常规使用角色配置文件服务器 的详细信息,请参阅 部署双节点群集文件服务器。
Note
Azure 文件同步支持的唯一方案是具有群集磁盘的 Windows Server 故障转移群集。 有关详细信息,请参阅 故障转移群集。
尽管可以使用 Azure 门户管理云资源,但 PowerShell cmdlet 为已注册的服务器提供高级功能。 可以在 PowerShell 5.1 或 PowerShell 6+ 本地运行这些 cmdlet。 在 Windows Server 2012 R2 上,可以通过检查 PSVersion
对象的属性值 $PSVersionTable
来验证是否至少正在运行 PowerShell 5.1.* :
$PSVersionTable.PSVersion
PSVersion
如果值小于5.1.*
,则需要通过下载并安装 Windows Management Framework 5.1 进行升级。 需下载和安装的 Windows Server 2012 R2 的相应包为 Win8.1AndW2K12R2-KB*******-x64.msu。
可以将 PowerShell 6+ 与任何受支持的系统配合使用,并通过其 GitHub 页面下载它。
需要位于要在其中部署 Azure 文件同步的同一区域中的 Azure 文件共享。建议为所有新部署预配 v2 文件共享。 有关详细信息,请参见:
必须启用以下存储帐户设置,才能授予 Azure 文件同步对存储帐户的访问权限:
- SMB 安全设置必须允许 SMB 3.1.1 协议版本、NTLM v2 身份验证和 AES-128-GCM 加密。 若要查看存储帐户的 SMB 安全设置,请参阅 SMB 安全设置。
-
允许存储帐户密钥访问 必须设置为 “已启用”。 若要检查此设置,请转到存储帐户,然后在“设置”部分选择“配置”。
注册服务器并创建云终结点的管理员必须是存储 同步服务的 Azure 文件同步管理员、所有者或参与者的管理角色的成员。 可以在存储同步服务的 Azure 门户页上的 访问控制(IAM) 下配置此角色。
至少需要一个受支持的 Windows Server 实例才能与 Azure 文件同步同步。有关受支持的 Windows Server 版本和建议的系统资源的详细信息,请参阅 Windows 文件服务器的注意事项。
必须在 Windows Server 实例上安装以下 Windows 更新:
如果打算将 Azure 文件同步与 Windows Server 故障转移群集配合使用,则必须在群集中的每个节点上安装 Azure 文件同步代理之前,将 文件服务器配置为常规使用 角色。 有关如何在故障转移群集上 为常规使用角色配置文件服务器 的详细信息,请参阅 部署双节点群集文件服务器。
Note
Azure 文件同步支持的唯一方案是具有群集磁盘的 Windows Server 故障转移群集。 有关详细信息,请参阅 故障转移群集。
需要 PowerShell 5.1 或 PowerShell 6+。 可以在任何受支持的系统上(包括非 Windows 系统)上使用适用于 Azure 文件同步的 Az PowerShell 模块。 但是,服务器注册的 cmdlet 必须始终在要注册的 Windows Server 实例上运行。 (可以直接或通过 PowerShell 远程处理执行此任务。
在 Windows Server 2012 R2 上,通过检查 PSVersion
对象的属性值 $PSVersionTable
,验证是否正在运行至少 PowerShell 5.1.* :
$PSVersionTable.PSVersion
PSVersion
如果值小于5.1.*
,则需要通过下载并安装 Windows Management Framework 5.1 进行升级。 需下载和安装的 Windows Server 2012 R2 的相应包为 Win8.1AndW2K12R2-KB*******-x64.msu。
可以将 PowerShell 6+ 与任何受支持的系统配合使用,并通过其 GitHub 页面下载它。
如果选择使用 PowerShell 5.1,请确保至少安装了 .NET 4.7.2。
详细了解系统上的 .NET Framework 版本和依赖项 。
如果在 Windows Server Core 上安装 .NET 4.7.2 及以上版本,则必须用 quiet
和 norestart
标志安装,否则安装将失败。 例如,如果要安装 .NET 4.8,则命令如以下示例所示:
Start-Process -FilePath "ndp48-x86-x64-allos-enu.exe" -ArgumentList "/q /norestart" -Wait
需要 Az PowerShell 模块。 有关说明,请参阅安装和配置 Azure PowerShell。
安装 Az PowerShell 模块时,会自动安装 Az.StorageSync 模块。
需要位于要在其中部署 Azure 文件同步的同一区域中的 Azure 文件共享。建议为所有新部署预配 v2 文件共享。 有关详细信息,请参见:
必须启用以下存储帐户设置,才能授予 Azure 文件同步对存储帐户的访问权限:
- SMB 安全设置必须允许 SMB 3.1.1 协议版本、NTLM v2 身份验证和 AES-128-GCM 加密。 若要查看存储帐户的 SMB 安全设置,请参阅 SMB 安全设置。
-
允许存储帐户密钥访问 必须设置为 “已启用”。 若要检查此设置,请转到存储帐户,然后在“设置”部分选择“配置”。
注册服务器并创建云终结点的管理员必须是存储 同步服务的 Azure 文件同步管理员、所有者或参与者的管理角色的成员。 可以在存储同步服务的 Azure 门户页上的 访问控制(IAM) 下配置此角色。
至少需要一个受支持的 Windows Server 实例才能与 Azure 文件同步同步。有关受支持的 Windows Server 版本和建议的系统资源的详细信息,请参阅 Windows 文件服务器的注意事项。
必须在 Windows Server 实例上安装以下 Windows 更新:
如果打算将 Azure 文件同步与 Windows Server 故障转移群集配合使用,则必须在群集中的每个节点上安装 Azure 文件同步代理之前,将 文件服务器配置为常规使用 角色。 有关如何在故障转移群集上 为常规使用角色配置文件服务器 的详细信息,请参阅 部署双节点群集文件服务器。
Note
Azure 文件同步支持的唯一方案是具有群集磁盘的 Windows Server 故障转移群集。 有关详细信息,请参阅 故障转移群集。
完成 Azure CLI 安装、身份验证和设置:
安装 Azure CLI。
登录到 Azure。 如果使用 Azure CLI 的本地安装,请使用 az login 命令:
az login
遵循终端中显示的步骤完成身份验证过程。
安装 az filesync
Azure CLI 扩展:
az extension add --name storagesync
安装 storagesync
扩展引用后,会收到以下警告:
The installed extension 'storagesync' is experimental and not covered by customer support. Please use with discretion.
尽管可以使用 Azure CLI 管理云资源,但 PowerShell cmdlet 为已注册的服务器提供高级功能。 可以在 PowerShell 5.1 或 PowerShell 6+ 本地运行这些 cmdlet。 在 Windows Server 2012 R2 上,可以通过检查 PSVersion
对象的属性值 $PSVersionTable
来验证是否至少正在运行 PowerShell 5.1.* :
$PSVersionTable.PSVersion
PSVersion
如果值小于5.1.*
,则需要通过下载并安装 Windows Management Framework 5.1 进行升级。 需下载和安装的 Windows Server 2012 R2 的相应包为 Win8.1AndW2K12R2-KB*******-x64.msu。
可以将 PowerShell 6+ 与任何受支持的系统配合使用,并通过其 GitHub 页面下载它。
准备 Windows Server,用于 Azure 文件同步
对于要用于 Azure 文件同步的每个服务器,包括故障转移群集中的每个服务器节点,请禁用 Internet Explorer 增强的安全配置。 此作仅适用于初始服务器注册。 注册服务器后,可以重新启用该设置。
如果要在 Windows Server Core 上部署 Azure 文件同步,则可以跳过此作。
打开服务器管理器。
选择 “本地服务器”。
在“ 属性 ”窗格中,选择 IE 增强型安全配置的链接。
在 Internet Explorer 增强的安全配置对话框中,选择“管理员”和“用户”下的“关闭”。 然后选择“ 确定”。
在提升的 PowerShell 会话中,运行以下代码:
$installType = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\").InstallationType
# This step is not required for Server Core
if ($installType -ne "Server Core") {
# Disable Internet Explorer Enhanced Security Configuration
# for administrators
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" -Name "IsInstalled" -Value 0 -Force
# Disable Internet Explorer Enhanced Security Configuration
# for users
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}" -Name "IsInstalled" -Value 0 -Force
# Force Internet Explorer closed, if it's open. This is required to fully apply the setting.
# Save any work you have open in the Internet Explorer browser. This command won't affect other browsers,
# including Microsoft Edge.
Stop-Process -Name iexplore -ErrorAction SilentlyContinue
}
按照 Azure 门户或 PowerShell 的说明进行操作。
部署存储同步服务
Azure 文件同步的部署首先在所选订阅的资源组中放置 存储同步服务 资源。 你将在服务器和此资源之间创建信任关系。
服务器只能注册到一个存储同步服务。 因此,建议根据需要部署尽可能多的存储同步服务以分离服务器组。 请记住,不同存储同步服务中的服务器不能彼此同步。
存储同步服务从部署它的订阅和资源组继承访问权限。 我们建议仔细检查谁有权访问该服务。 具有写入访问权限的实体可以开始从注册到此存储同步服务的服务器同步新文件集,并导致数据流向可访问的 Azure 存储。
在 Azure 门户中,选择“创建资源”。
搜索 Azure 文件同步 并在结果中选择它。
选择 创建。 在 “部署存储同步 ”选项卡上,输入以下信息:
-
名称:存储同步服务的唯一名称(每个区域)。
-
订阅:要在其中创建存储同步服务的订阅。 根据您组织的配置策略,您可能有权访问一个或多个订阅。 Azure 订阅是对每项云服务(如 Azure 文件)计费的最基本容器。
-
资源组:Azure 资源的逻辑组,例如存储帐户或存储同步服务。 可以为 Azure 文件同步创建新的资源组,也可对其使用现有资源组。建议使用资源组作为用于从逻辑上隔离组织资源的容器,例如对 HR 资源或特定项目资源进行分组。
-
位置:要在其中部署 Azure 文件同步的区域。此列表中仅提供受支持的区域。
选择 创建。
使用以下命令创建和部署存储同步服务。 将 、 和 替换为自己的值<Az_Region>
<RG_Name>
<my_storage_sync_service>
。
$hostType = (Get-Host).Name
if ($installType -eq "Server Core" -or $hostType -eq "ServerRemoteHost") {
Connect-AzAccount -UseDeviceAuthentication
}
else {
Connect-AzAccount -Environment AzureChinaCloud
}
# This variable holds the Azure region in which you want to deploy
# Azure File Sync.
$region = '<Az_Region>'
# Check to ensure that Azure File Sync is available in the selected Azure
# region.
$regions = @()
Get-AzLocation | ForEach-Object {
if ($_.Providers -contains "Microsoft.StorageSync") {
$regions += $_.Location
}
}
if ($regions -notcontains $region) {
throw [System.Exception]::new("Azure File Sync is either not available in the selected Azure Region or the region is mistyped.")
}
# The resource group in which you want to deploy the storage sync service.
$resourceGroup = '<RG_Name>'
# Check to ensure that the resource group exists; create it if it doesn't.
$resourceGroups = @()
Get-AzResourceGroup | ForEach-Object {
$resourceGroups += $_.ResourceGroupName
}
if ($resourceGroups -notcontains $resourceGroup) {
New-AzResourceGroup -Name $resourceGroup -Location $region
}
$storageSyncName = "<my_storage_sync_service>"
$storageSync = New-AzStorageSyncService -ResourceGroupName $resourceGroup -Name $storageSyncName -Location $region
按照 Azure 门户或 PowerShell 的说明进行操作。
安装 Azure 文件同步代理
Azure 文件同步代理是一个可下载包,可实现 Windows 服务器与 Azure 文件共享的同步。
如果打算将 Azure 文件同步与故障转移群集配合使用,则必须在群集中的每个节点上安装 Azure 文件同步代理。 必须注册群集中的每个节点才能使用 Azure 文件同步。
从 Microsoft下载中心下载代理。 下载完成后,双击 MSI 包以启动代理安装。
或者,若要以无提示方式安装代理,请参阅如何为新的 Azure 文件同步代理安装执行无提示安装。
在欢迎页上,选择“ 下一步”。
查看许可协议后,选中复选框以接受它。 然后选择下一步。
存储同步代理的安装路径默认填充。 你可以将其更改为所选位置。 但是,建议保留默认路径(C:\Program Files\Azure\StorageSyncAgent),以简化故障排除和服务器维护。 选择下一步以继续。
选择代理设置,然后选择“ 下一步”。
选择是否要使用Microsoft更新更新 Azure 文件同步代理,然后选择“ 下一步”。
建议启用Microsoft更新,使 Azure 文件同步保持最新状态。 Azure 文件同步代理的所有更新(包括功能更新和修补程序)都可从 Microsoft 更新进行。 我们还建议将最新更新安装到 Azure 文件同步。有关详细信息,请参阅 Azure 文件同步更新策略。
根据需要选择自动更新代理和收集数据以进行故障排除的选项。 然后选择“安装”。
安装完成后,选择“ 完成 ”关闭向导。
Azure 文件同步代理安装完成后, 服务器注册 对话框会自动打开。 在注册之前,必须具有存储同步服务。 本文的下一部分介绍如何创建存储同步服务。
运行以下 PowerShell 代码,下载适用于 OS 的相应 Azure 文件同步代理版本,并将其安装在系统上:
# Gather the OS version.
$osver = [System.Environment]::OSVersion.Version
# Download the appropriate version of the Azure File Sync agent for your OS.
if ($osver.Equals([System.Version]::new(10, 0, 20348, 0))) {
Invoke-WebRequest `
-Uri https://aka.ms/afs/agent/Server2022 `
-OutFile "StorageSyncAgent.msi"
} elseif ($osver.Equals([System.Version]::new(10, 0, 17763, 0))) {
Invoke-WebRequest `
-Uri https://aka.ms/afs/agent/Server2019 `
-OutFile "StorageSyncAgent.msi"
} elseif ($osver.Equals([System.Version]::new(10, 0, 14393, 0))) {
Invoke-WebRequest `
-Uri https://aka.ms/afs/agent/Server2016 `
-OutFile "StorageSyncAgent.msi"
} elseif ($osver.Equals([System.Version]::new(6, 3, 9600, 0))) {
Invoke-WebRequest `
-Uri https://aka.ms/afs/agent/Server2012R2 `
-OutFile "StorageSyncAgent.msi"
} else {
throw [System.PlatformNotSupportedException]::new("Azure File Sync is only supported on Windows Server 2012 R2, Windows Server 2016, Windows Server 2019 and Windows Server 2022")
}
# Install the .msi file. Start-Process is used for PowerShell blocks until the operation is complete.
# Note that the installer currently forces all PowerShell sessions closed - this is a known issue.
Start-Process -FilePath "StorageSyncAgent.msi" -ArgumentList "/quiet" -Wait
# Note that this cmdlet will need to be run in a new session based on the previous comment.
# You can remove the temp folder that contains the .msi file and the .exe installer.
Remove-Item -Path ".\StorageSyncAgent.msi" -Recurse -Force
按照 Azure 门户或 PowerShell 的说明进行操作。
将 Windows Server 注册到存储同步服务
将 Windows Server 实例注册到存储同步服务会在服务器(或群集)与存储同步服务之间建立信任关系。 只能向一个存储同步服务注册服务器。 该服务器可与与同一存储同步服务关联的其他服务器和 Azure 文件共享同步。
Note
服务器注册使用 Azure 凭据在 Windows Server 实例与存储同步服务之间创建信任关系。 随后,服务器创建并使用其自己的标识。 只要服务器保持注册状态且当前共享访问签名(SAS)令牌有效,此标识就有效。 注销服务器后,无法向服务器颁发新的 SAS 令牌。 注销服务器会删除服务器访问 Azure 文件共享的功能,并停止任何同步。
注册服务器的管理员必须是存储 同步服务的管理角色 Azure 文件同步管理员、所有者或参与者的成员。 可以在存储同步服务的 Azure 门户页上的 访问控制(IAM) 下配置此角色。
还可以区分可以注册服务器的管理员以及还可以在存储同步服务中配置同步的管理员。 为此,请创建一个自定义角色,可在其中列出仅允许注册服务器的管理员。 为自定义角色提供以下权限:
Microsoft.StorageSync/storageSyncServices/registeredServers/write
Microsoft.StorageSync/storageSyncServices/read
Microsoft.StorageSync/storageSyncServices/workflows/read
Microsoft.StorageSync/storageSyncServices/workflows/operations/read
安装 Azure 文件同步代理后, “服务器注册 ”对话框会自动打开。 如果没有,可以从其文件位置手动打开它: C:\Program Files\Azure\StorageSyncAgent\ServerRegistration.exe。 在对话框中,从列出的选项中选择 AzureChinaCloud。
如果你是云解决方案提供商,请打开“ 我以云解决方案提供商身份登录 ”的开关,并输入 租户 ID 值。 然后选择登录。
登录后,输入以下信息:
-
Azure 订阅:包含存储同步服务的订阅(如前面在 部署存储同步服务中所述)。
-
资源组:包含存储同步服务的资源组。
-
存储同步服务:要注册的存储同步服务的名称。
选择 “注册 ”以完成服务器注册。 在注册过程中,系统会提示您进行额外的登录。
$registeredServer = Register-AzStorageSyncServer -ParentObject $storageSync
按照 Azure 门户或 PowerShell 的说明进行操作。
创建同步组和云终结点
同步组定义一组文件的同步拓扑。 同步组中的终结点彼此保持同步。 同步组必须包含:
- 一个或多个 服务器终结点。 服务器终结点表示已注册的服务器上的路径。 服务器可以包含多个同步组中的服务器终结点。 可以创建任意数量的同步组,以适当地描述所需的同步拓扑。
- 一个 云终结点。 云终结点是指向 Azure 文件共享的指针。 所有服务器终结点都与云终结点同步,使云终结点成为中心。 Azure 文件共享的存储帐户必须与存储同步服务位于同一区域。
Azure 文件共享的整个同步,但有一个例外。 预配了与 NTFS 卷上的隐藏 系统卷信息 文件夹相当的特殊文件夹。 此目录被调用 。SystemShareInformation。 它包含不同步到其他终结点的重要同步元数据。 请勿使用或删除它。
Important
可对同步组中的任何云终结点或服务器终结点进行更改,并将文件同步到同步组中的其他终结点。 如果直接更改云终结点(Azure 文件共享),Azure 文件同步更改检测作业首先需要发现更改。 更改检测作业仅每 24 小时启动一次云终结点。 有关详细信息,请参阅 有关 Azure 文件和 Azure 文件同步的常见问题解答。
创建云终结点的管理员必须是包含云终结点指向的 Azure 文件共享的存储帐户的管理角色 Azure 文件同步管理员 或所有者的成员。 在存储帐户的 Azure 门户页上的 访问控制(IAM) 下配置此角色。
在 Azure 门户中,转到存储同步服务。
在左窗格中,选择 “同步>同步组”。 然后选择“ + 创建同步组”。
在打开的窗格中,输入以下信息。 完成后,选择“创建”。
-
同步组名称:输入要创建的同步组的名称。 此名称在存储同步服务中必须唯一,但它可以是逻辑的任何名称。
-
订阅:选择在 “部署存储同步服务”部分中部署存储同步服务的 订阅。
-
存储帐户:如果选择 “选择存储帐户”,将显示另一个窗格。 在那里,可以选择具有要与之同步的 Azure 文件共享的存储帐户。
-
Azure 文件共享:选择要与之同步的 Azure 文件共享的名称。
在 “同步组 ”窗格中,确认新的同步组出现并处于 “正常 ”状态。
使用同步组自动创建云终结点。 选择最近创建的同步组。 应该能够查看云终结点。
如果未显示云终结点,则其创建可能由于权限不足而失败。 请尝试使用以下步骤手动创建云终结点。 有关故障排除信息,请参阅 云终结点创建错误。
选择 “+ 添加云终结点”。
在打开的窗格中,输入要与之同步的订阅、存储帐户和文件共享。
若要创建同步组,请运行以下 PowerShell 命令。 将 <my-sync-group>
替换为同步组的所需名称。
$syncGroupName = "<my-sync-group>"
$syncGroup = New-AzStorageSyncGroup -ParentObject $storageSync -Name $syncGroupName
成功创建同步组后,可以创建云终结点。 在以下代码中,替换 <my-storage-account>
并 <my-file-share>
替换为预期值。
# Get or create a storage account with the desired name
$storageAccountName = "<my-storage-account>"
$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroup | Where-Object {
$_.StorageAccountName -eq $storageAccountName
}
if ($storageAccount -eq $null) {
$storageAccount = New-AzStorageAccount `
-Name $storageAccountName `
-ResourceGroupName $resourceGroup `
-Location $region `
-SkuName Standard_LRS `
-Kind StorageV2 `
-EnableHttpsTrafficOnly:$true
}
# Get or create an Azure file share within the desired storage account
$fileShareName = "<my-file-share>"
$fileShare = Get-AzStorageShare -Context $storageAccount.Context | Where-Object {
$_.Name -eq $fileShareName -and $_.IsSnapshot -eq $false
}
if ($fileShare -eq $null) {
$fileShare = New-AzStorageShare -Context $storageAccount.Context -Name $fileShareName
}
# Create the cloud endpoint
New-AzStorageSyncCloudEndpoint `
-Name $fileShare.Name `
-ParentObject $syncGroup `
-StorageAccountResourceId $storageAccount.Id `
-AzureFileShareName $fileShare.Name
az storagesync sync-group
使用命令创建新的同步组。 若要对所有 CLI 命令使用默认资源组,请使用 az configure。
az storagesync sync-group create --resource-group myResourceGroupName \
--name myNewSyncGroupName \
--storage-sync-service myStorageSyncServiceName \
az storagesync sync-group cloud-endpoint
使用命令创建新的云终结点:
az storagesync sync-group cloud-endpoint create --resource-group myResourceGroup \
--storage-sync-service myStorageSyncServiceName \
--sync-group-name mySyncGroupName \
--name myNewCloudEndpointName \
--storage-account mystorageaccountname \
--azure-file-share-name azure-file-share-name
创建服务器终结点
服务器终结点代表已注册服务器上的特定位置,例如服务器卷中的文件夹。 服务器终结点受以下条件约束:
- 服务器终结点必须是已注册服务器上的路径,而不是装载的共享。 不支持网络连接存储(NAS)。
- 尽管服务器终结点可以位于系统卷上,但系统卷上的服务器终结点无法使用云端分层。
- 不支持在卷上建立服务器终结点后更改路径或驱动器号。 请确保在已注册的服务器上使用最终路径。
- 已注册的服务器可以支持多个服务器终结点。 但是,同步组可以随时每个已注册的服务器只能有一个服务器终结点。 同步组中的其他服务器终结点必须位于不同的已注册的服务器上。
转到新建的同步组。
在“服务器终结点”下,选择“+添加服务器终结点”。
在 “添加服务器终结点 ”窗格中,输入以下信息:
已注册的服务器:选择要在其中创建服务器终结点的服务器或群集的名称。
路径:输入要同步到 Azure 文件共享的 Windows Server 实例上的路径。 路径可以是文件夹(例如 D:\Data)、卷根(例如 D:\)或卷装入点(例如 D:\Mount)。
云分层:本部分包括用于启用或禁用云分层的开关。 通过云分层可以将不常使用或访问的文件分层到 Azure 文件。 启用云分层时,可以设置两个策略来通知 Azure 文件同步何时对冷文件进行分层:
卷可用空间策略:在服务器终结点所在的卷上保留的可用空间量。 例如,如果在只有一个服务器终结点的卷上将卷可用空间设置为 50%,则大约一半的数据量将分层到 Azure 文件存储。 不管是否启用云分层,Azure 文件共享在同步组中始终具有完整的数据副本。
日期策略:如果未访问文件(即读取或写入),则会将文件分层到云中,以指定天数为单位。 例如,如果你注意到未访问超过 15 天的文件通常是存档文件,则应将日期策略设置为 15 天。
初始同步:此部分仅适用于同步组中的第一个服务器终结点。 (在同步组中创建多个服务器终结点时,该部分更改为 “初始下载 ”。可以选择以下行为:
若要了解详细信息,请参阅 “初始同步”部分。
若要了解详细信息,请参阅 “初始下载”部分。
若要完成添加服务器终结点,请选择“ 创建”。 现在,文件在 Azure 文件共享和 Windows Server 实例之间保持同步。
Note
在创建服务器终结点之前,Azure 文件同步将 Azure 文件共享的快照作为备份。 可以使用此快照将共享还原到创建服务器终结点之前的状态。
创建服务器终结点后,不会自动删除快照。 如果不需要,可以手动删除它。
可以通过查看 Azure 文件共享的快照并在发起程序列中检查 AzureFileSync,找到 Azure 文件同步创建的快照。
运行以下 PowerShell 命令来创建服务器终结点。 替换 <your-server-endpoint-path>
并 <your-volume-free-space>
替换为所需的值。 检查可选初始下载和初始上传策略的设置。
$serverEndpointPath = "<your-server-endpoint-path>"
$cloudTieringDesired = $true
$volumeFreeSpacePercentage = <your-volume-free-space>
# Optional property. Choose from: [NamespaceOnly], the default when cloud tiering is enabled. [NamespaceThenModifiedFiles], the default when cloud tiering is disabled. [AvoidTieredFiles], available only when cloud tiering is disabled.
$initialDownloadPolicy = "NamespaceOnly"
$initialUploadPolicy = "Merge"
# Optional property. Choose from: [Merge], the default for all new server endpoints. Content is from the server and the cloud merge. This is the right choice if one location is empty or other server endpoints already exist in the sync group. [ServerAuthoritative], the right choice when you seeded the Azure file share (for example, with Azure Data Box) and you're connecting the server location that you seeded from. It enables you to catch up the Azure file share with the changes that happened on the local server since the seeding.
if ($cloudTieringDesired) {
# Ensure that the endpoint path is not the system volume
$directoryRoot = [System.IO.Directory]::GetDirectoryRoot($serverEndpointPath)
$osVolume = "$($env:SystemDrive)\"
if ($directoryRoot -eq $osVolume) {
throw [System.Exception]::new("Cloud tiering cannot be enabled on the system volume")
}
# Create the server endpoint
New-AzStorageSyncServerEndpoint `
-Name $registeredServer.FriendlyName `
-SyncGroup $syncGroup `
-ServerResourceId $registeredServer.ResourceId `
-ServerLocalPath $serverEndpointPath `
-CloudTiering `
-VolumeFreeSpacePercent $volumeFreeSpacePercentage `
-InitialDownloadPolicy $initialDownloadPolicy `
-InitialUploadPolicy $initialUploadPolicy
} else {
# Create the server endpoint
New-AzStorageSyncServerEndpoint `
-Name $registeredServer.FriendlyName `
-SyncGroup $syncGroup `
-ServerResourceId $registeredServer.ResourceId `
-ServerLocalPath $serverEndpointPath `
-InitialDownloadPolicy $initialDownloadPolicy
}
az storagesync sync-group server-endpoint
使用命令创建新的服务器终结点:
# Create a new sync group server endpoint
az storagesync sync-group server-endpoint create --resource-group myResourceGroupName \
--name myNewServerEndpointName
--registered-server-id 91beed22-7e9e-4bda-9313-fec96c286e0
--server-local-path d:\myPath
--storage-sync-service myStorageSyncServiceNAme
--sync-group-name mySyncGroupName
# Create a new sync group server endpoint with additional optional parameters
az storagesync sync-group server-endpoint create --resource-group myResourceGroupName \
--storage-sync-service myStorageSyncServiceName \
--sync-group-name mySyncGroupName \
--name myNewServerEndpointName \
--registered-server-id 91beed22-7e9e-4bda-9313-fec96c286e0 \
--server-local-path d:\myPath \
--cloud-tiering on \
--volume-free-space-percent 85 \
--tier-files-older-than-days 15 \
--initial-download-policy NamespaceOnly [OR] NamespaceThenModifiedFiles [OR] AvoidTieredFiles
--initial-upload-policy Merge [OR] ServerAuthoritative
若要将 Azure 文件同步配置为使用防火墙和虚拟网络设置,请使用以下步骤:
在 Azure 门户中,转到要帮助保护的存储帐户。
在左侧菜单中的 “安全性 + 网络”下,选择“ 网络”。
在 “公用网络访问”下,选择 “从所选虚拟网络和 IP 地址启用”。
在 “防火墙”下,确保 地址范围 的值是服务器的 IP 地址或虚拟网络。
在 “例外”下,确保已选择 “受信任的服务”列表中的“允许 Azure 服务访问此存储帐户 ”。
选择“保存”。
可选:通过以前的版本和 VSS 使用自助服务还原
在 Windows 中,可以使用卷的服务器端卷影复制服务(VSS)快照将文件的可还原版本呈现给 SMB 客户端。 此功能支持一种功能强大的方案(通常称为 自助服务还原),直接用于信息工作者,而不是依赖于 IT 管理员的还原。
VSS 快照和还原以前版本的功能独立于 Azure 文件同步工作。但是,必须将云分层设置为兼容模式。 许多 Azure 文件同步服务器终结点可存在于同一个卷上。 必须对每个卷进行以下 PowerShell 调用,这些卷甚至有一个服务器终结点,你计划在其中使用(或正在使用)云分层:
Import-Module '<SyncAgentInstallPath>\StorageSync.Management.ServerCmdlets.dll'
Enable-StorageSyncSelfServiceRestore [-DriveLetter] <string> [[-Force]]
VSS 快照包括整个卷。 默认情况下,只要有足够的空间来存储快照,卷最多可以存在 64 个快照。 从星期一到星期五,默认快照计划每天创建两份快照。 可以使用 Windows 计划任务配置该计划。
前面的 PowerShell cmdlet 执行两项作:
- 它将指定卷上的 Azure 文件同步云分层配置为与以前的版本兼容。 此配置保证文件可以从以前的版本还原,即使文件已分层到服务器上的云。
- 启用默认 VSS 计划。 然后,可以决定是否稍后对其进行修改。
Note
如果使用 -Force
参数并且当前已启用 VSS,则 cmdlet 将覆盖当前的 VSS 快照计划,并将其替换为默认计划。 在运行 cmdlet 之前,请务必保存自定义配置。
如果在群集节点上使用 cmdlet,则还必须在群集中的所有其他节点上运行该 cmdlet。
若要查看是否启用了自助还原兼容性,可以运行以下 cmdlet:
Get-StorageSyncSelfServiceRestore [[-Driveletter] <string>]
此 cmdlet 列出了服务器上的所有卷,以及每个卷的云分层兼容天数。 此数字根据每个卷的最大可能快照数和默认快照计划自动计算。
默认情况下,提供给信息工作者的所有以前版本都可用于还原。 如果更改默认计划以创建更多快照,则情况也是如此。 但是,如果更改计划的方式导致卷上的可用快照早于兼容日期的值,则用户无法使用此较旧的快照(以前的版本)从中还原。
Note
启用自助式还原可能会影响 Azure 存储使用和帐单。 此影响仅限于服务器上当前分层的文件。 启用此功能可确保可以通过 VSS 快照条目引用云中可用的文件版本。
如果禁用该功能,Azure 存储消耗会缓慢下降,直到兼容天数的窗口通过。 无法加快该过程。
每个卷的默认 VSS 快照数(64 个),以及要采用的默认计划,导致信息工作者可以从中还原的以前版本最多 45 天。
最长天数取决于可以在卷上存储的 VSS 快照数。 如果每个卷最多 64 个 VSS 快照不是正确的设置, 请使用注册表项更改该值。
若要使新限制生效,需要重新运行 cmdlet,以便在以前启用该 cmdlet 的每个卷上启用以前的版本兼容性。 使用 -Force
标志可将每个卷的新最大 VSS 快照数考虑在内。 此作会导致新计算的兼容天数。 此更改仅对新分层文件生效,它会覆盖你所做的 VSS 计划中的任何自定义项。
默认情况下,VSS 快照最多可占用卷空间的 10%。 若要调整可用于 VSS 快照的存储量,请使用 vssadmin resize shadowstorage
该命令。
可选:主动从 Azure 文件共享召回新文件和更改的文件
Azure 文件同步具有一种模式,允许全局分布式公司先在远程区域中预填充服务器缓存,甚至在本地用户访问任何文件之前也是如此。 在服务器终结点上启用此模式时,它会导致服务器召回在 Azure 文件共享中创建或更改的文件。
Scenario
Important
紧密地跟踪服务器上 Azure 文件共享中的更改可能会增加出口流量并从 Azure 计费。 如果本地不需要召回到服务器的文件,则不建议对服务器进行不必要的召回。 仅当知道在服务器上预填充缓存且云中最近发生更改时,才使用此模式将对使用该服务器上的文件的用户或应用程序产生积极的影响。
启用服务器终结点以主动召回 Azure 文件共享中的更改
在 Azure 门户中,转到存储同步服务,选择正确的同步组,然后确定要密切跟踪 Azure 文件共享(云终结点)中的更改的服务器终结点。
在云分层部分,找到 Azure 文件共享下载 主题。 可以更改当前选择的模式,以更密切地跟踪 Azure 文件共享中的更改,并主动将其撤回到服务器。
可以通过 Set-AzStorageSyncServerEndpoint cmdlet 修改 PowerShell 中的服务器终结点属性。
# Optional parameter. Default: "UpdateLocallyCachedFiles", alternative behavior: "DownloadNewAndModifiedFiles"
$recallBehavior = "DownloadNewAndModifiedFiles"
Set-AzStorageSyncServerEndpoint -InputObject <PSServerEndpoint> -LocalCacheMode $recallBehavior
可选:在服务器终结点上通过 QUIC 使用 SMB
Azure 文件共享(云终结点)是一个完整的 SMB 终结点,能够从云或本地直接访问。 但是,想要访问云端文件共享数据的客户通常会在 Azure 虚拟机上托管的 Windows Server 实例上部署 Azure 文件同步服务器终结点。
使用其他服务器终结点而不是直接访问 Azure 文件共享的最常见原因是,直接在 Azure 文件共享上所做的更改可能需要长达 24 小时或更长时间才能发现这些更改。 在服务器终结点上所做的更改几乎立即发现,并同步到所有其他服务器和云终结点。 这种配置在有大量远程用户的环境中极为常见。
传统上,通过公共 Internet 使用 SMB 访问任何文件共享可能会很困难,因为许多组织和 Internet 服务提供商(ISP)会阻止端口 445。 这种情况包括直接托管在 Windows 文件服务器和 Azure 文件服务器上的文件共享。 可以使用 专用终结点和虚拟专用网络来解决此限制。 但是,Windows Server 2022 Azure 版本提供了额外的访问策略:通过 QUIC 传输协议使用 SMB。
基于 QUIC 的 SMB 通过端口 443 进行通信,大多数组织和 ISP 都会开放该端口以支持 HTTPS 流量。 通过 QUIC 使用 SMB 可以大大简化访问 Azure 文件同步服务器终结点上托管的文件共享所需的网络,这些文件共享适用于使用 Windows 11 或更高版本的客户端。 若要详细了解如何在 Windows Server Azure Edition 上设置和配置 QUIC 上的 SMB,请参阅基于 QUIC 的 SMB。
载入 Azure 文件同步
若要首次载入 Azure 文件同步,同时保持完整文件保真度和访问控制列表(ACL),建议执行以下步骤:
部署存储同步服务。
创建一个同步组。
使用完整数据集在服务器上安装 Azure 文件同步代理。
注册该服务器并在共享中创建一个服务器终结点。
让同步服务执行到 Azure 文件共享(云终结点)的完整上传。
初始上传完成后,在其余每台服务器上安装 Azure 文件同步代理。
在剩余的每台服务器上创建新的文件共享。
如有必要,使用云分层策略在新文件共享上创建服务器终结点。 (此步骤要求有额外的存储可供初始设置使用。)
让 Azure 文件同步代理在不实际数据传输的情况下快速还原完整命名空间。 完全命名空间同步后,同步引擎会根据服务器终结点的云分层策略填充本地磁盘空间。
确保同步完成,并根据需要测试拓扑。
将用户和应用程序重定向到新共享。
(可选)删除服务器上的任何重复共享。
如果没有额外的存储进行初始载入,并且想要附加到现有共享,则可以使用其他数据传输工具(而不是使用存储同步服务上传数据)在 Azure 文件共享中预先设定数据种子。 建议仅当可以接受停机时间时,才建议使用预种子设定方法。
确保任何服务器上的数据在载入过程中都不会发生更改。
通过 SMB 使用任何数据传输工具(例如 Robocopy 或 AzCopy over REST)与服务器数据预先设定 Azure 文件共享种子。
如果使用 Robocopy,请务必使用存储帐户访问密钥装载 Azure 文件共享。 请勿使用域标识。
如果使用 AzCopy,请务必设置适当的开关以保留 ACL 时间戳和属性。
使用指向现有共享的所需服务器终结点创建 Azure 文件同步拓扑。
让同步在所有终结点上完成对帐过程。
完成对帐后,可以打开共享进行更改。
目前,预种子设定具有以下限制:
在同步拓扑完全启动并运行之前更改服务器上的数据可能会导致服务器终结点上发生冲突。
创建云终结点后,Azure 文件同步将运行一个进程来检测云中的文件,然后再启动初始同步。完成此过程的时间因网络速度、可用带宽和文件和文件夹数量等因素而异。
对于预览版本中的粗略估计,检测过程以大约每秒 10 个文件的速度运行。 即使预种子设定运行速度很快,在云中预先设定数据种子时,获取完全运行系统的总体时间可能要长得多。
将 DFS-R 部署迁移到 Azure 文件同步
创建一个同步组来表示要替换的 DFS 复制(DFS-R)拓扑。
从 DFS-R 拓扑具有完整数据集的服务器开始迁移。 在该服务器上安装 Azure 文件同步。
注册该服务器,并为要迁移的第一个服务器创建服务器终结点。 请勿启用云分层。
让所有数据同步至你的 Azure 文件共享(云终结点)。
在剩余的每个 DFS-R 服务器上安装并注册 Azure 文件同步代理。
禁用 DFS-R。
在每个 DFS-R 服务器上创建服务器终结点。 请勿启用云分层。
确保同步完成,并根据需要测试拓扑。
停用 DFS-R。
现在可以根据需要在任何服务器终结点上启用云分层。
有关详细信息,请参阅 Azure 文件同步规划指南的 “分布式文件系统 ”部分。
相关内容