分布式文件系统

分布式文件系统(Distributed File System,DFS)能够提供文件的访问效率,提升文件的可用性并减轻服务器的负担。 前端

分布式文件系统概述

经过分布式文件系统将相同的文件同时存储到网络上多台服务器后,便可拥有如下功能。 缓存

  • 提供文件的访问效率:当客户端经过DFS访问文件时,DFS会引导客户端从最接近客户端的服务器来访问文件,让客户端快速访问到所需的文件。实际上,DFS是提供客户端一份服务器列表,这些服务器内都有客户端所须要的文件,可是DFS会将最接近客户端的服务器,例如客户端同一个AD DS站点(Active Directory Domain Services Site),放在列表最前面,以便让客户端优先从这台服务器访问文件。
  • 提升文件的可用性:即便位于服务器列表中最前端的服务器意外发生了故障,客户端仍然能够从列表中的下一台服务器获取所需的文件,也就是说DFS提供排错功能。
  • 服务器负载平衡功能:每一个客户端得到列表中的服务器排列顺序可能都不相同,所以他们访问的服务器也可能不相同,也就是说不一样客户端可能会从不一样服务器来访问所需文件,从而减轻服务器的负担。

DFS的架构

Windows Server 2012是经过文件和访问服务角色内的DFS命名空间与DFS复制这两个服务来配置DFS。下面根据下图来讲明DFS中的各个组件。 安全

  1. DFS命名空间:能够经过DFS命名空间将位于不一样服务器内的共享文件夹集合在一块儿,并以一个虚拟文件夹的树状结构呈现给客户端。DFS命名空间分为如下两种。
  • 域命名空间:它将命名空间的设置数据存储到AD DS与命令空间服务器的内存缓冲区。若是建立多台命名空间服务器,则它还具有命名空间的排错功能。

    从Windows Server 2008开始添加一种称为Windows Server 2008模式的域命名空间,并将之前旧版的域命名空间称为Windows 2000 S而模式。Windows Server 2008模式域命名空间支持基于访问的枚举(Access-Based Enumeration,ABE,或翻译为访问型枚举),它根据用户的权限来决定用户是否看到共享文件夹内的文件与文件夹,也就是说当用户浏览共享文件夹时,他只只可以看到有权限访问的文件与文件夹。 服务器

  • 独立命名空间:它将命名空间的设置数据存储到命名空间服务器的注册表(Registry)与内存缓冲区。因为独立命名空间只可以有一台命名空间服务器,所以不具有命名空间的排错功能,除非采用服务器群集。
  1. 命名空间服务器:用来掌控命名空间(Host Namespace)的服务器。若是是域命名空间,则这台服务器能够是成员服务器或域控制器,并且你能够设置多台命名空间服务器;若是是独立命名空间,则这台服务器能够是成员服务器,与控制器或独立服务器,不过只可以有一台命名空间服务器。
  2. 命名空间根目录:它是命名空间的起始点,如上图,此根目录的名称为public,命名空间的名称为 \\contoso.com\public,并且它是一个域命名空间,其名称以郁闷开头。若是这是一个独立命名空间,则命名空间的名称会以计算机名开头,例如 \\server1\public.

    由图可知,此命名空间根目录是被映射到命名空间服务器内的一个共享文件夹,默认是%systemDrive%\DFSRoots\Public,它必须位于NTFS磁盘分区。 网络

  3. 文件夹与文件夹目标:这些虚拟文件夹的目标分别映射到其余服务器内的共享文件夹。当客户端来浏览文件夹时,DFS会将客户端重定向到文件夹目标所映射的共享文件夹。如图共有3个文件夹,分别说明以下。
  • Pictures:此文件夹有两个目标,分别映射到服务器Server2的C:\Pictures与Server3的C:\Pictures共享文件夹,它具有文件夹的排错功能,例如客户端在读取文件夹Pictures内的文件时,即便Server2发生故障,它仍然能够从Server3的C:\Pictures读取文件。固然Server2的C:\Pictures与Server3的C:\Pictures内存储的文件应该要相同(同步)。
  • Database:此文件夹有两个目标,分别映射到服务器Server3的C:\database与server4的d:\database共享文件夹,它也具有文件夹的排错功能。
  • Reports:此文件夹只有一个目标,映射到服务器Server4的D:\Reports共享文件夹,因为目标只有一个,所以不具有排错功能。
  1. DFS复制:图中文件夹Pictures的两个目标映射到的共享文件夹,其中提供给客户端的文件必须同步,而这个同步操做可由DFS复制服务自动运行。DFS复制服务使用一个称为远程差别压缩的压缩演算技术,它可以检测文件改动的地方,所以复制文件时仅会复制有改动的区域,而不是整个文件,这样能够下降网络的负担。

    若是独立命名空间的目标服务器未加入域,则其目标映射到共享文件夹内的文件必须手动同步。 架构

    旧版Windows系统经过文件复制服务(File Replication Service,FRS)来负责DFS文件夹的复制与域控制器SYSVOL文件夹的复制。不过,如今只要域功能级别是Windows Server 2008以上,就会改由DFS复制服务来负责。 dom

