当前位置: 首页 > news >正文

浅析SAS协议(1):基本介绍

文章目录

    • 概述
    • SAS协议发展历程
    • SAS技术特性
    • SAS设备拓扑
      • SAS phy
      • SAS地址
      • SAS设备类型
    • SAS协议分层
    • 参考链接

概述

SAS,全称Serial Attached SCSI,即串行连结SCSI,是一种采用了串行总线的高速互连技术。通过物理上使用串行总线连结,在链路上传输SCSI协议标准命令,SAS替代了早期的并行SCSI总线传输技术,相较于后者,SAS实现了更高的传输速率、更方便的连接以及更高的扩展性。当前,SAS在服务器以及存储阵列中广泛应用,主要用于连接硬盘和硬盘框。

SAS协议发展历程

SAS协议自2005年发布SAS 1.0版本后,先后又发布了2.0、3.0以及4.0版本,每个新发布的版本传输速率较于上一代都实现了翻倍。当前,市面上应用最广泛的主要是SAS 3.0(12G SAS),涉及的产品很多,其后的SAS 4.0版本也逐渐有厂商发布了对应的存储设备,后续会陆续应用到市场当中。

协议版本速率发布时间
SAS-13Gbps2005
SAS-26Gbps2009
SAS-312Gbps2013
SAS-424Gbps2019/2020

SAS技术特性

SAS支持以下技术特性:

  • 采用串行总线技术,可以实现更高带宽的硬件链路,目前应用最广泛的SAS 3.0版本,单条链路可以支持到12Gbps/s的速率;
  • 点对点的结构,可提供端点间固定的带宽,避免了共享总线带来的瓶颈效应;
  • 全双工的数据传输,SAS的物理链路包含了发送和接收两组差分信号线路,可以实现双边同时传输数据,提高数据的吞吐量;
  • 高扩展性:SAS协议支持使用Expander设备扩展连接SAS设备,最高可在一个SAS域内支持65535的设备数量;
  • 兼容性:SAS在链路协议以及接口上均实现了对SATA的兼容,支持接入SATA盘,并传输SATA数据帧。

SAS设备拓扑

SAS在实际应用场景中,主要用来接入硬盘以及硬盘框,如下图,是一个基础的SAS组网模型,其中,SAS主机适配器作为启动器,可以直连SAS或SATA设备;同时还接入了一个Expander设备,从而可以扩展更多的SAS设备。
在这里插入图片描述
SAS总线通过点对点的方式将两个设备连结到一起,连接点称为端口。每个SAS设备至少需要包含一个端口,对于SAS HBA和Expander设备通常会包含多个端口。一个SAS端口由一个或以上的Phy(对应于一条物理链路)组成,如果端口中仅有一个Phy,该端口被称为窄端口,如上图中x1端口;有包括多于一个的Phy,则称其为宽端口,如上图中x4宽端口。

在对SAS组网模型有了一个基础的认识后,我们再来看一下SAS设备拓扑相关的其它一些基本术语和概念。

SAS phy

SAS phy是一个逻辑概念,包含了一个收发器,可以在物理链路上实现发送或接收数据。当连接两个设备时,设备间的链路示意图如下:
在这里插入图片描述
可以看到,SAS的一条物理链路包含了两组差分信号对,分别用于发送和接收方向,并且允许同时在两个方向上进行传输,即全双工。

SAS地址

SAS地址是一个64位长度的标识符。对于设备中每个phy都配置了一个SAS地址,并且如果多个phy需要组成宽端口,需要配置相同的SAS地址。SAS协议规定,SAS地址应该使用NAA IEEE注册格式进行定义,如下:
在这里插入图片描述
如果SAS地址的所有字段全为0,则会被视为无效的标识。

SAS设备类型

SAS协议定义了两种类型的SAS设备:End Device和Expander Device,其中:

  • End Device:SAS协议定义不是Expander设备的设备都属于End Device,包括SAS主机适配器、SAS硬盘等。End device不具备转发能力;
  • Expander Device:可以提供设备扩展能力,允许系统接入更多的SAS设备。

SAS协议分层

