RHCS+GFS2+ISCSI+CLVM实现共享存储

RHCS+GFS2+ISCSI+CLVM实现共享存储                
     
     2015-03-25 16:35:29

标签:iscsi scsi rhcs clvm gfs2

本文转载修改自http://www.it165.net/admin/html/201404/2654.html

一,GFS2简介

GFS2
是一个基于GFS的先进的集群文件系统,能够同步每台主机的集群文件系统的metadata,能够进行文件锁的管理,并且必须要redhat
cluster suite支持,GFS2可以grow,进行容量的调整;不过这是在disk动态容量调整的支持下,也就是本文所要实现的CLVM。

实验环境:

192.168.30.119 tgtd.luojianlong.com OS:Centos 6.4 x86_64 管理服务器 iscsi-target-server

192.168.30.115 node1.luojianlong.com OS:Centos 6.4 x86_64 iscsi-initiator

192.168.30.116 node1.luojianlong.com OS:Centos 6.4 x86_64 iscsi-initiator

192.168.30.117 node1.luojianlong.com OS:Centos 6.4 x86_64 iscsi-initiator

原理:

node1,node2,node3分别通过ISCSI-initiator登录并挂载tgtd服务器的存储设备,利用RHCS搭建GFS2高可用集群文件系统,且保证3个节点对存储设备能够同时读写访问。

下面是拓扑图:

二,准备工作

分别设置4台服务器的hosts文件,以便能够解析对应节点,设置管理节点到各集群节点的ssh密钥无密码登录,关闭NetworkManager,设置开机不自动启动。

[[email protected] ~]# cat /etc/hosts

192.168.30.115 node1.luojianlong.com node1

192.168.30.116 node2.luojianlong.com node2

192.168.30.117 node3.luojianlong.com node3

[[email protected] ~]# ssh-copy-id -i node1

[[email protected] ~]# ssh-copy-id -i node2

[[email protected] ~]# for I in {1..3}; do scp /etc/hosts node$I:/etc/; done

关闭各节点的iptables,selinux服务

[[email protected] ~]# for I in {1..3}; do ssh node$I ‘service iptables stop‘; done

[[email protected] ~]# for I in {1..3}; do ssh node$I ‘setenforce 0‘; done


三、集群安装

RHCS
的核心组件为cman和rgmanager,其中cman为基于openais的“集群基础架构层”,rgmanager为资源管理器。RHCS的集群中
资源的配置需要修改其主配置文件/etc/cluster/cluster.xml实现,其仅安装在集群中的某一节点上即可,而cman和
rgmanager需要分别安装在集群中的每个节点上。这里选择将此三个rpm包分别安装在了集群中的每个节点上

[[email protected] ~]# for I in {1..3}; do ssh node$I ‘yum -y install cman rgmanager‘; done

为集群创建配置文件

RHCS
的配置文件/etc/cluster/cluster.conf,其在每个节点上都必须有一份,且内容均相同,其默认不存在,因此需要事先创
建,ccs_tool命令可以完成此任务。另外,每个集群通过集群ID来标识自身,因此,在创建集群配置文件时需要为其选定一个集群名称,这里假设其为
tcluster。此命令需要在集群中的某个节点上执行

[[email protected] ~]# for I in {1..3}; do ssh node$I ‘ccs_tool create tcluster‘; done

查看生成的配置文件的内容

[[email protected] cluster]# cat cluster.conf

#ccs_tool命令用于在线更新CCS的配置文件

为集群添加节点

RHCS
集群需要配置好各节点及相关的fence设备后才能启动,因此,这里需要事先将各节点添加进集群配置文件。每个节点在添加进集群时,需要至少为其配置
node
id(每个节点的id必须惟一),ccs_tool的addnode子命令可以完成节点添加。将前面规划的三个集群节点添加至集群中,可以使用如下命令实
现。

[[email protected] ~]# ccs_tool addnode -n 1 node1.luojianlong.com

[[email protected] ~]# ccs_tool addnode -n 2 node2.luojianlong.com

[[email protected] ~]# ccs_tool addnode -n 3 node3.luojianlong.com

查看已经添加完成的节点及相关信息:

[[email protected] ~]# ccs_tool lsnode

