被遗忘的SAS君

        随着固态介质普及,出现了越来越多的接口类型,具体可参考 【冬瓜哥画PPT】最完整的存储系统接口/协议/连接方式总结 这篇文章。

  消费级市场上的SATA SSD雨后春笋遍地开花,企业级多数场景也是大量采用SATA SSD,但是随着生态的成熟,PCIE/U.2 接口的SSD的份额正在加速上升,越来越多的服务器厂商推出了支持U.2接口的背板;同时越来越多的国内固态存储厂商推出了自己的NVMe U.2接口SSD。鉴于SATA固态盘和NVMe固态盘吸引了绝大多数的市场注意力,SAS便有了点躺枪的感觉。其实,目前主流的场景依然是SAS场景。

 

企业级SATA固态盘的普及少不了SASHBA

企业级SATA固态盘其实还是先被连接到SAS HBA上从而接入到系统中的,SAS主控或者Expander上的每个接口前端都有SAS2SATA的转换电路,如果是连接的是SATA盘,则这个电路便会被使能,进行底层链路层和物理层的转换。

Intel在其CPU内部集成了越来越多的SATA接口,但是其性能和扩展性是赶不上独立SAS HBA的。Intel一度把SAS接口也集成了进去,但是实际发现接口在稳定性方面出现了问题,而在后面的一代CPU中取消了对SAS的支持。

 

企业级SAS机械盘/固态盘仍不可小觑

大家都在说存储,殊不知更多场景下企业级服务器基本都是采用Raid卡+直连盘的方式来充当“存储”的。多数场景下本地Raid的性能可以满足多数需求,此时使用可靠性和性能更好的SAS盘几乎是唯一选择。尤其是在固态介质普及之后,外置大型存储的必要性在很多场景下就消失了,采用Raid卡+SATA/SAS SSD完全可以满足需求,同时降低成本。

 

传统存储系统必须用SAS接入多控制器

再看看传统SAN/NAS存储系统,其均采用了双控或者多控并发及冗余架构。多个控制器必须可以同时访问同一块盘,而SATA是不支持这种方式的,从物理接口上讲,SATA只有一个物理接口,从传输层协议上讲,SATA并不支持多个initiator端同时连接到一个target端。而能原生做到这一点的,还得用SAS。

传统存储系统不支持SATA盘的原因就在这里,有些厂商使用SATA盘加上一个SATA2SAS的转接板来解决问题,有的则使用Nearline SAS盘。多数时候还是采用性能可靠性更高的原生SAS盘。

可以说,当前传统存储系统后端的根基就是SAS。

 

