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
存储服务器: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
/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
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
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
/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
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
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
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
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
/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
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 名字
下面是提示信息
这里的 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
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负载均衡