复制配置文件到其他2个节点

[[email protected] ~]# scp /etc/cluster/cluster.conf node2:/etc/cluster/

[[email protected] ~]# scp /etc/cluster/cluster.conf node3:/etc/cluster/

启动集群

RHCS集群会等待各节点都启动后方才进入正常工作状态,因此,需要把集群各节点上的cman服务同时启动起来。这分别需要在各节点上执行如下命令

[[email protected] ~]# for I in {1..3}; do ssh node$I ‘service cman start‘; done

[[email protected] ~]# for I in {1..3}; do ssh node$I ‘service rgmanager start‘; done

[[email protected] ~]# for I in {1..3}; do ssh node$I ‘chkconfig rgmanager on‘; done

[[email protected] ~]# for I in {1..3}; do ssh node$I ‘chkconfig cman on‘; done

查看集群状态信息

[[email protected] ~]# clustat

cman_tool的status子命令则以当前节点为视角来显示集群的相关信息

[[email protected] ~]# cman_tool status

cman_tool的nodes子命令则可以列出集群中每个节点的相关信息

[[email protected] ~]# cman_tool nodes

cman_tool的services子命令则可以列出集群中每个服务的相关信息

[[email protected] ~]# cman_tool services

在tgtd server上安装scsi-target-utils

[[email protected] ~]# yum -y install scsi-target-utils

[[email protected] ~]# cp /etc/tgt/targets.conf /etc/tgt/targets.conf.bak

编辑target配置文件,定义target

[[email protected] ~]# vi /etc/tgt/targets.conf

# 添加如下内容

<target iqn.2014-04.com.luojianlong:target1>

backing-store /dev/sdb

initiator-address 192.168.30.0/24

</target>

[[email protected] ~]# service  tgtd restart

backing-store:指定后端要共享的磁盘编号

initiator-address:授权客户端访问的网络地址

incominguser:设置登录用户的账号密码


启动target并查看

[[email protected] ~]# tgtadm -L iscsi -m target -o show

配置3个节点,使用iscsi-initiator登录tgtd服务的存储设备

[[email protected] ~]# for I in {1..3}; do ssh node$I ‘iscsiadm -m discovery -t st -p 192.168.30.119‘; done

[[email protected] ~]# for I in {1..3}; do ssh node$I ‘iscsiadm -m node -T iqn.2014-04.com.luojianlong:target1 -p 192.168.30.119:3260 -l‘; done

[[email protected] ~]# for I in {1..3}; do ssh node$I ‘fdisk -l /dev/sdb‘; done

在其中一个节点上格式化一个分区

[[email protected] ~]# fdisk /dev/sdb

[[email protected] ~]# fdisk -l /dev/sdb

配置使用gfs2文件系统

[[email protected] ~]# for I in {1..3}; do ssh node$I ‘yum -y install gfs2-utils‘; done

使用gfs2命令工具在之前创建好的/dev/sdb1上创建集群文件系统gfs2,可以使用如下命令

[[email protected] ~]# mkfs.gfs2 -j 3 -p lock_dlm -t tcluster:sdb1 /dev/sdb1

This will destroy any data on /dev/sdb1.

It appears to contain: Linux GFS2 Filesystem (blocksize 4096, lockproto lock_dlm)

Are you sure you want to proceed? [y/n] y

Device:                    /dev/sdb1

Blocksize:                 4096

Device Size                5.00 GB (1310972 blocks)

Filesystem Size:           5.00 GB (1310970 blocks)

Journals:                  3

Resource Groups:           21

Locking Protocol:          "lock_dlm"

Lock Table:                "tcluster:sdb1"

UUID:                      478dac97-c25f-5bc8-a719-0d385fea23e3

mkfs.gfs2为gfs2文件系统创建工具,其一般常用的选项有:

-b BlockSize:指定文件系统块大小,最小为512,默认为4096;

-J MegaBytes:指定gfs2日志区域大小,默认为128MB,最小值为8MB;

-j Number:指定创建gfs2文件系统时所创建的日志区域个数,一般需要为每个挂载的客户端指定一个日志区域;

-p LockProtoName:所使用的锁协议名称,通常为lock_dlm或lock_nolock之一;

