windows2008之DFS分布式文件系统-陈英宏

windows2008之DFS分布式文件系统-陈英宏
windows2008之DFS分布式文件系统-陈英宏

一、分布式文件系统概述:

文件服务的必要性:数据可能以静态文件的形式存在,例如办公文档、图像信息以及电子表格等;也可能以数据库、事件日志、音频、视频数据流等形式存在。在这些情况下,信息都是作为文件集的形式存在并且允许管理。随着时间的推移,存储和维护的数据越来越多,查找和访问数据困难越来越大,文件集中管理的需求越来越迫切。

Windows2008的文件服务:Windows Server 2008的文件服务是Windows管理体系架构中重要的组成部分,文件服务做为WINDOWS2008的一个基本角色,在功能上有了本质的提升,同时在保证文件安全方面也有了质的飞跃。文件服务提供了有助于存储管理、启用文件复制、管理共享文件夹、确保快速搜索文件以及启用对UNIX客户端计算机进行访问的技术。Windows Server 2008的文件服务包括分布式文件系统(DFS)、磁盘配额、文件屏蔽等几个部分

安装文件服务:在安装Windows Server 2008时,文件服务没有作为必选组件安装,需要网络管理员根据实际情况定制安装。启动server manager后,选择“角色”功能选项,单击“添加角色”超链接,启动“添加角色”向导,在“选择服务器角色”对话框的“角色”列表中选择“文件服务”,如下图所示。根据向导提示继续安装文件服务。Windows Server 2008中,将文件服务器、分布式文件系统、文件服务器资源管理器、网络文件系统服务(NFS)以及Windows搜索服务集成在一起,这些服务均属于文件系统中的一部分

文件服务角色安装完毕后,在“管理工具”中就会增加:文件服务器管理器、dfs management 等与文件服务有关的管理工具。

分布式文件系统:(DFS)作为一种服务,使得网网管员可以把局域网中不同文件服务器上的共享文件夹组织在一起,构建成一个目录逻辑树。用户不必知道这些共享文件夹到底在哪台服务器上,也不必一一搜索并映射他们,只需访问共享的DFS根目录,就能够很轻松地访问分布在网络上的文件或文件夹。

通过分布式文件系统(DFS)将相同的文件同时存储到网络上多台服务器后,便可以具备以下的功能。

1)提高文件的访问效率:当客户端通过DFS来访问文件时,DFS会引导客户端从离客户端最近的服务器来访问文件,如此便可提高文件的访问效率。

实际上DFS是提供客户端一份服务器列表(引用列表),这些服务器内都有客户端所需要的文件,但是DFS会将最接近客户端的服务器,例如跟客户端同一个AD DS站点放在列表最前面,以便让客户端优先从这台服务器来访问文件。

2)提高文件的可用性:即使位于服务器列表中最前面的服务器发生意外故障,客户端仍然会从列表中的下一台服务器来取得所需的文件,也就是说DFS提供故障转移功能。

3)服务器负载平衡功能:每一客户端所获得的列表中的服务器先后顺序都不相同,因此它们所访问的服务器也可能不相同,也就是说不同客户端可能会从不同服务器来访问所需文件,因此可以减轻单一服务器的负担。

DFS的架构:

Windows server 2008是通过文件服务角色内的DFS命名空间和DFS复制这两个服务来创建DFS,

DFS命名空间(DFS namespace)

可以通过DFS命名空间来将位于不同服务器内的共享文件夹组合在一起同,并以一个虚拟文件夹的树状对结构呈现给客户端。DFS命名空间分为以下两种:

域命名空间(domain-base namespace):它将命名空间的设置数据存储到AD和命名空间服务器的内存缓冲区内。如果已创建多台命名空间服务器的话,它还具备命名空间的故障转移功能。

独立命名空间(stand-alone namespace):它将命名空间的设置数据存储到命名空间服务器的注册表和内存缓冲区内。由于独立命名空间只能有一台命名空间服务器,因此并不具备命名空间的故障转移功能,除非采用服务器群集。

命名空间服务器(namespace server)

它是用来主控命名空间的服务器。如果是域命名空间的话,则这台服务器可以是成员服务器或域控制器,而且可以设置多台命名空间服务器;如果是独立命名空间的话,则这台服务器可以是成员服务器、域控制器或独立服务器,不过只能够有一台命名空间服务器。

命名空间根目录(namespace root)

它是命名空间的起始点,以上图为例,此根目录的名称为public、命名空间的名称为\\https://www.360docs.net/doc/a015709425.html,\public,而且它是一个域命名空间,其名称是以域名开头(https://www.360docs.net/doc/a015709425.html,)。如果这是一个独立命名空间,则命名空间的名称会以计算机名开头,例如:\\server1\public。由上图中可看出,此命名空间根目录对应到命名空间服务器的一个共享文件夹,默认是%systemdrive%\DFSRoots\public,它必须位于NTFS磁盘分区。

文件夹(folder)和文件夹目标(folder target)

这些虚拟文件夹的目标分别对应到其他服务器内的共享文件夹,当客户端浏览文件夹树时,DFS会将客户端引导到文件夹目标所对应的共享文件夹。上图中共有3个文件夹。Pictures:此文件夹有两个目标,分别对应到服务器server2的c:\pictures和server3的c:\pictures共享文件夹。它具备文件夹的排错功能,例如客户端在读取文件夹pictures内的文件时,即使server2故障,他仍然可以从server3的c:\pictures读到文件。当然server2的c:\pictures和server3的c:\pictures内所存储的文件应该相同(同步)。

Database:这个文件夹有两个目标,分别对应到服务器server3的d:\database和server4的d:\database共享文件夹,它也具备文件夹的故障转移功能。

Reports:这个文件夹只有一个目标,对应到服务器server4的d:\reports共享文件夹,由于目标只有一个,故不具备故障转移功能。

DFS复制(DFS replication)

在上图中文件夹pictures的两个目标所对应到的共享文件夹,其内提供给客户端的文件必须相步,而这个同步动作可由DFS复制服务来自动执行。DFS复制服务使用一个称为远程差分压缩的压缩演算技术,它能够检测到文件有更改的地方,因此复制文件时仅会复制有更改的数据,而不是整个文件。

复制拓朴:是用来描述DFS内各服务器之间的逻辑连接关系,可以选择以下几种拓朴来复制文件。如下图:

集散:它将一台服务器当作是中枢,并创建和其他所有服务器(支点)之间的连接,文件是从中枢复制到所有的支点,并且也会从支点复制到中枢。支点之间并不会直接相互复制文件。完整网状:它会建立所有服务器之间的相互连接,文件会从每一台服务器直接复制到其他所有的服务器。

自定义拓朴:可以自已建立各服务器之间的逻辑连接关系。

DFS的系统需求:

独立命名空间服务器的计算机可以是域控制器、成员服务器或独立服务器,而域命名空间服务器的计算机可以是域控制器或成员服务器。

参与DFS复制的服务器必须位于同一个AD DS树系,被复制的文件夹必须位于NTFS磁盘分区内。

二、分布式文件系统实战演练:

创建一个如下图所示的域命名空间。图中有3台服务器都是windows server 2008,而且

server1为域控制器、server2和server3都是成员服务器

推荐步骤:

1、先将域环境创建好:先在server1上安装AD服务,然后将server2和server3主机加入安

装好的域。过程略

2、安装DFS的相关组件:

Server1(192.168.5.6)是命名空间服务器,它需要安装DFS命名空间服务。这台计算机同时也是域控制器。我们要利用这台服务器来管理DFS,因此需要安装DFS命名空间服务和DFS管理工具。

