在上文中已经使用iSCSI搭建IP SAN存储网络,在此基础上,在构建GFS2集群文件系统

前文链接:

准备工作:

已构建完成IP SAN网络

IP地址 系统
target主机 192.168.0.22 CentOS 6.4 i386
initiator主机 192.168.0.23 CentOS 6.4 i386
initiator2主机 192.168.0.24 CentOS 6.4 i386

一. GFS概念

前文中,我们已经搭建了SAN存储网络,由于SAN是块级别共享存储,那么当多个节点需要操作同一个共享存储时,麻烦就来,每个节点打开文件所持有的锁都是在本节点内核中的,无法通知其他节点,当多个节点同时读写某一文件,会使整个存储网络崩溃。

因此,如果有多个节点需要同时操作某个共享存储时,就需要集群文件系统GFS。当节点打开文件时,本地持有锁,因此它需要通知其他节点它持有该锁,则GFS必须建立在高可用集群上,本文使用cman+rgmanager构建高可用集群。

二. 配置cman+rgmanager

注:下文中所有操作都在一台initiator上进行,另外一台执行同样的操作即可,当然,也可以在一台initiator上安装ansible作为跳板机,同时在两个节点上执行,针对文件系统的格式化等操作只要在一个节点上完成即可

1. 使两台initiator主机互信

[root@initiator ~]# ssh-copy-id -i .ssh/id_rsa.pub root@initiator2

编辑/etc/hosts                                                                                                                                                                                                                                                                                                                                                                                                                                                                      192.168.0.24 initiator2192.168.0.23 initiator                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     [root@initiator ~]# ssh-keygen -t rsa -P ""[root@initiator ~]# ssh-copy-id -i .ssh/id_rsa.pub root@initiator2

2. 同步时间

[root@initiator ~]# ntpdate time.nist.gov

3. 安装cman和rgmanager

[root@initiator ~]# yum install cman rgmanager -y

4. 建立集群服务,添加节点

[root@initiator ~]# ccs_tool create tcluster[root@initiator ~]# ccs_tool addnode initiator -n 1[root@initiator ~]# ccs_tool addnode initiator2 -n 2

5. 将配置文件复制到initiator2上

[root@initiator ~]# scp /etc/cluster/cluster.conf initiator2:/etc/cluster/

6. 两个节点上启动cman和rgmanager

[root@initiator ~]# service cman start[root@initiator ~]# service rgmanager start

三. 配置gfs2和clvm

1. 在两个节点上都安装gfs2-utils

[root@initiator ~]# yum install gfs2-utils

2. 将/dev/sdb2格式化为集群文件系统

[root@initiator ~]# mkfs.gfs2 -hUsage:mkfs.gfs2 [options]  [ block-count ]Options:  -b 
Filesystem block size -c
Size of quota change file -D Enable debugging code -h Print this help, then exit -J
Size of journals -j
Number of journals -K Don't try to discard unused blocks -O Don't ask for confirmation -p
Name of the locking protocol -q Don't print anything -r
Resource Group Size -t
Name of the lock table -u
Size of unlinked file -V Print program version information, then exit
[root@initiator ~]# mkfs.gfs2 -j 2 -p lock_dlm -t tcluster:sdb2 /dev/sdb2

gfs为日志文件系统,每个节点都要有一个日志,本次实验有两个节点,所以创建两个日志

3.将/dev/sdb2挂载到/mnt,就可正常使用

[root@initiator ~]# mount /dev/sdb2 /mnt

4.测试

在initiator主机上,将fstab文件复制到/mnt中,则在initiator2上立刻就能看到

#在initiator主机上[root@initiator ~]# cp /etc/fstab /mnt                                                                                                                                                                                                                                                                                  #在initiator2主机撒谎能够[root@initiator2 ~]# ls /mntfstab

也可以使用tail -f在initiator2上打开文件不退出,在initiator上追加一行,则在initiator2上立刻就能看到

5. gfs2的其它管理工具简单介绍

#查看某文件系统的日志数[root@initiator ~]# gfs2_tool journals /mntjournal1 - 128MBjournal0 - 128MB2 journal(s) found.                                                                                                                                                                                                                            #增加日志[root@initiator ~]# gfs2_jadd -j 1 /mntFilesystem:            /mntOld Journals           2New Journals           3                                                                                                                                                                                                                             如果需要扩展逻辑卷,其方式与普通逻辑卷相同,只是gfs2文件系统的扩展,则需要gfs2_grow进行,其需要以挂载点为参数:# gfs2-grow /mnt

四. 配置cLVM

1. 在两个节点上安装lvm2-cluster

[root@initiator ~]# yum install lvm2-cluster

2. 为lvm启用集群功能

[root@initiator ~]# lvmconf --enable-cluster

3. 启动clvm服务

[root@initiator ~]# service clvm start

4. 创建集群逻辑卷

将/dev/sda1创建为集群逻辑卷

[root@initiator ~]# pvcreate /dev/sdb1[root@initiator ~]# vgcreate clustervg /dev/sdb1[root@initiator ~]# lvcreate -L 2G -n clusterlv clustervg[root@initiator ~]# mkfs.gfs2 -j 2 -p lock_dlm -t tcluster:lv /dev/clustervg/clusterlv[root@initiator ~]# mount /dev/clustervg/clusterlv /mnt

然后再initiator2上直接挂载即可直接使用。