-t

LockTableName:锁表名称,一般来说一个集群文件系统需一个锁表名以便让集群节点在施加文件锁时得悉其所关联到的集群文件系统,锁表名称为
clustername:fsname,其中的clustername必须跟集群配置文件中的集群名称保持一致,因此,也仅有此集群内的节点可访问此集群
文件系统;此外,同一个集群内,每个文件系统的名称必须惟一。

格式化完成后,重启node1,node2,node3,不然无法挂载刚才创建的GFS2分区

[[email protected] ~]# mount /dev/sdb1 /mnt/

[[email protected] ~]# cp /etc/fstab /mnt/

# 在node2,node3上面也同时挂载/dev/sdb1

[[email protected] ~]# mount /dev/sdb1 /mnt/

[[email protected] ~]# mount /dev/sdb1 /mnt/

# 在node1上挂载目录中写入数据,检测node2,node3的挂载目录数据情况

[[email protected] mnt]# echo "hello" >> fstab

[[email protected] mnt]# tail -f fstab以上信息发现,node2,node3已经发现数据发生变化。

四,配置使用cLVM(集群逻辑卷)

在RHCS集群节点上安装lvm2-cluster

[[email protected] ~]# for I in {1..3}; do ssh node$I ‘yum -y install lvm2-cluster‘; done

在RHCS的各节点上,为lvm启用集群功能

[[email protected] ~]# for I in {1..3}; do ssh node$I ‘lvmconf --enable-cluster‘; done

为RHCS各节点启动clvmd服务

[[email protected] ~]# for I in {1..3}; do ssh node$I ‘service clvmd start‘; done

创建物理卷、卷组和逻辑卷,使用管理单机逻辑卷的相关命令即可

[[email protected] ~]# pvcreate /dev/sdb2

[[email protected] ~]# pvs

# 此时,在另外的其它节点上也能够看到刚刚创建的物理卷

创建卷组和逻辑卷

[[email protected] ~]# vgcreate clustervg /dev/sdb2

[[email protected] ~]# lvcreate -L 2G -n clusterlv clustervg

格式化逻辑卷

[[email protected] ~]# lvcreate -L 2G -n clusterlv clustervg

[[email protected] ~]# mkfs.gfs2 -p lock_dlm -j 2 -t tcluster:clusterlv /dev/clustervg/clusterlv

This will destroy any data on /dev/clustervg/clusterlv.

