举例来说,我有 3 个 DFS 服务器,它们全部位于不同的子网上,每个子网上都有一个权威的初始共享(\\svr1\accounts
,\\svr2\sales
,\\svr3\hr
)。
我已经在所有服务器(网格)上启用了复制,以便每台服务器上都有 3 个共享(即 svr1 将拥有 3 个共享accounts
、sales
和hr
,其他 2 台服务器也是如此)。
由于每个文件夹都有多个源共享,客户端如何知道要连接的共享(我们希望连接到本地文件服务器,而不是通过慢速 VPN 连接到文件服务器)。
在上述场景中,DFS-R 如何工作?我看到两种可能性:
我可以使用根命名空间,
\\mydomain.local\file\accounts
即让它自动重定向到本地服务器吗(基于延迟或活动目录站点子网)或者我必须手动将其指向本地服务器
\\svr1\accounts
(即,如果 svr1 关闭,我将失去连接)?
如果是第一种可能性,那么需要进行什么配置吗?
答案1
免责声明:我正在工作中策划我的第一个 DFS 实现,因此我的理解来自书籍(特别是Windows Server 2012:从内到外(在本例中)而不是练习。但我对答案非常感兴趣。
假设我理解你的问题,我认为你问的是两个离散的问题:
- DFS 如何复制?
- 什么决定了给定客户端连接到哪个服务器?
根据Windows Server 2012:从内到外(大约第 1244 页左右),当客户请求转介基于域的命名空间,它会向域控制器(此处称为 DC)寻求指导。然后,DC 会根据存储在多个内存缓存中的数据做出决定,这些数据描述了 DFS 和站点结构。
首先,DC 检查引用缓存以获取有关所请求对象的信息。如果未找到相关对象,DC 将查找“该命名空间的 DFS 对象”以生成引用对象并传递给客户端。引用对象包含客户端可以使用的 UNC 路径列表。
DC 轮询的用于制定引用对象的缓存包括站点成本缓存和客户和目标站点缓存以及其他一些。目前尚不清楚的是,引荐对象是否还包含从这些来源收集的信息,以便客户端可以从 UNC 路径中选择最佳路径,或者服务器是否根据其对“接近度”的评估来限制返回给客户端的 UNC 路径。
进一步说,听起来站点配置,特别是链接权重,可以告知“接近度”的计算。
最后,我认为手动将客户端指向特定服务器会破坏实施 DFS 的主要原因之一;即:为客户端添加一个抽象层,以便查找/访问文件共享,而不管该共享位于哪个服务器上。(这还允许管理员在必要时移动所述共享,同时限制重新配置登录脚本等的需要。)
附言:抱歉说了这么多;我刚回到家,必须研究一下这些东西。
编辑:所以,基本上,我认为您需要做的是确保为每个...嗯,您拥有的站点配置一个站点。例如:您可能希望为通过 WAN 进行复制的每台服务器创建一个站点。此外,如果这是基于域的 DFS 实现,您需要考虑您的 DC 位于何处 - 因为客户端将向最近的 DC 询问 UNC 推荐。
答案2
DFS 命名空间会根据内部评分自动选择“理想”端点。理想情况下,这意味着它将始终选择距离您最近且位于同一子网的服务器。但是,根据我的经验,这并不总是发生。
命名空间和复制是两个相互配合的不同事物,因此您可以在没有可见命名空间的情况下进行复制,也可以在没有复制方面的情况下进行命名空间复制。不过,在这种情况下,我会使用根命名空间进行映射。