管理已向 Azure 文件同步注册的服务器
借助 Azure 文件同步,既可将组织的文件共享集中在 Azure 文件中,又不失本地文件服务器的灵活性、性能和兼容性。 它通过将 Windows Server 转换为 Azure 文件共享的快速缓存来实现这一点。 你可以使用 Windows Server 上的任意可用协议在本地访问数据(包括 SMB、NFS 和 FTPS),并且可以在世界各地获取所需的缓存数。
下面的文章说明如何向存储同步服务注册服务器并进行管理。 若要了解如何部署端到端的 Azure 文件同步,请参阅如何部署 Azure 文件同步。
向存储同步服务注册/注销服务器
向 Azure 文件同步注册服务器可在 Windows Server 和 Azure 之间建立信任关系。 这种关系随后可用于创建服务器上的服务器终结点,该终结点表示应与 Azure 文件共享(也称为云终结点)同步的特定文件夹。
必备条件
若要向存储同步服务注册服务器,首先必须确保服务器满足以下先决条件:
服务器必须运行支持的 Windows Server 版本。 有关详细信息,请参阅 Azure 文件同步系统要求和互操作性。
确保已部署存储同步服务。 有关如何部署存储同步服务的详细信息,请参阅如何部署 Azure 文件同步。
确保服务器已连接到 Internet,并且 Azure 可以访问。
使用服务器管理器 UI 禁用适用于管理员的 IE 增强的安全配置。
确保服务器上安装了 Azure PowerShell 模块。 如果服务器是故障转移群集的成员,则群集中的每个节点都需要 Az 模块。 有关如何安装 Az 模块的更多详细信息可以在安装和配置 Azure PowerShell 上找到。
注意
我们建议使用最新版本的 Az PowerShell 模块注册/注销服务器。 如果 Az 包之前已安装在此服务器上(并且此服务器上的 PowerShell 版本是 5.* 或更高版本),则可以使用
Update-Module
cmdlet 更新此包。如果你在环境中利用网络代理服务器,请在服务器上为要利用的同步代理配置代理设置。
- 确定代理 IP 地址和端口号
- 编辑以下这两个文件:
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
- C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
- 在上面两个文件中的 /System.ServiceModel 下添加图 1(此部分下方)中的行,将 127.0.0.1:8888 更换为正确的 IP 地址(替换 127.0.0.1)和正确的端口号(替换 8888):
- 通过命令行设置 WinHTTP 代理设置:
- 显示代理:netsh winhttp show proxy
- 设置代理:netsh winhttp set proxy 127.0.0.1:8888
- 重置代理:netsh winhttp reset proxy
- 如果这在安装了代理之后进行设置,则重启我们的同步代理:net stop filesyncsvc
Figure 1:
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true">
<proxy autoDetect="false" bypassonlocal="false" proxyaddress="http://127.0.0.1:8888" usesystemdefault="false" />
</defaultProxy>
</system.net>
向存储同步服务注册服务器
服务器必须先向存储同步服务注册,然后才能在 Azure 文件同步同步组中用作服务器终结点。 服务器一次只能向一个存储同步服务注册。
安装 Azure 文件同步代理
启动 Azure 文件同步代理安装程序。
请务必使用 Microsoft 更新启用 Azure 文件同步代理更新。 这非常重要,因为服务器包的关键安全修补和功能增强通过 Microsoft 更新提供。
如果以前尚未注册服务器,则服务器注册 UI 会在完成安装之后立即弹出。
重要
如果服务器是故障转移群集的成员,则必须在群集中的每个节点上安装 Azure 文件同步代理。
使用服务器注册 UI 注册服务器
如果服务器注册 UI 在完成 Azure 文件同步代理安装之后未立即启动,则通过执行
C:\Program Files\Azure\StorageSyncAgent\ServerRegistration.exe
手动启动它。选择“登录”以访问你的 Azure 订阅。
从对话框中选取正确的订阅、资源组和存储同步服务。
系统可能会提示你再次登录到 Azure 以完成该过程。
重要
如果服务器是故障转移群集的成员,则每台服务器都需要运行服务器注册。 在 Azure 门户中查看已注册的服务器时,Azure 文件同步会自动将每个节点识别为相同故障转移群集的成员,并相应地将它们分组在一起。
使用 PowerShell 注册服务器
也可以通过 PowerShell 执行服务器注册。
Register-AzStorageSyncServer -ResourceGroupName "<your-resource-group-name>" -StorageSyncServiceName "<your-storage-sync-service-name>"
向存储同步服务注销服务器
向存储同步服务注销服务器需要几个步骤。 让我们看看如何正确注销服务器。
警告
除非 Azure 工程师明确指示,否则请勿尝试通过取消注册和注册服务器,或者删除并重新创建服务器终结点来对同步、云分层或 Azure 文件同步的任何其他方面的问题进行故障排除。 取消注册服务器和删除服务器终结点是一种破坏性操作,并且在重新创建注册的服务器和服务器终结点后,具有服务器终结点的卷上的分层文件将不会“重新连接”到 Azure 文件共享上的其位置,这将导致同步错误。 存在于服务器终结点命名空间之外的分层文件可能会永久丢失。 即使从未启用云分层,分层文件也可能存在于服务器终结点中。
(可选)召回所有分层数据
如果希望当前分层的文件在删除 Azure 文件同步后可用(即,这是一个生产环境,而不是测试环境),请召回每个包含服务器终结点的卷上的所有文件。 对所有服务器终结点禁用云分层,然后运行以下 PowerShell cmdlet:
Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll"
Invoke-StorageSyncFileRecall -Path <a-volume-with-server-endpoints-on-it>
警告
如果承载服务器终结点的本地卷空间不足,无法召回所有分层数据,则 Invoke-StorageSyncFileRecall
cmdlet 会失败。
从所有同步组中删除服务器
必须删除服务器的所有服务器终结点,然后才能在存储同步服务中注销该服务器。 可通过 Azure 门户执行此操作:
导航到在其中注册服务器的存储同步服务。
在存储同步服务中的每个同步组中,删除此服务器的所有服务器终结点。 通过在“同步组”窗格中右键单击相关服务器终结点来执行此操作。
也可使用简单的 PowerShell 脚本来执行此操作:
Connect-AzAccount -Environment AzureChinaCloud
$storageSyncServiceName = "<your-storage-sync-service>"
$resourceGroup = "<your-resource-group>"
Get-AzStorageSyncGroup -ResourceGroupName $resourceGroup -StorageSyncServiceName $storageSyncServiceName | ForEach-Object {
$syncGroup = $_;
Get-AzStorageSyncServerEndpoint -ParentObject $syncGroup | Where-Object { $_.ServerEndpointName -eq $env:ComputerName } | ForEach-Object {
Remove-AzStorageSyncServerEndpoint -InputObject $_
}
}
注销服务器
现在已召回所有数据并从所有同步组中删除了服务器,你可以注销服务器了。
在 Azure 门户中,导航到存储同步服务并选择“同步”>“已注册服务器”。
右键单击要注销的服务器,然后选择“注销服务器”。
使用 PowerShell 取消注册服务器
还可以通过使用 PowerShell 的 Unregister-AzStorageSyncServer
cmdlet 来取消注册服务器。
警告
取消注册服务器将会导致级联删除服务器上的所有服务器终结点。 只应在确定了不会再同步该服务器上任何路径的情况下才运行此 cmdlet。
$RegisteredServer = Get-AzStorageSyncServer -ResourceGroupName "<your-resource-group-name>" -StorageSyncServiceName "<your-storage-sync-service-name>"
Unregister-AzStorageSyncServer -Force -ResourceGroupName "<your-resource-group-name>" -StorageSyncServiceName "<your-storage-sync-service-name>" -ServerId $RegisteredServer.ServerId
确保 Azure 文件同步与数据中心能够良好地并行运作
由于 Azure 文件同步不是在你的数据中心运行的唯一服务,因此你可能需要限制 Azure 文件同步的网络和存储使用情况。
重要
限制设置过低将影响 Azure 文件同步同步和召回的性能。
设置 Azure 文件同步网络限制
可通过使用 StorageSyncNetworkLimit
cmdlet 限制 Azure 文件同步的网络利用率。
注意
网络限制不适用于以下场景:
- 访问分层文件时。
- 同步已注册服务器和存储同步服务之间交换的元数据。
由于此网络流量不受限制,因此 Azure 文件同步可能会超过配置的网络限制。 建议监视网络流量,并调整限制以考虑未限制的网络流量。
例如,可创建新的中止值来确保 Azure 文件同步在工作周的上午 9 点到下午 5 点(17:00 点)之间不超过 10 Mbps:
Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll"
New-StorageSyncNetworkLimit -Day Monday, Tuesday, Wednesday, Thursday, Friday -StartHour 9 -EndHour 17 -LimitKbps 10000
注意
若要应用 24 小时的网络限制,请对 -StartHour
和 -EndHour
参数使用 0。
可以使用以下 cmdlet 查看限制:
Get-StorageSyncNetworkLimit # assumes StorageSync.Management.ServerCmdlets.dll is imported
若要删除网络限制,请使用 Remove-StorageSyncNetworkLimit
。 例如,可使用以下命令删除所有网络限制:
Get-StorageSyncNetworkLimit | ForEach-Object { Remove-StorageSyncNetworkLimit -Id $_.Id } # assumes StorageSync.Management.ServerCmdlets.dll is imported
使用 Windows Server 存储 QoS
如果 Azure 文件同步在 Windows Server 虚拟主机上运行的虚拟机中进行托管,可以使用存储 QoS(存储服务质量)来调整存储 IO 消耗量。 可以将存储 QoS 策略设置为最大值(或限制,例如上例中 StorageSyncNetworkLimit
的强制实施方式)或最小值(或预留)。 如果设置为最小值而非最大值,则允许 Azure 文件同步在没有其他工作负载使用的情况下突发使用可用的存储宽带。 有关详细信息,请参阅存储服务质量。