设为首页 收藏本站
查看: 2772|回复: 0

[经验分享] 配置IP SAN 多路径实现磁盘挂载高可用以及实现高可用负载均衡

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-23 09:49:35 | 显示全部楼层 |阅读模式
服务概述:
多路径:
实验环境: 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

实验步骤:
安装
[iyunv@xuegod61 ~]# yum install -y scsi-target-utils
[iyunv@xuegod61 ~]# /etc/init.d/tgtd start
正在启动 SCSI target daemon:                              [确定]
[iyunv@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
[iyunv@xuegod61 ~]# fdisk /dev/sdb
[iyunv@xuegod61 ~]# ll /dev/sdb          ##分完区不能格式化
brw-rw---- 1 root disk 8, 16 10月 22 23:15 /dev/sdb

配置target ,把sda4 分区共享出去
修改配置文件
[iyunv@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>

[iyunv@xuegod61 ~]# /etc/init.d/tgtd restart
停止 SCSI target daemon:                                  [确定]
正在启动 SCSI target daemon:                              [确定]

查看状态:
[iyunv@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

设置开机启动:
[iyunv@xuegod61 ~]# chkconfig tgtd on



配置客户端xuegod62
[iyunv@xuegod62 ~]# rpm -ivh /mnt/Packages/scsi-target-utils-1.0.24-10.el6.x86_64.rpm


需要先发现target 存储,再启动客户端服务,才有效
[iyunv@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

[iyunv@xuegod62 ~]# ll /dev/sdb*
ls: 无法访问/dev/sdb*: 没有那个文件或目录


[iyunv@xuegod62 ~]# /etc/init.d/iscsi restart
停止 iscsi:                                               [确定]
正在启动 iscsi:                                           [确定]
[iyunv@xuegod62 ~]# ll /dev/sdb*
brw-rw----. 1 root disk 8, 16 10月 22 23:48 /dev/sdb

设置开机启动
[iyunv@xuegod62 ~]# chkconfig iscsi on
[iyunv@xuegod62 ~]# chkconfig iscsid on


在服务端查看端口
[iyunv@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

在另外一条路线发现设备:
[iyunv@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
[iyunv@xuegod62 ~]# rpm -ivh /mnt/Packages/tree-1.5.3-2.el6.x86_64.rpm

[iyunv@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

查看识别出硬盘
[iyunv@xuegod62 ~]# /etc/init.d/iscsi restart
停止 iscsi:                                               [确定]
正在启动 iscsi:                                           [确定]
[iyunv@xuegod62 ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb  /dev/sdc   

##sdb 和 sdbc其实是同一块硬盘

挂载测试数据:
[iyunv@xuegod62 ~]# fdisk /dev/sdb
[iyunv@xuegod62 ~]# mkfs.ext4 /dev/sdb1

[iyunv@xuegod62 ~]# mount /dev/sdb1 /opt/
[iyunv@xuegod62 ~]# cp /etc/passwd /opt/        ##硬盘 可以正常使用
[iyunv@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


[iyunv@xuegod62 ~]# ll /dev/sdc*              ##查看不到sdc1
brw-rw----. 1 root disk 8, 32 10月 22 23:57 /dev/sdc





需重启服务
[iyunv@xuegod62 ~]# /etc/init.d/iscsi restart
停止 iscsi:                                               [确定]
正在启动 iscsi:                                           [确定]
[iyunv@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


[iyunv@xuegod62 ~]# mount /dev/sdc1 /tmp/
[iyunv@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
[iyunv@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:在客户端上配置多路径
[iyunv@xuegod62 ~]# yum install -y device-mapper-multipath
[iyunv@xuegod62 ~]# cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/

[iyunv@xuegod62 ~]# /etc/init.d/multipathd restart
ok
正在关闭multipathd 端口监控程序:                          [确定]
正在启动守护进程multipathd:                               [确定]



[iyunv@xuegod62 ~]# multipath -ll          ##没输出,代表错误

把刚才挂载 硬盘,卸载

[iyunv@xuegod62 ~]# umount /opt/
[iyunv@xuegod62 ~]# umount /tmp/
[iyunv@xuegod62 ~]# /etc/init.d/iscsi restart
停止 iscsi:                                               [确定]
正在启动 iscsi:                                           [确定]
[iyunv@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

[iyunv@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
如图:

QQ截图20151023094855.png


实战2:修改配置文件,启动高可用负载均衡模式,并自定义多路经设备文件的名字:
[iyunv@xuegod62 ~]# vim /etc/multipath.conf

QQ截图20151023094902.png
QQ截图20151023094913.png
注释:
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,测试负载均衡:
[iyunv@xuegod62 ~]# /etc/init.d/multipathd restart
ok
正在关闭multipathd 端口监控程序:                          [确定]
正在启动守护进程multipathd:                               [确定]
[iyunv@xuegod62 ~]# /etc/init.d/iscsi restart
停止 iscsi:                                               [确定]
正在启动 iscsi:                                           [确定]
[iyunv@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


注:之前相当于主备,现在相当于负载均衡。


测试:
[iyunv@xuegod62 ~]# ls /dev/mapper/webdata*
/dev/mapper/webdata  /dev/mapper/webdatap1
[iyunv@xuegod62 ~]# mount /dev/mapper/webdatap1 /opt/
[iyunv@xuegod62 ~]# cp /boot/vmlinuz-2.6.32-431.el6.x86_64 /opt/
[iyunv@xuegod62 ~]# ls !$
ls /opt/
lost+found  passwd  vmlinuz-2.6.32-431.el6.x86_64

实战3:模拟故障: 断开一条链路。测试链路高可用,关闭其中一个网卡,多路经驱动需要约1 分钟的时
间,去识别链路故障


[iyunv@xuegod61 ~]# ifdown eth1

[iyunv@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 故障

[iyunv@xuegod62 ~]# cp /boot/grub/ /opt/ -r
[iyunv@xuegod62 ~]# ls !$
ls -r
桌面  下载  图片  模板    install.log.syslog  anaconda-ks.cfg
音乐  文档  视频  公共的  install.log

注:数据可以正常写入,说明,高可用成功。

打开链路,过一段时间再看:

[iyunv@xuegod61 ~]# ifup eth1
Determining if ip address 192.168.2.61 is already in use for device eth1...

[iyunv@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         # 链路运行正常




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-129841-1-1.html 上篇帖子: Red Hat Enterprise Linux Server release 6.0 --YUM 创库配置 下篇帖子: kernel: TCP: time wait bucket table overflow 的解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表