SAS协议分为6个层次,从低到高依次是物理层、Phy层、链路层、端口层、传输层和应用层:
在这里插入图片描述
各个分层功能描述如下:

  • 物理层(physical layer):主要定义了SAS线缆和接口的规范,电气特性和SAS phy层中用于SAS收发器的测试条件;
  • Phy层(phy layer):负责传输上层协议的比特流,定义了编码方案、供电/复位序列等;
  • 链路层(link layer):定义了如何控制phy层连接管理。链路层根据所处理的协议不同还分为SSP链路层(串行SCSI协议链路层)、STP链路层(串行隧道协议链路层)、SMP链路层(串行管理协议链路层);
  • 端口层(port layer):描述的是链路层和传输层的接口,包括如何请求、中断、如何选择建立连接。SAS端口层可以通过相关的SAS链路层同接口中所有的phy进行通讯;
  • 传输层(transport layer):主要负责SAS帧的封装和分解。具体的来说传输层能从端口层接收SAS帧并且解析,然后将SAS帧内要传输的内容发送给应用层,反之依然。根据所处理的具体协议不同,传输层分为:SSP传输层(串行SCSI协议传输层)、STP传输层(串行隧道协议传输层)和SMP传输层(串行管理协议传输层);
  • 应用层(application layer):描述了如何在不同类型的应用下使用SAS的细节,它产生请求并且向相关的传输层发送请求(比如,SCSI应用层给SSP传输层发送请求,要求向一个SSP目标端口发送一条SCSI命令),并且从相关的传输层接收请求响应结果。

参考链接

  • 《SAS Protocol Layer》
  • 《SAS Storage Archteciture》

相关文章:

浅析SAS协议(1):基本介绍

文章目录概述SAS协议发展历程SAS技术特性SAS设备拓扑SAS phySAS地址SAS设备类型SAS协议分层参考链接概述 SAS,全称Serial Attached SCSI,即串行连结SCSI,是一种采用了串行总线的高速互连技术。通过物理上使用串行总线连结,在链路…...

93.【Vue-细刷-02】

