当前位置:文档之家› 分布式文件系统DFS使用方法总结(超详细)

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

分布式文件系统DFS使用方法总结(超详细)
分布式文件系统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.在“操作”菜单上,单击“新建根目录”。

3.按“新建根目录向导”中显示的指示执行操作。

4.若要删除根目录,请选择该根目录,打开“操作”菜单,然后单击“删除根目录”。

为了更改现有的DFS名称空间,您必须成为作为名称空间宿主的服务器上的Administrators 组成员。

任何成员服务器或域控制器都可以作为DFS根目录宿主。您必须是服务器上的Administrators 组的成员,才能在该服务器上创建DFS根目录。另外,您需要域管理员凭据才能创建域根。

只有 NTFS 卷可以作为DFS根目录宿主。无法在 FAT 或 FAT32 分区上作为DFS根目录宿主。

使用共享文件夹时,请使用 NTFS 和文件共享权限以保证文件夹及任何子文件夹的安全性,从而确保只有授权用户才可访问它们。

添加DFS根目标

为域根添加多个根目标可以帮助确保在主服务器由于任何原因不可用的情况下,域用户仍可使用与DFS根目录关联的分布式文件系统。若要添加根目标,请单击根目录,然后从“操作”菜单中选择“新建根目标”。这将调用“新建根目录向导”。

如何添加DFS根目标

1.打开分布式文件系统。

2.选择您要添加根目标的域根目录。

3.在“操作”菜单上,单击“新建根目录目标”。

4.按“新建根目录向导”中显示的指示执行操作。

5.若要删除根目标,请选择该根目标,打开“操作”菜单,然后单击“删除目标”。

显示DFS根目录

1.打开分布式文件系统。

2.单击“分布式文件系统”。

3.在“操作”菜单中,单击“显示根目录”。

4.在“根目录或主服务器”字段中,键入现有DFS根目录的 UNC 名称,或者展开信任域的列表,并单击DFS根目录,然后单击“确定”。

添加DFS链接

分布式文件系统 (DFS) 链接是DFS名称空间的元素,它位于根目录下方并映射到一个或多个目标。访问DFS名称空间的用户看到的是根目录下作为文件夹而列出的链接名,而不是目标的实际名称和物理位置。

如何添加DFS链接

1.打开分布式文件系统。

2.在控制台树中,单击DFS根目录。

3.在“操作”菜单上,单击“新建链接”。

4.键入新链接的名称。

5.键入新链接的路径,或单击“浏览”从可用共享文件夹列表中选择。

6.如果您希望使用注释进一步标识或说明该链接,则键入注释。

7.键入该链接的引用将在DFS客户端上缓存的持续时间,然后单击“确定”。

8.若要删除链接,请选择该链接,打开“操作”菜单,然后单击“删除链接”。

如果您随后在命令行上使用 dfscmd /remove 删除此链接中的目标,则必须指定与您用于创建该链接的名称相同的名称。例如,如果您使用链接的 DNS 名称创建该链接,则使用 dfscmd 时必须指定 DNS 名称,而不要指定 NetBIOS 名称。添加链接时考虑使用一致的命名标准,以便以后能较方便地记起。

筛选DFS链接显示

1.打开分布式文件系统。

2.在控制台树中,单击DFS根目录。

3.在“操作”菜单上,单击“筛选链接”。

4.在“键入最多可用链接数目”框中,键入要在控制台树中显示的链接的最大数量。

5.选择“用名称筛选链接”,然后执行以下某项操作:

若要显示名称以某个文本字符串开始的所有链接,请在列表框中选择“开始”,然后键入您要筛选的文本字符串。若要显示名称中包括某个文本字符串的所有链接,请在列表框中选择“包含”,然后键入您要筛选的文本字符串。

详细信息窗格中的“DFS参照”列和“状态”列提供有关每个目标的引用状态的信息。“DFS参照”列指示DFS参照是否已启用,“状态”列指示特定目标是否可用。如果无法访问目标,“状态”列将显示“脱机”。若要查看目标的当前状态,请单击它并从“操作”菜单中选择“检查状态”。

添加目标

对于每个DFS链接,您都可创建DFS链接所指向的目标集。在目标集中,您创建DFS链接时可将第一个文件夹添加到该集。使用DFS管理工具的“新建目标”对话框可添加后续目标。

如何添加目标

1.打开分布式文件系统。

2.在控制台树中,单击要为其指派目标的DFS链接。

3.在“操作”菜单上,单击“新建目标”。

4.在“目标路径(共享文件夹)”下,输入共享文件夹的名称,或单击“浏览”,从可用共享文件夹列表中选择。

5.如果将目标添加到域根,那么单击“将这个目标添加到复制集中”将启用该目标的自动文件复制。

6.如果未启用自动文件复制,您必须从其他目标手动将文件复制到新目标。

检查目标状态

您可检查DFS是否正确引用已分配的目标。状态检查可以显示以下情况之一:

检查DFS根目录或DFS链接的状态将显示以下某个图标:

(1)根目录或链接上的蓝色复选标记表示可以访问该根目录或链接,且可以访问它的所有目标。

(2)根目录或链接上的黄色感叹号表示可以访问该根目录或链接,但是无法访问它的某些目标,原因是DFS参照在那个目标上不可用或某些其他问题阻止访问该目标。

(3)根目录或链接上的红色交叉号表示无法访问该根目录或链接。

检查目标的状态将导致详细信息窗格中的“状态”栏指示“联机”或“脱机”。如果目标的状态为“脱机”,则表示不能访问该目标。

如何隐藏DFS根目录

1.打开分布式文件系统。

2.在控制台树中,单击DFS根目录。

3.在“操作”菜单中,单击“隐藏根目录”。

4.将显示一个对话框,询问您是否要隐藏根目录。单击“是”。

删除DFS根目录、根目标、链接或目标

1.打开分布式文件系统。

2.单击您要删除的DFS根目录、根目标、链接或目标。您可能需要浏览控制台以显示要删除的对象。

3.在“操作”菜单上,根据所要删除对象的种类,单击“删除根目录”、“删除链接”或“删除目标”。

4.将显示一个对话框,要求您进行确认。单击“是”。

删除根目录是一个不可恢复的操作。删除根目录将从管理工具中清除该根目录并清除与该根目录相关的整个DFS结构,但不会删除任何数据。如果它是一个独立的根目录,该过程将从主机中清除DFS配置数据。如果它是一个域根,该过程将从每个主机和Active Directory 中清除配置数据。

删除根目录、根目标、链接或目标不会删除文件系统中任何相关的共享文件夹,且它不会更改与文件或文件夹相关的任何权限。如果您不再想要用户访问这些共享文件夹中的数据,可以使用 NTFS 或文件共享权限来限制访问。

配置复制拓扑结构

“拓扑”一词一般指网络中各组件间的关系。复制拓扑说明 FRS 用来在计算机间复制文件的逻辑连接。

对于每一个DFS根目录或DFS链接,您都可以指定以下四种基本拓扑类型之一:

(1)在环形拓扑中,文件从环形配置中的一台计算机复制到另一台计算机,并且在环中每台计算机都与它两端的计算机相连接。

(2)在星型拓扑中,指定一台计算机作为集中器,且该计算机与称作终端的其他所有计算机都相连接。文件从集中器复制到终端中,反之亦然,但是文件不能在两台终端间直接复制。您必须选择哪台计算机用作集中器。

(3)在完全网状拓扑中,每台计算机都与所有其他计算机相连接。在某台计算机上创建的文件直接复制到所有其他计算机中。

(4)在自定义拓扑中,您可在计算机间创建您自己的连接.选择拓扑时,您可通过有选择地启用或禁用计算机间的连接来进一步自定义该拓扑。您可通过完全禁用两台计算机间的关系来从根本上禁止在它们之间复制文件,或者通过禁用从第一台计算机到第二台计算机的连接,同时使反方向的连接可用来实现单向的文件复制。

很多因素都影响适合您网络的拓扑类型,其中包括带宽、安全性、地理位置和组织的考虑事项。

配置复制计划

您第一次配置复制的 /DFS根目录或DFS链接时,文件复制服务 (FRS) 将复制计划为整日

整夜地进行。每当将某个文件复制到参与复制的目标时,FRS 都会使用复制拓扑中指定的连接将该文件复制到其他目标。

您可能不希望复制在某些时间自动进行。例如,如果在每周五晚上 9 点到 11 点为了进行维护而将某些服务器与网络断开,然后再重新启动,则需要在每周五晚上 9 点开始停止对那些服务器往返内容的复制,并在两个小时后重新恢复复制它们。连接返回复制后,FRS 立即使这两个共享间的任何差异达到一致。

