DFS分布式文件系统

  1.引入DFS分布式文件系统的背景

文件系统当时面临现状:

  • 服务器磁盘空间不足;

  • 文件共享平台数量过多,用户体验差;

  • 共享平台过多,数据重复存储,造成资源浪费。

采用DFS分布式文件系统后:

  • 使用DFS分布式文件系统构建统一文件共享平台的入口,改善用户体验;

  • 使用专用存储改善磁盘空间不足的现状;

    针对不同的共享文件夹配置文件夹配额,空间达到预警后邮件通知管理员。  

    2.术语及定义

  • 命名空间服务器:用来承载命名空间。可以是成员服务器或者域控制器;

  • 命名空间根路径:命名空间根路径是命名空间的起点;

  • 文件夹:没有文件夹目标的文件夹将结构和层次结构添加到命名空间,具有文件夹目标的文件夹为用户提供实际内容;

  • 文件夹目标:文件夹目标是共享文件夹或与命名空间中的某个文件夹关联的另一个命名空间的UNC路径。文件夹目标是存储数据的位置。

    3.与AD域之间的关系

  • DFS根目录信息存储在AD中,并复制到当前域中所有DC中,以实现容错;

  • DFS主机会自动将自己的拓扑信息发布到AD中。意味着DFS的根、链接、目标都被发布到AD中,所有DC都知道DFS位于何处以及如何访问。

  • 命名空间是基于AD域来命名;添加文件夹到域名空间中;

  • DFS复制依赖Active Directory域服务进行配置,它只在域中起作用,DFS记录的更新随      AD数据库而更新。

  • 用户不需要知道某个特定的共享位于哪台服务器上

    4.复制

    4.1复制原理

 DFS复制使用远程差分压缩(RDC)的压缩算法,调用RPC的终点映射程序(端口135)。RDC检测文件中数据的插入、删除和重新排列,使DFS复制仅复制已更改文件块而非整个文件夹。

在DFS复制中,主要使用复制组、已复制文件夹和复制拓朴这三个重要组件。复制组由一组称为成员的服务器组成,这些成员参与一个或多个已复制文件夹的复制;已复制文件夹是在每个成员上保持同步的文件夹,当每个已复制文件夹中的数据发生更改时,将通过复制组成员之间的连接复制更改。所有成员之间的连接构成复制拓扑。

可以在一个复制组中创建多个已复制文件夹,复制组的拓扑、计划和带宽限制将应用到所有的已复制文件夹;另外每个已复制文件夹都可以对需要进行复制的文件和子文件夹进行筛选,从而只复制不满足筛选条件的文件和子文件夹。

 DFS复制使用许多复杂的进程来保持多个服务器上的数据同步,它主要有以下特性:

  • DFS复制是一个多主机复制引擎,在一个成员上进行的任何更改均将复制到复制组的所有其他成员上。

  • DFS 复制通过监视更新序列号(USN)日志来检测卷上的更改;DFS复制仅在文件关闭后复制更改,因此不推荐使用DFS复制来复制数据库或其他可能会长时间打开的文件;

  •  DFS 复制使用版本矢量交换协议来确定需要同步的文件,该协议通过网络为每个文件发送不到1KB的数据,用于同步发送成员和接收成员上与已更改文件关联的元数据;

  • 文件更改后,只会复制已更改的文件块,而不会复制整个文件,DFS复制通过RDC协议来确定已更改的文件块。默认情况下,RDC适用于任何大于64 KB的文件类型;

  • DFS复制可以自我修复,可以自动从USN日志覆盖、USN日志丢失或DFS复制数据库丢失中恢复;

  • DFS复制使用WMI提供程序为获取配置和监视来自DFS复制服务的信息提供接口;

  • 在发送或接收文件之前,DFS复制使用暂存文件夹来暂存文件。如果在复制过程中发生冲突,对于冲突的文件(即在多个服务器上同时更新的文件),DFS复制使用最后写入者优先的冲突解决方式;对于冲突的名称,DFS复制使用最早创建者优先的冲突解决方式。冲突中被丢弃的文件和文件夹将移至一个称为冲突和已删除文件夹的文件夹。

    4.2复制约束限制

DFS复制具有以下要求和限制:

l  活动目录架构(AD)必须更新为包含新的DFS复制对象,即DFS复制须依赖于AD域架构。

l  参与DFS复制的服务器必须运行Windows Server 2003 R2及以上版本操作系统,并且必须在每个将参与复制的服务器上安装DFS复制服务和DFS管理单元;

