Ubuntu 12.04配置GFS2
简单地作个笔记。
测试环境包含三台服务器。其中一台服务器配置iSCSI TGT山寨一个IP SAN服务,将一块本地硬盘通过iSCSI协议暴露给所有的服务器。三台服务器均通过openi-scsi发现山寨IP SAN所提供的iSCSI存储。具体的配置方法可以参见《在Ubuntu 12.04上配置iSCSI Target服务》一文。
安装GFS2软件:
sudo apt-get install gfs2-utils gfs2-cluster
修改配置文件/etc/cluster/cluster.conf,内容如下(需要根据你的配置替换掉配置文件中的主机名)。
在所有的服务器上启动cman和gfs2-cluster服务:
sudo chkconfig cman on sudo chkconfig gfs2-cluster on sudo /etc/init.d/cman restart sudo /etc/init.d/gfs2-cluster restart
可以通过cman_tool命令查看集群中的节点:
$ sudo cman_tool nodes Node Sts Inc Joined Name 1 M 12 2013-06-15 16:53:35 node01 2 M 12 2013-06-15 16:53:35 node02 3 M 4 2013-06-15 16:53:35 node03
在iSCSI TGT服务器上将通过iSCSI协议暴露出去的硬盘上创建一个分区,并格式化为GFS2文件系统(假设该分区所对应的设备名为/dev/sdc1)。在下面的命令中,-p lock_dlm参数指定使用lock_dlm作为文件系统的加锁机制;-t myGfs2:mydisk参数中的myGfs2是集群的名称,需要与/etc/cluster/cluster.conf中的设置相同,mydisk则是文件系统的标签;-j 16参数指定为该文件系统所创建的日志的份数为16,由于每一个节点需要一份日志,所以该参数也限定了最多可以同时有16个节点挂载同一块磁盘。
sudo mkfs.gfs2 -p lock_dlm -t myGfs2:mydisk -j 16 /dev/sdc1
在所有的服务器上挂载对应的分区到/data目录:
sudo mkdir /data sudo mount -t gfs2 /dev/sdc1 /data
也可以将对应的配置写入/etc/fstab文件,以便在操作系统启动时自动挂载:
/dev/sdc1 /data gfs2 _netdev 0 0
可以通过gfs_control命令来查看一些基本的相关信息:
$ sudo gfs_control -n ls gfs mountgroups name mydisk id 0x48e6326b flags 0x00000008 mounted change member 3 joined 1 remove 0 failed 0 seq 1,1 members 1 2 3 all nodes nodeid 1 jid 0 member 1 failed 0 start 1 seq_add 1 seq_rem 0 mount done nodeid 2 jid 1 member 1 failed 0 start 1 seq_add 1 seq_rem 0 mount done nodeid 3 jid 2 member 1 failed 0 start 1 seq_add 1 seq_rem 0 mount done
下面利用iozone来对在GFS2上运行虚拟机的文件IO性能做一个简单的测试。在这个测试中,将存储节点A 本地磁盘上的一个分区通过iSCSI TGT服务暴露给所有的服务器,并在此基础上配置GFS2集群文件系统,虚拟机实例运行在计算节点B 上,其磁盘映像文件存放在GFS2上。存储服务器和计算节点的配置都是单颗4 核处理器(Intel(R) Core(TM) i5-3330S CPU @ 2.70GHz),8 GB内存,750GB的7200转SATA硬盘,千兆网卡,运行64位Ubuntu 12.04服务器版+KVM进行虚拟化。虚拟机的配置为2 个处理器核,4 GB内存,10 GB磁盘,运行64位Ubuntu 12.04服务器版,磁盘和网卡都启用了virtio,并且设置虚拟机磁盘缓存参数为cache=”none”。
在我的前一篇博客文章《Ubuntu 12.04配置OCFS2》中对在NFS和OCFS2上分别运行虚拟机的文件IO性能做了一些类似的测试,在这里将NFS、GFS2和OCFS2的测试结果综合如下:
测试环境 | write | rewrite | read | reread |
存储节点 | 本地硬盘 | 122684 | 119326 | 8564609 | 8792814 |
计算节点 | NFS | 63184 | 66472 | 95322 | 6738489 |
计算节点 | OCFS2 | 75547 | 82115 | 175872 | 7654664 |
计算节点 | GFS2 | 61191 | 64561 | 8950366 | 9134438 |
虚拟机 | NFS | 36678 | 26711 | 160948 | 163411 |
虚拟机 | OCFS2 | 59251 | 60797 | 140720 | 148803 |
虚拟机 | GFS2 | 57181 | 58439 | 147742 | 172711 |
从这个非常粗糙的测试可以看出,在没有进行任何性能调优的情况下,GFS2和OCFS2的文件IO性能是类似的,都比NFS要好许多。OCFS2的性能似乎比GFS2好一点点,但是优势并不是十分明显。
回头找个强悍一点的FC SAN做个更加详细的测试看看结果。
您好,想咨询您一个问题,我这边有三台xenserver 6.2的物理机 ,连接FC共享存储 ,现在xenserver上面有几台虚机,通过lvs组成集群,这几台虚机能否直接去连接FC共享存储中的特定LUN,就类似NFS。(我使用了RawHBA,使得VM可以直接访问LUN,但是无法共享访问)