Clvm+iscsi&GFS整合lvs-dr+Heartbeat+ldirectory实现高可用性负载均衡集群(上)

时间:2022-06-18 03:01:35

http://roman.blog.51cto.com/864028/222405

 

实现环境:Vmware workstation6.5+CentOS 5.3
实验目标:用CLVM和IP-SAN的高性能与高扩展性集群存储整合LVS-DR+HEARTBEAT的负载均衡
分配地址:
存储服务器:172.16.1.1 cha.vs.com
realserver1: 172.16.1.2 chb.vs.com
realserver2: 172.16.1.3  chc.vs.com
主lvs负载均衡器:172.16.1.4  chd.vs.com
备份负载均衡器: 172.16.1.5  che.vs.com (其中主备负载均衡器之间用心跳线相连接口均为eth1。地址为10.1.1.1/24 10.1.1.2/24
首先在存储服务器和两个realserver上来配置Clvm+iscsi&GFS高可用集群环境
  先来配置存储服务器,再装系统的时候,集群和集群存储全选(两个realserver也是一样)。
再安装iscsi-initiator-utils 给存储服务器添加一块硬盘大小随意。(我加了一块4G的)
新建一个分区 fdisk /dev/sdb 第一个分区/dev/sdb1 (最好不要格式化)
启动scsi-target服务
/etc/init.d/tgtd start && chkconfig tgtd on
 
资源声明       使用什么设备              新建        模式         设备号                     设备名字 
tgtadm --lld iscsi --op new --mode target -t1 -T iqn.2009-10.vs.disk1
 
建立磁盘映射
tgtadm --lld iscsi --op new --mode logicalunit -t1 --lun 1 -b /dev/sdb1
访问控制    ALL 任意    可以规定网段 和IP
tgtadm --lld iscsi --op bind --mode target -t1 -I ALL
 
查看
tgtadm --lld iscsi --op show --mode target
显示信息如下:
Target 1: iqn.2009-10.vs.disk1
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: deadbeaf1:0
            SCSI SN: beaf10
            Size: 0 MB
            Online: Yes
            Removable media: No
            Backing store: No backing store
        LUN: 1
            Type: disk
            SCSI ID: deadbeaf1:1
            SCSI SN: beaf11
            Size: 4294 MB
            Online: Yes
            Removable media: No
            Backing store: /dev/sdb1
    Account information:
    ACL information:
        ALL
接下来 把上述命令全部写入 /etc/rc.local 使其能够开机启动
 
下面我们开始设置realserver
统一realserver的主机名
/etc/hosts
172.16.1.2   chb.vs.com
172.16.1.3   chc.vs.com
修改两个节点的sysctl.conf 文件 关闭arp响应
net.ipv4.ip_forward = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
在/etc/init.d/下建立 lvs启动脚本 (为以后做准备)
chmod 755 lvs.sh
#!/bin/sh
ifconfig lo:0 172.16.1.9 broadcast 172.16.1.9 netmask 255.255.255.255 up
route add -host 172.16.1.9 dev lo:0
上面的操作两台realserver是都要作的
 
启动iscsi服务
/etc/init.d/iscsi restart
查看存储信息
iscsiadm -m discovery -t sendtargets -p 172.16.1.1:3260
显示信息
172.16.1.1:3260,1 iqn.2009-10.vs.disk1
 
连接资源
iscsiadm -m node -T iqn.2009-10.vs.disk1 -l
 
提示连接成功
Logging in to [iface: default, target: iqn.2009-10.vs.disk1, portal: 172.16.1.1,3260]
Login to [iface: default, target: iqn.2009-10.vs.disk1, portal: 172.16.1.1,3260]: successful
 
这时在你的 /dev/下应该多了一个硬盘
fdisk - /dev/sdb
Disk /dev/sdb: 4293 MB, 4293563904 bytes
133 heads, 62 sectors/track, 1016 cylinders
Units = cylinders of 8246 * 512 = 4221952 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         244     1005981   83  Linux
 
上述命令在另外一台realserver再执行一次 并写入rc.local
接下来 在存储服务器上来配置集群环境 (用luci 或 system-config-cluster都可以)
执行system-config-cluster 把两台realserver的hostname加进去就OK了 组播地址可设可不设。
两边同时启动cman /etc/init.d/cman start
两边同时执行 lvmconf --enable-cluster 和 /etc/init.d/clvmd start 
 
建立PV
pvcreate /dev/sdb1
vgcreate "vg0" /dev/sdb1
lvcreate -n lv0 -L 500M /dev/vg0
好了,到这里你可以在另外的realserver上执行一下 lvdisplay,查看是否也已经建立成功
下一步我们要把我们的分区变成GFS文件系统
装这两个包 gfs-utils  kmod-gfs
执行 gfs_mkfs -t mycluster:mygfs -p lock_dlm -j 2 /dev/vg0/lv0
这里的 mycluster是我刚才用system-config-cluster建立的cluster 名字
下面是提示信息
This will destroy any data on /dev/vg0/lv0.

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

Device:                    /dev/vg0/lv0
Blocksize:                 4096
Filesystem Size:           62420
Journals:                  2
Resource Groups:           8
Locking Protocol:          lock_dlm
Lock Table:                mycluster:mygfs

Syncing...
All Done

下面在两台realserver上面都试试看,是不是直接可以用了!呵呵
mount /dev/vg0/lv0 /var/www/html/
执行mount 命令查看
/dev/mapper/vg0-lv0 on /var/www/html type gfs (rw,hostdata=jid=0:id=65538:first=1)
在/var/www/html/ 下面建立 index.html 随便输入点东西测试用,还有test.html 内容是“ ceshi“ 用来给ldirectord作测试用
 
存储就算做完了 下面来做 lvs-dr+heartbeat负载均衡