rhel5_x86-64上安装gfs教程
2014-11-15 17:32:56   来源:我爱运维网   评论:0 点击:

1GFS简介GFS是RedHat公司GlobalFileSystem的简称,GFS是一个文件系统,为底层的共享块设备在文件系统级别提供并发的读写功能。与传统的NAS...

1 GFS简介

GFS是RedHat公司Global File System的简称,GFS是一个文件系统,为底层的共享块设备在文件系统级别提供并发的读写功能。与传统的NAS结构不同,GFS的文件系统层运行于高带宽的FC协议网络(NAS的文件系统层依托传统的IP网络实现),因此更能发挥SAN存储架构的性能优势。GFS提供三种存储解决方案架构:

1.1 高性能和高可测性

\图一

如图一,多台GFS节点直接通过FC交换机连接到SAN存储体,应用程序直接跑在GFS节点上,避免了传统NAS架构中文件服务器节点的各种瓶颈和IP网络延迟。这种架构可支持300个GFS节点。

1.2 兼顾性能、可测性、价格

\图二

如图二,这种方式跨越IP跟FC两种协议,SAN存储通过GNBD(Global Network Block Device)被export到传统的IP网络,这似乎和NAS的架构有点类似,但实际上有巨大的区别,首先NAS的文件服务器只有一个(当然也可以实现互为HA的架构),而GFS种的GNBD可以有多个,且是负载均衡(负载均衡本身包含了HA)的架构;其次NAS在IP网络上运行的是文件系统级别的操作,我们知道,文件系统级别的操作对系统资源的消耗是巨大的,而GFS在IP网络上跑的是比文件系统更底层的类似ISCSI的协议,即数据块被封装在IP包中进行传输,因此在效率上会比NAS高。每一个GNBD在内存中都有一个线程池,线程用于处理到SAN存储中一个数据块的路径映射,因此,每一个SAN存储体都能通过任意一个GNBD来访问,实现了负载均衡和HA。

1.3 更经济,兼顾性能

\图三

如图三,这种架构和图二中的架构最大的区别是没有SAN存储体,存储方式是直连存储(DAS),这种方式可以在传统环境中轻松实现,但是需要考虑对GNBD和它的DAS的冗余。

物理架构

实现的架构跟图一类似,但有所简化,如下图四所示:

\

图四

在我们安装环境中,disk array是一个容量达7T的raid6磁盘阵列,两台gfs node:gfs-1和gfs-2通过私有网络192.168.1.0/24进行gfs集群间的通讯,避开了使用服务网络来进行集群通讯。

软件包安装

gfs软件包的安装可谓一波三折。gfs需要redhat cluster suite软件来协调gfs node对共享存储的I/O操作,因此需要rhcs套件,套件如下:

cman-2.0.60-1.el5.x86_64.rpm

cman-devel-2.0.60-1.el5.i386.rpm

cman-devel-2.0.60-1.el5.x86_64.rpm

ipvsadm-1.24-8.1.x86_64.rpm

perl-Net-Telnet-3.03-5.noarch.rpm

piranha-0.8.4-7.el5.x86_64.rpm

rgmanager-2.0.23-1.x86_64.rpm

system-config-cluster-1.0.39-1.0.noarch.rpm

gfs套件如下:

gfs2-utils-0.1.25-1.el5.x86_64.rpm

gfs-utils-0.1.11-1.el5.x86_64.rpm

kmod-gfs-0.1.16-5.2.6.18_8.el5.x86_64.rpm

kmod-gfs-xen-0.1.16-5.2.6.18_8.el5.x86_64.rpm

lvm2-cluster-2.02.16-3.el5.x86_64.rpm

另外,cman进程需要openais支持,因此安装套件还包括:

openais-0.80.2-1.el5.x86_64.rpm

openais-devel-0.80.2-1.el5.x86_64.rpm

把所有rpm包放到一个目录,使用rpm -Uvh --nodeps *全部安装。

配置

/etc/hosts中包括gfs node的主机名和ip对应关系:

192.168.1.1     gfs-1

192.168.1.2     gfs-2

修改/etc/lvm/lvm.conf中的locking_type值为3:

locking_type = 3

这里与rhel 4u2有不同,lvm.conf里有解释:

    # Type of locking to use. Defaults to local file-based locking (1).

    # Turn locking off by setting to 0 (dangerous: risks metadata corruption

    # if LVM2 commands get run concurrently).

    # Type 2 uses the external shared library locking_library.

    # Type 3 uses built-in clustered locking.

rhel 5的clvm包没有包含locking_library,只有使用type 3了。

关于cluster的配置,可以使用图形界面的system-config-cluster进行,相关的操作可以参考rh官方文档,下面是配置好的/etc/cluster/cluster.conf文件:

<?xml version="1.0" ?>

<cluster alias="gfs_cluster" config_version="2" name="gfs_cluster">

        <fence_daemon post_fail_delay="0" post_join_delay="3"/>

        <clusternodes>

                <clusternode name="gfs-1" nodeid="1" votes="1">

                        <fence>

                                <method name="1">

                                        <device name="f-man" nodename="gfs-1"/>

                                </method>

                        </fence>

                </clusternode>

                <clusternode name="gfs-2" nodeid="2" votes="1">

                        <fence>

                                <method name="1">

                                        <device name="f-man" nodename="gfs-2"/>

                                </method>

                        </fence>

                </clusternode>

        </clusternodes>

        <cman expected_votes="1" two_node="1"/>

        <fencedevices>

                <fencedevice agent="fence_manual" name="f-man"/>

        </fencedevices>

        <rm>

                <failoverdomains/>

                <resources/>

        </rm>

</cluster>

启动进程

按照如下步骤分别在两台node启动进程:

service cman start

service clvmd start

service gfs start

service rgmanager start

启动完之后就可以进行磁盘的操作了:

pvcreate /dev/sdb

vgcreate volGFS01 /dev/sdb

lvcreate -l 1668929 volGFS01 -n data01

创建文件系统和挂载:

gfs_mkfs -p lock_dlm -t gfs_cluster:gfs01 -j 10 /dev/volGFS01/data01

mkdir /gfs

mount -t gfs /dev/volGFS01/data01 /gfs 

相关热词搜索:redhat gfs 教程

上一篇:分布式服务框架 Zookeeper
下一篇:最后一页

分享到: 收藏