l  复制组中的成员服务器必须位于相同的林中;

l  已复制文件夹必须存储在NTFS卷上;一个驱动器卷最多可以包含8百万个已复制文件夹;一个服务器最多可以包含1TB的已复制文件。

l  一个复制组最多可以包含256个成员,每个服务器最多可以是256个复制组的成员;

l  每个复制组最多可以包含256个已复制文件夹;

l  每个服务器最多可以具有256个连接(例如128个传入连接和128个传出连接);

l  在每个服务器上,复制组数乘以已复制文件夹数再乘以连接数,结果必须等于或小于1024;

4.3  部署DFS复制注意事项

l  所有希望成为复制组成员的服务器都必须安装DFS Replication角色;

l  确保反病毒软件和DFS Replication能够兼容;

l  所有成员服务器必须位于相同的林,复制目前仅能在域之间工作,林之间还不能复制;

l  DFS复制不支持FAT或弹性文件系统。

5.工作流程

   以透明方式链接文件服务器和共享文件夹,然后将其映射到单个层次结构,以便可以从一个位置对其进行访问,而实际数据却分布在不同的位置。对于用户来说,只需知道根目录共享即可。方便用户操作同时也便于对共享文件的管理。

wKiom1Yg1xTTNiQ2AADd9Sb1HRw604.jpg

  • 例:client输入\\域名\Public\SoftwareS\Tools后,先由命名空间服务器上的DNS对域名做名称解析;

  • 根据用户输入的\Public,找到根命名空间服务(Namespace_Root);

  • 根据用户输入的\Tools文件夹,查看Tools上设置的目标文件夹的链接,将用户请求透明的重定向到目标文件夹所在的实际存储设备或文件服务器上;

  • 用户根据所拥有的权限访问所需资源即可。

  • 问题梳理

  • 问:在新建好单层链接的情况下,为什么不可以在该链接下再创建链接?

答:例如,若有\Public\Tools和\PublicS\Tools\share,即share文件夹是Tools的一个子文件夹。对于所有文件夹根命名空间只有一个即\ Public,所以当用户输入\Public\Tools或者时\ Public \Tools\share,DFS均会将用户的请求重定向到Tools目标文件夹所在的文件服务器或存储设备。

  1. 问:若对于文件夹Tools有两个目标文件夹(两个目标文件夹不在同一站点),分别为\\Hqfs01\Tools和\\Bmfs01\Tools, DFS是如何做选择来响应客户请求?

答:DFS首先会将用户请求重定向到与用户同一站点的文件服务器或存储设备;若所有的文件服务器或存储设备都与用户不在同一站点,则DFS会随机选择一台为用户服务。

c)       问:用户访问共享文件夹的权限设置在DFS服务器上还是目标文件服务器?

答:用户对命名空间中各个文件夹的查看权限是在DFS上设置的;而用户对目标文件夹的操作权限设置在文件服务器或存储设备上。

wKioL1Yg2NHRSYyXAACp9uN8i6M895.jpg

 

                                                图1 文件夹查看权限设置

 

wKiom1Yg2MaCNYBIAAB7l8HtdJE304.jpg

 

 

图2 设置某些组或用户的权限

8.  测试环境搭建

   以下仅是做测试,故服务器或文件夹等相关命名与以上所提及的名称不相符。重点在于测试相关功能。

8.1  主机及角色

Domain:carrie.com               根路径:carrie.com\fs

系统版本:Windows Server 2008 R2

WIN-ws2r2-1(计算机名):域控,命名空间服务器                       

MR50225479TS1:成员服务器         MR50225479TS2:成员服务器

WIN-ws2r2-1:添加AD域与DFS角色;

MR50225479TS1:添加DFS角色

MR50225479TS2:添加DFS角色

WIN-ws2r2-4:客户机(系统可为Windows 7/Server 2008 R2等等 )

角色添加过程比较容易实现,过程可参考官方文档

8.2  测试服务器网络设置

命名空间服务器(文件夹服务器)WIN-WS2R2-1(192.168.93.128)

  • 角色:身份既是域控又是命名空间服务器,添加AD域与文件系统角色,且文件系统必须是基于域而创建;

  • 网络设置:网关为物理机Vmware net8的IP地址

 

wKioL1Yg2QXTD2ROAAE1ijU1ajU847.jpg

ipconfig   /all

 

 

wKiom1Yg2Rbxpf6TAADOKlItqQw516.jpg

 

