GFS文件系统和在RedHat Linux下的配置
GFS的全称是Google file System,为了满足Google迅速增长的数据处理要求,Google设计并实现的Google文件系统(GFS)。Google文件系统是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,但可以提供容错功能。它可以给大量的用户提供总体性能较高的服务,也可以提供容错功能。
谷歌“三宝”是“Google文件系统”,“BigTable大表”,“MapReduce算法”。至今除了谷歌,在数据中心维护上还没有谁自己开发文件系统这种十分底层的技术,有了自己的文件系统,谷歌就可以有效的组织庞大的数据,服务器和存储,并用它们工作。作为谷歌“三宝”的其中之一,GFS的技术优势不言而喻。
GFS在很多方面上与之前出现过的分布式文件系统有着许多相似的地方,比如性能、可扩展性、可靠性和可用性。但是,它的设计更多地基于我们对于我们的应用的特性的观察和技术环境,包括现在的和将来可能出现的,因此也与之前的文件系统设计有着显著的不同。Google仔细地考察过传统的取舍,并且在设计空间中对各种不同方案做了深入的研究。
关于GFS文件系统结构功能
GFS文件系统为分布式结构,它是一个高度容错网络文件系统,主要chunkserver由一个master(主)和众多chunkserver(大块设备)构成的,体系结构如下图:
GFS文件系统的工作过程:
- 客户端使用固定大小的块将应用程序指定的文件名和字节偏移转换成文件的一个块索引,向master(主)发送包含文件名和块索引的请求;
- master收到客户端发来的请求,master向块服务器发出指示,同时时刻监控众多chunkserver的状态。Chunkserver缓存master从客户端收到的文件名和块索引等信息。
- master通过和chunkserver的交互,向客户端发送chunk-handle和副本位置。其中文件被分成若干个块,而每个块都是由一个不变的,全局唯一的64位的chunk-handle标识。Handle是由master在块创建时分配的。而出于安全性考虑,每一个文件块都要被复制到多个chunkserver上,一般默认3个副本;
- 客户端向其中的一个副本发出请求,请求指定了chunk handle(chunkserver以chunk handle标识chunk)和块内的一个字节区间。
- 客户端从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工具配置。步骤如下:
- 添加三个节点: A.gfs01 B.gfs02 B.gfs03
- 将生成的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
GFS文件系统和在RedHat Linux下的配置的更多相关文章
- RedHat Linux 下安装、测试摄像头
RedHat Linux 下安装.测试摄像头(全文见附件) 随着视频电话的迅速发展我相信大家一定有过在Windows 下安装摄像头的经历,然而大多数 都不支持Linux .我现以罗技摄像头为例 ...
- 解决redhat linux下IP地址可以ping通,域名无法ping通问题
解决redhat linux下IP地址可以ping通,域名无法ping通 在/etc/resolv.conf中添点东西 格式如下: nameserver xxx.xxx.xxx.xxx nameser ...
- Vsftp的PASV mode(被动模式传送)和Port模式及 Linux下VsFTP配置全方案
什么叫做PASV mode(被动模式传送)?他是如何工作的? FTP的连接一般是有两个连接的,一个是客户程和服务器传输命令的,另一个是数据传送的连接.FTP服务程序一般会支持两种不同的模式,一种是Po ...
- Linux 下安装配置 JDK7
Linux 下安装配置 JDK7 配置环境(debian 7) 自从从Oracle收购Sun近三年来,已经有很多变化.早在8月,甲骨文将“Operating System Distributor Li ...
- 【转】Linux下nginx配置https协议访问的方法
一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...
- (转载)Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记
Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记 Linux下配LMAP环境,花了我好几天的时间.之前没有配置过,网上的安装资料比较混乱,加上我用的版本问题,安装过程 ...
- linux 下安装配置jboss as7以及部署应用
linux 下安装配置jboss as7以及部署应用 1.测试平台及软件 centos 5.4 jdk-7u5-linux-i586.rpm jboss-as-7.1.1.Final.zip jbos ...
- Linux下VNC配置多个桌面和修改密码 不会当系统重启vnc失效
1:vncserver 2:iptables -I INPUT -p tcp --dport 5901 -j ACCEPT 客户端方式 3:iptables -I INPUT -p tcp --d ...
- RedHat Linux AS4 DNS 配置
RedHat Linux AS4 DNS配置 检查当前系统中安装 DNS功能组件bind情况 [root@svr01 /]# rpm -qa|grep bind* ypbind-1.17.2 ...
随机推荐
- css3 -- 伪类与伪元素
伪类: 1.结构伪类 A:E : first-child{} E : nth-*(n){} E : first-*(even){} E : first-*(odd){} B:nth-child 是根 ...
- Robotium ant 报错Unable to find instrumentation info for: ComponentInfo{project/android.test.InstrumentationTestRunner}
[echo] Running tests ... [exec] INSTRUMENTATION_STATUS: id=ActivityManagerService [exec] INSTRUMENTA ...
- 关于listView 中的聚焦问题
我在使用listView+adapter 中,遇到一个问题,就是item项添加了若干个可以被监听的控件后 在listView中的setOnItemClickListener失效了 原因是焦点已经在it ...
- SQL Prompt激活
SQL脚本越写越多,总是觉得编写效率太过于低下,这和打字速度无关.在我个人编写SQL脚本时,至少会把SQL的格式排列成易于阅读的,因为其他人会阅读到你的SQL,无论是在程序中或是脚本文件中,良好的排版 ...
- The design of a distributed variant of Plato framework to support collaborated editing
A first thought system architecture (pulling mode) is one that the server doesn't keep client inform ...
- Coder-Strike 2014 - Round 1 C. Pattern
题目的意思是给出n个长度相同的字符串然后找出与他们匹配的字符串 将字符串存入类似二维数组的里面,每一行代表一个字符串,遍历每列,判断每列是否有公共的匹配字符,如果有输出任意一个 如果没有输出'?' # ...
- First day in 阿里
周五上午10点半的飞机,为了便宜选了CA的空客320的飞机,结果体验很差.飞机涂了层风骚的粉紫色,机内较旧,也很小,经过所谓的头等舱简直惨不忍睹.对比起去年飞去北京乘的波音真是没法比,波音上每个人都有 ...
- Android开发环境的发展演变
前几年Android的开发环境需要自己一个个把软件下载下来,如Android sdk.eclipse.ADT等,而且有些软件下载安装相当的麻烦,如eclipse,对于一个初学者来说,这是个完全陌生的软 ...
- 特殊集合 Stack Queue Hashtable
//Stack 干草堆集合 栈集合 先进后出 Stack st = new Stack(); //实例化 初始化 st.Push(2); //添加元素 st.Push(6); s ...
- c#语句 随堂练习2
1.方程ax²+bx+c=0是一元二次方程,求根. 2.输入一个年份 ,判断是不是闰年.(能被4整除但不能被100整除的年份是闰年,有的世纪年也是闰年) 3.标准体重:男士体重=身高-100±3:女士 ...