FC前端接口允许多个其他端口进行Port Login过程,那么盘阵上的逻辑磁盘LUN可以同时被多个主机访问吗?完全可以。SCSI指令集中有一个选项,即独占式访问和共享式访问。
独占式访问:每台主机访问目标前需要进行SCSI Reserve,使用完了再Release目标。
共享式访问:允许所有人来访问。
所以盘阵上的任何LUN可以被多台主机通过一个或者多个前端接口进行访问。容易造成冲突。
解决方法:文件系统相互协商同步,这种新的文件系统叫集群文件系统,保证可以同时共享一个卷。
大多数情况不需要共享一个卷,那怎么实现主机只访问属于自己的LUN?
分析从主机到盘阵的LUN的通路,可以发现,有两个部件,一为FC交换机,二为磁盘阵列控制器。所以可以分别在两者上做手脚。
在磁盘控制器上做手脚
SCSI指令集上有一条叫Report LUN,在SCSI发起端和目标端通信的时候,由发起端发出指令。目标端在收到指令的以后,就需要报告自己的LUN信息。背板以太网
可以在发起端要求Report LUN的时候,根据发起端的身份,提供相应的LUN给它。
如果强行访问其他的LUN,就会拒绝。
LUN Masking:盘阵对特定的主机报告特定的LUN,避免越界。
这是SCSI指令集的功能,所以只要上面能承载SCSI指令集就可用。
还可以将LUN分配到某个前端端口。可以设置前端主机只有从某个盘阵端口进入才能访问到对应的LUN。从盘阵前端其他端口访问不到LUN。
在FC交换设备上做手脚
ZONE:在FC网络交换设备上阻断两个节点的同路
软ZONE:在名称服务器上做手脚,欺骗进行名称注册的节点,根据ZONE配置的信息向登录节点通告网络上其他节点以及资源的信息。
硬ZONE:把交换机某端口归为一个ZONE,底层完全隔离。

FC盘阵B所接的端口既在左边又在右边的ZONE中。主机C无法与盘阵A通信。
下图为具有双控的盘阵,两个控制器都连接到了交换机上,每个主机上都有两块FC适配卡,也连接到了交换机。
假设LUN1分配给控制器A,LUN2分配给控制器B,而每台主机有2块HBA卡连到了FC交换机上,所以每台主机将识别到4块磁盘。
这样每台主机会识别到双份冗余的磁盘,但是OS一无所知,会认为是独立的。容易造成混乱。

为何要安装两块FC适配卡?目的是为了冗余,以防单点故障,一旦出现了故障,另一块卡依然可以维持主机到盘阵的通路。
解决OS识别出多份磁盘的问题:
在OS上安装软件。识别FC提交上来的LUN。如果物理上相同的LUN,软件就向OS提交单份LUN。
如果某个控制器发生故障,通过这个软件立即重定向到另一个控制器。
这个软件叫多路径软件,除了可以做到冗余高可用以外,还可以负载均衡。
FC取代并行SCSI有两个根本原因。
并行SCSI没有复杂的链路层协议,连就体现缆上。因为距离短,所以不需要加入传输保障机制等。相当于面向连接的电路交换,需要预先建立物理的通路(虚电路)
在面向无连接的包交换网络中,数据流被封装成数据包,传输保障和流量控制非常重要。而且此时网络是共享的,按照Best Effect尽力而为的转发数据包。
对于并行SCSI总线,当需要和某个节点通信的时候,需要仲裁。物理通路总是存在,只不过这个通路是总线,是大家共享的,需要通过仲裁来获得总线的使用权。
面向连接的致命弱点
资源浪费:必须保持并只给特定的通信双方使用。其他的通信不管多美的拥塞都不能使用。
维持和维护连接的成本高。如果远的话,维持物理连接的成本高,需要解决干扰、中继等。
缺乏高可用性:需要重新建立电路才能继续通话。对于包交换网络,没有固定的数据流路径,交换或者路由设备会自行判断应答通过的路径。丢失的包会重传。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-58345-6.html
那你们下场一定会很悲惨