Server2(192.168.5.4)和server3(192.168.5.5)这两台目标服务器需要相互复制pictures共享文件夹内的文件,因此它们都需要安装DFS复制服务。安装DFS复制服务时,系统会顺便自动安装DFS管理工具,可以在server2或server3来管理DFS.

3、在server1上安装DFS命名空间服务和DFS管理工具

安装DFS命名空间服务和DFS管理工具的方法为:“开始→管理工具→服务器管理器”。

安装DFS命名空间服务,如图所示:

安装DFS 管理工具,如图所示:

4、在server2和server3上安装所需的DFS组件:

分别在server2和server3上安装DFS复制服务,而此服务是通过添加“文件服务”角色的方式来安装的(若“文件服务”已安装,则通过“添加角色服务”来安装)。

方法为:“开始→管理工具→服务器管理器”。如图所示:

5、在server2和server3上新建共享文件夹

新建上图中文件夹pictures所对应到的两个目标文件夹,也就是server2和server3中的文件

夹c”\pictures,并将其设置为共享文件夹。假设共享名都是pictures,同时复制一些文件到

server3的c:\pictures内,以便于验证这些文件是否确实可以通过DFS机制被复制到server2。(请利用NTFS权限和共享权限来确保其内文件和子文件夹的安全)

6、创建新的命名空间

在server1上选择“开始→管理工具→DFS Management”如下图,单击“命名空间”右方的

“新建命名空间”。

选择server1(192.168.5.6)主机来扮演命名空间服务器后单下一步。

设置命名空名称(public)后单击下一步。

(系统默认会在命名空间服务器的%systemdrive%磁盘内新建DFSRoots\public共享文件夹,共享名为public,且所有的用户都有只读的权限。若要更改设置的话,单击图中的“编辑设置”)

选择命名空类型,这里我选择“基于域的命名空间”,由于域名为https://www.360docs.net/doc/a015709425.html,,因此完整名称是\\https://www.360docs.net/doc/a015709425.html,\public。单击一步(若报错,建议重启系统)

按照向导完成其余的操作。

7、新建文件夹

以下将创建DFS文件夹pictures,其两个目标分别对应到server2中pictures和server3中pictures

设置好后连续单击两次“确定”。在出现是否创建复制组对话框中选择“否”,有关复制组和复制机制会在后面讲到。

完成后的画面如下图。之后如果要添加目标的话,可单击图中右边的“添加文件夹目标”

复制组和复制设置

若一个DFS文件夹有多个目标的话,这些目标所对应的共享文件夹内的文件必须同步,我们可以让这些目标之间自动复制文件来同步,不过需要将这些目标所在的服务器设置为同一个复制组,并做必要的设置。

单击文件夹pictures右方的“复制文件夹”。(若报错“RPC不可用”,可以查与RPC有关服务是否启用,并重启系统)

采用默认设置的复制组名和文件夹名即可(也可以自行设置名称),直接单击一步

在“主要成员”对话框中选择server3。当DFS第1次开始执行复制文件时,会将这台主要成员内的文件复制到其他所有目标。

其他步骤按向导依次完成。

等侍一段时间,就会将server3中的pictures内的文件复制server2的pictures内。从第2次开始复制时,系统会依照复制拓朴来决定复制方式。

若要修改复制设置,单击下图左方的复制组,然后通过右方窗格来更改复制设置。

若不想让server3将文件复制到server2,请将server3到server2的单向连接关系禁用,操作如图:

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

在客户端上输入\\192.168.5.6访问DFS

所访问到的文件是位于server2还是server3,可以利用以下方法来检查:分别到server2和server3上,选择“开始—管理工具—计算机管理”如下图:

添加多台命名空间服务器

域命名空间的DFS架构内可以安装多台命名空间服务器,以便提供更高的可用性。所有的命名空间服务器都必须隶属于相同的域