wKioL1Yg2UzgRk18AAEoKQlBdQw245.jpg

文件夹目标服务器192.168.93.129

  • 角色:文件夹目标服务器

  • 网络设置:

    wKiom1Yg2USBazgaAAEiUaQi64A792.jpg

  • 文件夹目标服务器192.168.93.130

  • 角色:文件夹目标服务器

  • 网络设置:

wKiom1Yg2VzDllUmAAEnFXNzGn4055.jpg

 

 

注:文件夹目标服务器搭建时必须基于域

8.3  文件夹、文件夹目标的建立

具体步骤参照官方文档,以下是已经建立完成的。

wKioL1Yg2ZiQmBv_AAFgrfTS-Xg648.jpg 

192.168.93.130

wKiom1Yg2ZHgFDpNAAC6PKTLueg593.jpg

 

8.4  DFS复制 

建立已复制文件夹,在复制链接上可右击选择启用或停用复制。(具体步骤参照官方文档)

9.  DFS权限设置

    DFS分布式文件系统文件夹权限设置主要有两种:共享权限和安全权限。二者权限之间取交集构成最小赋权,即为用户最终生效访问权限。

9.1  启用访问枚举

 基于访问的枚举会隐藏用户没有权限访问的文件和文件夹。您可以通过使用“DFS 管理”启用 DFS 文件夹基于访问的枚举。

若要在命名空间上启用基于访问的枚举,所有命名空间服务器必须都运行的是 Windows Server 2008 或更新的版本。另外,基于域的命名空间必须使用 Windows Server 2008 模式。有关 Windows Server 2008 模式的需求信息,请参阅选择命名空间类型。

在某些环境下,启用基于访问的枚举会导致服务器上的 CPU 使用率高且用户响应时间慢。

若要将基于访问的枚举用于 DFS 命名空间以便控制哪些组或用户可以查看哪些 DFS 文件夹,必须按照以下步骤执行操作。

  • 在命名空间上启用基于访问枚举

  • 在控制台树中的“命名空间”节点下,右键单击相应的命名空间,然后单击“属性”。

  • 单击“高级”选项卡,然后选中“对此命名空间启用基于访问权限的枚举”复选框。

wKioL1Yg2dDjoWujAAF1lIzVssU056.jpg

 

 

  • 设置用户是否有权限查看DFS 文件夹

  • 在控制台树中的“命名空间”节点下,找到要控制其可见性的包含目标的文件夹,右键单击该文件夹,然后单击“属性”。

  • 单击“高级”选项卡。

  • 单击“在 DFS 文件夹上设置显式查看权限”,然后单击“配置查看权限”。

  • 通过单击“添加”或“删除”添加或删除组或用户。

  • 若要允许用户查看 DFS 文件夹,请选择组或用户,然后选中“允许”复选框。

  • 若要对组或用户隐藏文件夹,请选择组或用户,然后选中“拒绝”复选框。

  • 设置共享权限与安全权限

权限冲突:

  • 文件和目录权限的冲突中,文件权限会最终胜出。

  • 共享与安全冲突中,取其交集

多重权限:

  • 多重权限情况下,限制性最小的权限会胜出。如,BOb属于users组,此组对文件只读,同时BOb又属于administrators组,此组对文件有完全控制权限。根据限制性最小原则,BOb具有完全控制权限。

拒绝权限:

  • deny>allow

  • 例:对于奖金表格,Managers组具有完全控制权限,Employees组具有只读权限。主管既在组Managers中,又在组Employees中。则主管具有完全控制权限,若要求不让任何Employees组的成员具有完全控制权限,则需要对Employees组中的成员在对应的权限上设置deny权限。

1)共享权限设置

在成员服务器上新建test文件夹,并对test文件夹的共享权限设置 如下时:

wKioL1Yg2eiy15S3AADcf-a6YTY337.jpg

 

 

客户端删除test文件夹时访问拒绝(只可查看,不可更改):

wKiom1Yg2drzFLLdAACSflabXX4598.jpg

在成员服务器上对test文件夹的共享权限设置如下权限时:

wKiom1Yg2e3j86pdAAD5P3AxCs4031.jpg

客户端创建和删除文件夹成功:

wKioL1Yg2iSA165XAADEhV5IJqY588.jpg

2)安全权限设置测试

成员服务器上对test文件夹安全权限做如下设置:

wKioL1Yg2jigNj9fAAEXM8hHK4o054.jpg

 

