Linux系统搭建GFS系统----iscsi+gfs实现网络存储
一、GFS 简要说明:GFS文件系统其实是一个网络日志文件系统,通常被用作多台计算机共享同一存储设备。它有两种:
1. Google文件系统:GFS是GOOGLE实现的是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。
2. Redhat 的GFS(Global File System)
GFS(Global File System)自己以本地文件系统的形式出现。多个Linux机器通过网络共享存储设备,每一台机器都可以将网络共享磁盘看作是本地磁盘,如果某台机器对某个文件执行了写操作,则后来访问此文件的机器就会读到写以后的结果。可以根据对性能或是可扩展性,或者以经济性多个原则进行不同方案的部署。
GFS 主要组件,集群卷管理,锁管理,集群管理,围栏和恢复,集群配置管理。
本文主要介绍Redhat的GFS系统。
RHCS(REDHAT CLUSTER SUITE:红帽群集套件)是一款能够提供高性能、高可靠性、负载均衡、高可用性的集群工具集,一个集群通常有两个或两个以上的计算机(称为“节点”或”成员“)共同执行一个任务。
RHCS主要组件:
· 集群架构:提供一个基本功能使节点作为集群工作在一起:配置文件管理,成员关系管理,锁管理和栅设备。
· 高可用性服务管理:提供节点失败转移服务,当一个节点失败后将服务转移到另一个节点上。
·集群管理工具:通过配置和管理工具来配置和管理RedHat集群。
· Linux Virtual Server(LVS) LVS提供一个基于IP的负载均衡功能,通过LVS可以将客户请求均匀的分配到集群节点上。
其它Red Hat集群组件:
· Cluster Logical VolumeManager (CLVM):提供逻辑卷管理集群存储。
· 集群管理器:CMAN是一个分布式集群管理器(DLM),它运行在每一个集群节点上,CMAN通过监视集群节点提供一个法定节点数(quorum),当集群中有多于一半的节点处于活跃状态时,此时符合法定节点数,集群继续可用,当只有有一半或少于一半的节点处于活跃状态是则已达到不到法定节点数,此时整个集群变得不可用。CMAN通过监控集群中节点来确定各节点的成员关系,当集群中的成员关系发生改变,CMAN会通架构中其它组件来进行相应的调整。
· DLM锁管理:分布式锁管理器,它运行在所有的集群节点上,锁管理是一个公共的基础结构,为集群提供一种共享集群资源的管理机制,GFS通过锁管理器使用锁机制来同步访问文件系统元数据,CLVM通过锁管理器来同步更新数据到LVM卷和卷组。
· 数据的完整保证:RHCS 通过 Fence设备从共享存储切断失效节点的I/O以保证数据的完整性。当CMAN确定一个节点失败后,它在集群结构中通告这个失败的节点(组播),fenced进程会将失败的节点隔离,以保证失败节点不破坏共享数据。
REDHAT集群配置系统:集群配置文件:(/etc/cluster/cluster.conf) 是一个XML文件,用来描述下面的集群特性:
集群名称:列出集群名称、集群配置文件版本和一个隔离时间,隔离相应时间当一个新节点加入或从集群中隔离时。
集群:列出集群中的每一个节点,指定节点名称,节点ID,法定投票数,和栅模式。
fence设备:定义fence设备。
管理资源:定义创建集群服务需要的资源。管理资源包括失败转移域,资源和服务。
(fence也是RedHat Cluster的产物,没有它GFS也没法工作,fence的作用就是当一个节点宕掉(和cluster断掉联系)后,其他的正常节点会通过fence设备来把宕掉的设备fence掉,把宕掉的设备踢出cluster保证整个cluster的正常运行,而fence设备一般是服务器自带硬件设备,如hp的ilo口,IBM和dell的ipmi等等,由于服务器硬件的不同,导致不同的fence设备的配置方法不同。
二、搭建gfs_web_ha系统:
系统环境:RHEL6.x86_64 (IP对应主机名)。本实验中的所有主机均禁用了selinux和关闭了iptables防火墙。
节点1:192.168.1.231 server2
节点2:192.168.1.232 server3
节点3:192.168.1.233 server5
iscsi-target存储设备:192.168.1.240 server6
VIP:192.168.1.230
1、在192.168.1.240上安装iscsi的target端:
iscsi-target存储设备的IP地址配置如下
YUM仓库文件(.repo)的配置如下图:
在192.168.1.240主机新增一块硬盘(/dev/sdb)模拟网络存储设备,使用fdisk命令在/dev/sdb硬盘上创建一个分区(/dev/sdb1)准备用作iscsi共享存储。过程略
安装scsi-target-utils软件提供iscsi服务:
修改/etc/tgt/targets.conf,添加如下内容:
重启tgtd服务,并将其设为开机启动:
利用如下命令来查看target device:
2、分别在三个节点上安装iscsi客户端软件iscsi-initiator-utils
发现服务器192.168.1.240的iscsi共享卷
登录ISCSI存储:
在其他的节点上分别执行发现iscsi、登录ISCSI存储并将iscsi设为开机启动
3、集群软件包安装
分为集群节点和配置管理器(Luci,RHCS的web管理工具,仅仅只是配置工具,集群可脱离它正常运行)
分别在三个节点上配置好yum源(可以使用scp命令将192.168.1.240上创建的.repo文件拷贝到节点主机上),安装集群软件包。
若开启iptables则打开防火墙相应端口
端口 协议 程序
5404,5405 UDP corosync/cman
11111 TCP ricci
21064 TCP dlm
16851 TCP modclusterd
关闭节点上的ACPI服务:
禁用NetworkManager
给软件用户ricci设置密码,启动ricci服务
4、集群配置管理器(luci)
可以安装在节点上,我现在安装在存储服务器上,更利于监控集群状态。
在192.168.1.240主机上安装管理软件:
若开启了iptables则打开软件相应端口(iptables命令)
端口 协议 程序
8084 TCP luci
启动luci:
5、创建集群
登录管理服务器的luci 界面,端口8084:在浏览器中输入如下访问地址
输入用户名root和密码,登录
转到manage cluster界面
点击Create,创建集群
点击上图中的“create cluster”按钮就开始创建群集了,些时加入群集中的三个节点会重新启动。等侍所有节点重启成功后,群集就创建成功了。如下图所示:
转到Fence Devices创建fence设备,因为不是用的服务器,没有fence设备,我随意建了一个SRF,实际生产环境中,必须使用fence硬件设备。
点击“add”按钮,添加一个SRF(SCSI Reservation Fencing)
回到nodes菜单下,点击某个节点,出现节点详情后点击add fence method添加一个method,
点击add fence instance,添加刚才设定的SRF。
其他所有节点也添加刚才设定的SRF,参考上述操作,详细过程略。
6、建立GFS文件系统(在群集中的某个节点上进行操作)
创建LVM卷
在群集的所有节点上手动重启clvmd服务:
这样在所有节点主机上都可以看到新建的lvm卷
创建GFS2文件系统
将lvm卷 lv1格式化成GFS2文件系统
格式化GFS 文件系统,通过命令:
mkfs.gfs2-p lock_dlm -t ClusterName:FSName -j Number BlockDevice
其中ClusterName是cluster名,就是/etc/cluster/cluster.conf配置文件中指定的cluster名,FSName是给新格式化好的gfs分区的名字。 –j 指定可以连接的节点数
在所有节点上挂载GFS2文件系统
可以在各节点机器上执行命令clustat来查看gfs集群各节点的活动状态:
同样可以执行以下命令来检查是否连接成功
检查一下是否正常
注:在各个节点上必须启动clvmd服务,不然无法挂载/dev/gfsvg/gfs设备
注:如果要在存储服务器上即本实验的iscsi-storage 上,如果有外部节点连接着此存储,要想停止tgtd(service tgtd stop)服务, 有如下提示:
Stopping SCSI target daemon: Stopping target frameworkdaemon
Some initiators are still connected - could not stop tgtd
表示无法停止,而采取杀掉tgtd的pid的方法来停止时,在此用service tgtd start来启动tgtd服务的时候,有如下的提示:
实际上tgtd并没有启动成功,用ps查看是查看不到tgtd服务进程的,要想解决此问题,是因为有个/var/lock/subsys/tgtd文件存在,只需删除掉即可。
# rm /var/lock/subsys/tgtd
测试GFS2文件系统是否正常运行,在不同节点主机上分别新建文件,在双方查看是否同步
让GFS2文件系统开机自动挂载,所有节点都要进行下面的操作。
7、建立Web高可用服务
修改所有节点上的/etc/httpd/conf/httpd.conf,添加一个虚拟WEB站点并设置httpd服务开机自动启动。
其他两个节点的httpd.conf修改和上图完全一样。
添加一个测试页
打开浏览器分别访问三个节点的WEB页,以测试每个节点的WEB站点能正常工作。
8、集群中创建服务组
1.创建Web高可用需要的两个资源:
(1) ip地址:192.168.1.230/24
(2) httpd脚本:/etc/init.d/httpd
点击”resources”选项
单击“add”按扭,添加资源
新建故障倒换域,点击“Failover Domain”项,单击“add”按钮
新建服务组,添加刚才新建的两个资源进服务组
点击“service”选项,单击“add”按钮,如下图所示:
点击上图的”add a resource”按钮,添加资源
启动服务组
9、测试:
通过上图可以看出节点192.168.1.232是活跃的,正在接管资源响应用户的访问请求。
或在192.168.1.232主机上执行下面的命令
高可用性验证
模拟宕机,关机当前活跃节点192.168.1.232。会发现群集中其中一个备用节点会自动成为活跃节点,接管资源来响应用户的访问请求。
注:要确保每个节点的cman、rgmanager、ricci、modclusterd、clvmd服务能正常启动,若不能启动则要手动将服务启动起来;并设置开机自动启动。
查看每个节点的LV的状态,若显示如下状态,说明该节点不能正常挂载GFS存储设备
解决方法:执行vgchange命令激活逻辑卷,如下图所示:
本文详细介绍如何使用Red Hat Cluster Suite (RHCS) 和 Global File System (GFS2) 结合 iSCSI 技术在 Linux 系统中搭建一个网络存储系统。具体步骤包括配置 iSCSI 目标端与客户端、安装集群软件包、配置集群管理器、创建 GFS2 文件系统、搭建 Web 高可用服务等。
890

被折叠的 条评论
为什么被折叠?