首先在这台新的命名空间服务器安装“DFS命名空间服务”,安装方法参考上面的相关操作,只是在安装“DFS命名空间服务”过程中选择“以后使用服务器管理器中的‘DFS管理’管理单元创建命名空间”(并不需要创建,因为它将使用现有的命名空间\\https://www.360docs.net/doc/a015709425.html,\public)如下图所示:

接下来到server1上运行DFS管理控管台。如下图,右击命名空间\\https://www.360docs.net/doc/a015709425.html,\public,选择“添加命名空间服务器”,输入或浏览服务器名称(新的命名空间服务器主机)

客户端的引用设置

当DFS客户端要访问命名空间内的资源(文件夹或文件等)时,域控制器或命名空间服务器会为客户端提供一个引用列表。此列表内包含着拥有此资源的目标服务器,客户端会尝试从位于列表中最前面的服务器来访问所需的资源,如果这台服务器因故无法提供服务时,客户

端会转向列表中的下一个目标服务器。

如果某台目标服务器因故必须暂停服务,例如要关机维护,此时应避免客户端被连接到这台服务器,也就是不要让这台服务器出现在引用列表中,其设置方法右击该服务器,选择“禁用文件夹目标”。

还有,如何决定引用列表中目标服务器的先后顺序呢?方法是:右击命名空间

\\https://www.360docs.net/doc/a015709425.html,\public选择“属性”,如图所示:

缓存持续时间:当客户端取得引用列表后,会将这份列表缓冲到计算机内,以后客户端需要此份列表时,可以直接从缓冲区来取来,不需要再向命名空间服务器或域控制器来索取,如此便可以提高运行效率,但是这份位于缓冲内的列表有一定的有效期限,这个期限就是通过上图中“缓存持续时间”来设置的。

客户端所取得的引用列表中,目标服务器被排列在列表中的先后顺序如下:

如果目标服务器和客户端是位于同一个AD DS站点,则服务器会被列在列表中的最前面,如果有多台服务器的话,这些服务器会被随机排列。

如果目标服务器和客户端是位于不同AD DS站点,则这些服务器会被排列在跟客户端同一个站点的服务器之后,而且这些服务器之间有着以下的排列方法:

最低成本:如果这些服务器分别位于不同的AD DS站点,则站点链接成本最低的优先,如果成本相同的话,则随机排列。

随机顺序:无论目标服务器位于哪一个AD DS站点内,以随机顺诹来排列这些服务器

排除客户端站点之外的目标:只要目标服务器跟客户端在不同的AD DS站点,就不将这些目标服务器无于引用列表内。

客户端故障回复:当DFS客户端所访问的首先目标服务器因故无法提供服务时,客户端会转向列表中的下一个目标服务器,即时之后原先故障的首选服务器恢复正常了,客户端仍然会继续访问这一台并不是最佳的服务器,如果希望原来那一台首选服务器恢复正常后,客户端能够自动转回到此服务器,可以选择“客户端故障回复到首选目标”。

三、文件服务器的管理

Windows server 2008通过文件服务器与文件服务器资源管理器这两个组件来加强服务器的管理工作,而我们需要通过添加“文件服务”角色的方式来安装这两个组件,其安装方法“开始→管理工具→服务器管理器”,单击“角色”右边的“添加角色”来安装文件服务,如下图所示:

安装完成后,就可以通过“开始”---“管理工具”---“文件服务器资源管理器”来管理服务器。

建议用户先设置当发生磁盘配额超出事件、配置磁盘使用报告或发生文件屏蔽事件时,就自动发送电子邮件来通知指定的系统管理员或造成事件发生的用户,不过需要先设置与邮件有关的参数:右击“文件服务器资源管理器”,选择“配置选项”,如下图所示:

配置存储报告:可以通过下图右方的“操作”窗口来计划配置新的报告、编辑现有的服告任务或立即生成报告。

磁盘配额管理:盘配额是一种基于用户和分区的文件存储管理。通过磁盘配额管理,网管员可以对本地用户或登录到本地电脑中的远程用户能够使用的磁盘空间进行合理分配,每一个用户只能使用网管员分配的磁盘空间。磁盘配额对每一个用户都是透明的,当用户查询可以使用的磁盘空间时,系统只将配额允许的空间报告给用户,超过配额限制时,系统会提示磁盘空间已满。

磁盘配额根据用户存储的所有文件占用的磁盘空间来计算用户磁盘空间的使用情况,和文件所在的位置无关。文件的所有权通过文件安全信息中的安全标识符进行标识。Windows Server 2008提供了卷的磁盘配额跟踪以及控制磁盘空间使用情况的功能。磁盘配额是以文件所有权为基础的,只应用于卷且不受卷的文件夹结构及物理磁盘布局的影响。它用于监视个人用户卷的使用情况,因此每个用户对磁盘空间的利用都不会影响同一卷上其他用户的磁盘配额。

磁盘配额提供两种类型,一种是硬配额,一种是软配额

在以前的学习过程中我们已经学习过了磁盘配额的管理,它是用来跟踪每个用户在每个磁盘内的配额。然而在文件服务器资源管理器内,则是以磁盘或文件夹为单位,而且不论用户是谁,例如可以限制c:\pictures文件夹内最多可以存储10M的数据,而在张三将6M的数据存储到此文件夹后,如果用户李四要存储一个5M的文件到此文件夹的话,李四会被拒绝。加为此文件夹总容量不允许超过10M

文件屏蔽

文件服务器是文件的集散地,存储着大量的数据资料。在Windows系统中的某个目录下可以仅允许写入某种类型的文件,或者禁止写入某种类型的文件,下面介绍如何简单实现这个功能。

在Windows Server 2008操作系统中,提供了文件屏蔽功能,网管员可以将需要限制的文件类型定义为文件类型限制组,将此组指派给目标文件夹,任何用户(包括管理员)在把限制类型的文件写入目标文件夹时,将出现“目标文件夹访问被拒绝”的提示信息。文件屏蔽的主要目的是限制非法授权文件写入定义的文件夹。

文件屏蔽要首先创建限制文件组,然后创建屏蔽模板,最后部署屏蔽策略。

创建限制文件组

限制文件组,顾名思义就是定义需要限制的文件类型,支持通配符(*,?等)定义。文件服务安装完成后,预定义了11个文件组。顺次选择“服务器管理器→角色→文件服务→共享和存储管理→文件服务器资源管理器→文件屏蔽管理→文件组”选项,即可查看默认的限制文件组,如图所示。

屏蔽模板定义了哪些文件组被监控以及监控方式,有主动屏蔽和被动屏蔽两种模式。主动屏蔽将屏蔽文件组中定义的文件类型所关联的文件;被动屏蔽仅监控文件组中定义的文件,但不限制写入目标文件夹。

选择“开始→管理工具→服务器管理器”选项,在打开的窗口中选择“服务器管理器→角色→文件服务→共享和存储管理→文件服务器资源管理器→文件屏蔽管理→文件屏蔽模板”选项,文件服务安装完成后,预定义了5个文件屏蔽模板,如图所示

选择目标文件夹后,将创建的文件屏蔽模板绑定到目标文件夹即可。

在下图的窗口中选择“文件屏蔽”,右击“文件屏蔽”,在弹出的快捷菜单中选择“创建文件屏蔽”命令,显示“创建文件屏蔽”对话框。从“文件屏蔽属性”区域的“从此文件屏蔽模板派生属性”下拉列表中选择屏蔽策略,单击“创建”按钮,即可完成文件屏蔽策略的创建,如图所示

四、隐藏用户无权限访问的共享文

让用户没有权限访问的共享文件夹隐身,这样保证了一定程度上数据的安全同时也解决文件服务器的共享文件繁多让用户浪费时间寻找属于自己的文件夹的苦恼

首先为测试使用建立两个账户,test1和test2,隶属于test组

设置共享目录并设置共享权限:

设置NTFS权限:只保留能访问该目录的用户和组,其他无关的用户和组均删除。如下图所示:

在客户端访问文件服务器的共享,使用test1或test2用户访问,可以看到在pictures共享目录中有两个目录test1和test2目录。

假设test1用户只能访问test1文件夹,而test2用户只能访问test2文件夹,当test1共享访问pictures目录时只能看到test1目录,而test2用户也一样。

具体操作方法如图所示:

删除无权访问test1文件夹的相关用户和组,只添加有权限的用户(如administrtor 、test1用户)

test2文件夹也做和test1一样的设置,只不过test2文件夹只能被test2用户和administrator 用户访问。

在客户端访问文件服务器的共享,使用test1或test2用户访问,可以看到在pictures共享目录中只能看该用户有权限的文件夹,而无权限的文件夹看不到了。

分布式文件系统MFS(moosefs)实现存储共享

由于用户数量的不断攀升,我对访问量大的应用实现了可扩展、高可靠的集群部署(即lvs+keepalived的方式),但仍然有用户反馈访问慢的问题。通过排查个服务器的情况,发现问题的根源在于共享存储服务器NFS。在我这个网络环境里,N个服务器通过nfs方式共享一个服务器的存储空间,使得 NFS服务器不堪重负。察看系统日志,全是nfs服务超时之类的报错。一般情况下,当nfs客户端数目较小的时候,NFS性能不会出现问题;一旦NFS服务器数目过多,并且是那种读写都比较频繁的操作,所得到的结果就不是我们所期待的。 下面是某个集群使用nfs共享的示意图: 这种架构除了性能问题而外,还存在单点故障,一旦这个NFS服务器发生故障,所有靠共享提供数据的应用就不再可用,尽管用rsync方式同步数据到另外一个服务器上做nfs服务的备份,但这对提高整个系统的性能毫无帮助。基于这样一种需求,我们需要对nfs服务器进行优化或采取别的解决方案,然而优化并不能对应对日益增多的客户端的性能要求,因此唯一的选择只能是采取别的解决方案了;通过调研,分布式文件系统是一个比较合适的选择。采用分布式文件系统后,服务器之间的数据访问不再是一对多的关系(1个NFS服务器,多个NFS 客户端),而是多对多的关系,这样一来,性能大幅提升毫无问题。 到目前为止,有数十种以上的分布式文件系统解决方案可供选择,如 lustre,hadoop,Pnfs等等。我尝试了 PVFS,hadoop,moosefs这三种应用,参看了lustre、KFS等诸多技术实施方法,最后我选择了moosefs(以下简称MFS)

这种分布式文件系统来作为我的共享存储服务器。为什么要选它呢?我来说说我的一些看法: 1、实施起来简单。MFS的安装、部署、配置相对于其他几种工具来说,要简单和容易得多。看看lustre 700多页的pdf文档,让人头昏吧。 2、不停服务扩容。MFS框架做好后,随时增加服务器扩充容量;扩充和减少容量皆不会影响现有的服务。注:hadoop也实现了这个功能。 3、恢复服务容易。除了MFS本身具备高可用特性外,手动恢复服务也是非常快捷的,原因参照第1条。 4、我在实验过程中得到作者的帮助,这让我很是感激。 MFS文件系统的组成 1、元数据服务器。在整个体系中负责管理管理文件系统,目前MFS只支持一个元数据服务器master,这是一个单点故障,需要一个性能稳定的服务器来充当。希望今后MFS能支持多个master服务器,进一步提高系统的可靠性。 2、数据存储服务器chunkserver。真正存储用户数据的服务器。存储文件时,首先把文件分成块,然后这些块在数据服务器chunkserver之间复制(复制份数可以手工指定,建议设置副本数为3)。数据服务器可以是多个,并且数量越多,可使用的“磁盘空间”越大,可靠性也越高。 3、客户端。使用MFS文件系统来存储和访问的主机称为MFS的客户端,成功挂接MFS文件系统以后,就可以像以前使用NFS一样共享这个虚拟性的存储了。 元数据服务器安装和配置

分布式文件系统Hadoop HDFS与传统文件系统Linux FS的比较与分析

6苏州大学学报(工科版)第30卷 图1I-IDFS架构 2HDFS与LinuxFS比较 HDFS的节点不管是DataNode还是NameNode都运行在Linux上,HDFS的每次读/写操作都要通过LinuxFS的读/写操作来完成,从这个角度来看,LinuxPS是HDFS的底层文件系统。 2.1目录树(DirectoryTree) 两种文件系统都选择“树”来组织文件,我们称之为目录树。文件存储在“树叶”,其余的节点都是目录。但两者细节结构存在区别,如图2与图3所示。 一二 Root \ 图2ItDFS目录树围3LinuxFS目录树 2.2数据块(Block) Block是LinuxFS读/写操作的最小单元,大小相等。典型的LinuxFSBlock大小为4MB,Block与DataN-ode之间的对应关系是固定的、天然存在的,不需要系统定义。 HDFS读/写操作的最小单元也称为Block,大小可以由用户定义,默认值是64MB。Block与DataNode的对应关系是动态的,需要系统进行描述、管理。整个集群来看,每个Block存在至少三个内容一样的备份,且一定存放在不同的计算机上。 2.3索引节点(INode) LinuxFS中的每个文件及目录都由一个INode代表,INode中定义一组外存上的Block。 HDPS中INode是目录树的单元,HDFS的目录树正是在INode的集合之上生成的。INode分为两类,一类INode代表文件,指向一组Block,没有子INode,是目录树的叶节点;另一类INode代表目录,没有Block,指向一组子INode,作为索引节点。在Hadoop0.16.0之前,只有一类INode,每个INode都指向Block和子IN-ode,比现有的INode占用更多的内存空间。 2.4目录项(Dentry) Dentry是LinuxFS的核心数据结构,通过指向父Den姆和子Dentry生成目录树,同时也记录了文件名并 指向INode,事实上是建立了<FileName,INode>,目录树中同一个INode可以有多个这样的映射,这正是连

分布式存储系统的一些理解和实践

分布式存储系统的一些理解和实践 张建伟 一、分布式存储系统介绍 1.简介 互联网数据规模越来越大,并发请求越来越高,传统的关系数据库,在很多使用场景下并不能很好的满足需求。分布式存储系统应运而生。它有良好的扩展性,弱化关系数据模型,甚至弱化一致性要求,以得到高并发和高性能。按功能分类,主要有以下几种: ?分布式文件系统 hdfs ceph glusterfs tfs ?分布式对象存储 s3(dynamo) ceph bcs(mola) ?分布式表格存储 hbase cassandra oceanbase ?块存储 ceph ebs(amazon) 分布式存储系统,包括分布式系统和单机存储两部分;不同的系统,虽在功能支持、实现机制、实现语言等方面是有差异的,但其设计时,关注的关键问题是基本相同的。单机存储的主流实现方式,有hash引擎、B+树引擎和LSM树(Log Structured Merge Tree)三种,不展开介绍。本文第二章节,主要结合hbase、cassandra和ceph,讲下分布式系统设计部分,需要关注的关键问题。 2.适用场景 各分布式存储系统功能定位不尽相同,但其适用和不适用的场景,在一定程度上是相同的,如下。

1)适用 大数据量(大于100T,乃至几十PB) key/value或者半结构化数据 高吞吐 高性能 高扩展 2)不适用 Sql查询 复杂查询,如联表查询 复杂事务 二、分布式存储系统设计要点 1.数据分布 分布式存储,可以由成千甚至上万台机器组成,以实现海量数据存储和高并发。那它最先要解决的就是数据分布问题,即哪些数据存储在哪些机器(节点)上。常用的有hash类算法和用meta表映射两种方式。一般完全分布式的设计(无master节点),会用hash类算法;而集中式的设计(有master节点)用meta表映射的方式。两者各有优缺点,后面讲到具体问题时再做比较。 1)一致性hash 将存储节点和操作的key(key唯一标识存储的object,有时也叫object name)都hash到0~2的32次方区间。映射到如下环中的某个位置。沿操作key的位置顺时针找到的第一个节点即为此key的primary存储节点。如下图所示:

HDFS分布式文件系统具备的优点

HDFS分布式文件系统具备的优点 随着互联网数据规模的不断增大,对文件存储系统提出了更高的要求,需要更大的容量、更好的性能以及更高安全性的文件存储系统,与传统分布式文件系统一样,HDFS分布式文件系统也是通过计算机网络与节点相连,但也有优于传统分布式文件系统的优点。 1. 支持超大文件 HDFS分布式文件系统具有很大的数据集,可以存储TB或PB级别的超大数据文件,能够提供比较高的数据传输带宽与数据访问吞吐量,相应的,HDFS开放了一些POSIX的必须接口,容许流式访问文件系统的数据。 2. 高容错性能 HDFS面向的是成百上千的服务器集群,每台服务器上存储着文件系统的部分数据,在集群的环境中,硬件故障是常见的问题,这就意味着总是有一部分硬件因各种原因而无法工作,因此,错误检测和快速、自动的恢复是HDFS最核心的架构目标,因此,HDFS具有高度的容错性。 3. 高数据吞吐量 HDFS采用的是“一次性写,多次读”这种简单的数据一致性模型,在HDFS 中,一个文件一旦经过创建、写入、关闭后,一般就不需要修改了,这样简单的一致性模型,有利于提高吞吐量。 4. 流式数据访问 HDFS的数据处理规模比较大,应用一次需要访问大量的数据,同时这些应用一般都是批量处理,而不是用户交互式处理,应用程序能以流的形式访问数据

集。 Hadoop已经迅速成长为首选的、适用于非结构化数据的大数据分析解决方案,HDFS分布式文件系统是Hadoop的核心组件之一,保证了大数据的可靠存储,与MapReduce配合使用,可以对结构化和复杂大数据进行快速、可靠分析,从而为企业做出更好的决策,促进收入增长,改善服务,降低成本提供有力支撑!

Hadoop分布式文件系统:架构和设计

Hadoop分布式文件系统:架构和设计 引言 (2) 一前提和设计目标 (2) 1 hadoop和云计算的关系 (2) 2 流式数据访问 (2) 3 大规模数据集 (2) 4 简单的一致性模型 (3) 5 异构软硬件平台间的可移植性 (3) 6 硬件错误 (3) 二HDFS重要名词解释 (3) 1 Namenode (4) 2 secondary Namenode (5) 3 Datanode (6) 4 jobTracker (6) 5 TaskTracker (6) 三HDFS数据存储 (7) 1 HDFS数据存储特点 (7) 2 心跳机制 (7) 3 副本存放 (7) 4 副本选择 (7) 5 安全模式 (8) 四HDFS数据健壮性 (8) 1 磁盘数据错误,心跳检测和重新复制 (8) 2 集群均衡 (8) 3 数据完整性 (8) 4 元数据磁盘错误 (8) 5 快照 (9)

