本文分享自天翼云开发者社区《ISCSI数据盘的多路径配置》,作者:w****n

  • 多路径出现的背景

多路径,就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择。每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O流量如何分配?其中一条路径坏掉了,如何处理?从在操作系统的角度来看,每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘的不同路径而已。而multipath软件正是为了解决这些问题而出现的,multipath提供了部署iscsi设备高可用功能的基础。

  • 多路径实现的功能

(1)故障的切换和恢复

(2)IO流量的负载均衡

(3)磁盘的虚拟化

  • multipath配置文件

multipath安装完成后,配置文件/etc/multipath.conf不存在,需要用户自己创建。安装完后会在/usr/share/doc/multipath-tools/examples 目录下生成multipath.conf.synthetic 模板文件可以将这个文件复制到/etc目录下并从命名为multipath.conf。可根据需求自行修改配置文件,在部署ceph-iscsi高可用方案时,相应的配置文件为

  • 关于wwid

多路径软件以块设备提供的scsi id为依据识别不同的路径,wwid中即包含了scsi id的信息 每一个磁盘都有一个全球独一无二的编号(wwid),同一磁盘的不同路径其wwid相同 。可以通过dmsetupstatus查看;另外,可以在/etc/multipath/bindings中设置wwid的别名,如果在multipa.conf中也设置了别名,那么conf文件中的设置优先级更高。每一块一块iscsi磁盘对应一个wwid,与路径数目无关。

同时,需要在配置文件中修改开启别名功能,并重启multipathd服务。

配置成功后,multipath会自动识别路径,若未识别出,可尝试执行 multipath -v3 ,路径识别成功后可以看到两条状态为active ready running的路径,两条路径对应的别名为ligb-mpth2(策略为failover,也即主备)

如图所示为配置了两条路径的一个iscsi设备,设备为dm-0,路径有两条,对应/dev下新增的设备:

配置成功多路径以后,target中的每一块disk都会出现与网关数量相同的/dev路径,例如:配置了两个iscsi网关,并添加了一块disk,那么initiator登陆后会看到/dev下新增两个设备sdb与sdc,并且用blkid查看可以看到两者是有一样的uuid,并且同时只能mount一个设备,如果尝试同时挂载,会提示错误,同时从dmesg中可以看出报错信息是由于两者拥有duplicate的uuid。并且两者实际都是与/dev/dm-0所关联

  • multipath配置分析

(1)未配置multipath

场景:target配置了两个iscsi网关,提供一个2G的块设备;initiator端未配置多路径,在/dev下多出两个设备sdb与sdc,这两个设备可以进行分别的格式化与mount,但是不能同时操作,不然会报错(因为实际二者就是同一个iscsi设备),挂载成功后其中一个设备显示挂载点,而另一个没有。这种情况下若尝试multipath -v2,会提示ignoring map的错误

(2)已配置multipath

场景:target配置了两个iscsi网关,提供一个2G的块设备;initiator端配置多路径,在/dev下多出两个设备sdb与sdc,并且他们对应的是同一个ligb-mpth2,这两个设备不可以进行格式化与mount.

若要使用此iscsi设备,那么需要直接操作ligb-mpth-2这个设备,并且mount后可以发现sdb与sdc都显示了挂载点

  • 查看路径负载

发现dm-0上的io与sdc路径上的io相同,说明此时选取的路径为sdc。(路径组策略为failover)

将路径组策略设置为multibus后再次查看,可以发现IO的流量被分散到了两条路径上,并且IO

同时查看路径状态,发现两条路径均处于active

  • 清除多路径

退出iscsi登录后,multipath仍然残留在lsblk中,需要执行multipath -F才能清除

