转载自http://www.bladechina.net/club/viewthread.php?tid=1474
HBA,即主机总线适配器英文“Host Bus Adapter”缩写。是一个使计算机在服务器和存储装置间提供输入/输出(I/O)处理和物理连接的电路板和/或集成电路适配器。 主机总线适配器(Host Bus Adapter,HBA)是一个在服务器和存储装置间提供输入/输出(I/O)处理和物理连接的电路板和/或集成电路适配器。因为HBA减轻了主处理器在数据存储和检索任务的负担,它能够提高服务器的性能。一个HBA和与之相连的磁盘子系统有时一起被称作一个磁盘通道。
我们知道 网卡 是用于连接计算机和计算机 网络 。网卡一般 插 在计算机大总线扩展槽上,卡上有连接计算机网络的 接口 。网卡物理上连接计算机内部总线,例如PCI,PCI-X,PCI-E,SUN的Sbus总线等,和计算机网络,例如 以太网 等。存储系统中也有类似的用于连接计算机内部总线和存储网络的 设备 。这种位于服务器上与存储网络连接的设备一般称为主机总线适配卡(Host Bus Adaptor)HBA。HBA是服务器内部的I/O通道与存储系统的I/O通道之间的物理连接。最常用的服务器内部I/O通道是PCI和Sbus,它们是连接服务器CPU和 外围设备 的通讯协议。存储系统的I/O通道实际上就是 光纤 通道。而HBA的作用就是实现内部通道协议PCI或Sbus和光纤通道协议之间的转换。HBA原理
常见的服务器和存储设备之间的数据通讯协议是IDE,SCSI和光纤通道。为了实现服务器和存储设备之间的通讯,通讯的两端都需要实现同样的通讯协议。存储设备上通常都有 控制器 ,控制器实现了一种或几种通讯协议,它可以实现IDE,SCSI或光纤通道等存储协议到物理存储设备的操作协议之间的转换。而服务器的通讯协议是由 扩展卡 或主板上的集成电路实现的,它负责实现服务器内总线协议和IDE,SCSI等存储协议的转换。例如PC机中,一般主板上都有IDE协议的 功能 ,IDE磁盘控制器上有IDE协议的功能。因此IDE磁盘可以连接到PC机的IDE连接线上。如果磁盘只支持SCSI协议,那么这种磁盘就不能直接与PC机连接。这时就需要在PC机扩展槽上插入一块SCSI卡,SCSI磁盘可以与卡连接。SCSI卡实现了PC总线到SCSI的转换。这种SCSI卡实现的功能就是主机总线适配卡的功能。如果磁盘只支持光纤通道协议,那么服务器上就需要支持光纤通道协议,因为光纤通道的高速特性一般服务器主板都不支持,需要专门的主机总线适配卡。服务器插入主机总线适配卡后,就可以与支持光纤通道的磁盘通过光纤通道连接了。
主机总线适配卡内部有一个小的中央处理器,一些内存作为数据缓存以及连接光纤通道和总线的连接器件等。这个小的中央处理器负责PCI和光纤通道两种协议的转换。它还有其他的一些功能,初始化与光纤通道网络连接的服务器端口,支持上层协议例如TCP/IP,SCSI等,8B/10B的编码解码等。
iSCSI 卡和iSCSI HBA卡区别:
区别在于:
1, iscsi hba卡, 卡的firmware带有iscsi 的initiator, 同时卡上有足够的CPU资源(有的是单独的处理器来负责, 而不是用网卡芯片来处理)来做TCP/IP以及ISCSI解包的工作, 而且在卡上有非常大的buffer来作为该卡的缓冲. 这个卡是可以物理上做到boot from iscsi的.(同样需要OS的support.
2, iscsi卡, 我姑且认为是用iscsi的网卡, 这种网卡的一个特点是a, 它是一个网卡, 使用网卡的芯片(intel, broadcom, maxwell), b, 卡上没有单独的buffer, 而是使用网卡芯片上少的可怜的cache, 一般32k-64k, 最多到128k,
这种网卡是用的是软件的iscsi initiator. 我所见到的有3种:
第一种, 网卡, 没有任何的TOE, 和TOE on iscsi. 这种网卡有的是主板集成, 有的是单独的. 属于最便宜的解决方案, 一般CPU的占用率在8-9%左右.
第二种, TOE的网卡. 支持TOE, 但不支持TOE on iscsi, 这种网卡不支持boot from iscsi.
第三种TOE on iscsi. 网卡firmware中带有iscsi initiator, 支持boot from iscsi.