客户端访问时出现如下被拒绝:

wKiom1Yg2i6jdD8JAACWHxlAZJA677.jpg

成员服务器对test文件夹安全权限设置如下时:

wKioL1Yg2mGxRudwAAFPQqO885w457.jpg

 

删除其内的文件夹时出现如下界面(因无修改权限):

wKiom1Yg2lKS_kr6AADKkr6IjH4808.jpg

 

在test文件夹内新建文件夹时,出现如下界面:

wKioL1Yg2oWhn6QDAACPzgea-dQ429.jpg

 

  1. 10.  常见故障及规避措施

1)创建DFS复制组后,复制任务会不会立即开始?

    不会:

    因DFS的复制拓扑与复制设置必须复制到所有的域控上,并且复制组中的每个成员必须轮询最接近的域控制器以获取这些设置。所需的时间取决于活动目录复制延迟以及每个成员的长轮询间隔(60 分钟)。

2)文件系统策略是否会影响 DFS 复制?

是。不要在已复制文件夹上配置文件系统策略。文件系统策略会在每次组策略刷新的间隔重新应用 NTFS 权限。这会导致共享冲突,因为打开的文件在关闭之前不会被复制。

3)DFS 复制是否可以在没有 ××× 连接的情况下在分支机构之间进行复制?

可以,前提是存在连接分支机构的专用广域网 (WAN) 链接(不是 Internet)。但必须在外部防火墙上打开适当的端口。DFS 复制使用 RPC 终点映射程序(端口 135)及随机分配的 1024 以上的临时端口。可以使用 Dfsrdiag 命令行工具指定静态端口而不是临时端口。

4)DFS 复制能否复制使用加密文件系统加密的文件?

不能。DFS 复制不复制使用加密文件系统 (EFS) 加密的文件或文件夹。如果用户对以前复制过的文件进行加密,则 DFS 复制会将该文件从复制组的所有其他成员中删除。这可以确保该文件唯一可用的副本是服务器上的加密版本。

5)DFS 复制是否需要 DFS 命名空间?

不需要。DFS 复制和 DFS 命名空间可以单独使用,也可以结合使用。此外,DFS 复制还可用来复制独立 DFS 命名空间,但 RFS 不可以。

6)DFS 复制是否要求服务器之间的时间同步?

不要求。DFS 复制未明确要求服务器之间的时间同步。但 DFS 复制要求服务器时钟严格匹配。必须将服务器时钟设置在彼此相差五分钟以内(默认),Kerberos 身份验证才能正常工作。例如,DFS 复制使用时间戳来确定发生冲突时哪个文件优先。准确的时间对于垃圾回收、计划及其他功能也很重要。

7)DFS 复制有哪些支持限制?

以下列表提供了一组可伸缩性指南,已由 Microsoft 在 Windows Server 2008 R2 和 Windows Server 2008 上进行了测试:

  • 服务器上所有已复制文件的大小:10 TB。

  • 卷上所有已复制文件的数量:800 万个。

  • 最大文件大小:64 GB。

8)何时不应使用 DFS 复制?

多个用户在不同的服务器上同时更新或修改相同文件的环境下,不要使用 DFS 复制。否则会导致 DFS 复制将冲突的文件副本移动至隐藏的 DfsrPrivate\ConflictandDeleted 文件夹。

9)客户访问共享文件时,显示无权访问的排错过程?

故障可能出现在三个方面:

客户端:若只有单个用户出现访问失败,则故障有可能为

  • 本地网络是否联通

  • 是否选择Microsoft网络的文件和打印机共享

  • IPC服务:身份验证;

  • server服务:支持计算机通过网络的文件、打印和命名管道共享;

  • Computer Browser服务:保存和交换局域网内计算机的NetBIOS名称和共享资源列表,当一个程序需要访问另一台计算机时,它会从这个列表里查询目标计算机,一旦该服务禁止,则查不到;

  • TCP/IP  NetBIOS  Helper  Service:提供TCP/IP 服务上的NetBIOS和网络上客户端的NetBIOS名称解析的支持,从而使用户能够共享文件,打印和登录到网络。

  • 上床文件的大小是否超额

  • 子文件夹可能做了隔离

DFS命名空间服务器:

  • 域控上DNS解析故障,srv资源定位有误;

  • 权限设置allow、deny

DFS成员服务器:

  • 共享权限

  • 安全权限(NTFS权限)

  • 检查SMB共享协议服务,端口