4. 主机I / O控制器
像第2章所描述的那样,主机I / O控制器是计算机及其存储设备之间的桥梁。主机控制器既可以集成在系统板上,也可以安装在系统的插槽中。当主机适配器作为插卡加入主机I / O总线时,它被称之为主机总线适配器。今天,大多数主机I / O适配器都使用总线控制技术,避免系统C P U 太多地参与I / O处理的细节。
设备驱动程序和主机I / O控制器可以被看成同一过程的两个部分,但被系统主机I / O总线分开。图3 - 7显示了这三个成分,以及它们在系统和其存储设备之间形成的完整连接。无论对于本地存储还是网络存储,系统/存储连接都是所有I / O传输的极为重要的部分。
主机I / O控制器从设备驱动程序接受I / O请求,并将它传输给特定的设备。主机I / O控制器的作用是:正确地寻址每个设备并正确而完整地传输I / O请求命令和数据。
主机I / O控制器也能像卷管理器一样用于设备的创建。在这种情况下,它接收来自设备驱动程序的I / O请求,并为它与之交互的各种实际设备重新排序该I / O请求。从这个意义上说,主机I / O控制器为卷管理提供了一个附加层。分解卷管理功能是网络存储I / O的重要概念。对于单一的存储子系统,可能存在许多不同的虚拟化层次。图3 - 8显示了主机I / O控制器接收单个的I / O请求,然后,将它分解为两个I / O请求发送给设备。磁盘镜像就属于这种情况。
5. 存储I / O总线
在主机I / O控制器的另一侧是存储I / O总线,它类似于同轴电缆以太总线网络。在主机I / O控制器上有一块电路,存储I / O总线就是利用它来维护它的时钟和发送管理能力的。术语“菊花链”通常用来描述存储I / O总线的物理连接。这对总线的物理特性的理解很有帮助,但对总线功能的理解却帮助不大。在功能理解方面,以太总线网络可能是一个更好的模型。
I / O请求被直接地发送到每个设备,而不必从一个设备到另一个设备地传送。换言之,在转发包到下一个地址时,其他设备将不查看该包,因而不会引起延时。在以太总线网络和大部分存储I / O总线之间存在着如下三个重要的差别:
•以太碰撞检测协议很少使用。
•在以太网络中,所有的系统具有同等的访问权和控制权,而存储I / O总线赋予了优先权策略,它决定了对总线的控制。通常,单个的控制器发起和控制所有的活动。
•在存储I / O总线上,允许更长的有效数据负载及更快的大块数据传输。
在许多基于P C的系统中,存储I / O总线由单一的主机I / O控制器管理。图3 - 9显示了连接两个存储设备到单一主机控制器上的存储I / O总线的实例。
由于消除了总线访问的争用和使用了更长的数据传输,因而可以获得极高的总线使用率。据估算,I / O总线的使用率大约在可用总线带宽的8 0 %~9 5 %,相反,在大多数情况下,顶峰状态时的以太总线的使用率大约仅达到3 0 %。
在后面章节中我们将看到,对于存储网络技术和拓扑,单个主控制器的概念也不总是合适。