ISCSI数据盘的多路径配置的更多相关文章

  1. Linux 格式化和挂载数据盘

    如果您已经为 ECS 实例配了数据盘,您需要先格式化数据盘并挂载文件系统后才能正常使用数据盘. 注意: 磁盘分区和格式化是高风险行为,请慎重操作.本文档描述如何处理一个新买的数据盘,如果您的数据盘上有 ...

  2. Linux格式化、挂载及卸载数据盘

    注意: 磁盘分区和格式化是高风险行为,请慎重操作.本文档描述如何处理一个新买的数据盘,如果您的数据盘上有数据,请务必对数据进行备份以避免可能的数据丢失. 服务器仅支持对 数据盘 进行分区,而不支持对  ...

  3. 【Linux】扩展阿里云数据盘分区和文件系统

    扩容云盘只是扩大存储容量,不会扩容文件系统 一.准备工作 在扩展数据盘扩展分区和文件系统前,请提前完成以下工作. 创建快照以备份数据,防止操作失误导致数据丢失. 通过ECS控制台或者API扩容云盘容量 ...

  4. 【转】Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置

    Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置 原贴:https://www.cnblogs.com/jackadam/p/8568833.html ...

  5. ISCSI多路径配置(二)

    搭建iscsi存储系统(一) (1).配置ISCSI多路径实现磁盘挂载高可用 如果存储服务器到交换机只有一条线路的时候,那么一条线路出现故障,整个就没法使用了,所以多线路可以解决这个问题,避免单点故障 ...

  6. iscsi序列二、iscsi多路径配置方式

    一.ISCSI多路径应用 如果存储服务器到交换机只有一条线路的时候,那么一条线路出线故障,整个就没法使用了,所以多线路可以解决这个问题,避免单点故障 如上图,如果SAN服务器与客户端交换机只有一条线路 ...

  7. <亲测>阿里云centos7 挂载数据盘配置

    阿里云centos7 挂载数据盘配置 2018年07月17日 15:13:53 阅读数:235更多 个人分类: linux阿里云ECS数据盘挂载   查看磁盘情况 fdisk -l  其中/dev/v ...

  8. docker改变默认存储路径到数据盘(自己实践)

    一.首先将数据盘格式化分区并挂载(文章中提到的sdb(腾讯云)实践中是vdb(阿里云),文章中挂载在ssd目录下,实践中是挂载到data目录下的,后面安装docker部分以后是实践中的记录,上面数据盘 ...

  9. ahjesus mongodb指定到数据盘连接不上的解决方案

    关于配置路径指定到数据盘会出现连接不上的情况 我发现是因为数据盘权限不足引起的,目前没找到治本的方法 有个治标的方法就是设置数据盘的权限和用户 sudo chmod 777 * -R  /path/d ...

  10. Linux下multipath多路径配置

    一.什么是多路径 普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系.而到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境,由于主机和存 储通过了光纤交换机或者多块网卡及IP ...

随机推荐

  1. uni-app微信小程序GPS位置获取爬坑

    前情 uni-app是我比较喜欢的跨平台框架,它能开发小程序/H5/APP(安卓/iOS),重要的是对前端开发友好,自带的IDE让开发体验也挺棒的,现在所在公司项目有抖音.快手.微信.支付.APP端, ...

  2. Qt编写物联网管理平台30-用户登录退出

    一.前言 一个用户登录界面,是一个完整的应用系统,尤其是客户端系统必备的一个功能模块,传统的登录处理一般都是和本地的用户信息进行比对,而现代的登录系统一般是发送请求到服务器进行验证,无论何种方式,都是 ...

  3. Qt音视频开发47-通用视频控件

    一.前言 自从视频监控系统的内核不断增加,从最初的vlc到ffmpeg然后到mpv,后面还陆续增加了海康sdk等,每次增加一个内核,整个视频监控系统就有三五个代码文件需要修改,而且大部分是重复的代码, ...

  4. Datawhale冬令营第二期!😀Task 1

    Datawhale冬令营第二期-Task1:动手体验AI辅助编程:番茄钟 对应链接:https://www.datawhale.cn/activity/116/23/94?rankingPage=1 ...

  5. [转]OpenLayer4地图全屏的实现

    第一种方式:自实现 1.首先将地图容器的长宽设置成100%. 2.对form 和body标签长宽设置成100%. 3.对浏览器进行全屏设置. 具体代码如下所示(fullextent 为全屏安全ID.) ...

  6. [转]C#的二进制文件操作及关于Encoding类与汉字编码转换的问题

    1.数值应保存在二进制文件 首先列举文本.二进制文件的操作(读写)方法: 方式1: //文本文件操作:创建/读取/拷贝/删除 using System; using System.IO; class ...

  7. React 应用的 Nginx 缓存控制

    典型 React 应用面临的缓存问题,可通过 Nginx 配置进行解决 通用部署 构建应用后,只需使用 Nginx 指向静态文件即可 server { listen 80; root /PATH/TO ...

  8. Solution Set - “我献上明月一盏,照满河山”

    目录 0.「集训队互测 2018」「洛谷 P9248」完美的集合 1.「UR #6」「UOJ #74」破解密码 2.「NOI Simu.」苯为 3.「NOI Simu.」西克 4.「NOI Simu. ...

  9. Java方法引用、lambda如何序列化&方法引用与lambda底层原理

    系列文章目录和关于我 0.引入 最近笔者使用flink实现一些实时数据清洗(从kafka清洗数据写入到clickhouse)的功能,在编写flink作业后进行上传,发现运行的时候抛出:java.io. ...

  10. Redis的分布式锁详解

    Redis实现的分布式锁 # 对资源key加锁,key不存在时创建,并且设置,10秒自动过期 SET key value EX 10 NX # 删除key DEL key NX的作用 NX参数是为了保 ...