经过数年的发展后,iSCSI已成为IP SAN的代名词,大幅促进了存储局域网络(SAN)的普及应用。但相较于FC SAN,iSCSI虽然有建置价格低的优点,但也被认为存在着许多不足,包括易受***、可用带宽低,且缺乏高可用性的冗余访问机制等。

事实上,若有适当的环境配合,iSCSI也能实现多路径I/O(Multi-Path Input/Output,MPIO,多路径输入输出)与多重连结(Multiple Connections per Session,MC/S)两种多重路径存取的机制,可建立负载平衡、故障失效切换等带宽聚合应用,提供更可靠的存储网络环境。

SCSI的2种多路径访问机制

MPIO与MC/S都是利用多条实体存取通道,在服务器(iSCSI Initiator段)与存储设备(iSCSI Target端)之间建立逻辑通道,可透过轮替的存取动作,避免单一实体通道中断时,连带导致存取中断;或是平衡多个实体通道间的传输负载,避免传输负荷集中在单一实体通道上。但2种机制间又有所不同:

多重路径MPIO

MPIO可允许1个iSCSI Initiator透过多个Session连入同1个iSCSI Target设备,以便利用多网卡或iSCSI HBA启用负载平衡与故障失效切换机制,也可称作Multiple Sessions per Initiator。

多重连接MC/S

MC/S可允许在同一个Session中,在iSCSI Initiator与iSCSI Target间建立多个TCP/IP连接,同样也能让用户利用多张网卡或iSCSI HBA启用负载平衡与故障失效切换机制。

简而言之,MPIO是在更高的网络堆栈层上运作(即在iSCSI层上的SCSI指令层),且多条存取路径间的负载平衡机制,是针对1个指定的独立逻辑驱动器(LUN)运作;而MC/S则是iSCSI RFC中所定义的方法,是在iSCSI层上运作,具有更好的传输验证能力(Error Recovery Levels),另外MC/S的负载平衡是“同时”针对所有的逻辑驱动器运作,这点也与MPIO不同。

实现多路径存取的3种方式

iSCSI的底层是IP与以太网,理论上可直接从网卡实施,利用Port Trunking/Teaming/Link Aggregation的方式,将主机上的多张网卡捆绑在1个IP下,再连接到iSCSI存储设备上,搭配iSCSI存储设备传输埠上的对应设定,从而实现实体多路径连接。但问题在于,不是所有网卡都能支持这种方式。

另外,有一些存储厂商提供的SAN路径管理软件,也能协助用户建立iSCSI多路径存取环境,如EMC PowerPath、HDS的Hitachi Dynamic Link Manager、NetApp SnapDrive、Infortrend EonPath等,但这些软件通常都只支持特定厂牌型号的iSCSI设备。

不过我们也可跳过网卡这一层,亦无须使用路径管理软件,直接利用iSCSI Initiator软件配合iSCSI设备建立多路径存取。要利用这种方式建立MPIO还是MC/S,都必须满足一定条件:

(1)iSCSI Initiator端需有多张网卡或网络端口连接到Target端。

(2)iSCSI Initiator软件需支持MPIO或MC/S。

(3)iSCSI Target设备需支持MPIO或MC/S。

其中第1项是最基本的条件,主机若没有2个以上的网络端口(或2张以上网卡/iSCSI HBA)可用,自然谈不上多路径存取,不过目前多数服务器都内建了至少2组GbE网络端口,这点通常不会成为太大问题。

第2项条件则视不同环境而定,目前各主要操作系统厂商提供的iSCSI Initiator软件中,目前以Windows的支持较为齐全,如微软的iSCSI Initiator 2.06版以后就能支持MPIO与MC/S;Sun则有OpenSolaris MPxIO程序可支持Solaris环境的MPIO;Linux环境同样也能支持MPIO。

而就第3点来说,目前MPIO远比MC/S普及,大多数iSCSI存储设备都能支持MPIO,只要能允许同一个iqn建立的session即可。

但能支持MC/S的产品就少了许多,在软件式的iSCSI Target方面,目前能支持的也不多,如微软的iSCSI Target、Sun的Solaris iSCSI Target都不支持。

