环境准备
1.操作系统
CentOS 6
2.软件版本
scsi-target-utils-1.0.24-3.el6_4.x86_64 -- 网络存储服务端
iscsi-initiator-utils-6.2.0.873-2.el6.x86_64 -- 网络存储客户端
cman-3.0.12.1-49.el6_4.1.x86_64 -- 分布式集群管理工具
rgmanager-3.0.12.1-17.el6.x86_64 -- 实现集群高可用,故障转移
gfs2-utils-3.0.12.1-49.el6_4.1.x86_64 -- 全局文件系统
lvm2-cluster-2.02.98-9.el6.x86_64 -- 集群逻辑卷
3.集群环境
(1).配置各节点名称
node1:
[root@node1 ~]# uname -n
node1.test.com
[root@node1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.66.146 node1.test.com node1
192.168.66.147 node2.test.com node2
192.168.66.148 node3.test.com node3
192.168.66.149 target.test.com target
PS:其他各个节点主机,依次 修改主机名和域名,不再赘述
(2).配置各节点与跳板机ssh互信
node1:
[root@node1 ~]# ssh-keygen -t rsa
[root@node1 ~]# ssh-copy-id -itarget
PS:节点主机依次和target端进行密钥对同步;而target端也依次向节点主机同步密钥对
(3).配置各节点时间同步
node1(时间服务器):
[root@node1 ~]# vim /etc/ntp.conf
restrict 192.168.66.0 mask 255.255.255.0 nomodify notrap noquery
server 127.127.1.0
fudge 127.127.1.0 startum10
PS:其他主机时间服务器指向node1
(4).设置别名变量
[root@target ~]# alias han='for O in {1..3}; do' #设置一个别名,因为每次都得用到时
[root@target ~]#han ssh node$O 'ntpdate -u node1'; done #各节点都在时间同步
[root@target ~]#han ssh node$O 'service iptables stop'; done #关闭防火墙
[root@target ~]#han ssh node$O 'setenforce 0'; done #关闭selinux
iscsi安装与配置
1.安装target
[root@target ~]# yum install -y scsi-target-utils
2.配置target
[root@target ~]# vim /etc/tgt/targets.conf
#配置target名称
#配置共享磁盘
vendor_id Janni#配置发行商(任意)
lun 6#配置LUN号
incominguser iscsiuser iscsiuser #配置认证的用户名和密码
initiator-address192.168.66.0/24 #配置允许访问共享存储的网段
3.启动target并设置为开机自启动
[root@target ~]# service tgtd start
[root@target ~]# chkconfig tgtd on
[root@target ~]# chkconfig tgtd --list
tgtd 0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
4.查看配置的target
[root@target ~]# tgtadm -L iscsi -o show -m target
5.在各节点上安装initiator
[root@target ~]#han ssh node$O 'yum install -yiscsi-initiator-utils'; done
6.配置initiator
node1:
[root@node1 ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2016-03-02.com.xdl.www:node1
[root@node1 ~]# vim /etc/iscsi/iscsid.conf
node.session.auth.authmethod = CHAP #开启CHAP认证
node.session.auth.username =iscsiuser #配置认证用户名
node.session.auth.password =iscsiuser #配置认证密码
PS:node2和node3依次类推
7.各节点启动initiator并设置为开机自启动
[root@target ~]#han ssh node$O 'service iscsi start'; done
[root@target ~]#han ssh node$O 'chkconfig iscsi on'; done
[root@target ~]#han ssh node$O 'chkconfig iscsi --list'; done
8.在各节点上发现一下target
[root@target ~]#han ssh node$O 'iscsiadm -m discovery -t st -ptarget'; done
9.各节点登录一下target并查看一下磁盘
[root@target ~]# han ssh node$O 'iscsiadm -m node -T iqn.2016-03-02.com.xdl.www:disk --login'; done
cman与rgmanager集群安装与配置
1.各节点安装cman与rgmanager
[root@target ~]# han ssh node$O 'yum install -ycman rgmanager'; done
2.配置集群
(1).配置集群名称
[root@node1 ~]# ccs_tool create testcluster
(2).配置fencing设备
1234 [root@node1 ~]# ccs_tool add fence meatware fence_manual-名称-模式为手动
[root@node1 ~]# ccs_tool lsfence -- 查看fence设备
Name Agent
meatware fence_manual
(3).配置集群节点--要知道管理哪些服务器
[root@node1 ~]# ccs_tool addnode -n 1 -f meatware node1.xdl.com-- 添加节点 --第几个 --指定名称 --指定主机
[root@node1 ~]# ccs_tool addnode -n 2 -f meatware node2.xdl.com
[root@node1 ~]# ccs_tool addnode -n 3 -f meatware node3.xdl.com
[root@node1 ~]# ccs_tool lsnode--查询节点
3.同步配置文件到各节点
cd /etc/cluster
[root@node1 cluster]# scp cluster.conf node2:/etc/cluster/
[root@node1 cluster]# scp cluster.conf node3:/etc/cluster/
4.启动各节点集群
node1:
[root@node1 cluster]# service cman start
PS:启动如果报错关闭NetworkManager:
service NetworkManager stop
chkconfig NetworkManager off
如果关闭还报错,则修改超时时间:
echo“CMAN_QUORUM_TIMEOUT=0”>> /etc/sysconfig/cman
node2和node3不再赘述
CLVM安装与配置(集群逻辑卷)
1.安装cLVM
[root@target ~]# han ssh node$O 'yum install -y lvm2-cluster'; done
2.启用集群LVM
[root@target ~]# han ssh node$O 'lvmconf --enable-cluster'; done
3.查看一下启用的集群LVM
PS:节点数最小不小于3个
[root@target ~]# han ssh node$O 'grep "locking_type = 3" /etc/lvm/lvm.conf'; done
locking_type = 3
locking_type = 3
locking_type = 3
4.启动cLVM服务
[root@target ~]# han ssh node$O 'service clvmd start'; done
Starting clvmd:
Activating VG(s): No volume groups found
[确定]
Starting clvmd:
Activating VG(s): No volume groups found
[确定]
Starting clvmd:
Activating VG(s): No volume groups found
[确定]
5.将各节点的cman rgmanger clvmd设置为开机自启动
[root@target ~]# han ssh node$O 'chkconfigclvmdon'; done
[root@target ~]# han ssh node$O 'chkconfig cman on'; done
[root@target ~]# han ssh node$O 'chkconfigrgmanageron'; done
6.在集群节点上创建lvm
node1:
(1).查看一下共享存储
[root@node1 ~]# fdisk -l #查看一下共享存储
(2).创建集群逻辑卷
[root@node1 ~]# pvcreate /dev/sdd#创建物理卷
[root@node1 ~]# vgcreate clustervg /dev/sdd #创建卷组
[root@node1 ~]# lvcreate -L 10G -n clusterlv clustervg#创建逻辑卷
7.在node2与node3上查看一下创建的逻辑卷
node2:
[root@node2 ~]# lvs
node3:
[root@node3 ~]# lvs
gfs2安装与配置(全局文件系统)执行格式化操作等等
1.安装gfs2
[root@target ~]# han ssh node$O 'yum install -ygfs2-utils'; done
2.查看一下帮助文件
[root@node1 ~]# mkfs.gfs2 -h
注:对于用到的参数进行说明
-j #指定日志区域的个数,有几个就能够被几个节点挂载
-J #指定日志区域的大小,默认为128MB
-p {lock_dlm|lock_nolock}
-t :锁表的名称,格式为clustername: locktablename
3.格式化为集群文件系统
[root@node1 ~]# mkfs.gfs2 -j 2 -p lock_dlm -t testcluster:sharedstorage /dev/clustervg/clusterlv
注:testcluster是集群名称,sharedstorage为锁表名称
4.创建挂载目录并挂载
[root@node1 ~]# mkdir /mydata
[root@node1 ~]# mount -t gfs2 /dev/clustervg/clusterlv /mydata
5.将node2与node3进行挂载
node2:
[root@node2 ~]# mkdir/mydata
[root@node2 ~]# mount -t gfs2 /dev/clustervg/clusterlv /mydata
注:node2成功挂载而node3没有功功挂载,Too many nodes mounting filesystem, no free journals,没有多于的日志空间。因为我们在格式化时只创建了2个日志文件,所以node1与node2可以挂载,而node3无法挂载
6.测试
1.查看是否能快速同步文件
node1:
[root@node1 mydata]# touch123.txt
node2:
[root@node2 mydata]# touch456.txt
2.查看挂载目录的属性
[root@node1 mydata]# gfs2_tool gettune /mydata
new_files_jdata = 0 #最常用,设置是否立刻同步到磁盘的,一般设置为1,下面我们就来设置一下
[root@node1 mydata]#gfs2_tool settune /mydata new_files_jdata1
[root@node1 mydata]# gfs2_tool gettune /mydata
3.查看一下日志文件
[root@node1 mydata]# gfs2_tool journals /mydata
journal1 - 128MB
journal0 - 128MB
2 journal(s) found.
4.新增日志文件并挂载
[root@node1 ~]# gfs2_jadd -j 1 /dev/clustervg/clusterlv
5.扩展集群逻辑卷
(1).先查看一下大小
[root@node3 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
clusterlv clustervg -wi-ao--- 10.00g
注,现在是10个G,下面我们将其扩展到15G。
(2).扩展物理边界
[root@node3 ~]# lvextend -L 15G /dev/clustervg/clusterlv
Extending logical volume clusterlv to 15.00 GiB
Logical volume clusterlv successfully resized
3).扩展逻辑边界
[root@node3 ~]# gfs2_grow /dev/clustervg/clusterlv