引言 云计算(cloud computing),由位于网络上的一组服务器把其计算、存储、数据等资源以服务的形式提供给请求者以完成信息处理任务的方法和过程。在此过程中被服务者只是提供需求并获取服务结果,对于需求被服务的过程并不知情。同时服务者以最优利用的方式动态地把资源分配给众多的服务请求者,以求达到最大效益。 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS 能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。 一前提和设计目标 1 hadoop和云计算的关系 云计算由位于网络上的一组服务器把其计算、存储、数据等资源以服务的形式提供给请求者以完成信息处理任务的方法和过程。针对海量文本数据处理,为实现快速文本处理响应,缩短海量数据为辅助决策提供服务的时间,基于Hadoop云计算平台,建立HDFS分布式文件系统存储海量文本数据集,通过文本词频利用MapReduce原理建立分布式索引,以分布式数据库HBase 存储关键词索引,并提供实时检索,实现对海量文本数据的分布式并行处理.实验结果表 明,Hadoop框架为大规模数据的分布式并行处理提供了很好的解决方案。 2 流式数据访问 运行在HDFS上的应用和普通的应用不同,需要流式访问它们的数据集。HDFS的设计中更多的考虑到了数据批处理,而不是用户交互处理。比之数据访问的低延迟问题,更关键的在于数据访问的高吞吐量。 3 大规模数据集 运行在HDFS上的应用具有很大的数据集。HDFS上的一个典型文件大小一般都在G字节至T字节。因此,HDFS被调节以支持大文件存储。它应该能提供整体上高的数据传输带宽,能在一个集群里扩展到数百个节点。一个单一的HDFS实例应该能支撑数以千万计的文件。

分布式文件系统DFS使用方法总结(超详细)

DFS使用方法总结(超详细) 使用分布式文件系统 (DFS),系统管理员可以使用户方便地访问和管理物理上分布在网络各处的文件。通过DFS,可以使分布在多个服务器上的文件如同位于网络上的一个位置一样显示在用户面前。 您可采用两种方式实施分布式文件系统:一种是独立的根目录分布式文件系统,另一种是域分布式文件系统。 独立的DFS根目录: 不使用 Active Directory。 至多只能有一个根目录级别的目标。 使用文件复制服务不能支持自动文件复制。 通过服务器群集支持容错。 域DFS根目录: 必须宿主在域成员服务器上。 使它的DFS名称空间自动发布到 Active Directory 中。 可以有多个根目录级别的目标。 通过 FRS 支持自动文件复制。 通过 FRS 支持容错。 分布式文件系统 (DFS) 映射由一个DFS根目录、一个或多个DFS链接以及指向一个或多个目标的引用组成。 DFS根目录所驻留的域服务器称为主服务器。通过在域中的其他服务器上创建根目标,可以复制DFS根目录。这将确保在主服务器不可用时,文件仍可使用。因为域分布式文件系统的主服务器是域中的成员服务器,所以默认情况下,DFS映射将自动发布到 Active Directory 中,从而提供了跨越主服务器的DFS拓扑同步。这反过来又对DFS根目录提供了容错性,并支持目标的可选复制。通过向DFS根目录中添加DFS链接,您可扩展DFS映射。Windows Server 2003 家族对DFS映射中分层结构的层数的唯一限制是对任何文件路径最多使用 260 个字符。新DFS链接可以引用具有或没有子文件夹的目标,或引用整个Windows Server 2003 家族卷。 创建DFS根目录 使用DFS管理工具,您可以指定某个目标,指派它为DFS根目录。除了访问该目标外,用户还可以访问该目标的任何子文件夹。使用 Windows Server 2003 Enterprise Edition 或Windows Server 2003 Datacenter Edition 时,您可在单独计算机上作为多个DFS根目录的宿主。由于DFS Active Directory 对象的大小,大型的基于域的DFS名称空间可能会显著地增加网络传输量。因此,建议您为域根使用的DFS链接的个数少于 5000。建议在运行 Windows Server 2003 的服务器上的独立的根目录的最大名称空间为 50,000 个链接。 如何创建DFS根目录: 1.打开分布式文件系统。 2.在“操作”菜单上,单击“新建根目录”。

分布式文件系统架构设计

分布式文件系统架构设计

目录 1.前言 (3) 2.HDFS1 (3) 3.HDFS2 (5) 4.HDFS3 (11) 5.结语 (15)

1.前言 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS,解决了海量数据存储的问题;实现了一个分布式计算引擎MapReduce,解决了海量数据如何计算的问题;实现了一个分布式资源调度框架YARN,解决了资源调度,任务管理的问题。而我们今天重点给大家介绍的是Hadoop里享誉世界的优秀的分布式文件系统-HDFS。 Hadoop重要的比较大的版本有:Hadoop1,Hadoop2,hadoop3。同时也相对应的有HDFS1,HDFS2,HDFS3三个大版本。后面的HDFS的版本,都是对前一个版本的架构进行了调整优化,而在这个调整优化的过程当中都是解决上一个版本的架构缺陷,然而这些低版本的架构缺陷也是我们在平时工作当中会经常遇到的问题,所以这篇文章一个重要的目的就是通过给大家介绍HDFS不同版本的架构演进,通过学习高版本是如何解决低版本的架构问题从而来提升我们的系统架构能力。 2.HDFS1

最早出来投入商业使用的的Hadoop的版本,我们称为Hadoop1,里面的HDFS就是HDFS1,当时刚出来HDFS1,大家都很兴奋,因为它解决了一个海量数据如何存储的问题。HDFS1用的是主从式架构,主节点只有一个叫:Namenode,从节点有多个叫:DataNode。 我们往HDFS上上传一个大文件,HDFS会自动把文件划分成为大小固定的数据块(HDFS1的时候,默认块的大小是64M,可以配置),然后这些数据块会分散到存储的不同的服务器上面,为了保证数据安全,HDFS1里默认每个数据块都有3个副本。Namenode是HDFS的主节点,里面维护了文件系统的目录树,存储了文件系统的元数据信息,用户上传文件,下载文件等操作都必须跟NameNode进行交互,因为它存储了元数据信息,Namenode为了能快速响应用户的操作,启动的时候就把元数据信息加载到了内存里面。DataNode是HDFS的从节点,干的活就很简单,就是存储block文件块。

3种分布式文件系统

第一部分CEPH 1.1 特点 Ceph最大的特点是分布式的元数据服务器通过CRUSH,一种拟算法来分配文件的locaiton,其核心是 RADOS(resilient automatic distributed object storage),一个对象集群存储,本身提供对象的高可用,错误检测和修复功能。 1.2 组成 CEPH文件系统有三个主要模块: a)Client:每个Client实例向主机或进程提供一组类似于POSIX的接口。 b)OSD簇:用于存储所有的数据和元数据。 c)元数据服务簇:协调安全性、一致性与耦合性时,管理命名空间(文件名和 目录名) 1.3 架构原理 Client:用户 I/O:输入/输出 MDS:Metadata Cluster Server 元数据簇服务器 OSD:Object Storage Device 对象存储设备

