SAS (Serial Attached SCSI) 技术详解

2023-05-16

(一)什么是SAS SAS(Serial Attached SCSI)即串行SCSI技术,是一种磁盘连接技术,它综合了并行SCSI和串行连接技术(如FC、SSA、IEEE1394等)的优势,以串行通讯协议为协议基础架构,采用SCSI-3扩展指令集,并兼容SATA设备,是多层次的存储设备连接协议栈。 说到SAS,自然会联想到在存储上广泛使用的另外一种磁盘通道连接技术:FC(光纤通道),这里将2种磁盘通道连接技术做一个简单的对比。 FC 优点:基于Fabric Channel环路协

       (一)什么是SAS

      
SAS(Serial Attached SCSI)即串行SCSI技术,是一种磁盘连接技术,它综合了并行SCSI和串行连接技术(如FC、SSA、IEEE1394等)的优势,以串行通讯协议为协议基础架构,采用SCSI-3扩展指令集,并兼容SATA设备,是多层次的存储设备连接协议栈。

       说到SAS,自然会联想到在存储上广泛使用的另外一种磁盘通道连接技术:FC(光纤通道),这里将2种磁盘通道连接技术做一个简单的对比。

       FC

      

 
优点:基于Fabric Channel环路协议基础上的串行技术,通过给后端磁盘提供带宽2.0Gbit/s或者4.0Gbit/s的FC环路来进行磁盘的连接;FC线缆的连接距离远,比较容易扩展,是目前广泛采用的磁盘通道连接技术之一。

       缺点:FC接口速率虽然能到2.0Gbit/s或者4.0Gbit/s,但由于FC磁盘通道工作于环路模式下,一个光纤环路在同一时间只能实现单个磁盘的I\O,导致FC带宽不能被充分利用,并且影响到磁盘并行访问的性能。

       SAS

      
优点:SAS具备目前磁盘通道技术里面的最高接口速率,通过采用通道合并技术,SAS支持将多个phy合入一个port,可提供高达几十G的通道带宽,比如常用的4*SAS宽端口,带宽可达12Gbit/s;SAS的交换构架支持多个设备的扩展,一个SAS域理论上最多可接16128个设备,同时SAS设备支持24×7的多线程设计,可满足多任务的应用;SAS设备基于目前存储领域最成熟的SCSI技术,可兼容SATA,这使得SAS通道技术具备广泛的适用范围和良好兼容性。

       缺点:由于与SAS通道技术配合的SAS磁盘价格偏高,目前主要应用于企业级场合。

       小结:SAS作为磁盘通道技术,在接口带宽、工作性能、可扩展性、组网应用、可靠性等方面,有着突出的优势,尤其适合应用于企业级系统。

       (二)SAS的交换构架

      
要了解SAS的构架,先弄清几个概念:

       SAS Phy:一个phy即是一个transceiver,每个phy都有一个SAS addresss,和一个唯一的identifier;
       SAS Port:一个port包含一个或一组phy,每个SAS PORT有一个唯一的SAS地址,同一个Port中的所有phy共用一个address,即一个port只有一个SAS address;
       SAS device:一个SAS device可以包括一个或多个SAS port,device里的每个phy有一个独立的identifier。

SAS device,SAS port,SAS phy关系示意图

                                                              图1 SAS device,SAS port,SAS phy关系示意图

       End device:是一种SAS device,SAS物理连接的末端设备,例如HBA卡、Disk driver都是end device;
       Expander device:包括Edge expander device和Fanout expander device Fanout expander device:起中心交换作用,既可以直接连接到end device,也可以连接到edge expander device; Edge expander device:一般用于连接fanout expander device和end device,也可以连接其它的edge expander device,一个edge expander set中只能包含128个SAS address。

SAS Expander拓扑构图

                                                                          图2 SAS Expander拓扑构图

       Domain:即整个SAS交换构架,由SAS device和SAS expander device组成,其中Device又区分为Initiator和Target,它们可以直接对接起来,也可以经过Expander进行连接,Expander起到通道交换或者端口扩展的作用,如下图所示:

SAS交换构架示意图

                                                                               图3 SAS交换构架示意图

       每一个SAS initiator port和SAS target port都有一个单独的SAS address,expander device也有自己单独的一个SAS address,SAS的交换比较简单,直接用port的SAS address作为交换路由表的内容,没有任何转换过程,一般的交换方法有如下三种:

交换方法情况表

       理论上,每个"Edge Expander Set"可以支持128个port,每个SAS Domain可以有128 个"Edge Expander Set",这样每个SAS Domain中最多可以有128 x 128 = 16384 个port。当然,这并不是说每个SAS Domain可以连接16384 个磁盘和SAS适配器,因为"Fanout Expander"与"Edge Expander"相连接时,会占用一部分port。如果128 个"Edge Expander"全部连接到"Fanout Expander",内部互联至少要占用256个port。也就是说,一个SAS域理论上可以连接16384 - 256 = 16128个SAS End Device。对比光纤环路126 个device的上限,16128 这个数字仍然是非常可观。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SAS (Serial Attached SCSI) 技术详解 的相关文章

  • 对 sas 数据集进行分区以进行批处理的最快方法是什么?

    我有一个大型 sas 数据集 1 5m obs 250 个变量 我需要将其拆分为几个大小相等的较小 sas 数据集以进行批处理 每个数据集需要包含所有变量 但仅包含一部分观测值 最快的方法是什么 您可以执行以下操作 macro splitd
  • 有没有办法让 SAS 在第一次警告或错误时停止?

    SAS 喜欢在出现警告和错误后继续处理 因此我经常需要向后滚动日志中的页面以查找问题 有没有更好的办法 我希望它在出现第一个错误或警告时立即停止 以便我可以修复它并重试 之前建议使用 ERRORS 1 选项 但这只会阻止错误消息写入日志 我
  • 何时在 SAS 中使用 IF 或 %IF

    我是 SAS 新手 很难弄清楚何时应使用简单的 If Then else 以及何时应使用 IF THEN ELSE 作为示例代码如下 let inFile scan sysparm 1 macro read data infile data
  • SAS:使用 PROC IMPORT 导入 .xlsx 时定义类型

    问题 使用 PROC IMPORT 时如何定义从 xlsx 文件导入的变量的变量类型 My work 我正在使用 SAS v9 4 据我所知 它是普通的 SAS 我没有 SAS ACCESS 等 我的数据如下所示 ID1 ID2 MONTH
  • SAS 错误消息(致命:在 MISSING 涂片生成期间检测到代码生成错误)

    有谁知道这个错误消息是什么意思 致命 在 MISSING smear 生成期间检测到代码生成错误 它是在连接大约 40 个数据集时发生的 我相信这可能是由于变量太多 大约 217 而达到了内存限制 但最好能得到这一点的确认 日志档案 301
  • SAS LOOP - 从具有值的记录创建列

    假设我有随机诊断代码 例如 001 v58 142 如何从记录中的代码构造列 Input id found code 1 1 001 2 0 v58 3 1 v58 4 1 003 5 0 v58 15000 0 v58 Output id
  • VBA - 打开Excel,查找和替换,删除行,另存为csv

    我正在尝试用VBA编写一个程序 以便我可以从SAS 一种统计编程软件 远程操作excel文件 我希望该程序能够完成以下任务 打开指定的excel文件 查找标题行中的所有空白并将其替换为空 例如 测试名称 变为 测试名称 如果行中的第一个单元
  • 使用SAS和mkdir在windows中创建目录结构

    我想在 Windows 中从 SAS 中创建目录结构 最好使用允许我指定 UNC 命名约定的方法 例如 computername downloads x y z 我在网上看到很多使用 DOS 的 SAS 示例mkdir通过调用命令 syse
  • Hadoop 与 SAS 的连接

    我想使用 SAS ACESS 9 3M2 接口将 SAS 与我的 Hive 连接 我的问题是 sas是否将hive立方体导入到sas环境中并在那里查询 或者 为了报告的目的 它再次访问 hive 以便它运行 MR 这将我的报告性能降低到 2
  • 拆分 SAS 数据集

    我有一个 SAS 数据集 如下所示 id dept 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 B 10 B 11 B 12 B 13 B 每个观察代表一个人 我想将数据集分成 团队 数据集 每个数据集最多可以有 3
  • 从 pandas 数据帧生成 sas7bdat 文件

    我想知道是否有任何Python库支持这种转换 目前我找到的选项是SASpy csv或SQL数据库 但不成功 这实际上不是一个编程问题 但希望这不会成为问题 我找到了这个帖子 将 pandas 数据框导出为 SAS sas7bdat 格式 h
  • SAS 我可以逆向进行 sas 过程观察吗

    我知道Sas在处理时从数据集顶部的观察开始 然后继续进行下一个直到到达底部观察 但是有没有一种简单的方法可以让sas首先处理底部观察 然后再处理到顶部 您可以使用nobs and point向后处理它 而无需执行任何中间步骤 这是一个例子
  • 在 Base SAS 中,如何自动刷新资源管理器?

    我相当确定这一定是困扰其他人的问题 因此必须有一个解决方案 我编写代码并想要快速检查数据集 但它不存在 我需要选择窗口 单击 查看 然后单击 刷新 是否有我可以使用的键盘快捷键或我可以编写的宏来为我做到这一点 我知道这很懒 但它让我烦恼 任
  • 使用 Teradata ODBC 与 Teradata 数据库的 SAS 连接

    我正在尝试连接到 SAS 中的 Teradata 我在机器上设置了 Teradata ODBC 目前我的假设是使用 ODBC 是我访问数据库的唯一方法 这是我的连接命令的语法 库名称 Teradata ODBC dsn dsnname ui
  • 如何根据 SAS Enterprise Guide / PROC SQL 中具有相同前缀的列中的值创建具有适当前缀的 2 个新列?

    我在 SAS Enterprise Guide 中有如下表 ID COUNT COL A COUNT COL B SUM COL A SUM COL B 111 10 10 320 120 222 15 80 500 500 333 1 5
  • 将 SAS 数据集中的观测值读入数组

    这个问题与大型机上的 SAS 相关 尽管我相信在这种情况下没有什么区别 我有以下 SAS 数据集 Obs DATO T ALLOC T FRESP 1 19328 647 1804 2 19359 654 1797 3 19390 662
  • 当我将 SAS 数据集导出到 csv 时;它正在修剪字符中的所有前导空格

    当我将 SAS 数据集导出到 csv 时 它正在修剪字符中的所有前导空格 请帮助我保留 csv 输出中的所有前导空格 使用的语句是 Proc Export Data Globl Mth Sumry OutFile GMUPath 20 Rp
  • XML 映射的 PATH 元素中的 POSITION() 函数在 XML 映射器中有效,但在 SAS 代码中无效

    我正在尝试将 xml 文件导入到 SAS Xml 文件是 Google 对地址请求的 地理响应 这是它的片段
  • 如何在SAS中删除重复的记录\观察而不进行排序?

    我想知道是否有办法取消重复记录WITHOUT排序 有时候 我想保留原来的顺序 只想删除重复的记录 是否可以 顺便说一句 以下是我对不重复记录的了解 它最终会进行排序 1 proc sql create table yourdata nodu
  • 删除 SAS 中的表

    什么是最高效的SAS中删除表的方法 我有一个循环并删除大量表的程序 想知道 PROC SQL 之间是否存在性能差异 和过程数据集 一次删除一张桌子 或者如果还有其他方法吗 如果外包给操作系统是合理的 那可能是最快的 否则 我的不科学观察似乎

随机推荐