新兴概念的存储系统更离不开SAS

       再来看看新兴网红们,比如分布式、ServerSAN、超融合、软件定义存储。哎尼玛呦的,冬瓜哥写到这里怎么感觉上面这四个词其实是一回事呢?就是分布式,都乱了套了。分布式可以等同于软件定义存储(是否?),Server SAN可以等同于分布式(是否?),乱。

       这些概念下的存储,也都离不开SAS。其在硬件上的本质就是DAS,用SAS Raid卡或者HBA卡,接入十几块本地SATA/SAS硬盘,形成一个node,再用分布式软件管理层虚拟成一个存储池,上面加上应用成为超融合、一体机之类。这些网红开发者们,其实并不是在做硬件,而是在做软件,基于开源软件,也就是所谓软件定义,他们并不太多关心系统的底层架构。

       然而,有一家叫做SurFS书生云(http://www.surcloud.com/)的初创公司,其并没有像多数其他初创那样采用标准服务器+本地盘方式搭建分布式存储,而是对底层硬件架构做了充分的功课,竟然在SAS上玩出了花样。在如今大量的所谓“软件定义存储“在市场上叫嚣的大环境下,SurFS书生云在底层架构方面能够静下心来研究和尝试不得不让冬瓜哥佩服。

       看一下SurFS的基本架构,它的本质上仍然是一个分布式文件系统,但是它的每个节点从后端获取存储资源的方式,却很不同,每个节点并不用固定盘位配置的本地盘,而是利用从SAS交换机后挂的JBOD中获取任意数量的硬盘,充分做到了随用随取的灵活性。

被遗忘的SAS君
        
另外,当某个节点故障之后,传统的分布式架构之下,该节点下挂的所有硬盘将无法再被访问到。而在SurFS这套架构中,存储控制节点自身宕机并不影响数据的访问,此时可以将原来被该节点掌管的硬盘资源动态重新分配给其他节点,从而继续提供服务。这相当于快速HA切换。

        SAS的一个x4宽端口具有48Gb/s的惊人速率,再加上SAS HBA并非向以太网卡那样会将所有的裸帧都传递到内核TCPIP协议栈来继续耗费CPU资源处理后续传输层的工作,SAS HBA传递到内核的数据已经是最终的Payload数据,对主机端CPU只有中断处理上的耗费,并没有传输层处理方面的耗费。相比TCPIP具有很强的时延上的优势。

被遗忘的SAS君
    利用这种架构的天然优势,可以将同一块/批盘同时分配给多个节点同时访问,如果节点之间做好沟通协调的话,那么就可以实现共享存储型集群,这样可以天然支持Oracle RAC这类共享存储型应用集群的部署,数据无需跨前端高时延网络传递,直接利用后端低时延SAS网络一条直达,无需数据拷贝过程。

    其次,在云平台环境下,当服务器出现故障之后,利用SAS后端共享架构,可以非常容易的将该服务器之前所挂载的硬盘动态分配到其他机器从而实现VM快速在其他节点上重启,

另外,SurFS还可以做到二次扩展,将多个子分布式集群整合成一个大集群。

被遗忘的SAS君

前端访问协议方面,SurFS同时支持块、文件(NFS/CIFS)、对象三种访问协议。提供OpenStack Cinder驱动集成。

在后续规划上,除了继续优化软件性能和销量之外,SurFS还在大力尝试利用PCIE Switch相关的前沿技术,实现NVMe固态盘以及其他PCIE设备的后端存储池化架构。冬瓜哥认为SurFS对业界新技术的研究和尝试充分契合了其主页上的“有技术基因的公司”的宣传。


Scorpio机架存储资源池化SAS功不可没

       再来看看互联网后端基础架构领域。资源池化成了Scorpio机柜规范的长期愿景。但是该愿景的第一步——存储资源池化,就这么顺利的被SAS给实现了。如下图,浪潮SmartRack中的SAS交换机节点,可以实现多台主机灵活的识别到动态分配给它们各自的任意数量的SAS/SATA硬盘,而且是动态增删不停机。   被遗忘的SAS君


总之,SAS,可谓春蚕到死丝方尽,蜡炬成灰泪始干,俯首甘为孺子牛,润物细无声。纵观NVMe网红,其轻装上阵初出茅庐,所要走的路还有很长,有很多其实是在走SAS/SCSI体系的老路,比如双端口NVMe盘(应对多控同时连接)、NVMe over Fabric(重走SCSI over FC/SAS/IB/Ethernet的路)、JBOFenclosure service(重走SCSI Enclosure Service的路,或者干脆就利用现成的SES框架)。还是那句话,有时候,年轻人应该尊重一下老炮们,毕竟,老炮们吃过的盐可能比你喝过的水都多,事物轮回,老炮只是身子骨和记忆力的确不好使了,但是脑子的逻辑性和积累还是放在那的,闪闪发光。


我独自走过你身旁,并没有话要对你讲.我不敢抬头看着你的.噢脸庞.

你问我要去向何方,我指着大海的方向.你的惊奇像是给我,噢赞扬.

你问我要去向何方,我指着大海的方向.你问我要去向何方,我指着大海的方向.

你带我走进你的花房,我无法逃脱花的迷香.我不知不觉忘记了,噢方向.

你说我世上最坚强,我说你世上最善良.你不知不觉已和花儿,噢一样.

你要我留在这地方,你要我和它们一样.我看着你默默地说,噢不能这样.

我想要回到老地方,我想要走在老路上.这时我才知离不开你,噢姑娘.

我就要回到老地方,我就要走在老路上.我明知我已离不开你,噢姑娘.


被遗忘的SAS君