GFS的全称是Google file System,为了满足Google迅速增长的数据处理要求,Google设计并实现的Google文件系统(GFS)。Google文件系统是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务,也可以提供容错功能。

谷歌“三宝”是“Google文件系统”,“BigTable大表”,“MapReduce算法”。至今除了谷歌,在数据中心维护上还没有谁自己开发文件系统这种十分底层的技术,有了自己的文件系统,谷歌就可以有效的组织庞大的数据,服务器和存储,并用它们工作。作为谷歌“三宝”的其中之一,GFS的技术优势不言而喻。

GFS在很多方面上与之前出现过的分布式文件系统有着许多相似的地方,比如性能、可扩展性、可靠性和可用性。但是,它的设计更多地基于我们对于我们的应用的特性的观察和技术环境,包括现在的和将来可能出现的,因此也与之前的文件系统设计有着显著的不同。Google仔细地考察过传统的取舍,并且在设计空间中对各种不同方案做了深入的研究。

关于GFS文件系统结构功能

GFS文件系统为分布式结构,它是一个高度容错网络文件系统,主要chunkserver由一个master(主)和众多chunkserver(大块设备)构成的,体系结构如下图:

GFS文件系统的工作过程:

  1. 客户端使用固定大小的块将应用程序指定的文件名和字节偏移转换成文件的一个块索引,向master(主)发送包含文件名和块索引的请求;
  2. master收到客户端发来的请求,master向块服务器发出指示,同时时刻监控众多chunkserver的状态。Chunkserver缓存master从客户端收到的文件名和块索引等信息。
  3. master通过和chunkserver的交互,向客户端发送chunk-handle和副本位置。其中文件被分成若干个块,而每个块都是由一个不变的,全局唯一的64位的chunk-handle标识。Handle是由master在块创建时分配的。而出于安全性考虑,每一个文件块都要被复制到多个chunkserver上,一般默认3个副本;
  4. 客户端向其中的一个副本发出请求,请求指定了chunk handle(chunkserver以chunk handle标识chunk)和块内的一个字节区间。
  5. 客户端从chunkserver获得块数据,任务完成。

Red Hat 企业版 GFS 文件系统配置

前提在安装OS的时候记得选择集群和集群存储省得实际配置时缺少必要的包和程序,负责server的主机需要把gnome桌面安装上。

一:环境 三台普通PC电脑,或虚拟机,ip和主机名如下

  • gfs01 192.168.3.38(作为server)
  • gfs02 192.168.3.37
  • gfs03 192.168.3.36

二:修改相应主机的hosts 和network 示例如下

# vi /etc/hosts
192.168.3.38 gfs01
192.168.3.37 gfs02
192.168.3.36 gfs03
# vi /etc/sysconfig/network IP对应的主机名

三:使用system-config-cluster 产生cluster.conf(gfs01-server)可以利用GUI工具配置。步骤如下:

  1. 添加三个节点: A.gfs01 B.gfs02 B.gfs03
  2. 将生成的cluster.conf 文件分别添加到各个节点,重启电脑。

四:启动服务(三台主机)

# service cman start
# service clvmd start
# service gfs start
# service rgmanager start

启动上面cman需要注意点如果启动失败,提示”cman not started: two_node set but there are more than 2 nodes” 错误可以先service cman stop 再启动。

五:export 分区(gfs01 “server”)

# sbin/gnbd_serv -v -n
# gnbd_export -d /dev/sdb1 -e gfsTest -c

-d指定设备,-e指定集群名称,-c创建 客户端gnbd_import 时用到

检查export结果:

# gnbd_export -v -l

六:节点import gfs01 的分区(gfs02,gfs03)

# modprobe gnbd
# gnbd_import -v -i gfs0

将产生/dev/gnbd/gfsTest, gfsTest 为gfs01 export 时的名称。

检查import 结果:

# gnbd_import -v -l

七:在客户端节点上建立gfs文件系统并挂载(gfs02,gfs03)

# modprobe gfs
# gfs_mkfs -p lock_dlm -t gfsCluster:gfs -j 2 /dev/gnbd/gfsTest

其中gfsCluster为集群的名称,gfs为文件系统的类型,lock-dlm为锁协议。

八:节点挂载gfs文件系统(gfs02,gfs03)

# mkdir /gfsTest
# mount -t gfs /dev/gnbd/gfsTest /gfsTest
1. Google文件系统:GFS是GOOGLE实现的是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务。欲了解更多,可以访问:http://www.codechina.org/doc/google/gfs-paper/introduction.html
2. Redhat 的GFS(Global File System)
GFS(Global File System)自己以本地文件系统的形式出现。多个Linux机器通过网络共享存储设备,每一台机器都可以将网络共享磁盘看作是本地磁盘,如果某台机器对某个文件执行了写操作,则后来访问此文件的机器就会读到写以后的结果。可以根据对性能或是可扩展性,或者以经济性多个原则进行不同方案的部署。"
 