Client通过与OSD的直接通讯实现I/O操作。这一过程有两种操作方式: 1. 直接通过Client实例连接到Client; 2. 通过一个文件系统连接到Client。 当一个进行打开一个文件时,Client向MDS簇发送一个请求。MDS通过文件系统层级结构把文件名翻译成文件节点(inode),并获得节点号、模式(mode)、大小与其他文件元数据。注意文件节点号与文件意义对应。如果文件存在并可以获得操作权,则MDS通过结构体返回节点号、文件长度与其他文件信息。MDS同时赋予Client操作权(如果该Client还没有的话)。目前操作权有四种,分别通过一个bit表示:读(read)、缓冲读(cache read)、写(write)、缓冲写(buffer write)。在未来,操作权会增加安全关键字,用于client向OSD证明它们可以对数据进行读写(目前的策略是全部client 都允许)。之后,包含在文件I/O中的MDS被用于限制管理能力,以保证文件的一致性与语义的合理性。 CEPH产生一组条目来进行文件数据到一系列对象的映射。为了避免任何为文件分配元数据的需要。对象名简单的把文件节点需要与条目号对应起来。对象复制品通过CRUSH(著名的映射函数)分配给OSD。例如,如果一个或多个Client打开同一个文件进行读操作,一个MDS会赋予他们读与缓存文件内容的能力。通过文件节点号、层级与文件大小,Client可以命名或分配所有包含该文件数据的对象,并直接从OSD簇中读取。任何不存在的对象或字节序列被定义为文件洞或0。同样的,如果Client打开文件进行写操作。它获得使用缓冲写的能力。任何位置上的数据都被写到合适的OSD上的合适的对象中。Client 关闭文件时,会自动放弃这种能力,并向MDS提供新的文件大小(写入时的最大偏移)。它重新定义了那些存在的并包含文件数据的对象的集合。 CEPH的设计思想有一些创新点主要有以下两个方面: 第一,数据的定位是通过CRUSH算法来实现的。

分布式文件系统设计方案

分布式文件系统(DFS)解决方案 一“分布式文件系统(DFS)”概述 DFS并不是一种文件系统,它是Windows Server System上的一种客户/服务器模式的网络服务。它可以让把局域网中不同计算机上的不同的文件共享按照其功能组织成一个逻辑的分级目录结构。系统管理员可以利用分布式文件系统(DFS),使用户访问和管理那些物理上跨网络分布的文件更加容易。通过DFS,可以使分布在多个服务器或者不同网络位置的文件在用户面前显示时,就如同位于网络上的一个位置。用户在访问文件时不再需要知道和指定它们的实际物理位置。 例如,如果您的销售资料分散在某个域中的多个存储设备上,您可以利用DFS 使其显示时就好像所有的资料都位于同一网络共享下,这样用户就不必到网络上的多个位置去查找他们需要的信息。 二部署使用“分布式文件系统(DFS)”的原因 ●访问共享文件夹的用户分布在一个站点的多个位置或多个站点上; ●大多数用户都需要访问多个共享文件夹; ●通过重新分布共享文件夹可以改善服务器的负载平衡状况; ●用户需要对共享文件夹的不间断访问;

●您的组织中有供内部或外部使用的Web 站点; ●用户访问共享文件需要权限。 三“分布式文件系统(DFS)”类型 可以按下面两种方式中的任何一种来实施分布式文件系统: 1.作为独立的分布式文件系统。 ●不使用Active Directory。 ●至多只能有一个根目录级别的目标。 ●使用文件复制服务不能支持自动文件复制。 ●通过服务器群集支持容错。 2.作为基于域的分布式文件系统。 ●必须宿主在域成员服务器上。 ●使它的DFS 名称空间自动发布到Active Directory 中。 ●可以有多个根目录级别的目标。 ●通过FRS 支持自动文件复制。 ●通过FRS 支持容错。 四分布式文件系统特性 除了Windows Server System 中基于服务器的DFS 组件外,还有基于客户的DFS 组件。DFS 客户程序可以将对DFS 根目录或DFS 链接的引用缓存一段时间,该时间由管理员指定。此存储和读取过程对于

7种分布式文件系统介绍

FastDFS (7) Fastdfs简介 (7) Fastdfs系统结构图 (7) FastDFS和mogileFS的对比 (8) MogileFS (10) Mogilefs简介 (10) Mogilefs组成部分 (10) 0)数据库(MySQL)部分 (10) 1)存储节点 (11) 2)trackers(跟踪器) (11) 3)工具 (11) 4)Client (11) Mogilefs的特点 (12) 1. 应用层——没有特殊的组件要求 (12) 2. 无单点失败 (12) 3. 自动的文件复制 (12) 4. “比RAID好多了” (12) 5. 传输中立,无特殊协议 (13) 6.简单的命名空间 (13) 7.不用共享任何东西 (13) 8.不需要RAID (13)

9.不会碰到文件系统本身的不可知情况 (13) HDFS (14) HDFS简介 (14) 特点和目标 (14) 1. 硬件故障 (14) 2. 流式的数据访问 (14) 3. 简单一致性模型 (15) 4. 通信协议 (15) 基本概念 (15) 1. 数据块(block) (15) 2. 元数据节点(Namenode)和数据节点(datanode) . 16 2.1这些结点的用途 (16) 2.2元数据节点文件夹结构 (17) 2.3文件系统命名空间映像文件及修改日志 (18) 2.4从元数据节点的目录结构 (21) 2.5数据节点的目录结构 (21) 文件读写 (22) 1.读取文件 (22) 1.1 读取文件示意图 (22) 1.2 文件读取的过程 (23) 2.写入文件 (24) 2.1 写入文件示意图 (24)

典型分布式文件系统概述

分布式文件系统概述(一) 杨栋 yangdonglee@https://www.360docs.net/doc/a015709425.html, 2006-12 摘要 文件系统是操作系统用来组织磁盘文件的方法和数据结构。传统的文件系统指各种UNIX平台的文件系统,包括UFS、FFS、EXT2、XFS等,这些文件系统都是单机文件系统,也称本地文件系统。随着网络的兴起,为了解决资源共享问题,出现了分布式文件系统。分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。本文1简要回顾了本地文件系统,然后按照发展例程大致介绍了2006年之前各时期主要的分布式文件系统,最后从设计目标、体系结构及关键技术等方面比较了各个分布式文件系统的异同。目前很火的Hadoop文件系统、S3文件系统都是从NFS等早期文件系统一步步演化而来的,了解分布式文件系统的历史,有助于大家更加深刻地领会分布式文件系统的精髓。 1本文写于2006年底,借鉴了别人的大量资料,目的是为了与同学们分享分布式文件系统的发展史。笔者在硕士期间跟随中科院计算所的孟老师、熊老师和唐荣锋进行分布式文件系统的研究和开发。分布式文件系统源远流长,本文只是选择了其发展史上的部分实例进行简单描述,由于笔者水平十分有限,错误之处难免很多,各位同学发现问题之后麻烦回复邮件到yangdonglee@https://www.360docs.net/doc/a015709425.html,,我会尽全力完善,或者请各位同学自行修正。笔者目前在百度进行云计算方面的研究和开发,希望有兴趣的同学一起进行探讨。

目录 1.引言 (5) 2.本地文件系统 (5) 2.1FFS (6) 2.2LFS (6) 2.3Ext3 (7) 3.分布式文件系统 (7) 3.1 发展历程 (7) 3.2分布式文件系统分类 (8) 3.2.1 实现方法 (8) 3.2.2研究状况 (8) 3.3 NFS (9) 3.3.1概述 (9) 3.3.2 体系结构 (9) 3.3.3 通信机制 (10) 3.3.4进程 (10) 3.3.5 命名 (10) 3.3.6 同步机制 (11) 3.3.7 缓存和复制 (11) 3.3.8 容错性 (12) 3.3.9 安全性 (13) 3.4 AFS、DFS、Coda和InterMezzo (13) 3.5 SpriteFS和Zebra (14) 3.6xFS (16) 3.6.1 概述 (16) 3.6.2 体系结构 (16) 3.6.3 通信 (16) 3.6.4 进程 (17) 3.6.5 命名 (18) 3.6.6 缓存 (19)

常见的分布式文件系统

