SATA和SCSI linux区别

本文介绍Linux中SATA存储设备如何通过libata层映射到SCSI子系统上,并解释了SATA硬盘和CD/DVD驱动器的命名方式。同时,文中还概述了Scsi bus协议的三层结构及其在Linux中的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.大多数现代桌面系统都有存储设备(硬盘和CD/DVD驱动器),这些设备通常连接在Serial ATA总线上,而不是老旧的IDE(带状电缆)总线上。

在Linux中对SATA的支持是用一个叫作libata的层实现的,这个层则位于SCSI子系统之下。正因为如此,在SCSI驱动配置中可以找到SATA驱动。此外,你的存储设备也会被当作SCSI设备对待,这意味着你同样需要SCSI硬盘/光驱的支持特性。你的SATA硬盘会被叫做(例)/dev/sda而你的SATA上的CD/DVD驱动器则会以(例)/dev/sr0命名。

虽然,大多数此类驱动程序是为了SATA控制器而写的,但是,libata却不仅仅只是为了SATA标准而设计的。在不远的将来,所有常见的IDE驱动都将会被移植到libata上来;而现在的情况下,以上这个说法对IDE用户也是适用的。

代码 3.1: libata的配置选项

Device Drivers  --->
 SCSI device support  --->
  <*> SCSI device support
  <*>   SCSI disk support
  <*>   SCSI CDROM support

  SCSI low-level drivers  --->
   <*> Serial ATA (SATA) support
    在上面这些选项以下列出的选项中选出你自己的芯片组。

2.
Scsi bus的协议实际上很多设备都在用,它分了三层吧
以SCSI Disk为例,这三层共同构成了一个block device driver


High level  sd st sg(向用户空间导出的各种设备)
Mid level                   scsi_mod(SCSI协议的实现)
Low level                  这一层可以把接收到的SCSI命令转换成sata/usb的命令,当然如果是SCSI设备的话就可以直接发下去了

### SAS SATA 存储接口之间的差异 #### 接口设计 SAS (Serial Attached SCSI) 是一种用于连接计算机系统存储设备的高速串行通信协议,而 SATA (Serial ATA) 则是一种更常见的硬盘驱动器接口技术。SAS 设计之初就考虑到了服务器环境下的高可用性高性能需求[^1]。 #### 性能表现 - **带宽**:SAS 提供更高的传输速率,在最新版本中可以达到每秒数千兆比特的速度;相比之下,尽管现代 SATA 技术也有所提升,但在最大吞吐量上仍然低于 SAS。 - **延迟**:由于采用了优化的数据路径以及更低层次硬件抽象层的支持,SAS 能够实现较低的操作延时特性[^2]。 #### 可靠性与耐用度 - **错误恢复能力**:SAS 磁盘通常具备更强健的错误处理机制,这使得它们更适合于关键业务应用中的长时间稳定运行。 - **工作负载耐受力**:针对企业级应用场景设计的 SAS 驱动器能够承受更高强度的工作负荷,并且拥有更好的平均无故障时间(MTBF)。 #### 兼容性与扩展性 - **多路访问支持**:SAS 支持多个 initiator 同时发起请求给同一个 target 或者相反方向上的操作,这对于构建大规模分布式存储架构非常重要。 - **向后兼容**:值得注意的是,虽然两者都基于相同的物理层电气规格,但是 SAS 控制器可以直接管理 SATA 设备,反之则不行[^3]。 ```bash # 这里展示如何通过命令行查看 Linux 系统下磁盘类型(假设已安装 lsscsi 工具) lsscsi | grep -E "SAS|SAT" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值