【共享服务】iscsi多路径配置
⼀、安装部署
1、前⾔
普通的电脑主机都是⼀个硬盘挂接到⼀个总线上,这⾥是⼀对⼀的关系。⽽到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境,由于主机和存储通过了光纤交换机或者多块⽹卡及IP来连接,这样的话,就构成了多对多的关系。也就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择。每个主机到所对应的存储可以经过⼏条不同的路径,如果是同时使⽤的话,I/O流量如何分配?其中⼀条路径坏掉了,如何处理?还有在操作系统的⾓度来看,每条路径,操作系统会认为是⼀个实际存在的物理盘,但实际上只是通向同⼀个物理盘的不同路径⽽已,这样是在使⽤的时候,就给⽤户带来了困惑。多路径软件就是为了解决上⾯的问题应运⽽⽣的。
多路径的主要功能就是和存储设备⼀起配合实现如下功能:
故障的切换和恢复
IO流量的负载均衡
磁盘的虚拟化
为了主机可以使⽤ iSCSI 多路径访问存储设备,我们需要在主机上安装多路径设备映射器 (DM-Multipath)。多路径设备映射器可以实现主机节点和后端存储之间的多个 I/O 路径配置为⼀个单⼀逻辑设备,从⽽可以提供链路冗余和提⾼性能。主机通过访问包含多个 I/O 路径的逻辑设备,就可以有效提⾼后端存储系统的可靠性。
2、部署说明
节点主机名节点IP⾓⾊系统版本
node23066.66.66.230mon、osd CentOS7.2
node23166.66.66.231mon、mds、osd、target CentOS7.2
node23266.66.66.232mon、mds、osd、target CentOS7.2
本次⽰例由分布式存储提供⼀个1TB⼤⼩的rbd(lun01),通过node231、node232分别创建⼀个target服务共享lun01出去,客户端node220通过iscsi分别与node231、node232建⽴连接
注:以下操作均在initiator端node220节点下执⾏
2.1、initiator与target建⽴连接
node220节点分别通过节点node231、node232与lun01建⽴连接,映射到本地磁盘下
lun01通过node231、node232两个节点两条链路映射到node220节点下,映射盘符为sdc和sdd
[root@node220 ~]# iscsiadm -m discovery -t st -p 66.66.66.231
66.66.66.231:3260,1 iqn.vcluster:target01
[root@node220 ~]# iscsiadm -m discovery -t st -p 66.66.66.232
66.66.66.232:3260,1 iqn.vcluster:target01
[root@node220 ~]# iscsiadm -m node -T iqn.vcluster:target01 --login
Logging in to [iface: default, target: iqn.vcluster:target01, portal: 66.66.66.231,3260] (multiple)
Logging in to [iface: default, target: iqn.vcluster:target01, portal: 66.66.66.232,3260] (multiple)
Login to [iface: default, target: iqn.vcluster:target01, portal: 66.66.66.231,3260] successful.
Login to [iface: default, target: iqn.vcluster:target01, portal: 66.66.66.232,3260] successful.
[root@node220 ~]# iscsiadm -m node ll
66.66.66.231:3260,1 iqn.vcluster:target01
66.66.66.232:3260,1 iqn.vcluster:target01
[root@node220 ~]# lsblk
NAME              MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                8:0    0 223.6G  0 disk
└─md126            9:126  0 212.4G  0 raid1
├─md126p1      259:0    0  200M  0 md    /boot/efi
├─md126p2      259:1    0  500M  0 md    /boot
└─md126p3      259:2    0 211.7G  0 md
├─centos-root 253:0    0    50G  0 lvm  /
├─centos-swap 253:1    0    4G  0 lvm  [SWAP]
└─centos-home 253:2    0 157.7G  0 lvm  /home
sdb                8:16  0 223.6G  0 disk
└─md126            9:126  0 212.4G  0 raid1
├─md126p1      259:0    0  200M  0 md    /boot/efi
├─md126p2      259:1    0  500M  0 md    /boot
└─md126p3      259:2    0 211.7G  0 md
├─centos-root 253:0    0    50G  0 lvm  /
├─centos-swap 253:1    0    4G  0 lvm  [SWAP]
└─centos-home 253:2    0 157.7G  0 lvm  /home
sdc                8:32  0    1T  0 disk
sdd                8:48  0    1T  0 disk
2.2、multipath配置
安装multipath软件
[root@node220 ~]# yum install -y device-mapper-multipath
[root@node220 ~]# rpm -qa | grep multipath
device-mapper-multipath-0.4.9-123.el7.x86_64
device-mapper-multipath-libs-0.4.9-123.el7.x86_64
⽣成multipath配置
执⾏命令mpathconf --enable,在/etc⽬录下⽣成配置⽂件f
[root@node220 ~]# mpathconf --enable
修改multipath配置
修改配置⽂件/f信息如下,之后执⾏命令systemctl restart multipathd 重启服务
[root@node220 ~]# cat /f
defaults {
user_friendly_names yes
}
设置⿊名单列表,⽰例环境sda、sdb磁盘为系统RAID盘,故⽽排除
blacklist {
devnode "^sd[a-b]"
}
multipaths {
multipath {
path_grouping_policy    multibus
#path_checker          readsector0
prio                    "random"
path_selector          "round-robin 0"
}
nodeselector}
devices {
device {
vendor        "vcluster"
product      "12.2.12"
path_checker  readsector0
path_selector "round-robin 0"
failback      immediate
no_path_retry fail
}
}
[root@node220 ~]# systemctl restart multipathd
查看multipath状态
此时本地可以看到新增的虚拟磁盘/dev/mapper/mpathc ,该虚拟磁盘通过两条iscsi路径提供,当前配置为主备模式(同⼀时刻只有⼀条路径处于活动状态,可写⼊数据)
[root@node220 ~]# multipath -ll
mpathc (360000000000000000e00000000150001) dm-3 vcluster,VIRTUAL-DISK
size=1.0T features='0' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=1 status=enabled
| `- 45:0:0:1 sdc 8:32 active ready running
`-+- policy='service-time 0' prio=1 status=active
`- 46:0:0:1 sdd 8:48 active ready running
[root@node220 ~]# lsblk
NAME              MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                8:0    0 223.6G  0 disk
└─md126            9:126  0 212.4G  0 raid1
├─md126p1      259:0    0  200M  0 md    /boot/efi
├─md126p2      259:1    0  500M  0 md    /boot
└─md126p3      259:2    0 211.7G  0 md
├─centos-root 253:0    0    50G  0 lvm  /
├─centos-swap 253:1    0    4G  0 lvm  [SWAP]
└─centos-home 253:2    0 157.7G  0 lvm  /home
sdb                8:16  0 223.6G  0 disk
└─md126            9:126  0 212.4G  0 raid1
├─md126p1      259:0    0  200M  0 md    /boot/efi
├─md126p2      259:1    0  500M  0 md    /boot
└─md126p3      259:2    0 211.7G  0 md
├─centos-root 253:0    0    50G  0 lvm  /
├─centos-swap 253:1    0    4G  0 lvm  [SWAP]
└─centos-home 253:2    0 157.7G  0 lvm  /home
sdc                8:32  0    1T  0 disk
└─mpathc          253:3    0    1T  0 mpath
sdd                8:48  0    1T  0 disk
└─mpathc          253:3    0    1T  0 mpath
[root@node220 ~]# cat /proc/partitions
major minor  #blocks  name
8      16  234431064 sdb
8        0  234431064 sda
9      126  222715904 md126
259        0    204800 md126p1
259        1    512000 md126p2
259        2  221997056 md126p3
253        0  52428800 dm-0
253        1    4194304 dm-1
253        2  165310464 dm-2
8      32 1073741824 sdc
8      48 1073741824 sdd
253        3 1073741824 dm-3
2.3、multipath验证
验证multipath效果,看能否实现活动路径故障,备⽤路径接管写⼊的效果
将多路径设备/dev/mapper/mpathc挂载到本地⽬录/client下,通过vdbench持续读写数据
查看multipath主链路为node232节点,映射磁盘为/dev/sdd
停⽌multipath主链路node232节点的target服务,客户端读写未出现中断情况
此时multipath主链路切换⾄node231节点下
查看multipath状态,主链路切换⾄node231节点下
查看/var/log/messages⽇志打印,multipath检测到sdd磁盘异常,标记为fail状态,当前链路数为1 查看磁盘流量,此时磁盘读写流量切换⾄sdc磁盘下
当恢复node232节点target服务之后,node232节点重新加⼊到multipath备链路下
⼆、常⽤操作
1、常⽤命令
加载内核模块: modprobe dm-multipath; modprobe dm-round-robin
刷新所有多路径配置: multipath -F
查看多路径: multipath -ll

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。