clients  ---> www.xxx.com
     |
 ----------------------
 |       |
 web1 ...    web2   <---- iscsi客户端/gnbd客户端
 |--------------------|
     |
  share storage <--- iscsi / gnbd


准备:
 静态IP和FQDN主机名,hosts(必须)
 同步时间

存储 node1.upl.com 1.1.1.128
web1 node2.upl.com 1.1.1.129
web2 node3.upl.com 1.1.1.130

 

iscsi存储端的搭建:略


存储客户端的搭建: web1,web2

1、把存储登录回来
保证:各个客户端节点共享的存储是同一个

2、为了使用集群文件系统,必须把集群环境搭建起来,确定节点间的关系是互为集群成员。

# yum groupinstall "Clustering" "Cluster Storage"  -y


3、配置集群

只需要在其中一个成员节点中去完成配置,然后把相应的配置文件同步到剩余其他成员节点。

# system-config-cluster  &

1)集群名字
 不能和同一个网络中其他集群具有相同的名字,否则会相互干扰。

2)加入集群节点
把node2.upl.com, node3.upl.com加入到该集群。
保存退出

/etc/cluster/cluster.conf

同步配置文件
# rsync -alvR /etc/cluster/cluster.conf  1.1.1.130:/

3)启动集群,正式建立成员之间的关系。

# service cman start  《---两边依次紧跟着启动


查看集群的状态信息
# cman_tool status
Version: 6.2.0
Config Version: 2
Cluster Name: web_storage1543
Cluster Id: 615
Cluster Member: Yes
Cluster Generation: 8
Membership state: Cluster-Member
Nodes: 2
Expected votes: 1
Total votes: 2
Quorum: 1 
Active subsystems: 7
Flags: 2node Dirty
Ports Bound: 0 
Node name: node2.upl.com
Node ID: 1
Multicast addresses: 239.192.2.105
Node addresses: 1.1.1.129


4、建立集群文件系统: gfs / gfs2

1)软件
# yum install kmod-gfs gfs-utils gfs2-utils -y


2)加载gfs驱动模块
# modprobe gfs2  《--- modprobe gfs
# chkconfig gfs2 on


3)格式化(只需要在其中一个节点去执行)

建议:进到Bois把软驱禁用,不然有些时候格式化出错或者等待好长时间

# mkfs.gfs2 -p lock_dlm -t web_storage1543:gfs2 -j 2 /dev/mapper/iscsi_webdatap1

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

Device:                    /dev/mapper/iscsi_webdatap1
Blocksize:                 4096
Device Size                2.80 GB (732957 blocks)
Filesystem Size:           2.80 GB (732955 blocks)
Journals:                  2
Resource Groups:           12
Locking Protocol:          "lock_dlm"
Lock Table:                "web_storage1543:gfs2"
UUID:                      5537948D-A3BE-9744-5A10-150F0661364A

4) 挂载使用,验证集群文件系统的特性

# mount /dev/mapper/iscsi_webdatap1 /mnt

 

下次重启需要怎么?
1、确定iscsi目标已经登录
service iscsi start
如果是多路径,还得确定:
service multipathd start

2、service cman start

3、
modprobe gfs2

4、挂载

 

停止使用gfs

1、umount /mnt
 无法卸载: # umount -f -i /mnt
2、service cman stop
 无法停止服务:
  # cman_tool leave force
  # service cman stop

 

 

====================================

使用gnbd实现clvm+gfs2

  clients  ---> www.xxx.com
     |
 ----------------------
 |       |
 web1 ...    web2   <---- gnbd客户端
 |--------------------|
     |
  share storage <--- gnbd服务器


一、建立集群环境

1、搭建集群环境

该集群有三位成员: storage,web1,web2


同步配置文件到其余节点

2、启动集群,确定集群节点间关系

 


二、搭建gnbd服务端存储

 

1、集群模式启动gnbd服务
# gnbd_serv
gnbd_serv: startup succeeded


2、导出设备

考虑是否需要把gnbd服务器也加入集群?

-c cache  可加入可不加
uncached
 不起用Linux页面,必须加入集群
 如果是存在多路径,也不能使用cache


# gnbd_export -v -e gnbdstorage -c -d /dev/sda5 

# gnbd_export -v -l
Server[1] : gnbdstorage
--------------------------
      file : /dev/sda5
   sectors : 5879727
  readonly : no
    cached : yes
   timeout : no


三、客户端导入设备

# modprobe gnbd
# gnbd_import -v -i 1.1.1.128
# gnbd_import -v -l
Device name : gnbdstorage
----------------------
    Minor # : 0
 sysfs name : /block/gnbd0
     Server : 1.1.1.128
       Port : 14567
      State : Close Connected Clear
   Readonly : No
    Sectors : 5879727


四、使用clvm

前提:确保cman服务已经启动

1、集群下所有节点都必须启动集群版本的lvm
# lvmconf --enable-cluster
# service clvmd start


2、创建逻辑卷
在web1或者web2上执行

# pvcreate /dev/gnbd/gnbdstorage
# vgcreate gnbdvg /dev/gnbd/gnbdstorage

# vgs
  VG     #PV #LV #SN Attr   VSize VFree
  gnbdvg   1   0   0 wz--nc 2.80G 2.80G
    ^^
# lvcreate -n gnbdlv -L 2G gnbdvg


五、建立gfs文件系统

1、modprobe gfs2

2、格式化
# mkfs.gfs2 -p lock_dlm -t gnbd5213:gfs2 -j 2 /dev/gnbdvg/gnbdlv

 

 

要求搭建rpm包的lamp环境,然后搭建一个phpwind论坛
 # yum install httpd httpd-devel php php-common php-mysql
 # mkdir /wwwroot
 # mount /dev/gnbdvg/gnbdlv /wwwroot

 解压phpwind到/wwwroot

 向导连接其中一个web节点,进行安装。

 

需要一台独立mysql服务器
 建立独立的数据库和一个允许远程访问的帐号,授予它访问该数据库的所有权限

 


Red_Hat_Enterprise_Linux-5-Cluster_Suite_Overview-zh-CN.pdf
Red_Hat_Enterprise_Linux-5-Global_Network_Block_Device-zh-CN.pdf