FRS 允许您计划复制可用或不可用的时间。您可修改单独连接的计划,或一次修改所有连接的计划。“计划”对话框显示一周中每小时的计划,并允许您选择进行或不进行复制的时间段。单击工作日的名称将选择整天。单击计划顶端,单词“所有”右边的框将选择一周中每天的相同小时。单击“所有”将选择整个计划。

您可采用两种方式访问计划。单击根目录或链接的“属性”表的“复制”选项卡上的“计划”按钮将允许您查看和更改属于该根目录或链接的所有连接。如果您在“自定义拓扑”对话框中选择一个或多个连接,并单击“计划”按钮,则只能更改所选连接的计划。

从复制中排除文件和文件夹

有时,您可能不想复制DFS根目录或DFS链接中包括的每个文件或子文件夹。例如,如果用作目标的共享文件夹包括由应用程序出于缓存或记录目的而创建的几个临时文件,则您可能不想将这些文件复制到参与复制的所有目标中。对于每个根目录和链接,您可以使用文件复制服务指定要从复制中排除的文件和子文件夹。排除规则应用到指定属于所选根目录或链接的每个目标或根目标,且也应用到共享文件夹本身下的子文件夹。

输入文件或文件夹名称时,您可使用 * 和 ? 作为通配符。例如,*.tmp 匹配以 .tmp 为扩展名的所有文件。

设置入站连接的初始同步优先级在复制过程中控制同步的次序往往是有利的。通过使用分布式文件系统 (DFS) 管理单元和文件复制服务 (FRS),可以配置同步优先级。您向副本集中添加新成员或还原某个副本集成员时,可以确定在所发生的初始同步中哪个入站连接将首先出现。例如,您可通过调整同步优先级确保首先同步具有高带宽网络连接的计算机,然后再同步那些通过较低带宽连接进行通信的计算机。通过调整同步优先级,您时常可以减少执行同步过程所需要的时间。

通过使用 FRS,您可从以下三种同步优先级中选择:

高:必须成功同步所有标记为“高”的连接后,才能尝试对“中”优先级连接进行同步。中:必须至少有一个“中”优先级连接成功完成初始同步后,才能尝试对“低”优先级连接进行同步。FRS 尝试同步“中”优先级中的所有连接,但是必须在一个连接成功同步后,FRS 才尝试对“低”优先级连接进行同步。

低:FRS 一次只对“低”优先级连接上的一台计算机进行同步尝试,但是任何故障都不会延迟其他同步尝试。

所有连接的默认同步优先级是“低”。一般情况,您应配置高带宽连接或本地连接比低带宽连接具有更高的同步优先级。因此,根据具体情况的不同,“中”或“高”优先级适合您的本地连接。但是,需要注意,如果“高”优先级连接出现故障,则不会进行其他同步。

替代初始同步的计划

一般情况,同步仅在您所配置的同步计划中定义的时间进行。但是,您可替代初始同步或初始创建副本集成员的计划。通过选择“优先级”对话框中“替代计划”复选框,可以使初始复制立即进行。

如何查看复制属性

1.打开分布式文件系统。

2.单击已配置其复制的域DFS根目录或链接。

3.在“操作”菜单上,单击“属性”。

4.单击“复制”选项卡。

如何初始化文件复制

1.打开分布式文件系统。

2.单击您要进行初始化复制的域的根目录或链接。

3.在“操作”菜单上,选择“配置复制”。

4.按“配置复制”向导中显示的指示执行操作。

不要在由远程存储管理的卷上创建文件复制服务 (FRS) 副本集。否则,将严重影响系统性能并可能丢失媒体库中的数据。 FRS 可能需要定期读取副本集中的每个文件,从而将文件内容发送到另一台计算机。这会使得 FRS 撤回“远程存储”已经发送到辅助存储器的所有文件,这将花费很长时间(几小时或几天)。如果使用磁带作为辅助存储器,请记住 FRS 将按目录顺序而非媒体顺序撤回文件,因此由 FRS 执行的过多磁带搜索操作可能毁坏磁带并导致数据丢失。

不要在分布式文件系统 (DFS) 根目录上启用复制。

如何启用或禁用目标复制

1.打开分布式文件系统。

2.单击要管理其复制的DFS链接。

3.如果“文件复制”栏在目标列表中不可视,则通过单击“操作”菜单,然后单击“显示复制信息”来显示它。

4.单击您要更改其复制状态的目标。

5.在“操作”菜单上,单击“启用复制”(如果复制当前已禁用,而您需要启用它),或单击“禁用复制”(如果复制当前已启用,而您需要禁用它)。如果您启用目标的复制,系统将提示您指定一个临时文件夹。

如何修改复制拓扑

1.打开分布式文件系统。

2.单击要管理其复制的根目录或链接。

3.在“操作”菜单上,单击“属性”。

4.在“复制”选项卡上,单击“自定义”按钮。

5.在“拓扑”下拉列表中,单击您要使用的复制拓扑的类型。在“连接”下将显示服务器连接的列表。

6.在“连接”下,选中或取消选中复选框以启用或禁用服务器间的复制连接。

7.如果您选择自定义拓扑,则必须手动添加和删除连接。若要添加连接,单击“新建”按钮,或者,要删除现有连接,单击“删除”。

8.若要更改初始同步或还原的同步优先级,请单击“优先级”按钮。

如何设置复制计划

1.打开分布式文件系统。

2.单击要管理其复制的域DFS根目录或链接。在“操作”菜单上,单击“属性”。

3.在“复制”选项卡上,单击“计划”。将显示复制计划,其中的蓝色部分表示复制可用的

时间,白色部分表示复制不可用的时间。

4.在复制计划上,单击可以选择一小时,或进行拖动操作以选择几小时。

5.按如下操作,启用或禁用所选的一段时间或几段时间的复制。

(1)若要启用复制,请单击“可以使用复制”。

(2)若要禁用复制,请单击“不能使用复制”。

6.根据需要,重复以上两个步骤,然后单击“确定”。

从复制中排除文件或子文件夹

1.打开分布式文件系统。

2.单击要管理其复制的域DFS根目录或链接。在“操作”菜单上,单击“属性”。

3.在“复制”选项卡上的“文件筛选器”(对于文件)或“子文件夹筛选器”(对于子文件夹)旁单击“编辑”。

4.键入您要从复制中排除的文件或子文件夹的名称。

5.单击“添加”,将文件或文件夹名称添加到排除列表中,然后单击“确定”。

从排除列表删除文件或子文件夹

1.打开分布式文件系统。

2.单击要管理其复制的域DFS根目录或链接。在“操作”菜单上,单击“属性”。

3.在“复制”选项卡上的“文件筛选器”或“子文件夹筛选器”旁单击“编辑”。

4.单击您要从列表中删除的文件或文件夹的名称或说明。

5.单击“删除”从排除列表中删除该项,然后单击“确定”。

如何从命令行管理DFS

Dfscmd从命令行管理分布式文件系统。

语法

dfscmd /map \\DFSName\DFSShareName\Path \\ServerName\ShareName\Path [Comment] [/restore]

dfscmd /unmap \\DFSName\DFSShareName\Path

dfscmd /add \\DFSName\DFSShareName\Path \\ServerName\ShareName\Path [/restore]

dfscmd /remove \\DFSName\DFSShareName\Path \\ServerName\ShareName\Path

dfscmd /view \\DFSName\DFSShareName [/full] [/partial] [/batch] [/batchrestore]

参数

/map

创建链接并将该链接映射到目标。如果指定的DFS根不存在,dfscmd 就会返回一个错误。指定了 /restore 时,dfscmd 不试图验证目标路径。

\\DFSName\DFSShareName\Path

用于访问分布式文件系统的路径。

\\ServerName\ShareName\Path

映射到DFS链接的实际文件系统位置。

[Comment]

可以用来标识目标的可选注释。

/unmap

从DFS根中删除DFS链接并删除其目标。

/add

向指定的DFS链接添加目标。如果指定的链接不存在,dfscmd 就会返回一个错误。指定了/restore 时,dfscmd 不试图验证目标路径。

/remove

从指定的DFS链接删除目标。

/view

查看指定DFS根的详细信息。输入了 dfscmd /view 而没有输入其他参数时,dfscmd 将只显示根以及其链接的名称。dfscmd /view /partial 可以显示与根关联的任何注释。dfscmd /view /full 可以显示根以及其链接的名称,与根关联的任何注释,以及与链接关联的任何目标。dfscmd /view /batch 返回批处理脚本,可以使用该脚本还原根。dfscmd /view /batchrestore 返回类似的批处理脚本,该脚本不尝试验证目标。

