红帽GFS集群文件系统配置指南 linux搭建gfs系统--iscsi+GFS实现网络存储

本节中将简单的介绍下redhat的集群文件系统GFS的配置,集群文件系统同普通的文件系统,例如:ext3,ufs,ntfs不一样,集群文件系统采用分布式锁管理,可以实现多个节点同时读写文件。主流的集群文件主要有IBM的GPFS,ORACLE公司出品的ocfs以及红帽公司出品的GFS。说来惭愧,从766.com离职前,在技术上一直有3大心愿没完成,包括oracle dataguard,grid control和gfs,时至今日,终于基本上实现了这三大指标!接下来就可以将rac环境下的归档日志存储在GFS上了

一:环境介绍
节点1 IP:192.168.1.51/24
操作系统:rhel5.4 64位 (kvm虚拟机)
主机名:dg51.yang.com

节点2 IP:192.168.1.52/24
操作系统:rhel5.4 64位 (kvm虚拟机)
主机名:dg51.yang.com

共享存储IP:192.168.1.100/24
操作系统:rhel6.0 64位
主机名:rhel6.yang.com

 

 

 

全局并行文件系统(GPFS)

GPFS[7]是IBM公司并行共享磁盘的集群文件系统,已经被应用于世界上很多大的超级计算中心。GPFS的扩展性来源于共享磁盘的系统结构,如图 5.8所示。

图 5.8 GPFS文件系统整体结构

集群中所有结点都可以平等地存取所有的磁盘,所有的文件以分条方式存放在所有磁盘上面,这能够充分发挥存储系统的吞吐率。

在GPFS中最有特殊的是分布式锁管理机制。由于在物理上所有磁盘可以在所有客户端之间共享,而文件系统的一致性以及POSIX语义的要求,物理上的并行性受到很大的限制。GPFS使用一个中央的全局锁管理器和文件系统结点上的本地锁管理器合作来处理锁令牌。重复的存取同一个磁盘对象只需要确认所有权的一个简单信息。当一个结点从全局锁管理器获取一个令牌,这个节点对于同一个对象的后续存取就不需要额外的通信。仅当其他结点对于同一个对象操作需要一个冲突锁,对于传递令牌到其他节点再需要额外的信息。锁在维护cache一致性方面也是重要的。GPFS使用字节粒度的锁去同步多个客户对于一个文件的读写操作。这导致多个客户可以同时写数据到一个文件不同的位置。考虑到字节锁会产生很大的维护开销,GPFS把维护文件字节锁的任务交给第一个存取该文件的节点负责,它和同时写该文件的后续客户协商和分配字节锁。对于多个客户同步存取文件的元数据,GPFS采用共享的写锁保证并行的写操作,客户对于大多数操作对于元数据的更新信息放到metanode结构,只有相应的inode从磁盘中读取或者写到磁盘时,metanode才合并多个更新。只有进行更新文件大小和修改文件更新时间时才需排他锁。

GPFS把恢复日志保存在共享磁盘上,由结点失效导致的元数据的不一致能够由其他节点运行失效结点的恢复日志很快修复。而GPFS使用组服务层来通过组成员协议和周期性的心跳测试检测结点失效,当一个结点失效时,组服务层通知组内剩余的结点,并启动恢复过程。而GPFS通过在多个磁盘或者磁盘阵列上分布数据以保证单个磁盘失效不会导致数据丢失。另外,GPFS能够在线地增加,减小或者重新分布磁盘

5.2.5 Google文件系统(GoogleFS)

谷歌文件系统(Google File System,GoogleFS)是为了满足快速增长的数据处理需要而设计的。在开发实现GoogleFS之前,设计人员首先对Google应用程序负载和应用环境进行了深入探讨和分析,它能运行在不可靠硬件设备上进行海量的数据处理,处理来自多个用户的并发访问。文件系统中存放的数据绝大部分采用追加新数据而非覆盖现有数据的方式进行写操作。除了考虑到这些需要和技术特点后,GoogleFS也考虑了分布式文件系统的共性设计目标:性能、可扩展性、可靠性和可用性。

(点击查看大图)图4.20 Google文件系统的架构示意图

GoogleFS包括一个主服务器和多个大数据块服务器,这些块服务器响应多个客户端的访问请求,如图所示。文件被分割成64MB固定大小的数据块(Chunk),它分布在各个块服务器上,每个块在多个服务器上都存有副本,为了可靠性,一般存放3个副本。块服务器使用下层物理文件系统(如Ext3)来存放数据块。

主服务器负责维护所有文件系统的元数据,包括命名空间、文件至数据块的映射信息,访问控制信息,以及主存中数据块的当前位置。之所以将数据块读入主存是为了提高主服务器的操作性能。为了获得数据块的位置信息,主服务器只在块服务器启动时轮询一下数据块信息,直到新的数据块产生并在心跳信息的提示下主服务器才更新这些位置信息。

客户端直接使用文件系统API来访问主服务器和块服务器。为了减少发给主服务器的请求数量,客户端只对元数据进行缓存,需要注意的是,客户端和块服务器对文件数据不进行高速缓存。GoogleFS采用的副本技术来提高数据可用性,数据块和元数据都存在副本,比如每个数据块在3台块服务器上都存在副本;当管理元数据的主服务器宕机时,备用的"影子"服务器则切换过来,但它只能提供读取操作,不支持修改、写入操作。为了增加数据可恢复性,GoogleFs采用了操作日志和快照技术

你可能感兴趣的:(云计算)