常见的分布式文件系统有,GFS、HDFS、Lustre 、Ceph 、GridFS 、mogileFS、TFS、FastDFS等。各自适用于不同的领域。它们都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。 Google学术论文,这是众多分布式文件系统的起源 ================================== Google File System(大规模分散文件系统) MapReduce (大规模分散FrameWork) BigTable(大规模分散数据库) Chubby(分散锁服务) 一般你搜索Google_三大论文中文版(Bigtable、 GFS、 Google MapReduce)就有了。做个中文版下载源:https://www.360docs.net/doc/a015709425.html,/topics/download/38db9a29-3e17-3dce-bc93-df9286081126 做个原版地址链接: https://www.360docs.net/doc/a015709425.html,/papers/gfs.html https://www.360docs.net/doc/a015709425.html,/papers/bigtable.html https://www.360docs.net/doc/a015709425.html,/papers/mapreduce.html GFS(Google File System) -------------------------------------- Google公司为了满足本公司需求而开发的基于Linux的专有分布式文件系统。。尽管Google公布了该系统的一些技术细节,但Google并没有将该系统的软件部分作为开源软件发布。 下面分布式文件系统都是类 GFS的产品。

分布式文件系统研究-GFS

分布式文件系统研究16:Global File System 分类:技术日志 前段时间比较忙,好久没发技术文章了,几天来一个,嘿嘿 Global File System 简介 GFS(Global File System)是Minnesota大学开发的基于SAN的共享存储的机群文件系统,后来Sis tina公司将GFS产品化。GFS在很长一段时间都是以源代码开放软件的形式出现的,后来由于Sistina希望通过向用户提供支持和服务的计划未能取得成功,为了要促进自己的财务收入,Sistina在2001年将GFS 变成了一种“专有软件”。Red Hat公司收购Sistina之后,在遵循GPL协议(General Public License)的条件下履行诺言公开了GFS的源代码。现在,GFS的全名被称为“红帽全球文件系统”(Red Hat Global File System ,GFS)的软件,每台服务器每年收取2200美元的费用。 可能是redhat为了更好的收取服务费的缘故,有关GFS的文档真是少之又少,我只能从网上一些零星的资料来看看GFS的概貌。 框架 GFS最初是在IRIX上开发的,后来移植到LINUX上,并开放源码。基本框架如下图所示。 图1 GFS的基本框架图 通过使用GFS,多台服务器可以共用一个文件系统来存储文件。信息既可以存储在服务器上,也可以存储在一个存储局域网络上。 GFS与GPFS结构相似,但它是全对称的机群文件系统,没有服务器,因而没有性能瓶颈和单一故障点。GFS将文件数据缓存于节点的存储设备中,而不是缓存在节点的内存中。并通过设备锁来同步不同节点对文件的访问,保持UNIX文件共享语义。GFS实现了日志,节点失效可以快速恢复。GFS使用SCSI

分布式文件系统、集群文件系统、并行文件系统

分布式文件系统、集群文件系统、并行文件系统,这三种概念很容易混淆,实际中大家也经常不加区分地使用。总是有人问起这三者的区别和联系,其实它们之间在概念上的确有交叉重叠的地方,但是也存在显著不同之处。分布式文件系统自然地,分布式是重点,它是相对与本地文件系统而言的。分布式文件系统通常指C/S架构或网络文件系统,用户数据没有直接连接到本地主机,而是存储在远程存储服务器上。NFS/CIFS是最为常见的分布式文件系统,这就是我们说的NAS系统。分布式文件系统中,存储服务器的节点数可能是1个(如传统NAS),也可以有多个(如集群NAS)。对于单个节点的分布式文件系统来说,存在单点故障和性能瓶颈问题。除了NAS以外,典型的分布式文件系统还有AFS,以及下面将要介绍的集群文件系统(如Lustre, GlusterFS, PVFS2等)。集群文件系统集群主要分为高性能集群HPC(High Performance Cluster)、高可用集群HAC(High Availablity Cluster)和负载均衡集群LBC(Load Balancing Cluster)。集群文件系统是指协同多个节点提供高性能、高可用或负载均衡的文件系统,它是分布式文件系统的一个子集,消除了单点故障和性能瓶问题。对于客户端来说集群是透明的,它看到是一个单一的全局命名空间,用户文件访问请求被分散到所有集群上进行处理。此外,可扩展性(包括Scale-Up和Scale-Out)、可靠性、易管理等也是集群文件系统追求的目标。在元数据管理方面,可以采用专用的服务器,也可以采用服务器集群,或者采用完全对等分布的无专用元数据服务器架构。目前典型的集群文件系统有SONAS, ISILON, IBRIX, NetAPP-GX, Lustre, PVFS2, GlusterFS, Google File System, LoongStore, CZSS等。并行文件系统这种文件系统能够支持并行应用,比如MPI。在并行文件系统环境下,所有客户端可以在同一时间并发读写同一个文件。并发读,大部分文件系统都能够实现。并发写实现起来要复杂许多,既要保证数据一致性,又要最大限度提高并行性,因此在锁机制方面需要特别设计,如细粒度的字节锁。通常SAN 共享文件系统都是并行文件系统,如GPFS、StorNext、GFS、BWFS,集群文件系统大多也是并行文件系统,如Lustre, Panasas等。如何区分?区分这三者的重点是分布式、集群、并行三个前缀关键字。简单来说,非本地直连的、通过网络连接的,这种为分布式文件系统;分布式文件系统中,服务器节点由多个组成的,这种为集群文件系统;支持并行应用(如MPI)的,这种为并行文件系统。在上面所举的例子中也可以看出,这三个概念之间具有重叠之处,比如Lustre,它既是分布式文件系统,也是集群和并行文件系统。但是,它们也有不同之处。集群文件系统是分布式文件系统,但反之则不成立,比如NAS、AFS。SAN文件系统是并行文件系统,但可能不是集群文件系统,如StorNext。GFS、HDFS之类,它们是集群文件系统,但可能不是并行文件系统。实际中,三者概念搞理清后,分析清楚文件系统的特征,应该还是容易正确地为其划分类别的。

分布式存储相对集中式存储优势

明确要求采用分布式架构存储,而非传统集中式存储FCSAN/IP SAN的原因:从软件定义存储概念提出到现在,分布式架构存储系统正成为业界存储主流和发展方向,逐渐取代传统集中式存储系统,随着云计算和大数据的建设成为数据中心建设主流形态,互联网+、人工智能、物联网应用等的普及,以非结构化数据为主的海量数据爆发式增长,如视音频存储、图像存储及识别、流媒体处理等,基于海量数据存储、分析、挖掘等,传统集中式存储无论从架构、扩展性、性能及成本,运维管理优势等方面,都无法满足业务增长及数据处理所带来的存储问题。 首先从架构上,集中式存储FC SAN/IP SAN 采用Scale up的扩展方式,通过存储控制器挂接扩展柜的方式,实现存储容量的扩展,扩展能力有限,并且性能随着容量扩展并非线性关系,可能存储前端及后端端口带宽会成为海量数据并发处理的瓶颈,并且存储资源分布不均,无法做到资源动态均衡伸缩及调度,这对于响应级别要求不一致的应用来说是致命的;分布式架构存储系统,采用Scale out 横向扩展方式,无节点扩展限制,存储容量可轻易扩展至几十甚至几百PB以上,这是集中式存储无法做到的,能够很好解决在云计算架构下海量数据存储及并发问题。并且基于分布式软件的分布式调度算法,可实现资源动态伸缩,随着节点增加,其性能是线性增加,能够很好满足如云计算架构下海量数据存储及处理对存储资源池可动态伸缩及并发访问性能要求。 由于采用软件定义存储方式,无论是成本还是后期运维管理,比传统集中式存储FC SAN/ IP SAN优势明显,分布式软件自动实现对存储资源调度及管理,实现跨数据中心资源分配。集中式存储系统,需要借助存储虚拟化技术(虚拟化网关)才能将存储资源聚合为统一存储资源池,随着规模扩大,网关往往更易成为性能瓶颈。 关于数据安全性问题,分布式架构存储系统基于机架自动感知的数据多副本技术,例如采用三副本技术,即使数据中心同一机架故障,对业务透明无感知,数据安全级别高,业务连续性更好。集中式存储往往采用双活架构实现容灾,不仅初期投入成本高,运维部署复杂。 从应用角度来看,现在越来越多的应用迁到分布式存储系统上,例如海量视频、音频、图像、文档的存储,流媒体及视频图像处理所带来的高并发低延迟,高性能计算应用等,都非常适合分布式架构存储系统,而不采用集中式存储系统,并且从数据存储及性能要求、容量扩展方便,集中式存储做起来非常困难。 诸如以上原因,明确要求采用采用分布式架构存储,而非传统集中式存储FCSAN/IP SAN。