/?

在命令提示符下显示帮助。

注释

如果使用包含空格的路径或注释,请用引号将它引起来。

当您使用 dfscmd/remove 删除目标时,必须指定与用于创建链接的名称相同的链接名称。例如,如果使用其 DNS 名称创建链接,那么当您使用 dfscmd/remove 时必须指定 DNS 名称而不是 NetBIOS 名称。当您添加链接时请考虑使用一致的命名标准,这样以后会更容易记住。

示例

要在DFS根 \\Appserver\Apps\ 下创建一个名为 SiteLicense 的链接,该链接指向\\Westcoast-ap1\Shared\Sitelic 目标而不对目标进行验证,请键入:

dfscmd /map \\appserver\apps\SiteLicense \\westcoast-ap1\shared\sitelic /restore

要作为DFS链接\\Appserver\Apps\SiteLicense 的目标删除\\Midwest-ap3\Shared\Site,请键入:

dfscmd /remove \\appserver\apps\SiteLicense \\midwest-ap3\shared\site

要查看链接以及与DFS根 \\Appserver\Apps 关联的注释,请键入:

dfscmd /view \\appserver\apps /partial

分布式文件系统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.在“操作”菜单上,单击“新建根目录”。

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.doczj.com/doc/344760964.html, 2006-12 摘要 文件系统是操作系统用来组织磁盘文件的方法和数据结构。传统的文件系统指各种UNIX平台的文件系统,包括UFS、FFS、EXT2、XFS等,这些文件系统都是单机文件系统,也称本地文件系统。随着网络的兴起,为了解决资源共享问题,出现了分布式文件系统。分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。本文1简要回顾了本地文件系统,然后按照发展例程大致介绍了2006年之前各时期主要的分布式文件系统,最后从设计目标、体系结构及关键技术等方面比较了各个分布式文件系统的异同。目前很火的Hadoop文件系统、S3文件系统都是从NFS等早期文件系统一步步演化而来的,了解分布式文件系统的历史,有助于大家更加深刻地领会分布式文件系统的精髓。 1本文写于2006年底,借鉴了别人的大量资料,目的是为了与同学们分享分布式文件系统的发展史。笔者在硕士期间跟随中科院计算所的孟老师、熊老师和唐荣锋进行分布式文件系统的研究和开发。分布式文件系统源远流长,本文只是选择了其发展史上的部分实例进行简单描述,由于笔者水平十分有限,错误之处难免很多,各位同学发现问题之后麻烦回复邮件到yangdonglee@https://www.doczj.com/doc/344760964.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.doczj.com/doc/344760964.html,/topics/download/38db9a29-3e17-3dce-bc93-df9286081126 做个原版地址链接: https://www.doczj.com/doc/344760964.html,/papers/gfs.html https://www.doczj.com/doc/344760964.html,/papers/bigtable.html https://www.doczj.com/doc/344760964.html,/papers/mapreduce.html GFS(Google File System) -------------------------------------- Google公司为了满足本公司需求而开发的基于Linux的专有分布式文件系统。。尽管Google公布了该系统的一些技术细节,但Google并没有将该系统的软件部分作为开源软件发布。 下面分布式文件系统都是类 GFS的产品。

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

分布式文件系统、集群文件系统、并行文件系统,这三种概念很容易混淆,实际中大家也经常不加区分地使用。总是有人问起这三者的区别和联系,其实它们之间在概念上的确有交叉重叠的地方,但是也存在显著不同之处。分布式文件系统自然地,分布式是重点,它是相对与本地文件系统而言的。分布式文件系统通常指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是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

分布式文件系统研究-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

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开源的一个

一种分布式文件系统的设计和实现