复制拓扑

DFS能够选择如下几种拓扑方式来复制文件。 分布式

  • 集散(Hub and Spoke):它将一台服务器看成中枢,并建立与其余全部服务器(支点)之间的链接。文件是从中枢复制到全部的支点,而且也会从支点复制到中枢。支点之间并不会直接相互复制文件。
  • 全交错(Full Mesh):它会建立全部服务器之间的相互链接,文件会从每一个服务器之间复制到其余全部的服务器。
  • 自定义拓扑:能够自行建立各个服务器之间的逻辑链接关系,也就是自行指定服务器,只有被指定的服务器之间才会复制文件。

能够根据公司网络的带宽,网络的地理位置与公司的组织结构等,决定采用哪一种拓扑。不管你选择了哪一种拓扑,均可以自行启用或禁用两台服务器之间的链接关系,例如不想让Server2将文件复制到Server3,则能够将Server2到Server3的单向链接关系禁用。 ide

注:上图中的各类拓扑链接关系,并非硬件上的真正以此形状链接,而是指在复制文件时,利用这些形状描述的逻辑链接关系来复制文件。 工具

DFS的系统需求

独立命名空间服务器能够由域控,成员服务器或独立服务器来扮演,而域命名空间服务器能够由域控或成员服务器来扮演。

参与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的相关组件

各个服务器扮演的角色并不彻底相同,所以所需安装的服务与功能也有所不一样。

  • Server1:图中Server1是命名空间服务器,它须要安装DFS命名空间服务(DNS Namespace service),不过由于这台计算机同时也是域控,而域控默认会自动安装与启用这个服务,所以不须要再手动安装,咱们要利用这台服务器来管理DFS,所以须要自行安装DFS管理工具。
  • Server2与Server3:这两台目标服务器须要相互复制Pictures共享文件夹内的文件,所以他们都须要安装DFS复制服务。安装DFS复制服务时,系统会顺便自动安装DFS管理工具,让你能够在Server2和Server3上管理DFS。

在Server1上安装DFS管理工具

添加角色和功能-选择功能-远程服务器管理工具-角色管理工具-文件服务工具-DFS管理工具

在Server2与Server3上安装所需的DFS组件

在Server2和3上安装DFS服务:文件和存储服务-文件和iSCSI服务-DFS复制

在Server2与Server3上建立共享文件夹

在Server2和3上都建立C:\pictures文件夹,并将其设置为共享文件夹,假设共享名都是Pictures,将读取\写入的共享权限赋予Everyone,而且在Server2的pictures内复制一些文件,用于验证这些文件是否确实能够经过DFS机制被自动复制到Server3。

注:真实环境中应该经过适当的权限来确保安全性,此处为实验,因此设置Everyone。

建立新的命名空间

  1. 在DC1的DFS管理页面中单击命名空间右侧的新建命名空间。

  1. 选择DC1看成命名空间服务器

  1. 设置命名空间名称(例如Public)

注:系统默认会在命名空间服务器的%systemdrive%磁盘内建立DFSRoots\Public

共享文件夹,共享名为Public,全部用户都有只读权限,若是要更改设置,能够单击编辑设置。

  1. 选择域命名空间,默认会选择Windows Server 2008模式。因为域名为contoso.com,所以网站的命名空间名将是\\contoso.com\public

  1. 检查设置无误有单击建立

  1. 完成后的界面

建立文件夹

建立下图所示的DFS文件夹Pictures,其两个目标分别映射到\\server2\pictures\\server3\pictures

建立文件夹Pictures,并将目标映射到\\Server2\Pictures

  1. 单击新建文件夹

  1. 设置文件夹名称,点击添加输入文件夹目标的路径。

客户端能够经过背景图中的预览命名空间的路径来访问映射共享文件夹内的文件。

添加另外一个目标,并将其映射到\\Server4\Pictures

  1. 继续单击添加来设置文件夹的新目标路径

  1. 选择否,下后门复制组与复制设置不买在说明两个目标之间的复制设置

  1. 下图为完成后的界面

文件夹Pictures的目标同时映射到\\Server2\Pictures与Server3共享文件夹。之后若是须要增长目标,能够单击右侧的添加文件夹目标。

复制组与复制设置

