操作系统:
rhel5.8
实验环境检查:
1.应用服务器需要设置主机名
server1.vir.com
server2.vir.com
2.应用服务器需要在/etc/hosts文件中添加解析
192.168.122.10 server1.vir.com server1
192.168.122.20 server2.vir.com server2
3.本实验所有服务器关闭防火墙和SELinux,生产环境因需设定
4.所有服务器yum需配置Server TV Cluster ClusterStorage
5.每个存储服务器dd一个2G文件,或给每个存储服务器添加一个2G磁盘,生产环境因需设定
配置storage1 & storage2:
[root@storage1 ~]#yum install scsi-target-utils
[root@storage1 ~]#vim /etc/tgt/targets.conf
<target iqn.2013-12.com.vir:storage1.target1>
--> storage2:<target iqn.2013-12.com.vir:storage2.target1>
--> 红色部分可任取,建议以方便记忆和查找为原则
backing-store /dev/sdb -->如果是dd的文件,则写dd文件的绝对路径
vendor_id storage1 -->storage2配置为vendor_id storage2
product_id disk1
initiator-address 192.168.122.10
initiator-address 192.168.122.20
</target>
[root@storage1 ~]#/etc/init.d/tgtd start
[root@storage1 ~]#tgt-admin --show -->查看是否已经共享
配置前端应用节点server1:
[root@server1 ~]#yum install iscsi-initiator-utils
[root@server1 ~]#/etc/init.d/iscsi start
[root@server1 ~]#iscsiadm -m discovery -t sendtargets -p 192.168.122.30:3260 -->发现存储设备
[root@server1 ~]#iscsiadm -m discovery -t sendtargets -p 192.168.122.40:3260
[root@server1 ~]#iscsiadm -m node -T iqn.2013-12.com.vir:storage1.target1 -l -->登录存储设备
[root@server1 ~]#iscsiadm -m node -T iqn.2013-12.com.vir:storage2.target1 -l
[root@server1 ~]#fdisk -l
配置udev规则
[root@server1 ~]#udevinfo -a -p /sys/block/sdb -->查看设备信息
[root@server1 ~]#udevinfo -a -p /sys/block/sdc
[root@server1 ~]#vim /etc/udev/rules.d/80-iscsi.rules -->配置udev规则
SUBSYSTEM=="block",SYSFS{size}=="3919797",SYSFS{vendor}=="storage1",SYSFS{model}=="disk1",SYMLINK+="iscsi/storage1-disk"
SUBSYSTEM=="block",SYSFS{size}=="3919797",SYSFS{vendor}=="storage2",SYSFS{model}=="disk1",SYMLINK+="iscsi/storage2-disk"
[root@server1 ~]#start_udev
[root@server1 ~]#ls -l /dev/iscsi/
total 0
lrwxrwxrwx 1 root root 6 Feb 23 01:35 Storage1-disk -> ../sdb
lrwxrwxrwx 1 root root 6 Feb 23 01:37 Storage2-disk -> ../sdc
[root@server1 ~]#scp /etc/udev/rules.d/80-iscsi.rules 192.168.122.20:/etc/udev/rules.d/
创建LVM
[root@server1 ~]#pvcreate /dev/iscsi/storage1-disk /dev/iscsi/storage2-disk
[root@server1 ~]#vgcreate vgiscsi /dev/iscsi/storage1-disk /dev/iscsi/storage2-disk
[root@server1 ~]#lvcreate -l 500 -n lviscsi vgiscsi
由于文件系统需要支持分布式锁管理,所以使用全局文件系统GFS,而GFS使用cman做分布式锁检查,因此应用服务器需要组成集群
[root@server1 ~]#yum install cman
[root@server1 ~]#yum install system-config-cluster
--> 使用system-config-cluster生成集群配置文件cluster.conf
[root@server1 ~]#system-config-cluster
1.配置集群名字为iscsi_cluster
2.左侧 Cluster Nodes ----> 右下角Add a Cluster Node
3.依次添加2个server
4.左上角 File ----> Save As
[root@server1 ~]#scp /etc/cluster/cluster.conf 192.168.122.20:/etc/cluster/
--> 在server2上面[root@server2 ~]#yum install cman
[root@server1 ~]#/etc/init.d/cman start
[root@server1 ~]#yum install gfs2-utils kmod-gfs
--> 如果当前是xen内核,需要安装kmod-gfs-xen,可用uname -r查看
[root@server1 ~]#modprobe gfs2
[root@server1 ~]#lsmod | grep gfs2
gfs2 354825 1 lock_dlm
[root@server1 ~]#mkfs.gfs2 -t iscsi_cluster:table1 -p lock_dlm -j 2 /dev/vgiscsi/lviscsi
[root@server1 ~]#mount -t gfs2 -o lockproto=lock_dlm /dev/vgiscsi/lviscsi /iscsi
配置CLVM,开机启动时自动激活VG
[root@server1 ~]#yum install lvm2-cluster
[root@server1 ~]#lvmconf --enable-cluster
[root@server1 ~]#/etc/init.d/clvmd start
[root@server1 ~]#chkconfig clvmd on
配置前端应用节点server2
[root@server2 ~]#yum install iscsi-initiator-utils
[root@server2 ~]#/etc/init.d/iscsi start
[root@server2 ~]#iscsiadm -m discovery -t sendtargets -p 192.168.122.30:3260
[root@server2 ~]#iscsiadm -m discovery -t sendtargets -p 192.168.122.40:3260
[root@server2 ~]#iscsiadm -m node -T iqn.2013-12.com.vir:storage1.target1 -l
[root@server2 ~]#iscsiadm -m node -T iqn.2013-12.com.vir:storage2.target1 -l
[root@server2 ~]#pvscan
[root@server2 ~]#vgchange -ay vgiscsi
[root@server2 ~]#lvs
[root@server2 ~]#yum install gfs2-utils kmod-gfs
[root@server2 ~]#/etc/init.d/cman start
[root@server2 ~]#mount -t gfs2 -o lockproto=lock_dlm /dev/vgiscsi/lviscsi /iscsi
配置CLVM,开机启动时自动激活VG
[root@server2 ~]#yum install lvm2-cluster
[root@server2 ~]#lvmconf --enable-cluster
[root@server2 ~]#/etc/init.d/clvmd start
[root@server2 ~]#chkconfig clvmd on
测试 server1 & server2 同时写一个文件,观察是否可以看到数据的一致