It appears to contain: symbolic link to `../dm-2‘

Are you sure you want to proceed? [y/n] y

Device:                    /dev/clustervg/clusterlv

Blocksize:                 4096

Device Size                2.00 GB (524288 blocks)

Filesystem Size:           2.00 GB (524288 blocks)

Journals:                  2

Resource Groups:           8

Locking Protocol:          "lock_dlm"

Lock Table:                "tcluster:clusterlv"

UUID:                      c8fbef88-970d-92c4-7b66-72499406fa9c

挂载逻辑卷

[[email protected] ~]# mount /dev/clustervg/clusterlv /media/

[[email protected] ~]# mount /dev/clustervg/clusterlv /media/

[[email protected] ~]# mount /dev/clustervg/clusterlv /media/

Too many nodes mounting filesystem, no free journals

# 发现node3挂载不了,因为刚才创建了2个journal,需要再添加一个

[[email protected] ~]# gfs2_jadd -j 1 /dev/clustervg/clusterlv

Filesystem:            /media

Old Journals           2

New Journals           3

# 然后挂载node3

[[email protected] ~]# mount /dev/clustervg/clusterlv /media/

[[email protected] ~]# df -hT

扩展逻辑卷

[[email protected] ~]# lvextend -L +2G /dev/clustervg/clusterlv

[[email protected] ~]# gfs2_grow /dev/clustervg/clusterlv

[[email protected] ~]# df -hT

发现逻辑卷已经被扩展

到此,RHCS,GFS2,ISCSI,clvm实现共享存储配置完毕。

时间: 2024-10-22 01:21:25

RHCS+GFS2+ISCSI+CLVM实现共享存储的相关文章

RHCS +GFS2+iscsi+cLVM实现高可用web集群

RHEL6.6-x86-64 软件源: epel源 本地yum源 RHCS安装及配置 192.168.1.5   安装luci      两块硬盘, 其中/sdb提供共享存储. 集群节点 192.168.1.6  安装ricci     node1.mingxiao.info     node1 192.168.1.7  安装ricci     node2.mingxiao.info     node2 192.168.1.8 安装ricci      node3.mingxiao.info  

Linux iSCSI协议实现共享存储

大纲 一.存储设备类型 二.什么是SCSI和iSCSI 三.iSCSI安装与配置 一.存储设备类型 DAS:Direct Attached Storage 直连主机的总线上的设备 NAS:network Attached Storage 文件共享服务器,共享级别file SAN:Storage Area Network 把SCSI协议借助于其他网络协议实现传送 tcp/ip iscsi FC(光纤): FCoE NAS与SAN的对比图 二.什么是SCSI和iSCSI 小型计算机系统接口(英语:S

34补3-4 rhcs之gfs2和clvm

04 rhcs之gfs2和clvm 使用共享存储创建高可用集群 [[email protected] ~]# yum -y install scsi-target-utils [[email protected] ~]# vim /etc/tgt/targets.conf  在末尾添加 <target iqn.2015-01.com.magedu:node4.t1> backing-store /dev/sda4 initiator-address 192.168.1.0/24 </ta

第17章 使用iSCSI服务部署网络存储

当前的硬盘接口类型主要有IDE.SCSI和SATA这3种.IDE是一种成熟稳定.价格便宜的并行传输接口.SATA是一种传输速度更快.数据校验更完整的串行传输接口.SCSI是一种用于计算机和硬盘.光驱等设备之间系统级接口的通用标准,具有系统资源占用率低.转速高.传输速度快等优点. 互联网小型计算机系统接口(iSCSI,Internet Small Computer System Interface).是一种将SCSI接口与以太网技术相结合的新型存储技术,可以用来在网络中传输SCSI接口的命令和数据

RHCS+Conga+GFS+cLVM共享存储的高可用性web集群

一.RHCS简介: RHCS是Red Hat ClusterSuite的缩写. RHCS是一个功能完备的集群应用解决方案,它从应用的前端访问到后端的数据存储都提供了一个行之有效的集群架构实现,通过RHCS提供的这种解决方案,不但能保证前端应用持久.稳定的提供服务,同时也保证了后端数据存储的安全. RHCS集群的组成: RHCS是一个集群套件,其主要包括以下几部分: 1.集群构架管理器:RHCS的基础套件,提供集群的基本功能,主要包括布式集群管理器(CMAN).锁管理(DLM).配置文件管理(CC

RHCS(四)之gfs2和clvm

六.测试clvm和gfs2文件系统 恢复所有节点都是online在集群中 在web1对共享存储中的/dev/sdb2创建lv pvcreate /dev/sdb2 vgcreate rhcsvg /dev/sdb2 lvcreate -L 1G -n lv1rhcsvg lvcreate -L 128M -n lv2 rhcsvg 在web4查看自己有没有/dev/rhcsvg/lv* 没有... 对web所有节点开启clvmd服务 [[email protected] ~]# for i in

Linux运维 第五阶段(九)iSCSI & cLVM & gfs2

Linux运维 第五阶段(九)iSCSI&cLVM&gfs2 gfs2(global file system version2,全局文件系统,CFS集群文件系统,利用HA的信息层,向各node通告自己所持有锁的信息) cLVM(cluster logical volume management,集群逻辑卷管理,将共享存储做成逻辑卷,借用HA的心跳传输机制(通信机制,对于脑裂处理的机制),各node要启动clvmd服务(此服务启动前要启动cman和rgmanager),使得各node彼此间通

Linux下搭建iSCSI共享存储

一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择.iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料. iSCSI是一种基于TCP/IP 的协议,用来建立和管理IP存储设备.主机和客户机等之间的相互连接,并创建存储区域网

CentOS 6.5 安装部署iSCSi共享存储

 CentOS 6.5 安装部署iSCSi共享存储 一.前言 1.什么是iSCSI? iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择.iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料. iSCSI:Internet 小型计算机系统接口 (iSCSI: