转自于:http://www.cnblogs.com/zitjubiz/archive/2012/11/30/Distributed_File_System_glusterFS.html

GlusterFS是“一套可扩展的开源集群文件系统,并能够轻松为客户提供全局命名空间、分布式前端以及高达数百PB级别的扩展性。”这种说法口 气可不小,但GlusterFS也确实把解决大问题——真正的“大”问题当作己任。事实上,Gluster的最大容量为72 brontobyte(没错,这个词已经成为现实,相当于一千亿亿亿字节)。

  也许GlusterFS最值得立即了解的重要细节是,它完全实现了网络附加存储的大规模扩展而没有借助其他人在处理大数据领域所使用的要素:元 数据。元数据被用来描述一个给定的文件或是区块在分布式文件系统中的所处位置;它同时也是网络附加存储解决方案在规模化方面的致命弱点。

  在某些情况下,例如Hadoop的本地HDFS,元数据正是导致失败的重要元凶。而在其它情况下,它又作为线性性能可扩展性的阻碍出现,因为所 有节点都必须不断与服务器(或服务器群组)保持联系以延持整个集群的元数据——这种做法几乎必定会带来额外的延迟并使存储硬件在等待响应元数据请求的过程 中处于效率低下的闲置状态。

  Gluster通过使用其自有的弹性Hash算法解决了这一问题。凭借这种算法,Gluster集群中的每个节点都能够计算得出某个特定文件的 位置,而无需联系集群内的其它节点——这基本上消除了元数据追踪及变化的必要性。正是这套方案让GlusterFS在竞争中独占鳌头,并使其真正能够实现 自身在线性性能扩展性方面的承诺。

  后端部署

  GlusterFS是一套用户空间文件系统驱动程序,可以被部署于任何品牌的Liniux系统之中(主要是RHEL或者CentOS)。换句话 来说,GlusterFS的运行完全独立于硬件之外,因此非常便于携带。在预制型或者是私有云实例中,GlusterFS可以被创建于诸如JBOD(即简 单磁盘捆绑)、DAS(即数据采集系统)或者SAN存储等商用服务器硬件之上——具体使用哪种硬件完全取决于终端用户的选择。而在公共云环境 中,GlusterFS则可以直接被安装在现有产品上,进而提供更好的可扩展性及有效性(目前Amazon及Rightscale公司都在提供类似的产 品)。除此之外,当其被部署于数量与日俱增的虚拟装置之中时,Gluster的节点将运作于管理程序之上——无论是预制型还是在云中。

  根据数据在GlusterFS节点集群中的存储方式,Gluster能够以性能不同、可用性特性不同的数种方式加以部署。最简单的一种当数只分 布型,这种类型从本质上模拟了文件级别的RAID0分布状况。而这种类型中,文件只存储在一个Gluster节点中,因此单个节点的故障即会导致数据的丢 失。其实这没什么好奇怪的,低安全性换来的是最高级别的性能表现以及最高效的存储调用状态,因为整个流程中不涉及文件备份。

 对于那些要求在节点故障情况下仍能保证数据安全的应用程序来说,Gluster的分布式副本模式能够满足此类要求,该模式基本上类似于RAID 10。在这种模式下,文件被分布在始终处于同步状态的一对镜像节点当中。个别节点在发生故障时镜像节点会及时补充,进而保证文件的可用性不受任何影响。

  最后,Gluster还支持分段模式,这是一种在执行上非常接近标准化区块层RAID0的模式。根据建议,该模式一般只适合用于处理超大型文件 (通常要超过50GB)的存储及多节点性能要求较高的情况。这也是惟一一个将会永远将文件拆分并将其分布于多个节点上的模式——其它所有模式都只在文件层 面运作。遗憾的是,镜像与分段模式无法结合,因此要实现极高的可用性,必须将这套方案与硬件部署统一起来。

  尽管我们无法在同一个Gluster集群中同时使用多种存储模式,但仍然可以在同一套硬件装置中运行数个逻辑集群。因此,大家实际上能够在单独的物理硬件中并行运行分布式备份集群及分段式集群。

  除了允许在Gluster集群内部实施分布式备份系统之外,不同集群间的多线路地域备份也是可行的。这种方案能够被用于保护网站所面临的整体故 障或者为应用程序从一个站点向另一个迁移的工作变得更加便捷。Gluster地域备份颇具灵活性,允许我们复制包含任意数量中间副本的各种模式(例如从A 站到 B站、从B站到C站及D站等等)。

  应该指出的是,Gluster集群跨物理站点的延展也是可行的,但这就对分布式集群内部的同步工作在复制、大量广域网带宽及低延迟方面有着较高 要求,以保证获得令人满意的性能表现。而在实际操作中,单独的Gluster很可能会由于某个站点或是城域网的限制而受到影响。

  客户端访问

  Gluster可以通过多种不同协议实现客户端访问,包括本地Gluster客户端、NFS、CIFS、WebDAV、HTTP等等。然而,只有本地Gluster客户端才能正常支持高可用性、大规模的并行文件访问。使用本地客户端,所有客户端系统都会在积极连接到所有集群节点的同时,借助客户 端实施的弹性Hash算法了解到自身在拓扑结构中的位置,并且直接从所要求的托管节点处接收数据。因此,来自本地客户端的访问将永远不会使Gluster 节点为了满足客户端请求而产生数据交换——而且一旦某个镜像节点出了故障,应用程序可以透过Gluster分卷对其得到清楚的了解。

  基于标准的NFS及CIFS都存在着严重的局限性,使它们无法处理这种高度并行的访问。因此,NFS及CIFS在部署中需要引入额外的软件来管 理负载平衡及保证高可用性,因为客户在任何特定时段内只能够连接到单独的一个存储节点。负责处理这一问题的往往是循环域名服务或者是与UCARP(虚拟路 由冗余协议的简化版)或CTDB(用于集群存储的Samba项目)相结合的硬件负载平衡器。windows用户可采用 LVS+Linux(开启Samba服务)作为文件服务器集群

  由于客户只能在同一时间与一个节点建立联系,因此读、写请求就不得不在接入节点与实际存储对应内容的节点之间来回奔走——这种情况比起使用本地 客户端,性能表现自然会大幅下降。总而言之,使用这些协议的部署方案通常还需要一套单独的后端网络,专门用于处理响应客户端请求所必要的节点流量。

管理

  同Gluster 裸机存储平台共同运行的Web GUI,再加上一套与Gluster分布式独立体系协同合作的命令行工具,二者的结合完成了Gluster的管理工作。因此,管理这套体系的最佳人选是那 些熟悉Linux系统管理工作的技术人员。对于某些具备一定Linux知识的人来说,整个使用过程将会非常简单,只需几个简单的指令即可完成相当繁杂的工 作,比如添加一个新的节点或创建一个新的分卷。事实上,著名互联网广播公司Pandora所部署的、基于Gluster的250TB服务存储后端也只有一 位专门的管理人员负责打理。只要大家对Linux技巧不太陌生,又愿意拿出一、两个小时来熟悉,Gluster简直就是手到擒来。试问,还有哪一款集群文 件系统能够做到这一点呢?

  云应用程序

  除了其为了支持云环境可打造的存储后端高可用性,Gluster还拥有不少能够服务于当下公共云基础设施的巧妙应用程序。在为如Amazon EC 2这样追求极端高可用性的云基础设施打造存储系统时,最大的挑战之一就是我们真的需要 将自己的灾难恢复规划引入其中 。尽管Amazon为其以对象为基础的S3存储平台提供了强大的可用性支持,它仍然无法带来与支持着EC2计算实例的在线EBS(即弹性区块存储)产品同 级别的服务。此外,EBS分卷的容量被限制在2TB,这就使得其很难与其它大型数据集相契合。

  通过将Gluster引入EC2,大家可以彻底无视2TB的容量限制,尽情将自己的镜像部署在EC2的可用区块中;我们甚至能够利用 Gluster 将自己的数据复制到不同的EC2可用区块、别家云服务供应商甚至是自己的预设基础设施里。当然,并不是每个人都需要这样强度的稳定性及可扩展性,但对于那 些需要的人而言,这很可能意味着交上了一份堪称伟大的答卷。

  总结陈词

  很多关注红帽公司收购Gluster事件的分析人士都注意到除了最明显的大数据应用之外,对HDFS及Amazon S3 API的兼容性也即将被加入GlusterFS 3.3当中。届时Gluster将很可能冲破一款优秀的大数据存储文件系统的局限,获得更令人瞩目的成就。有了对一系列不同管理程序,包括即将到来的对 OpenStack的兼容,Gluster也许会成为云后端基础设施领域的一颗耀眼新星——无论是在公共云中还是在私有云中。

分布式文件系统GlusterFS的更多相关文章

  1. 分布式文件系统---GlusterFS

    1.1 分布式文件系统 1.1.1 什么是分布式文件系统 相对于本机端的文件系统而言,分布式文件系统(英语:Distributed file system, DFS),或是网络文件系统(英语:Netw ...

  2. 分布式文件系统glusterfs安装步骤

    我的系统是 RHEL5 , 可能环境不一样, 需要安装的第三方依赖不一样啊, 反正大家在安装的过程中缺少什么就去安装什么, 一般都会有提示的. 下载   glusterfs-3.2.0.tar.gz  ...

  3. GlusterFS分布式文件系统的使用

    glusterfs是一款开源的分布式文件系统. 它具备高扩展.高可用及高性能等特性,由于其无元数据服务器的设计,使其真正实现了线性的扩展能力,使存储总容量可轻松达到PB级别,支持数千客户端并发访问. ...

  4. GlusterFS 分布式文件系统的使用入门-管理GlusterFS卷

    GlusterFS 分布式文件系统的使用入门-管理GlusterFS卷 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.卷的扩容 您可以根据需要在群集联机且可用时扩展卷.例如,您 ...

  5. GlusterFS分布式文件系统部署及基本使用(CentOS 7.6)

    GlusterFS分布式文件系统部署及基本使用(CentOS 7.6) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Gluster File System 是一款自由软件,主要由 ...

  6. GlusterFS分布式文件系统部署

    GlusterFS是一个可伸缩的网络文件系统,使用常见的现成的硬件,您可以创建大型分布式存储流媒体解决方案.数据分析.和其他数据相关的任务.GlusterFS是自由和开源软件. 详细参考官网:http ...

  7. GlusterFS分布式文件系统高速管理

    TaoCloud XDFS基于GlusterFS开源分布式文件系统,进行了系统优化.project化.定制化和产品化工作,五年以上的实践积累了大量实践经验,包含客户案例.最佳实践.定制开发.咨询服务和 ...

  8. GlusterFS 分布式文件系统

    简介 官方文档:https://docs.gluster.org/en/latest/Quick-Start-Guide/Architecture/ Glusterfs是一个开源的分布式文件系统,是S ...

  9. glusterfs分布式文件系统

    第一:安装依赖包: yum install libibverbs librdmacm xfsprogs nfs-utils rpcbind libaio liblvm2app  lvm2-devel ...

随机推荐

  1. QT renered html for js

    voidMainWindow::on_pushButton_clicked() { QStringurl="http://www.baidu.com"; url="htt ...

  2. EJB3.0开发环境的搭建

    EJB Container的介绍SUN公司正式推出了EJB的规范之后,在众多的公司和开发者中引起了非常大的反响.标志着用Java开发企业级应用系统将变的非常easy.很多公司都已经推出了或正打算EJB ...

  3. linux driver: input子系统

    <韦东山Linux视频第2期_从零写驱动\第13课第1节 输入子系统概念介绍_P.wmv> 本视频对输入子系统的结构进行了详细的剖析,通过本视频,可以了解到input核心包括了设备和han ...

  4. [Swust OJ 799]--Superprime Rib(DFS)

    题目链接:http://acm.swust.edu.cn/problem/799/ Time limit(ms): 1000 Memory limit(kb): 10000   Description ...

  5. [C#]窗体切换--避免开启多个线程

    先说说这个多窗体的界面的解决的办法: 用到的方法很简单,就是程序运行就建立一个MainForm,在这个MainForm中设立一个Panel,同时设立几个按钮,按下每个按钮都在这个Panel中载入不同的 ...

  6. ELK 之四:搭建集群处理日PV 四亿次超大访问量优化方法

    最近公司的网站访问量越来越大,采用4台高配置服务器做后端Server,前端使用一个负载,日志从后端4台服务器收集到ELK统计,但是最近Logstash经常出问题,每次启动运行三四个小时就挂了,分析是由 ...

  7. fork 函数的一点学习

    昨天某位少年问了我一个问题,#include<stdio.h> int main() { fork(); fork(); fork(); printf("hello " ...

  8. Publisher/Subscriber 订阅-发布模式

    Publisher/Subscriber 订阅-发布模式 本博后续将陆续整理这些年做的一些预研demo,及一些前沿技术的研究,与大家共研技术,共同进步. 关于发布订阅有很多种实现方式,下面主要介绍WC ...

  9. perl encode_utf8 和decode_utf8

    encode_utf8 等于 $octets = encode_utf8($string); 这个字符串 在$string 在Perl的内部格式,返回结果是作为一个顺序的字节. 因为所有的可能的字符串 ...

  10. 基于visual Studio2013解决C语言竞赛题之0405阶乘求和

      题目 解决代码及点评 这道题和上一道题类似,第n个累加项 = n-1累加项的n倍 由于有这个规律,我们可以用一个for循环实现 但是例子代码并没有这么做,大家可以回去修改下代码,使得代码更 ...