分类: 服务器与存储
2011-02-12 10:40:34
最简单的SAS配置图,即一个服务器通过HBA卡连接若干硬盘。当主机想和某个硬盘进行数据通信时,必须先建立connection。这个过程有点类似SCSI的仲裁机制。若硬盘想和主机进行数据通信,也是一样的。
expander一般都是含多PHY的交换芯片,而edge expander则是专门用来连接硬盘设备的。
这种连接方式的工作效率非常低,因为host同一时刻只能连接一个硬盘设备。
edge expander设备内部存储的SAS地址不能超过128个,不论是单个edge还是edge组合。
这些地址包括以下几种类型:
1、 终端设备,如硬盘或主机
2、 edge expander
3、 expander设备内部的SAS设备
4、 expander设备内部包含的STP/SATA bridges的STP target port。
而且各expander之间必须以树状配置存在不能成环。类似于交换机,一旦成环,也会产生广播。
如果只有一个edge expander,则expander会知道该expander连接端口的所有SAS地址。当expander收到发向该端口的OPEN地址帧,则会直接转发。也就是说在edge expander内部,是直接路由。但是当跨edge expander时,就无法知道其它expander的port地址了。有两个方法可解决该问题:
1、 edge expander会简单的将所有未知的目的请求发送至designated port,这称为subtractive routing。designated port是连接其它edge expander的端口。
2、 edge expander会维护一张路由表,记录SAS地址和端口的关系,该表必须足够大以记录所有地址,否则会overflow溢出,但是最多也只能记录128个SAS地址。就如同交换机一样,也会维护一张MAC地址和port的表。
需要注意的是,这里都是提到port地址,而不是PHY地址。如下图expander B/C可用subtractive routing方式将未知的目的地址转发出去,但是A就不行了,因为它不知道该向B还是该向C转发。此时A就该应用上述方法2了。
3.1.3 boundary
多个edge expander是如何形成树的,或者挑选root的原则是什么?这很像网络中的STP协议。
1、 连接到fanout expander
2、 稀里糊涂的…….不知道讲什么
以图说明问题
一个SAS域只能有一个fanout expander,它可以连接128个edge expander或SAS port。此时,fanout expander利用路由表将报文转发至edge expander,而edge expander则利用subtractive routing来转发报文到fanout expander。若fanout expander有连接edge devices(如host主机上的HBA卡),则内部直接路由,因为一个port就对应单一设备。fanout expander说白了就是牛逼的SAS交换机。除此之外的其它expander,如JBOD,都是edge expander。
含有多个PHY的口,这些PHY在电气上是完全独立的,只是将多个PHY封装在一个port里面。SAS port可选择哪个PHY进行通信。毫无疑问,wide port的带宽、并发性操作以及容错机制,得到了完全的释放。
串葫芦的磁盘柜。需要注意JBOD柜子不是无限级联的,约束条件就是expander只能容纳128个SAS地址。
考虑到WIDE PORT的优势,以及SAS硬盘2PHY的作用,可以充分考虑冗余特性,如下图
chinaunix网友2011-03-06 17:43:15
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com