深入了解iSCSI的2种多路径访问机制相关推荐

  1. 伴随诊断试剂的三种开发路径

    伴随诊断试剂的三种开发路径 1.伴随诊断试剂的三种开发路径 2.美国的常用方式 3.我国的发展趋势 前提资料:   国家药品监督管理局医疗器械技术审评中心(CMDE):   国家药监局(NMPA): ...

  2. linux php执行ci框架,PHP CI框架学习之路径访问

    CI是一个PHP写的框架,使用它写网站非常方便,但是也会也有一些纠结的问题,比如说其中文件的路径访问. CI严格贯彻MVC思想,因此基于此思想的文件访问也比较严格,controllers控制器是所有v ...

  3. api工厂接口路径是什么_为什么(几乎)永远不要再使用绝对路径访问API

    api工厂接口路径是什么 by Vitaly Kondratiev 通过维塔利·康德拉季耶夫(Vitaly Kondratiev) 为什么(几乎)永远不要再使用绝对路径访问API (Why you s ...

  4. kubernetes使用traefik作为ingress(相同域名不同路径访问不同服务)Middleware的StripPrefix进行实现

    1.环境 kubernetes:v1.20.1 traefik:2.4.8 链接:middleware的使用(stripprefix) 2.安装 kubeadm安装k8s helm安装traefik ...

  5. unity 3D里有两种动态加载机制

    unity 3D里有两种动态加载机制: 一是Resources.Load: 一是通过AssetBundle: 其实两者本质上没有什么区别.Resources.Load就是从一个缺省打进程序包里的Ass ...

  6. 总结:触发unc路径访问的方式

    1. 前言 Net-NTLM-hash劫持的时候一般都会用到unc路径,这篇文章是对于可以出发unc路径访问方式的总结.通过对unc路径的访问可以触发ntlm认证. 补充:触发条件 1.如果是域内的机 ...

  7. 阅读小车循迹论文笔记:灰度传感器、仿生处理器、路径跟踪机制()

    阅读小车循迹论文笔记 灰度传感器 grayscale sensors 小车循迹中灰度传感器的工作原理 发射 接收 电压比较器(运放) 红外灰度传感器总电路原理图 仿生处理器Bio-inspired p ...

  8. 获取weblogic上指定文件的路径 java_项目部署到WebLogic文件路径访问不正确

    在项目中,需要将所有的ip配置在properties文件中,以便维护.在本地开发时用jetty,这个路径是可以访问的.整个过程没有问题. public static String getIp(Stri ...

  9. 【Nginx】location 指向某一个文件 / 指定路径访问某一文件

    前言 nginx 1.15.11(下面的代码在此版本测试通过) win10 phpstudy 8.1.1.3 location 指向某一个文件 / 指定路径访问某一文件 location指向某一个文件 ...

最新文章

  1. pytorch中LambdaLR的作用
  2. echarts图形报表缓存问题(option数据缓存)
  3. (转)WCF光芒下的Web Service
  4. 101个脚本之linux回收站
  5. 计算机科学与技术的知识要求,0812计算机科学与技术基本要求.doc
  6. 一个投标经理的标书检查笔记,拿来就用
  7. Cascade EF-GAN: Progressive Facial Expression Editing with Local Focuses 论文解读
  8. vim插件推荐之auto-pairs
  9. springboot项目启动后无法访问index.html首页
  10. Javascript闭包与作用域
  11. item 24: 区分右值引用和universal引用
  12. LF模式是个坑,ZeroIce中间件让你体会这个痛
  13. python自动客服排班_使用或工具的护士排班问题,在某些日子增加不同的轮班时间...
  14. Hololens Vuforia 物体识别
  15. springboot 访问远程服务器文件,springboot使用JSch远程读取sshd服务器上的文件
  16. C语言考试上机操作题库(基础)(参考)
  17. 【Grasshopper基础1】怎样制作一个Grasshopper电池 / 二次开发基础
  18. 高性能网络编程(二):上一个10年,著名的C10K并发连接问题
  19. 如何在matlab中读写segy格式数据
  20. python中文姓名排序_Python实现针对中文排序的方法

热门文章

  1. 《SQL与关系数据库理论——如何编写健壮的SQL代码》一第3章
  2. linux-swappiness参数的作用及设置
  3. UML类图、接口、包、关系
  4. 转: 视频相关的协议族介绍(rtsp, hls, rtmp)
  5. DB2定时清理归档日志脚本
  6. Windows下JSON可视化工具
  7. [翻译]ASP.NET AJAX与SharePoint的集成
  8. 【发现】ASP.NET DEVELOPMENT SERVER 未能开始侦听端口xxxxx以一种访问权限不允许的方式做了一个访问套接字的尝试——解决方法...
  9. 如何让linux的history命令显示时间记录
  10. ###修改图片为圆形