一种分布式文件系统的设计和实现 程炜烨 (华中科技大学计算机学院湖北武汉 430074) 摘要:分布式文件系统在集群存储中起着重要的作用,。本文详细介绍了一种分布式文件系统的设计和实现,着重叙述了统一名字空间的设计和Linux下客户端文件系统的实现。该分布式文件系统的读写性能比网上邻居有明显的优势。 关键词:集群存储;统一名字空间;超级块;目录项;索引节点 The design and implement of a distribute file system CHENG Weiye (School of Computer Science, Huazhong University of Science and Technology, Wuhan 430074, China) Abstract: Distribute file system plays an important role in cluster storage. The design and implement of the distribute file system is discussed in detail, especially the design of global name space and the implement of file system in Linux. Key words: cluster storage; global name space; super block; directory entry; index node 1引言 为了满足文件存储的新的要求(大容量、高可靠性、高可用性、高性能、动态可扩展性、易维护性),设计一种好的分布式文件系统越来越成为需要。分布式文件系统使得分布在多个节点上的文件如同位于网络上的一个位置便于动态扩展和维护。由于分布式文件系统中的数据可能来自很多不同 的节点,它所管理的数据也可能存储在不同的节点上,这使得分布式文件系统中有很多设计和实现与本地文件系统存在巨大的差别。下面主要讲述分布式文件系统设计和实现中所要面对和解决的主要 问题错误!未找到引用源。。 2软件总体结构 设计一个好的分布式文件系统是集群存储的关键。我们设计的分布式文件系统通过统一名字空间管理使得分布在多个服务器上的文件如同位于网络上的一个位置便于动态扩展和维护。 我们把整个系统主要划分客户端与服务器端两部分。客户端包括MVFS文件系统,CC模块(Client Cache),CNS模块(Client Name Space),CN模块(Client Network)。服务器端包括SC模块(Server Cache),SNS模块(Server Name Space),SN模块(Server Network)。应用程序的I/O请求首先送给MVFS文件系统,MVFS文件系统根据文件句柄获得本文件系统的全局文件名并把对文件的访问转换为对CC的访问。CC 收到请求之后,如果在Cache中没有发现对应的数据,则将请求发给CNS 层,CNS层根据全局文件名获得该文件所在的服务器。最终通过CN层将命令发给服务器。服务器端SN层通过网络接待命令后,将命令传递给SNS层负责将全局文件名转化成本地的文件名,然后到SC 层去查找,如果在Cache中找不到,最终会通过本地的文件系统完成对应的I/O 请求。整个系统的总体结构如图1所示。 在服务器端还有一个全局管理程序(心跳协议程序)。通过该心跳协议程序,所有的存储节点的所共享出来的文件构成了整个文件系统的单一的全局逻辑树,从而可以让客户端见到唯一确定的全局逻辑树。

大数据技术与应用 - 大数据存储和管理 - 分布式文件系统 - 第二课

大数据技术与应用 网络与交换技术国家重点实验室 交换与智能控制研究中心 程祥 2016年9月

提纲-大数据存储和管理1. 分布式文件系统 1.1 概述 1.2 典型分布式文件系统 1.3 HDFS 2. 分布式数据库 2.1 概述 2.2 NoSQL 2.3 HBase 2.4 MongoDB(略) 2.5 云数据库(略)

1.1 概述 ?定义:相对于本地文件系统,分布式文件系统是一种通过网络实现文件在多台主机上进行分布式存储的文件系统。 ?分布式文件系统一般采用C/S模式,客户端以特定的通信协议通过网络与服务器建立连接,提出文件访问请求。 ?客户端和服务器可以通过设置访问权限来限制请求方对底层数据存储块的访问。

1.2 典型的分布式文件系统 ?NFS (Network File System) 由Sun微系统公司作为TCP/IP网上的文件共享系统开发,后移植到Linux等其他平台。其接口都已经标准化。 ?AFS (Andrew File System) 由卡耐基梅隆大学信息技术中心(ITC)开发,主要用于管理分部在不同网络节点上的文件。AFS与 NFS不同,AFS提供给用户的是一个完全透明,永远唯一的逻辑路径(NFS需要物理路径访问)。

1.2 典型的分布式文件系统(续) ?GFS(Google File System) 由Google开发,是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,并提供容错功能。 ?HDFS(Hadoop Distributed File System) HDFS是Apache Hadoop项目的一个子项目,是一个高度容错的分布式文件系统,设计用于在低成本硬件上运行,适合存储大数据,GFS的开源版本。

分布式文件系统学习

