服务概述:
多路径:
实验环境: xuegod61,xuegod62 配置双网卡。
服务端:xuegod61.cn IP:192.168.0.61 eth0 ,br ; IP:192.168.2.63 eth1 , vmnet4
客户端:xuegod62.cn IP:192.168.0.62 eth1 ,br ; IP:192.168.2.64 eth2 , vmnet4
配置一个IP SAN 存储服务器。
将xuegod61 配置成ip san,将xuegod61 上的sdb1 分区,通过ip san 共享出去。
服务器端: target xuegod61
客户端:initiator xuegod62
实验步骤:
安装
[root@xuegod61 ~]# yum install -y scsi-target-utils
[root@xuegod61 ~]# /etc/init.d/tgtd start
正在启动 SCSI target daemon: [确定]
[root@xuegod61 ~]# netstat -anupt |grep 3260
tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN 2890/tgtd
tcp 0 0 :::3260 :::* LISTEN 2890/tgtd
装备一块磁盘sdb1
[root@xuegod61 ~]# fdisk /dev/sdb
[root@xuegod61 ~]# ll /dev/sdb ##分完区不能格式化
brw-rw---- 1 root disk 8, 16 10月 22 23:15 /dev/sdb
配置target ,把sda4 分区共享出去
修改配置文件
[root@xuegod61 ~]# vim /etc/tgt/targets.conf #写入以下内容
在参考这段内容并在段内容后,追加以下红色标记内容:
#<target iqn.2008-09.com.example:server.target4>
# direct-store /dev/sdb # Becomes LUN 1
# direct-store /dev/sdc # Becomes LUN 2
# direct-store /dev/sdd # Becomes LUN 3
# write-cache off
# vendor_id MyCompany Inc.
#</target>
<target iqn.2015-10.cn.xuegod.www:target_san1>
backing-store /dev/sdb1
initiator-address 192.168.0.62
initiator-address 192.168.2.62
vendor_id xuegod
product_id target1
</target>
注释:
default-driver iscsi #此配置文件默认全部注释,使用iscsi 驱动
<tarrget iqn.2015-10.cn.xuegod.www:target_san1> # iscsi 正规名字格式: iqn.年-月.主机名
倒着写: target 端名字
backing-store /dev/sdb1 # 可以是具体的分区,也可以是DD 出来的文件。不能小于1G。(后
面的文件系统是GFS,光日志空间就128M)
initiator-address 192.168.0.64 #指定允许访问的此存储主机
initiator-address 192.168.2.64 #指定允许访问的此存储主机
vendor_id “xuegod.cn” #供应厂商编号标识这个设备(字符不要过长)
product_id "TARGET1" # 产品编号
</target>
[root@xuegod61 ~]# /etc/init.d/tgtd restart
停止 SCSI target daemon: [确定]
正在启动 SCSI target daemon: [确定]
查看状态:
[root@xuegod61 ~]# tgt-admin --show
Target 1: iqn.2015-10.cn.xuegod.www:target_san1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 21468 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: rdwr
Backing store path: /dev/sdb1
Backing store flags:
Account information:
ACL information:
192.168.0.62
192.168.2.62
设置开机启动:
[root@xuegod61 ~]# chkconfig tgtd on
配置客户端xuegod62
[root@xuegod62 ~]# rpm -ivh /mnt/Packages/scsi-target-utils-1.0.24-10.el6.x86_64.rpm
需要先发现target 存储,再启动客户端服务,才有效
[root@xuegod62 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.0.61:3260
正在启动 iscsid: [确定] [确定]
192.168.0.61:3260,1 iqn.2015-10.cn.xuegod.www:target_san1
[root@xuegod62 ~]# ll /dev/sdb*
ls: 无法访问/dev/sdb*: 没有那个文件或目录
[root@xuegod62 ~]# /etc/init.d/iscsi restart
停止 iscsi: [确定]
正在启动 iscsi: [确定]
[root@xuegod62 ~]# ll /dev/sdb*
brw-rw----. 1 root disk 8, 16 10月 22 23:48 /dev/sdb
设置开机启动
[root@xuegod62 ~]# chkconfig iscsi on
[root@xuegod62 ~]# chkconfig iscsid on
在服务端查看端口
[root@xuegod61 ~]# netstat -anupt |grep 3260
tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN 3049/tgtd
tcp 0 0 192.168.0.61:3260 192.168.0.62:40695 ESTABLISHED 3049/tgtd
tcp 0 0 :::3260 :::* LISTEN 3049/tgtd
在另外一条路线发现设备:
[root@xuegod62 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.2.61:3260
192.168.2.61:3260,1 iqn.2015-10.cn.xuegod.www:target_san1
[root@xuegod62 ~]# rpm -ivh /mnt/Packages/tree-1.5.3-2.el6.x86_64.rpm
[root@xuegod62 ~]# tree /var/lib/iscsi/
/var/lib/iscsi/
├── ifaces
├── isns
├── nodes
│ └── iqn.2015-10.cn.xuegod.www:target_san1
│ ├── 192.168.0.61,3260,1
│ │ └── default
│ └── 192.168.2.61,3260,1
│ └── default
├── send_targets
│ ├── 192.168.0.61,3260
│ │ ├── iqn.2015-10.cn.xuegod.www:target_san1,192.168.0.61,3260,1,default -> /var/lib/iscsi/nodes/iqn.2015-10.cn.xuegod.www:target_san1/192.168.0.61,3260,1
│ │ └── st_config
│ └── 192.168.2.61,3260
│ ├── iqn.2015-10.cn.xuegod.www:target_san1,192.168.2.61,3260,1,default -> /var/lib/iscsi/nodes/iqn.2015-10.cn.xuegod.www:target_san1/192.168.2.61,3260,1
│ └── st_config
├── slp
└── static
13 directories, 4 files
查看识别出硬盘
[root@xuegod62 ~]# /etc/init.d/iscsi restart
停止 iscsi: [确定]
正在启动 iscsi: [确定]
[root@xuegod62 ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb /dev/sdc
##sdb 和 sdbc其实是同一块硬盘
挂载测试数据:
[root@xuegod62 ~]# fdisk /dev/sdb
[root@xuegod62 ~]# mkfs.ext4 /dev/sdb1
[root@xuegod62 ~]# mount /dev/sdb1 /opt/
[root@xuegod62 ~]# cp /etc/passwd /opt/ ##硬盘 可以正常使用
[root@xuegod62 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 16G 5.6G 9.6G 37% /
tmpfs 238M 72K 238M 1% /dev/shm
/dev/sda1 2.0G 59M 1.8G 4% /boot
/dev/sr0 4.2G 4.2G 0 100% /mnt
/dev/sdb1 20G 172M 19G 1% /opt
[root@xuegod62 ~]# ll /dev/sdc* ##查看不到sdc1
brw-rw----. 1 root disk 8, 32 10月 22 23:57 /dev/sdc
需重启服务
[root@xuegod62 ~]# /etc/init.d/iscsi restart
停止 iscsi: [确定]
正在启动 iscsi: [确定]
[root@xuegod62 ~]# ll /dev/sdc*
brw-rw----. 1 root disk 8, 32 10月 23 00:02 /dev/sdc
brw-rw----. 1 root disk 8, 33 10月 23 00:02 /dev/sdc1
[root@xuegod62 ~]# mount /dev/sdc1 /tmp/
[root@xuegod62 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 16G 5.6G 9.6G 37% /
tmpfs 238M 72K 238M 1% /dev/shm
/dev/sda1 2.0G 59M 1.8G 4% /boot
/dev/sr0 4.2G 4.2G 0 100% /mnt
/dev/sdb1 20G 172M 19G 1% /opt
/dev/sdc1 20G 172M 19G 1% /tmp
[root@xuegod62 ~]# ll /tmp/
总用量 20
drwx------. 2 root root 16384 10月 22 23:59 lost+found
-rw-r--r--. 1 root root 1766 10月 23 00:00 passwd
实例2:在客户端上配置多路径
[root@xuegod62 ~]# yum install -y device-mapper-multipath
[root@xuegod62 ~]# cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/
[root@xuegod62 ~]# /etc/init.d/multipathd restart
ok
正在关闭multipathd 端口监控程序: [确定]
正在启动守护进程multipathd: [确定]
[root@xuegod62 ~]# multipath -ll ##没输出,代表错误
把刚才挂载 硬盘,卸载
[root@xuegod62 ~]# umount /opt/
[root@xuegod62 ~]# umount /tmp/
[root@xuegod62 ~]# /etc/init.d/iscsi restart
停止 iscsi: [确定]
正在启动 iscsi: [确定]
[root@xuegod62 ~]# multipath -ll
mpatha (1IET 00010001) 远程存储设备的产品信息dm-0 xuegod(厂商),target1(产品ID)
size=1.0G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active #默认使用active 的链路
| `- 7:0:0:1 sdd 8:48 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled #有效的链路,但不是活动链路
`- 6:0:0:1 sdc 8:32 active ready running
#默认配置并不会实现负载均衡,只会实现高可用的效果。
# (1IET 00010001) 远程存储设备的产品信息,由于sdb和sdb 对应的都是远端同一个存储,所
以产品信息是一样的,最后被多路经驱动发现,所以为他们生成了一个设备文件/dev/mapper/mpatha
[root@xuegod62 ~]# ll /dev/mapper/mpatha*
lrwxrwxrwx. 1 root root 7 10月 23 00:13 /dev/mapper/mpatha -> ../dm-0
lrwxrwxrwx. 1 root root 7 10月 23 00:13 /dev/mapper/mpathap1 -> ../dm-1
如图:
实战2:修改配置文件,启动高可用负载均衡模式,并自定义多路经设备文件的名字:
[root@xuegod62 ~]# vim /etc/multipath.conf
注释:
multipaths {
multipath {
wwid "1IET 00010001" #填写硬盘产品关键信息
alias webdata #自定义名字
path_grouping_policy multibus
path_selector "round-robin 0"
failback manual
rr_weight priorities
no_path_retry 5
}
}
重启服务multipathd,测试负载均衡:
[root@xuegod62 ~]# /etc/init.d/multipathd restart
ok
正在关闭multipathd 端口监控程序: [确定]
正在启动守护进程multipathd: [确定]
[root@xuegod62 ~]# /etc/init.d/iscsi restart
停止 iscsi: [确定]
正在启动 iscsi: [确定]
[root@xuegod62 ~]# multipath -ll
webdata (1IET 00010001) dm-0 xuegod,target1
size=20G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active #启用负载均衡模式
|- 11:0:0:1 sdc 8:32 active ready running
`- 10:0:0:1 sdb 8:16 active ready running
注:之前相当于主备,现在相当于负载均衡。
测试:
[root@xuegod62 ~]# ls /dev/mapper/webdata*
/dev/mapper/webdata /dev/mapper/webdatap1
[root@xuegod62 ~]# mount /dev/mapper/webdatap1 /opt/
[root@xuegod62 ~]# cp /boot/vmlinuz-2.6.32-431.el6.x86_64 /opt/
[root@xuegod62 ~]# ls !$
ls /opt/
lost+found passwd vmlinuz-2.6.32-431.el6.x86_64
实战3:模拟故障: 断开一条链路。测试链路高可用,关闭其中一个网卡,多路经驱动需要约1 分钟的时
间,去识别链路故障
[root@xuegod61 ~]# ifdown eth1
[root@xuegod62 ~]# multipath -ll ##大约卡一分钟
webdata (1IET 00010001) dm-0 xuegod,target1
size=20G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 11:0:0:1 sdc 8:32 active faulty running
`- 10:0:0:1 sdb 8:16 active ready running # 链接运行不正常faulty 故障
[root@xuegod62 ~]# cp /boot/grub/ /opt/ -r
[root@xuegod62 ~]# ls !$
ls -r
桌面 下载 图片 模板 install.log.syslog anaconda-ks.cfg
音乐 文档 视频 公共的 install.log
注:数据可以正常写入,说明,高可用成功。
打开链路,过一段时间再看:
[root@xuegod61 ~]# ifup eth1
Determining if ip address 192.168.2.61 is already in use for device eth1...
[root@xuegod62 ~]# multipath -ll
webdata (1IET 00010001) dm-0 xuegod,target1
size=20G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 11:0:0:1 sdc 8:32 active ready running
`- 10:0:0:1 sdb 8:16 active ready running # 链路运行正常
转载于:https://blog.51cto.com/2532591133/1705283