天天看点

HBA详解(原创)

hba概述 

主机总线适配器(host bus adapter,hba)是一个在服务器和存储装置 间提供输入/输出(i/o)处理和物理连接的电路板和/或集成电路适配器。因为hba减轻了主处理器在数据存储和检索任务的负担,它能够提高服务器的性能。一个hba和与之相连的磁盘子系统有时一起被称作一个磁盘通道。

hba的常规定义:就是连接主机i/o总线和计算机内存系统的i/o适配器。按照这个定义,像显卡就是连接视频总线和内存,网卡就是连接网络 总线和内存,scsi-fc卡就是连接scsi或者fc总线和内存的,它们都应该算是hba。hba卡有fc-hba和iscsi hba将来还有其他hba卡,但是,hba通常用在scsi。adapter(适配器)和nic用于fc;而nic也会用于以太网和令牌环网。

我们知道,一台计算机内部多半由两条总线串在起来(当然实际情况会有不同,这里只讨论常见的,简单的情况),一条总线叫系统总线,一条叫i/o总线。系统总线上接了cpu,memory,cache什么的,i/o总线上接的就是外围设备,现如今最常见的就是pci总线了。这两条总线之间用桥接的芯片或者说电路连接起来。举个形象的例子,就好比一个城市里,有两条主干道,一条属于行政区,一条属于商业区,中间有个环岛,将两条主干道连接到了一起,系统总线就好比行政区里的主干道,而i/o总线就好比商业区的主干道。系统总线和i/o总线的带宽的单位都是以gbyte来记,但是显而易见的是,行政区的主干道和商业区的主干道相比的话,前者肯定更“核心”,更宽,更顺畅,设计的要求也高。

我们知道,在向公仆部门要求服务的时候,是要有一些接口的部门和程序的,而桥接芯片的作用就是连接和协调两条总线的工作的。

虽然i/o总线的速度和系统总线的带宽相比要低很多,但是好歹也是以g来计量的,而我们知道外围设备的速度,往往只有几百兆,甚至几十k而已,怎么协调工作呢?好比卖煎饼果子摊子不能直接戳到城市主干道上,怎么办?好办,在主干道边上开个2000平米的小吃城,把摊子都收进去好了。那么主机总线适配器的作用也就是这个,我们就是要把外设组织起来,连接到i/o总线上去!hba就是指host和i/o bus直接的一个适配器,也好比一个水管工常说的“双通”。 而hba的作用就是实现内部通道协议pci或sbus和光纤通道协议之间的转换。

hba的重要性

在早期的san存储系统中,服务器与交换机的数据传输是通过光纤进行的,因为服务器是把scsi指令传输到存储设备上,不能走普通lan网的ip协议,所以需要使用fc传输,因此这种san就叫fc-san,而后期出现了用ip协议封装的san,可以完全走普通lan网络,因此叫做ip-san,其中最典型的就是现在热门的iscsi。

这两种方式都需要对数据块进行繁重的读包解包操作,因此高性能的san系统是需要在服务器上安装一块专门负责解包工作以减轻处理器负担的网卡,这种网卡大家就叫它hba卡,它除了执行解包工作外当然还可以提供一个光纤接口(如果是iscsi hba卡就是提供普通的rj45接口)以用于跟对应的交换机连接;另外,hba物理上你可以把它当作网卡一样插在pci或者pci-e槽位里,因此这种设备的用法非常像一张网卡,很多人也就把它跟普通网卡或普通的光纤网卡混淆了。当然,有的iscsi hba卡就可以当作普通网卡来用,不过从价格上考虑这是非常奢侈的。 

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的编码解码等。

光纤网卡和hba的关系 

因传输协议的不同的,网卡可分为三种,一是以太网卡,二是fc网卡,三是iscsi网卡。

以太网卡:学名ethernet adapter,传输协议为ip协议,一般通过光纤线缆或双绞线与以太网交换机连接。接口类型分为光口和电口。光口一般都是通过光纤线缆来进行数据传输,接口模块一般为sfp(传输率2gb/s)和gbic(1gb/s),对应的接口为sc、st和lc。电口目前常用接口类型为rj45,用来与双绞线连接,也有与同轴电缆连接的接口,不过现在已经用的比较少了。

fc网卡:一般也叫光纤网卡,学名fibre channel hba。传输协议为光纤通道协议,一般通过光纤线缆与光纤通道交换机连接。接口类型分为光口和电口。光口一般都是通过光纤线缆来进行数据传输,接口模块一般为sfp(传输率2gb/s)和gbic(1gb/s),对应的接口为sc和lc。电口的接口类型一般为db9针或hssdc。

iscsi网卡:学名iscsi hba,传输iscsi协议,接口类型与以太网卡相同。

大家说的“光纤网卡”一般是指fc hba卡,插在服务器上,外接存储用的光纤交换机;而光口的以太网卡一般都叫做“光纤以太网卡”,也是插在服务器上,不过它外接的是带光口的以太网交换机。

下表对这些网卡进行了总结

网卡名称

对应关系

fc-hba(光纤网卡)

hba卡

iscsi-hba卡

rj45接口

以太网卡

光纤接口的以太网卡(光纤以太网卡

参考至:http://www.it.com.cn/f/server/063/6/241650.htm

             http://baike.baidu.com/view/88016.htm

             http://blog.csdn.net/wyzxg/article/details/3278370

本文原创,转载请注明出处、作者

如有错误,欢迎指正

邮箱:[email protected]

作者:czmmiao 原文地址:http://czmmiao.iteye.com/blog/1162210