分布式基础学习
所谓分布式,在这里,很狭义的指代以 Google 的三驾马车,GFS、Map/Reduce、BigTable 为框架核心的分布 式存储和计算系统。通常如我一样初学的人,会以 Google 这几份经典的论文作为开端的。它们勾勒出了分布式存 储和计算的一个基本蓝图,已可窥见其几分风韵,但终究还是由于缺少一些实现的代码和示例,色彩有些斑驳,缺 少了点感性。幸好我们还有 Open Source,还有 Hadoop。Hadoop 是一个基于 Java 实现的,开源的,分布式 存储和计算的项目。作为这个领域最富盛名的开源项目之一,它的使用者也是大牌如云,包括了 Yahoo,Amazon, Facebook 等等(好吧,还可能有校内,不过这真的没啥分量...)。Hadoop 本身,实现的是分布式的文件系统 HDFS,和分布式的计算(Map/Reduce)框架,此外,它还不是一个人在战斗,Hadoop 包含一系列扩展项目, 包括了分布式文件数据库 HBase(对应 Google 的 BigTable),分布式协同服务 ZooKeeper(对应 Google 的 Chubby),等等。。。 如此,一个看上去不错的黄金搭档浮出水面,Google 的论文 + Hadoop 的实现,顺着论文的框架看具体的实现, 用实现来进一步理解论文的逻辑,看上去至少很美。网上有很多前辈们,做过 Hadoop 相关的源码剖析工作,我关 注最多的是这里,目前博主已经完成了 HDFS 的剖析工作,Map/Reduce 的剖析正火热进行中,更新频率之高, 剖析之详尽,都是难得一见的,所以,走过路过一定不要错过了。此外,还有很多 Hadoop 的关注者和使用者贴过 相关的文章, 比如: 这里,这里。 也可以去 Hadoop 的中文站点(不知是民间还是官方...) ,搜罗一些学习资料。 。。 我个人从上述资料中受益匪浅,而我自己要做的整理,与原始的源码剖析有些不同,不是依照实现的模块,而是基 于论文的脉络和实现这样系统的基本脉络来进行的,也算,从另一个角度给出一些东西吧。鉴于个人对于分布式系 统的理解非常的浅薄,缺少足够的实践经验,深入的问题就不班门弄斧了,仅做梳理和解析,大牛至此,可绕路而 行了。。。
一. 分布式文件系统
分布式文件系统,在整个分布式系统体系中处于最低层最基础的地位,存储嘛,没了数据,再好的计算平台,再完 善的数据库系统,都成了无水之舟了。那么,什么是分布式文件系统,顾名思义,就是分布式 文件系统 分布式+文件系统 分布式 文件系统。它包含 这两个方面的内涵,从文件系统的客户使用的角度来看,它就是一个标准的文件系统,提供了一系列 API,由此进 行文件或目录的创建、移动、删除,以及对文件的读写等操作。从内部实现来看,分布式的系统则不再和普通文件 系统一样负责管理本地磁盘, 它的文件内容和目录结构都不是存储在本地磁盘上, 而是通过网络传输到远端系统上。 并且,同一个文件存储不只是在一台机器上,而是在一簇机器上分布式存储,协同提供服务,正所谓分布式。。。 因此,考量一个分布式文件系统的实现,其实不妨可以从这两方面来分别剖析,而后合二为一。首先,看它如何去 实现文件系统所需的基本增删改查的功能。然后,看它如何考虑分布式系统的特点,提供更好的容错性,负载平衡, 等等之类的。这二者合二为一,就明白了一个分布式文件系统,整体的实现模式。。。
I. 术语对照
说任何东西,都需要统一一下语言先,不然明明说的一个意思,却容易被理解到另一个地方去。Hadoop 的分布式 文件系统 HDFS,基本是按照 Google 论文中的 GFS 的架构来实现的。但是,HDFS 为了彰显其不走寻常路的本 性,其中的大量术语,都与 GFS 截然不同。明明都是一个枝上长的土豆,它偏偏就要叫山药蛋,弄得水火不容的, 苦了我们看客。秉承老好人,谁也不得罪的方针,文中,既不采用 GFS 的叫法,也不采用 Hadoop 的称谓,而是 另辟蹊径,自立门户,搞一套自己的中文翻译,为了避免不必要的痛楚,特此先来一帖术语对照表,要不懂查一查, 包治百病。。。
文中所用翻译 主控服务器
HDFS 中的术语 NameNode
GFS 中的术语 Master
术语解释 整个文件系统的大脑,它
1

相关主题
文本预览
相关文档 最新文档