Server是不应该与lock Server装在一台机器上,它或多或少的对GFS的性能产生影响,由于是实验环境,所以将它们安装在了一起,但实际运行环境中,务必将它们分离。这台机器上有两块SCSI硬盘,我将/dev/sda设为了系统盘,/dev/sdb专门作为GFS的存储区域,共有40G空间。
在这块硬盘上,我为CIDEV(sdb5)区(CIDEV区是GFS文件系统必不可少的一个系统分区,它主要用来存放各节点机文件系统的配置信息,并且配置和分配subpool以及动态Cache)分配了200M空间,其余又分了sdb6,7,8,9四个分区,它们的空间大小相同,都是8G,这样便于GFS的延展,而且GFS中pool也要求GFS的数据存储分区应该大小相同。
IXDBA.NET社区论坛
在以上的单机配置GFS文件系统都成功的前提下接下来,接下来可以配置GFS的服务端了,在作配置之前,需要先检查一下GNBD和KGNBD模块是否加载进了内存(这一点很重要,否则无法继续)。
在服务端(10。10。10。8)这台机器上运行
modprobe kgnbd;
在两台节点机(10。10。10。7和10。10。10。6)上运行
modprobe gnbd;
然后在GNBD SERVER上将5个sdb分区映射为GNBD.也就是将它们声明为网络块设备。这里需要对CIDEV分区特别注意;
命令行如下:
gserv gfscfdata /dev/sdb5
gserv gfsdata1 /dev/sdb6
gserv gfsdata2 /dev/sdb7
gserv gfsdata3 /dev/sdb8
gserv gfsdata4 /dev/sdb9
当这些命令执行完后,GFS集群文件系统也就被注册到网络上了。此时在两台节点机上执行相应的客户端挂接命令就可以自动的与GNBD SERVR进行通讯从而实现远程文件系统的挂接,命令如下:
gclient 10.10.10.8;
这时在节点机上使用察看分区的命令就能看到相应的GNBD分区了。
接下来需要为GFS安装 pool,这一部分的实现对于GFS的各种安装实现都是相同的。
首先确保在GFS的2台节点机上有memexp和gfs两个内核加载模块,然后将它们加载进内核。
接下来就需要针对GFS SERVER的分区创建pool,这一操作可以随便选择一台节点机进行,首先生成pool0.cf文件。
此文件的格式如下:
1. poolname pool0
2. subpools 1
3. subpool 0 128 4 gfs_data
4. pooldevice 0 0 /dev/gnbd/gfsdata1 0
5. pooldevice 0 1 /dev/gnbd/gfsdata2 0
6. pooldevice 0 2 /dev/gnbd/gfsdata3 0
7. pooldevice 0 3 /dev/gnbd/gfsdata4 0
命令为: ptool pool0.cf
接下来在两台节点机上运行passemble命令,它的作用是启动GFS的pool。
GFS的性能就体现在了这里,因为pool的作用就是为GNBD分区提供了延展的支持,此时如果有多个I/O请求的话,就可以将任务分担到4个分区上,大幅度提高的I/O性能。
此时文件系统已经创建完毕,在其中一台节点机上,可以运行如下命令:
mkfs_gfs -p memexp -t /dev/gnbd/gfscfdata /dev/pool/pool0
这一命令的意思就是以memexp为GFS的lock server,再以gnbd设备下的gfscfdata为配置信息,同时加载pool设备中的pool0来构建此集群文件系统。
这一命令执行后,GFS的框架已经搭完,需要往CIDEV分区中写入具体的GFS配置信息,它被记录入名为"gfscf.cf"这一文件中。
这一文件的格式行如:
1. gfsparam:
2. lmtype = memexp
3. cmtype = memexp
4. datadev = /dev/pool/pool0
5.
6. lmparam:
7. cbport = 3001
8. server = 192.168.1.2
9. serverport = 15697
10.
11. cmparam:
12. node_timeout = 30
13.
14. node:
15. name = host-b
16. cid = 0