分布式文件系统(Distributed File System,DFS)可以提供文件的访问效率,提高文件的可用性并减轻服务器的负担。
通过分布式文件系统将相同的文件同时存储到网络上多台服务器后,即可拥有以下功能。
Windows Server 2012是通过文件和访问服务角色内的DFS命名空间与DFS复制这两个服务来配置DFS。下面根据下图来说明DFS中的各个组件。
从Windows Server 2008开始添加一种称为Windows Server 2008模式的域命名空间,并将以前旧版的域命名空间称为Windows 2000 S而模式。Windows Server 2008模式域命名空间支持基于访问的枚举(Access-Based Enumeration,ABE,或翻译为访问型枚举),它根据用户的权限来决定用户是否看到共享文件夹内的文件与文件夹,也就是说当用户浏览共享文件夹时,他只只能够看到有权限访问的文件与文件夹。
由图可知,此命名空间根目录是被映射到命名空间服务器内的一个共享文件夹,默认是%systemDrive%\DFSRoots\Public,它必须位于NTFS磁盘分区。
如果独立命名空间的目标服务器未加入域,则其目标映射到共享文件夹内的文件必须手动同步。
旧版Windows系统通过文件复制服务(File Replication Service,FRS)来负责DFS文件夹的复制与域控制器SYSVOL文件夹的复制。不过,现在只要域功能级别是Windows Server 2008以上,就会改由DFS复制服务来负责。
DFS可以选择以下几种拓扑方式来复制文件。
可以根据公司网络的带宽,网络的地理位置与公司的组织结构等,决定采用哪种拓扑。无论你选择了哪种拓扑,都可以自行启用或禁用两台服务器之间的连接关系,例如不想让Server2将文件复制到Server3,则可以将Server2到Server3的单向连接关系禁用。
注:上图中的各种拓扑连接关系,并不是硬件上的真正以此形状连接,而是指在复制文件时,利用这些形状描述的逻辑连接关系来复制文件。
独立命名空间服务器可以由域控,成员服务器或独立服务器来扮演,而域命名空间服务器可以由域控或成员服务器来扮演。
参与DFS复制的服务器必须位于同一个AD DS林,被复制的文件夹必须位于NTFS磁盘分区内(ReFS,FAT32与FAT都不支持。)防毒软件必须与DFS兼容,必要时请联系防毒软件厂商以便确认是否兼容。
如果要将域命名空间的模式设置为Windows Server2008模式,则域功能等级必须至少是Windows Server 2008,另外,所有的域命名空间服务器都必须至少是Windows Server2008.
我们将联系如何来创建一个下图所示的域命名空间,下图三台服务器都是Win Ser 2012 Data.而Server1是域控,Server2和3都是成员服务器,请先创建好此域环境。
图中命名空间的名称,为Public,由于是域命名空间,因此完整的名称将是\\contoso.com\public,它映射到命名空间服务器Server1的C:\DFSRoots\Public文件夹。命名空间的设置数据会被保存到AD DS与命名空间服务器Server1的内存缓冲区。另外,图中还创建了文件夹Picture,他有两个目标,分别指向Server2与Server3的共享文件夹。
各个服务器扮演的角色并不完全相同,因此所需安装的服务与功能也有所不同。
添加角色和功能-选择功能-远程服务器管理工具-角色管理工具-文件服务工具-DFS管理工具
在Server2和3上安装DFS服务:文件和存储服务-文件和iSCSI服务-DFS复制
在Server2和3上都创建C:\pictures文件夹,并将其设置为共享文件夹,假设共享名都是Pictures,将读取\写入的共享权限赋予Everyone,并且在Server2的pictures内复制一些文件,用于验证这些文件是否确实可以通过DFS机制被自动复制到Server3。
注:真实环境中应该通过适当的权限来确保安全性,此处为实验,所以设置Everyone。
注:系统默认会在命名空间服务器的%systemdrive%磁盘内创建DFSRoots\Public
共享文件夹,共享名为Public,所有用户都有只读权限,如果要更改设置,可以单击编辑设置。
创建下图所示的DFS文件夹Pictures,其两个目标分别映射到\\server2\pictures与\\server3\pictures。
客户端可以通过背景图中的预览命名空间的路径来访问映射共享文件夹内的文件。
文件夹Pictures的目标同时映射到\\Server2\Pictures与Server3共享文件夹。以后如果需要增加目标,可以单击右侧的添加文件夹目标。
如果一个DFS文件夹有多个目标,这些目标映射的共享文件夹内的文件必须同步。我们可以让这些目标之间自动复制文件来同步。不过,需要将这些目标服务器设置为同一个复制组,并作适当的设置。
注:只有在第一次执行复制工作时,DFS才会将主要成员的文件复制到其他的目标,之后的复制工作按照所选的复制拓扑进行复制。
此对话框在提醒你,如果域内有多台域控制器,则以上设置需要等一段时间才会被复制到其他域控制器,而其他参与复制的服务器,也需要一段时间才会向域控制器索取这些设置值。总而言之,参与复制的服务器需要一段时间才会开始执行复制的工作。
注:在第一次复制时,系统会将原本就存在于\\Server3\Pictures内的文件,移动到上图中的文件夹DfsPrivate\PreExisting内,不过因为DfsrPrivate是隐藏文件夹,因此如果要看到此文件夹需要显示隐藏的文件。
从第二次开始的复制操作,将按照复制拓扑来决定复制的方式,例如,如果复制拓扑被设置为交错,则当你将一个文件复制到任何一台服务器的共享文件夹后,DFS复制服务会将这个文件复制到其他所有的服务器。
如果要修改复制设置,可以通过右侧的操作窗格来更改复制设置,例如增加参与复制的服务器,添加复制文件夹,创建服务器之间的复制连接,更改复制拓扑,创建诊断报告等。
无论复制拓扑是什么,都可以自行启用或禁用两台服务器之间的连接关系,例如,如果不想让Server3将文件复制到Server2,请将Server3到Server2的单向连接关系禁用:单击链接-双击发送成员Server3-取消勾选在此连接上启用复制。
还可以通过双击下图已复制文件夹下的Pictures的方式来筛选文件或子文件夹,被筛选的文件或子文件夹将不会被复制。筛选时可以使用通配符?或*,例如*.tmp表示排除所有扩展名为.tmp的文件。
我们利用win8 客户端来说明如何访问DFS文件。计算机先映射网络驱动器。
注:如果要访问独立DFS,请将域名改成计算机名,例如\\server5\public\pictures。
如何知道访问到的文件是位于Server2还是Server3的,可以在Server2和3内分别打开计算机管理查看你的用户与计算机名显示在哪台上。
得知连接的服务器后,请将这台服务器关机,然后到Win8计算机上来访问Pictures内的文件,会发现还可以访问到Pictures内的文件,因为DFS已经重定向到另一台服务器(会稍有延迟)。
域名空间的DFS架构内可以安装多台命名空间服务器,以便提高可用性。所有命名空间服务器都必须隶属于相同的域。
首先这台新的命名空间服务器必须安装DFS命名空间服务,具体安装方法是在服务器管理器内添加角色和功能。角色界面中勾选DFS命名空间。
注:安装DFS命名空间服务时,系统会顺便自动安装DFS管理工具,让你可以通过这台服务器来管理DFS。
接下来,可以到DC1上添加命名空间服务器输入服务器名称。
当DFS客户端要访问命名空间内的资源时,域控制器或命名空间服务器会提供给客户端一个引用列表(Referrals),此列表内包含拥有此资源的目标服务器,客户端会尝试从位于列表中最前面的服务器来访问所需的资源。如果这台服务器因故障无法提供服务时,客户端会转向列表中的下一个目标服务器。
如果某台目标服务器因故必须暂停服务,例如要关机维护,此时应该避免客户端被重定向到这台服务器,也就是不要让这台服务器出现在引用列表中,设置方法L对着命名空间中对着该服务器单击禁用文件夹目标。
如何决定引用列表中目标服务器的先后顺序呢,可以通过对着命名空间右键-属性-引用。图中提供了缓存持续时间,排序方法与客户端故障回复设置。
当客户端取得引用列表后,会将这份列表缓存到客户端计算机内,以后客户端需要此份列表时,可以直接从缓冲区取得,不需要再向命名空间服务器或域控索取,如此可以提供效率。不过这份列表有一定的有效期,默认300秒。
客户端取得的引用列表中,目标服务器被排列在列表中的先后顺序如下。
注:命名空间的引用设置会被其下的文件夹与文件夹目标继承,不过还可以直接针对文件夹进行设置,并且其设置会覆盖由命名空间继承的设置。还可以针对文件夹目标设置,并且其设置会覆盖由命名空间和文件夹继承的设置。
当DFS客户端访问的首选目标服务器因故无法提供服务时,客户端会转向列表中的下一台目标服务器,即使之后原先故障的首选服务器恢复正常了,客户端仍然会继续访问这一台并不是最佳的服务器(例如,它位于另一个连接成本较高的站点)。如果希望原来哪一台首选恢复后,客户端能够自动转回到此服务器,勾选客户端故障恢复到首选目标。
注:一旦转回原来的服务器后,所有新访问的文件都会从这台首选服务器读取。不过,之前已经从非首选服务器打开的文件,仍然会继续从那台服务器读取。