multipath

423 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第16天,点击查看活动详情

1、检查安装是否正常

[root@localhost host0]# lsmod | grep dm_multipath
dm_multipath           27792  0
dm_mod                124501  9 dm_multipath,dm_log,dm_mirror

1.1、如果模块没有加载成功,使用下面的初始化DM

[root@localhost host0]# modprobe dm-multipath
[root@localhost host0]# modprobe dm-round-robin
[root@localhost host0]# systemctl start multipathd
[root@localhost host0]# multipath -v2 -------格式化
环境命令
环境判断rpm -qagrep mapperrpm -qagrep multirpm -qagrep udev
安装rpm -ivh device-mapper-1.02.39-1.el5.rpmrpm -ivh device-mapper-multipath-0.4.7-34.el5.rpmlsmodgrep dm_multipathyum –y install device-mapper device-mapper-multipath
加载modprobe dm-multipathmodprobe dm-round-robinchkconfig --list multipathdchkconfig –level 35 multipathd onservice multipathd start
聚合fdisk –l 查看所有物理设备,多路径的设备会显示聚合前与聚合后的fdisk –l grep ‘Disk /dev/s’ 简化输出ls -l /dev/sd* lsscsi 查看所有scsi设备multipath –F   删除当前多路径设备缓存multipath –v3  聚合,可打印整个过程,有助于分析问题multipath –v2  聚合multipath –ll   显示设备(active/active双主)
设备信息查看ll /dev/disk/by-id/   获得磁盘wwid ll /dev/disk/by-uuid/    获得磁盘uuid ls -l /dev/dm-*   multipath内部使用,不固定ll /dev/mpath/    在系统启动阶段不可用,只是为了方便查看而创建ll /dev/mapper/   系统启动阶段可用cat /var/lib/multipath/bindings   默认配置设定具体每个多路径设备名
命令交互multipath -kshow configshow paths   磁盘是否由multipath管理show maps   是否生成所需多路径名
创建用户逻辑卷# pvcreate /dev/mapper/mpath0# vgcreate -s 256m datavg /dev/mapper/mpath0# lvcreate --size 2000G --name lv_src vg_data# mkfs.ext4 /dev/mapper/vg_data-lv_src# mkdir /src# mount -t ext4 /dev/mapper/vg_data-lv_src /src
负载均衡测试# cd/src# dd if=/dev/zero of=test.img# iostat 1 Device: tps Blk_read/s Blk_wrtn/ssda 2020.00 8.00 466272.00sdb 2024.00 0.00 368952.00dm-0 4044.00 8.00 834776.00    #合并后的路径
读写测试
查看光纤卡wwwn
ISCSI

多路径磁盘配置--(事列)

一、安装和加载多路径软件包

yum``` -y install device-mapper-multipath*

二、查看multipath是否安装

rpm -qa |grep device-mapper

三、设置成开机自启动multipathd

chkconfig --level 2345 multipathd on

四、手工加载multipathd

modprobe dm-multipath        #加载到内核 
modprobe dm-round-robin      #加载到内核 
service multipathd start     #重启服务

五、生成multipath配置文件

/sbin/mpathconf --enable #生成multipath.conf
cat /etc/multipath.conf

1、识别新添加的存储映射磁盘:

ls /sys/class/scsi_host/
echo "- - -" > /sys/class/scsi_host/host0/scan


批量识别脚本
#!/bin/bash
SCSINAME=$(ls /sys/class/scsi_host/ |sort|uniq -c | awk '/host/{print $2}')
DISKNAME=$(fdisk -l | awk '/Disk \/dev\/sd*/{print $2}' | sed 's/\://g')

#识别新映射的磁盘
for a in $SCSINAME
do
echo ""
echo $a
SCSINAMEA=`echo "- - -" > /sys/class/scsi_host/$a/scan`
done

#获取新映射磁盘的UUID 
for i in $DISKNAME
do
echo ""
echo $i
DISKNAMEA=`scsi_id --whitelisted --replace-whitespace --device=$i`
echo $DISKNAMEA | grep -E "66e1|66e2|66e3"
done

2、链路格式化

multipath -v2

3、查看新添加的磁盘UUID

multipath -ll | grep -A 10 -E "66e1|66e2|66e3"
multipath -ll | awk '/66e1|66e2|66e3/{print $2}' | sed 's/[()]//g'

4、确认磁盘后,手工将磁盘UUID添加到multipath.conf配置文件中

cat /etc/multipath.conf
defaults {
	path_selector			"round-robin 0"
	path_grouping_policy	multibus
	path_checker			readsector0
	failback				immediate
	no_path_retry			fail
	user_friendly_names		yes
}
blacklist {
       wwid 3610030815a........051ea81d(排除本地磁盘UUID)
	devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
	devnode "^hd[a-z]"
}
multipaths {
       multipath {
               wwid                    3...ac........1d3000066e1
               alias                   data1(自定义名称)
       }
       multipath {
               wwid                    3...ac........1d2000066e2
               alias                   data2
       }味道
       multipath {
               wwid                    3...ac........1d4000066e3 
               alias                   data3
       }
       multipath {
               wwid                    3...ac........1d5000066e4
               alias                   data4
       }no得bas
       multipath {
               wwid                    3...ac........1d9000066e5
               alias                   data5
       }
       multipath {
               wwid                    3...ac........1d8000066e6
               alias                   data6
       }
       multipath {
               wwid                    3...ac........1d6000066e7
               alias                   data7
       }
       multipath {
               wwid                    3...ac........1d7000066e8
               alias                   data8
       }
}

5、删除原链路

multipath -ll | grep -E "66e1|66e2|66e3" |awk '{print $1}'
multipath -f mpathaz

6、链路格式化

multipath -v2

7、查看新添加的磁盘

multipath -ll
multipath -ll | grep -A 10 -E "66e1|66e2|66e3"
cat /etc/multipath/bindings
cat /etc/multipath/wwids

8、创建PV

pvcreate /dev/mapper/mpathbp

for i in `ls /dev/mapper/mpathc[a-z]`; do pvcreate   `ls -l $i| awk '{print $9}'`; done

9、增加到现有VG中

vgextend datavg_01 /dev/mapper/mpathbp

for i in `ls /dev/mapper/mpathc[a-z]`; do vgextend datavg  `ls -l $i| awk '{print $9}'`; done

10、增加到现有LV中

lvextend -l +100%Free -r -f /dev/datavg_01/archivelog (加-r参数就不需要手动执行resize2fs命令)
lvextend -L +1024G /dev/datavg_01/archivelog

11、手动刷新

如果提示:resize2fs: 文件系统不支持在线(online)调整大小,需要umount掉挂载目录再执行以下命令

resize2fs /dev/datavg_01/archivelog

12、查看是否添加成功

df -h

执行pvs报错如下:

  /dev/sdng: read failed after 0 of 4096 at 0: 输入/输出错误
  /dev/sdng: read failed after 0 of 4096 at 322122481664: 输入/输出错误
  /dev/sdng: read failed after 0 of 4096 at 322122539008: 输入/输出错误
  /dev/sdng: read failed after 0 of 4096 at 4096: 输入/输出错误


处理方法
echo 1 > /sys/block/sdng/device/delete