暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Multipath+UDEV

原创 逆风飞翔 2021-10-26
823

ISCSI客户端配置

1.检查安装包

--需要安装iscsi-initiator-utils、device-mapper及device-mapper-multipath(这里带着多路径的包一起装了)
--检查是否安装
rpm -qa |grep iscsi
rpm -qa |grep device-mapper

--安装
yum install iscsi-initiator*
yum install device-mapper device-mapper-event device-mapper-multipath device-mapper-multipath-libs

--iscsi、iscsid服务控制
systemctl start iscsi.service
systemctl start iscsid.service

systemctl status iscsi.service
systemctl status iscsid.service
2.客户端发现多路径

iscsiadm --mode discovery --type sendtargets --portal 192.168.10.55:3260
iscsiadm --mode discovery --type sendtargets --portal 10.10.10.15:3260

--简写方式,man iscsiadm 可查看具体用法
iscsiadm -m discovery -t st -p 192.168.10.55
iscsiadm -m discovery -t st -p 10.10.10.15

--查看发现记录
iscsiadm --mode node


3.存储器登陆

执行完上一步,使用fdisk -l还是查看不到磁盘,执行下面登陆命令就能看到磁盘了

--全部登陆
iscsiadm -m node --loginall=all

--单条链路登陆,简写就不在这放了,iqn在WEB管理页面volumns-LUN Mapping下
iscsiadm --mode node --targetname iqn.2006-01.com.openfiler:tsn.f33a86dd5860 --portal 192.168.10.55:3260 --login
iscsiadm --mode node --targetname iqn.2006-01.com.openfiler:tsn.f33a86dd5860 --portal 10.10.10.15:3260 --login

--链路逐个登出
iscsiadm --mode node --targetname iqn.2006-01.com.openfiler:tsn.f33a86dd5860 --portal 192.168.10.55:3260 --logout
iscsiadm --mode node --targetname iqn.2006-01.com.openfiler:tsn.f33a86dd5860 --portal 10.10.10.15:3260 --logout

----链路全部登出
iscsiadm -m node --logoutall=all

--新增加iscsi存储目标后刷新
iscsiadm -m session -R
执行完login,在fdisk -l就能看到,两条链路每个链路对应5块盘,系统一共显示10块,实际上还是5块,下图上的sdh和sdi实际上就是1块


image.png
另外有iscsi需要了解:

--iscsi主目录
/var/lib/iscsi/

--查看发现的路径
/var/lib/iscsi/send_targets

--节点信息
/var/lib/iscsi/nodes


五、Multipath多路径配置

上阶段完成后,可以到系统多了一些磁盘,两条链路,每条5个,共10个盘。我们现在使用多路径就能让两块模拟成一块,并且多路径还有负载均衡的作用


image.png
1.查看状态并创建配置文件

--查看多路径状态,提示配置文件不存在,多路径软件已经在第四部分开头装过了
multipath –ll

image.png
根据提示创建

--创建
/sbin/mpathconf --enable

--查询状态已经没有报错提示了
multipath –ll
3.多路径软件添加至内核模块中

--检查是否已经在内核中
lsmod |grep multipath

--添加到内核
modprobe dm-multipath
modprobe dm-round-robin
modprobe dm-service-time
4.multipathd服务

--查看状态
systemctl status multipathd

--启动
systemctl start multipathd

--设置开机启动
systemctl enable multipathd

--查看开机启动列表
systemctl list-unit-files|grep multipathd

--重新加载
systemctl reload multipathd
5.编辑/etc/multipath.conf配置文件

刚才生成的配置文件中有示例,可以参照添加,另外具体的参数说明,红帽有中文配置文档,文章最后有下载链接

下面是这个环境我的配置:

--下面配置中的wwid是根据SCSI标准,每个SCSI磁盘都有的一个唯一ID,类似于网卡的MAC地址
--获取wwid方式:/usr/lib/udev/scsi_id --whitelisted --device=/dev/sdb
--vi /etc/multipath.conf

defaults {
user_friendly_names yes
find_multipaths yes --多路径忽略本地磁盘
path_grouping_policy multibus
failback immediate
no_path_retry fail
}

blacklist {
devnode "^sda"
}

multipaths {
multipath {
wwid 14f504e46494c45524174344177492d424f53682d4b4e6f6c
alias mpatha
}

multipath {
wwid 14f504e46494c45524d39495237512d706d7a4c2d30326a43
alias mpathb
}

multipath {
wwid 14f504e46494c455256416b3755742d6e7666472d37516b62
alias mpathc
}

multipath {
wwid 14f504e46494c45526f67444277622d6257744e2d6e566e44
alias mpathd
}

multipath {
wwid 14f504e46494c4552666a325731562d766455382d394c6a4d
alias mpathe
}
}

devices {
device {
vendor "COMPAQ "
product "HSV110 (C)COMPAQ"
path_grouping_policy multibus
getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
path_checker readsector0
path_selector "round-robin 0"
hardware_handler "0"
failback 15
rr_weight priorities
no_path_retry queue
}
}
修改完重启服务,不生效的话再重启系统init 6