若是一个DFS文件夹有多个目标,这些目标映射的共享文件夹内的文件必须同步。咱们可让这些目标之间自动复制文件来同步。不过,须要将这些目标服务器设置为同一个复制组,并做适当的设置。

  1. 单击文件夹Pictures右侧的复制文件夹

  1. 单击下一步,采用默认的复制组名称和文件夹名称(或自行设置名称)。

  1. 下面会列出有资格参与复制的服务器

  1. 选择主要成员(例如Server2),当DFS第一次开始执行复制文件的操做时,会将这台主要成员内的文件复制到其余全部目标。

注:只有在第一次执行复制工做时,DFS才会将主要成员的文件复制到其余的目标,以后的复制工做按照所选的复制拓扑进行复制。

  1. 选择复制拓扑后单击完成(必须有3台及以上的服务器参与复制,才能够选择集散拓扑)。

  1. 能够选择全天候,使用完整的带宽进行复制。也能够经过在指定日期和时间内复制进一步设置

  1. 确认设置无误后单击建立

  1. 单击肯定

此对话框在提醒你,若是域内有多台域控制器,则以上设置须要等一段时间才会被复制到其余域控制器,而其余参与复制的服务器,也须要一段时间才会向域控制器索取这些设置值。总而言之,参与复制的服务器须要一段时间才会开始执行复制的工做。

  1. 因为咱们的Server2为主要成员,所以稍后当DFS第一次执行复制操做时,会将\\Server2\Pictures内的文件复制到\\Server3\Pictures。下图是Server3已经复制完成。

注:在第一次复制时,系统会将本来就存在于\\Server3\Pictures内的文件,移动到上图中的文件夹DfsPrivate\PreExisting内,不过由于DfsrPrivate是隐藏文件夹,所以若是要看到此文件夹须要显示隐藏的文件。

从第二次开始的复制操做,将按照复制拓扑来决定复制的方式,例如,若是复制拓扑被设置为交错,则当你将一个文件复制到任何一台服务器的共享文件夹后,DFS复制服务会将这个文件复制到其余全部的服务器。

复制拓扑与计划设置

若是要修改复制设置,能够经过右侧的操做窗格来更改复制设置,例如增长参与复制的服务器,添加复制文件夹,建立服务器之间的复制链接,更改复制拓扑,建立诊断报告等。

不管复制拓扑是什么,均可以自行启用或禁用两台服务器之间的链接关系,例如,若是不想让Server3将文件复制到Server2,请将Server3到Server2的单向链接关系禁用:单击连接-双击发送成员Server3-取消勾选在此链接上启用复制

还能够经过双击下图已复制文件夹下的Pictures的方式来筛选文件或子文件夹,被筛选的文件或子文件夹将不会被复制。筛选时可使用通配符?或*,例如*.tmp表示排除全部扩展名为.tmp的文件。

从客户端测试DFS功能是否正常

咱们利用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秒。

设置引用列表中目标服务器的前后顺序

客户端取得的引用列表中,目标服务器被排列在列表中的前后顺序以下。

  1. 若是目标服务器与客户端位于同一个AD DS站点,则此服务器会被列在列表中的最前面,若是有多台服务器,这些服务器会被随机排列在最前面。
  2. 若是目标服务器与客户端位于不一样AD DS站点,则这些服务器会被排列在前述服务器(与客户端同一个站点的服务器)以后,并且这些服务器之间有如下排列方法。
  • 最低成本(lowest cost):若是这些服务器分别位于不一样的AD DS站点,则以站点链接成本最低的优先。若是成本相同,则随机排列。
  • 随机顺序(random order):不管目标服务器位于哪一个AD DS站点内,都已随机顺序来排列这些服务器。
  • 排除客户端站点以外的目标(exclude targets outside of client's site):只要目标服务器跟客户端位于不一样的AD DS站点,就不将这些服务器列于引用列表内。

注:命名空间的引用设置会被其下的文件夹与文件夹目标继承,不过还能够直接针对文件夹进行设置,而且其设置会覆盖由命名空间继承的设置。还能够针对文件夹目标设置,而且其设置会覆盖由命名空间和文件夹继承的设置。

客户端故障回复

当DFS客户端访问的首选目标服务器因故没法提供服务时,客户端会转向列表中的下一台目标服务器,即便以后原先故障的首选服务器恢复正常了,客户端仍然会继续访问这一台并非最佳的服务器(例如,它位于另外一个链接成本较高的站点)。若是但愿原来哪一台首选恢复后,客户端可以自动转回到此服务器,勾选客户端故障恢复到首选目标

注:一旦转回原来的服务器后,全部新访问的文件都会从这台首选服务器读取。不过,以前已经从非首选服务器打开的文件,仍然会继续从那台服务器读取。