LINUX文件系统比较

文件系统比较 MogileFS MogileFS是一款开源的、高性能的、分布式的文件系统,用于组建分布式文件集群,跟Memcached是同门,都由LiveJournal旗下Danga Interactive公司开发。 MogileFS能干什么 最主要的功能就是:用来存取海量文件,而不用关心具体的文件存放位置、存储容量大小,以及文件损坏和丢失等问题。 MogileFS特点 1:应用层:不需要特殊的核心组件 2:无单点失败:MogileFS分布式文件存储系统安装的三个组件(存储节点、跟踪器、跟踪用的数据库),均可运行在多个机器上,因此没有单点失败。 3:自动进行文件复制:基于不同的文件“分类”,文件可以被自动的复制到多个有足够存储空间的存储节点上,这样可以满足这个“类别”的最少复制要求。 4:比RAID更好:在一个非存储区域网络的RAID中,磁盘是冗余的,但主机不是,如果你整个机器坏了,那么文件也将不能访问。MogileFS分布式文件存储系统在不同的机器之间进行文件复制,因此文件始终是可用的。 5:传输中立,无特殊协议 6:简单的命名空间:文件通过一个给定的key来确定,是一个全局的命名空间 MogileFS的适用性——擅长处理海量小文件 由于MogileFS不支持对一个文件的随机读写,因此注定了只适合做一部分 应用。比如图片服务,静态HTML服务。 FastDFS FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

3种分布式文件系统

3种分布式文件系统

第一部分CEPH 1.1 特点 Ceph最大的特点是分布式的元数据服务器通过CRUSH,一种拟算法来分配文件的locaiton,其核心是 RADOS(resilient automatic distributed object storage),一个对象集群存储,本身提供对象的高可用,错误检测和修复功能。 1.2 组成 CEPH文件系统有三个主要模块: a)Client:每个Client实例向主机或进程提供一组类似于POSIX的接口。 b)OSD簇:用于存储所有的数据和元数据。 c)元数据服务簇:协调安全性、一致性与耦合性时,管理命名空间(文件名和 目录名) 1.3 架构原理 Client:用户 I/O:输入/输出 MDS:Metadata Cluster Server 元数据簇服务器 OSD:Object Storage Device 对象存储设备

传统的,或者通常的并行文件系统,数据的定位的信息是保存在文件的metadata 中的,也就是inode结构中,通过到metadata server上去获取数据分布的信息。而在Ceph中,是通过CRUSH 这个算法来提供数据定位的。 第二,元数据服务器可以提供集群metadata server 服务。 只要当我们了解了其结构后,感觉并没有太大的特点。元数据服务器一般就用来存储文件和目录的信息,提供统一的命名服务。在Ceph中,元数据的inode , dentry,以及日志都是在对象存储集群RADOS中存储,这就使得metadata的持久化都是在远程的RADOS中完成,metadata server 不保存状态,只是缓存最近的inode 和 dentry项,当metadata server 失效后,其所所有信息都可以从RADOS中获取,可以比较容易恢复。 CEPH最核心的,就是RADOS就是RADOS(resilient automatic distributed object storage). 其resilient 指的是可以轻松扩展,automatic 指的是其对象存储集群可以处理failover, failure recovery。RADOS 对象集群其对外提供了一个高可用的,可扩展的,对象集群,从客户端的角度看,就是一个统一命名空间的对象存储。 1.4 使用方式 (一)Ceph 的Monitor 用来监控集群中所有节点的状态信息,完成类似配置服务的功能。在Ceph 里,配置主要就是cluster map ,其保存集群所有节点信息,并和所有的节点保持心跳,来监控所有的节点状态。 其通过Paxos算法实现实现自身的高可用,也就是说,这个Ceph Monitor 是不会有单点问题的。目前流行的zookeeper 的功能,以及实现都类似。(二)对象存储 Ceph文件系统中的数据和元数据都保存在对象中。对于对象存储,通常的定义是:一个Object,由三部分组成(id,metadata,data),id是对象的标识,这个不必多说。所谓的metadata,就是key/value的键值存储,至于用来保存什么信息,由文件系统的语义定义。data就是实际存储的数据。 Ceph的对象,包括四个部分(id,metadata,attribute,data),在Ceph 里,一个Object,实际就对应本地文件系统的一个文件,一个对象的attribute,也是key/value的键值对,其保存在本地文件系统的文件的扩展属性中。对象的metadata就是key/value的键值对,目前Ceph保存在google开源的一个

windows server 2008 分布式文件系统

windows server 2008 分布式文件系统 DFS [windows 2008 server 新技术文章] 概述 分布式文件系统(Distributed file systems) 是Windows 2008服务器中众多的功能之一,它可以把分布在许多不同服务器上的共享文件夹组合在一个逻辑名字空间中,使用户可以更方便地查找和访问网络上的共享文件夹。如公司网络上有8台员工每天都需要使用的文件服务器,如果没有Dfs 服务器,用户需要记住8台服务器的名字和所有共享文件夹的共享名,还必须映射多个驱动器。有了DFS 后,可以在公司的域控制器DC 服务器上创建一个DFS 根目录,该服务器也就成为了DFS 根目录服务器,该 DFS 根目录与其他文件服务器上的共享文件夹之间都存在连接。用户在访问DFS 根目录时,这些共享文件夹也都依赖于根目录 服务器。事实上,连接可以把用户的访问重新定向到文件服务器上的共享文件夹。DFS 可以解决一些由于存储容量限制、规划不好或在网络上添加服务器而引起的“分布共享”问题。 windows server 2008的DFS 服务还提供另一个功能,同步数据。DFS 的数据同步功能可以实现网络中两台或多台服务器文件数据内容的一致性。 安装 DFS 简介 DFS 根的概念 在windows 2008又称命名空间。在Windows 2008中可以创建两种DFS 根:独立型和基于域型的DFS 根。使用独立型的DFS 根,一旦用作DFS 根服务器的服务器当机,即使所有包含共享文件夹的服务器仍然在运行,用户也不能再访问共享文件夹。使用基于域的DFS 根,可以指定其他的服务器(称作根复制服务器)来保存DFS 的副本,从而使整个系统具有一定的容错性和负载平衡能力,也就在一定程度上解决了独 立型DFS 根带来的问题。此外,通过使用 活动目录AD 地址,一个与DFS 根服务器连接的用户也将试图连接同名的地址,减少网络上的数据流量。 通过建立根复制服务器,可以在DFS 树中创建连接,把用户提交给共享文件夹的各个副本,它不但提供了一定程度的容错能力和负载平衡能力,而且可以在共享一级上充分利用网络的拓扑结构来控制网络上的数据流量。 DFS 根的创建

相关文档
最新文档