持续创作,加速成长!这是我参与「掘金日新计划 · 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 -qa | grep mapperrpm -qa | grep multirpm -qa | grep udev |
| 安装 | rpm -ivh device-mapper-1.02.39-1.el5.rpmrpm -ivh device-mapper-multipath-0.4.7-34.el5.rpmlsmod | grep 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 -k | show 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