6.负载均衡测试

--下面使用dd命令进行测试
dd if=/dev/zero of=/dev/mapper/mpatha

--新开tab页执行,可见实现负载均衡
iostat 2

--在vm中断掉第二块网卡,再次执行上面dd 可以看到就1个链路了,但是可以正常使用


--查看多路径状态,可见链路状态,wwid,聚合情况
multipath -ll


说明:

其中/dev/mapper/mpathn 是软件虚拟出来的多路径设备,可以被我们用来挂载使用
/dev/dm-n 这个是软件自身使用的,不能被软件以外使用,不可挂载,但是rac是使用这个配置UDEV
六、UDEV绑定

不用分区!

--查看磁盘大小
lsblk|grep mpath|sort|uniq

--获取名称和ID,下面是两种方式
cat /etc/multipath/bindings |grep -v '#'
udevadm info --query=all --name=/dev/mapper/mpatha |grep -i DM_UUID

--创建UDEV规则文件
cd /etc/udev/rules.d
touch 99-oracle-asmdevices.rules

--配置方式1(见下方截图):
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-14f504e46494c45524174344177492d424f53682d4b4e6f6c",SYMLINK+="asmdisk1",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-14f504e46494c45524d39495237512d706d7a4c2d30326a43",SYMLINK+="asmdisk2",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-14f504e46494c455256416b3755742d6e7666472d37516b62",SYMLINK+="asmdisk3",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-14f504e46494c45526f67444277622d6257744e2d6e566e44",SYMLINK+="asmdisk4",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-14f504e46494c4552666a325731562d766455382d394c6a4d",SYMLINK+="asmdisk5",OWNER="grid",GROUP="asmadmin",MODE="0660"

--配置方式2(见下方截图):
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-14f504e46494c45524174344177492d424f53682d4b4e6f6c",RUN+="/bin/sh -c 'mknod /dev/asmdisk1 b $major $minor; chown grid:asmadmin /dev/asmdisk1; chmod 0660 /dev/asmdisk1'"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-14f504e46494c45524d39495237512d706d7a4c2d30326a43",RUN+="/bin/sh -c 'mknod /dev/asmdisk2 b $major $minor; chown grid:asmadmin /dev/asmdisk2; chmod 0660 /dev/asmdisk2'"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-14f504e46494c455256416b3755742d6e7666472d37516b62",RUN+="/bin/sh -c 'mknod /dev/asmdisk3 b $major $minor; chown grid:asmadmin /dev/asmdisk3; chmod 0660 /dev/asmdisk3'"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-14f504e46494c45526f67444277622d6257744e2d6e566e44",RUN+="/bin/sh -c 'mknod /dev/asmdisk4 b $major $minor; chown grid:asmadmin /dev/asmdisk4; chmod 0660 /dev/asmdisk4'"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-14f504e46494c4552666a325731562d766455382d394c6a4d",RUN+="/bin/sh -c 'mknod /dev/asmdisk5 b $major $minor; chown grid:asmadmin /dev/asmdisk5; chmod 0660 /dev/asmdisk5'"

--配置方式3(这个方式是找sd开头的设备,看视频有人是这么配置,不太明白已经聚合链路为什么还用sd*,留个坑):
KERNEL=="sd*", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="14f504e46494c45523143594e70582d5777694a2d7a4c6657", RUN+="/bin/sh -c 'mknod /dev/asm-arch002 b $major $minor; chown grid:asmdba /dev/asm-arch002; chmod 0660 /dev/asm-arch002'"


---方式四
KERNEL=="sdb", ENV{ID_SERIAL}=="36000c29ef68c52da0927ac6b47741602", SYMLINK+="asmorc1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdc", ENV{ID_SERIAL}=="36000c296d5178692e85a92d41655e7ea", SYMLINK+="asmorc2", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdd", ENV{ID_SERIAL}=="36000c29ce8008651cc4c71f674520711", SYMLINK+="asmorc3", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sde", ENV{ID_SERIAL}=="36000c29fe08a6a3c8a91c8263222dafd", SYMLINK+="asmdata1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdf", ENV{ID_SERIAL}=="36000c29d204e2742d8fb64bece0281f4", SYMLINK+="asmdata2", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdg", ENV{ID_SERIAL}=="36000c29c44e5b8c3b8e7e93fa840559c", SYMLINK+="asmarch1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdh", ENV{ID_SERIAL}=="36000c29c571cf7b392792ad717a02594", SYMLINK+="asmsystem1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdi", ENV{ID_SERIAL}=="36000c2970b9517bae6e87310c368622f", SYMLINK+="asmsystem2", OWNER="grid", GROUP="asmadmin", MODE="0660"

--【非生产操作】配置完成,重启UDEV(新装环境可以这么操作,但是生产环境不能直接重启)
systemctl restart systemd-udevd.service
udevadm control --reload-rules
udevadm trigger

--【生产操作】生产环境操作,触发变更!
/sbin/udevadm trigger --type=devices --action=change

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论