GFS文件系统和在RedHat Linux下的配置的更多相关文章

  1. RedHat Linux 下安装、测试摄像头

    RedHat Linux 下安装.测试摄像头(全文见附件)     随着视频电话的迅速发展我相信大家一定有过在Windows 下安装摄像头的经历,然而大多数 都不支持Linux .我现以罗技摄像头为例 ...

  2. 解决redhat linux下IP地址可以ping通,域名无法ping通问题

    解决redhat linux下IP地址可以ping通,域名无法ping通 在/etc/resolv.conf中添点东西 格式如下: nameserver xxx.xxx.xxx.xxx nameser ...

  3. Vsftp的PASV mode(被动模式传送)和Port模式及 Linux下VsFTP配置全方案

    什么叫做PASV mode(被动模式传送)?他是如何工作的? FTP的连接一般是有两个连接的,一个是客户程和服务器传输命令的,另一个是数据传送的连接.FTP服务程序一般会支持两种不同的模式,一种是Po ...

  4. Linux 下安装配置 JDK7

    Linux 下安装配置 JDK7 配置环境(debian 7) 自从从Oracle收购Sun近三年来,已经有很多变化.早在8月,甲骨文将“Operating System Distributor Li ...

  5. 【转】Linux下nginx配置https协议访问的方法

    一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...

  6. (转载)Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记

    Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记 Linux下配LMAP环境,花了我好几天的时间.之前没有配置过,网上的安装资料比较混乱,加上我用的版本问题,安装过程 ...

  7. linux 下安装配置jboss as7以及部署应用

    linux 下安装配置jboss as7以及部署应用 1.测试平台及软件 centos 5.4 jdk-7u5-linux-i586.rpm jboss-as-7.1.1.Final.zip jbos ...

  8. Linux下VNC配置多个桌面和修改密码 不会当系统重启vnc失效

    1:vncserver 2:iptables -I INPUT -p tcp --dport 5901 -j ACCEPT   客户端方式 3:iptables -I INPUT -p tcp --d ...

  9. RedHat Linux AS4 DNS 配置

     RedHat Linux AS4 DNS配置   检查当前系统中安装 DNS功能组件bind情况 [root@svr01 /]# rpm -qa|grep bind* ypbind-1.17.2 ...

随机推荐

  1. appium定位元素java篇【转】

    1.关于没有name,没有ID的元素的定位---通用篇解题思路:因为没有name,id:其实剩下的选择已不多,要么xpath,要么className.xpath木有好印象(稳定性不高,加之1.0x后需 ...

  2. 解决js(ajax)提交后端的“ _xsrf' argument missing from POST” 的错误

    首先先简述一下CSRF: CSRF是Cross Site Request Forgery的缩写(也缩写为XSRF),直译过来就是跨站请求伪造的意思,也就是在用户会话下对某个CGI做一些GET/POST ...

  3. UVa12298 Super Poker II(母函数 + FFT)

    题目 Source http://acm.hust.edu.cn/vjudge/problem/23590 Description I have a set of super poker cards, ...

  4. BZOJ3659 : Which Dreamed It

    首先判断一下是否无解,并剔除孤立点. 根据best theorem,有向图中以$i$为起点的欧拉回路个数为: 以$i$为根的树形图个数$\times\prod_{i=1}^n (deg(i)-1)!$ ...

  5. [linux]unixODBC的安装配置说明

    什么是unixODBC: ODBC(Open Database Connect)是由Microsoft 公司于1991 年提出的一个开放的,用于访问数据库的统一接口规范. unixODBC的是为非Wi ...

  6. [转] linux 下查看一个进程运行路径的方法

    http://blog.csdn.net/brioxu/article/details/5104736 在linux下查看进程大家都会想到用 ps -ef|grep XXX ps -aux | hea ...

  7. [题解]扫雷Mine

    // 此博文为迁移而来,写于2015年2月6日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102vrft.html 1088 ...

  8. 【bzoj1367】[Baltic2004]sequence

    2016-05-31 17:31:26 题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1367 题解:http://www.cnblogs.co ...

  9. children和childNodes的区别

    children和childNodes 1,childNodes 属性,标准的,它返回指定元素的子元素集合,包括HTML节点,所有属性,文本.可以通过nodeType来判断是哪种类型的节点,只有当no ...

  10. Spring整合Hibernate之AnnotationSessionFactoryBean与LocalSessionFactoryBean

    spring集成hibernate由两种形式 1.继续使用Hibernate的映射文件*.hbm.xml 2.使用jpa形式的pojo对象, 去掉*.hbm.xml文件 一.继续使用Hibernate ...