Vue-02(十六)、基本列表渲染 (v-for)1.使用v-for遍历数组2.使用v-for遍历对象3.使用v-for遍历字符串(十七)、列表过滤 (filter())1.⭐JS中Change属性的原生状态⭐2.使用watch监听实现3.const {xxx} this 在Vue的作用⭐⭐4.JS箭头函数参数的简写⭐5.使用computed进行计算实现(最…...

Allegro负片层不显示反盘的原因和解决办法

Allegro负片层不显示反盘的原因和解决办法 在用Allegro做PCB设计的时候,负片设计是较为常用的一种方式,有时会出现打开负片层却看不到反盘的情况,如下图 L2层是负片层 L2层仍然只能看到盘 如何才能看到反盘显示的效果,具体操作如下 首先确定L2层层叠里面设置的是负片...

ACM数论 裴蜀定理(贝祖定理)

一.内容定义 「裴蜀定理」,又称贝祖定理(Bzouts lemma)。是一个关于最大公约数的定理。其内容定义为:对于不全为零的任意整数 a 和 b,记二者的最大公约数为 g 即 gcd(a,b) g,则对于任意整数 x 和 y 都一定…...

基础篇—CSS Position(定位)解析

CSS Position(定位) position 属性指定了元素的定位类型。 position 属性的五个值: relativefixedabsolutesticky元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非是先设定position属性。他们也有不同的工作方式,这取决于定位方法。 1、static…...

正则表达式与grep

基本正则表达式BRE集合 匹配字符匹配次数位置锚定 符号作用^尖角号,用于模式的最正常,如“^haha”,匹配以haha单词开头的行$美元符,用于模式的最右侧,如“haha$”,表示haha单词结尾的行^$组合符&#xff…...

开发必备的IDEA 插件!效率提升 50 倍!

日常开发中,面向百度编程的程序员,很多时候,你跟大佬级别的差距,可能不仅仅是知识面的差距,还有就是开发效率的差距。以下是我常用的几个IDEA插件,废话不多说,直接肝干货! 1. Codot…...

aws eks 集群访问ecr仓库拉取镜像的认证逻辑

本文主要讨论三个问题 ecr帮助程序在docker上如何配置eks集群访问ecr仓库的逻辑kubelet授权ecr的源码分析 ecr帮助程序 在docker环境下,可以通过在$HOME/.docker/config.json中指定凭证管理程序 docker login aws同样提供了证书助手,避免手动执行ecr认…...

Linux Socket Buffer介绍

一. 前言 Linux内核网络子系统的实现之所以灵活高效,主要是在于管理网络数据包的缓冲器-socket buffer设计得高效合理。在Linux网络子系统中,socket buffer是一个关键的数据结构,它代表一个数据包在内核中处理的整个生命周期。 二. Socket Bu…...

ACL与NAT

ACL---访问控制列表,是一种策略控制工具 功能:1.定义感兴趣流量(数据层面 ) 2.定义感兴趣路由(控制层面) ACL 条目表项组成: 编号规则:步数或者跳数默认值为5,…...

使用gdb来debug程序并查找Segmentation fault原因

GDB 调试前言GDB基础用法1.启动及退出调试2.设置参数3.执行程序4.流程控制5.设置断点6.输出信息7.查看栈帧8.info命令9.显示源码GDB调试coredump文件关注公众号【程序员DeRozan】,回复【1207】,免费获取计算机经典资料及现金红包 前言 在开发程序时&…...

vbs简单语法及简单案例

文章目录一、简单语法1、变量2、输入3、输出4、选择语句5、循环二、用记事本编译中文乱码问题三、制作一个简单vbs脚本表白一、简单语法 1、变量 语法: dim 变量名例: dim a,b a1 b2 msgbox ab运行: 2、输入 语法:InputBox(…...

学板绘课程学费一般多少钱

学板绘课程学费一般多少钱?培训机构的费用和师资、模式有关,价格贵不贵要结合相同类型的机构多多对比。因为好些平台做了很多的宣传广告,运营成本很高, 终羊毛出在羊身上,这样的机构知名度很高,但是性价比不…...

48.在ROS中实现local planner(1)- 实现一个可以用的模板

有了之前45.在ROS中实现global planner(1)- 实现一个可以用模板的global planner的经验, 现在再去创建一个local planner的包就容易多了 1. 创建包 创建 cd ~/pibot_ros/ros_ws/src # 这里可以使用自己的ros workspace catkin_create_pkg sample_loc…...

jenkins基础部署

一、jenkins是什么1.Jenkins的前身是Hudson,采用JAVA编写的持续集成开源工具。Hudson由Sun公司在2004年启动,第一个版本于2005年在java.net发布。2007年开始Hudson逐渐取代CruiseControl和其他的开源构建工具的江湖地位。在2008年的JavaOne大会上在开发者…...

Unity3D -知识点(1)

1.场景视图鼠标滚轮:场景放大缩小鼠标右键:场景左右平移场景编辑器中,能看到什么?网格,每一格大小为1unit,建模不同,规定不同,(对应屏幕上100个像素)世界坐标系y轴向上为正x轴向右为…...

【学习笔记】NOIP暴零赛3

博弈(game) 观察到博弈过程中胜负态不会发生改变&#xff0c;那么求出从每个棋子出发能走的最长链&#xff0c;然后背包即可。 复杂度O(nm)O(nm)O(nm)。 #include<bits/stdc.h> #define ll long long #define pb push_back using namespace std; const int mod9982443…...

Java JSR规范列表

Java JSR规范列表目录概述需求&#xff1a;设计思路实现思路分析1.JSR2.JSR方法3.web service4.Webservice:5.数据处理器拓展实现参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,m…...

Java必备小知识点1

Java程序类型: Applications和AppletApplications:是指在计算机操作系统中运行的程序。是完整的程序&#xff0c;能独立运行。被编译后&#xff0c;用普通的Java解释器就可以使其边解释边执行。必定含有一个main方法&#xff0c;程序执行时&#xff0c;首先寻找main方法&#x…...

JavaScript作用域、闭包

文章目录作用域、作用域链作用域作用域链循环中的作用域自由变量、闭包自由变量闭包的定义、表现、应用如何确定在闭包中获取正确的变量总结作用域、作用域链 作用域 编程语言中存储、访问、修改变量当中的值是一项基本能力、存储变量、访问变量必须按照一定的规则&#xff0…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解

文章目录 一、开启慢查询日志&#xff0c;定位耗时SQL1.1 查看慢查询日志是否开启1.2 临时开启慢查询日志1.3 永久开启慢查询日志1.4 分析慢查询日志 二、使用EXPLAIN分析SQL执行计划2.1 EXPLAIN的基本使用2.2 EXPLAIN分析案例2.3 根据EXPLAIN结果优化SQL 三、使用SHOW PROFILE…...

DeepSeek越强,Kimi越慌?

被DeepSeek吊打的Kimi&#xff0c;还有多少人在用&#xff1f; 去年&#xff0c;月之暗面创始人杨植麟别提有多风光了。90后清华学霸&#xff0c;国产大模型六小虎之一&#xff0c;手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水&#xff0c;单月光是投流就花费2个亿。 疯…...

路由基础-路由表

本篇将会向读者介绍路由的基本概念。 前言 在一个典型的数据通信网络中&#xff0c;往往存在多个不同的IP网段&#xff0c;数据在不同的IP网段之间交互是需要借助三层设备的&#xff0c;这些设备具备路由能力&#xff0c;能够实现数据的跨网段转发。 路由是数据通信网络中最基…...