1.1 磁盘存储的物理结构
为什么我们要了解磁盘存储结构,现在的HDD和SSD在Linux 上的显示,依旧是以一种原始结构展示出来。因此,我们依旧需要了解什么扇区/柱面/磁头/磁道等概念。
sudo fdisk -l # 比如查看基本的磁盘分区参数
Disk /dev/sda: 500 GiB, 536870912000 bytes, 1048576000 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
1.2 HDD物理结构
注意:SSD物理结构尽管完全不同,但是依旧保持了这种的表达形式。这就是为什么物理磁盘没有柱面等结构依旧有这样的表达。
机械结构主要包括:主轴马达/机械臂/磁头/碟片
磁道(track):同一个同心圆的扇区组成的圆
柱面(cylinder):一个磁盘里有多个碟片,所有的磁碟上的同一个同心圆磁道就组成了一个柱面。
1.2.1 实例解读
Disk /dev/sda: 500 GiB, 536870912000 bytes, 1048576000 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
GB吉比字节是数字信息的单位字节(B)的倍数。二进制前缀gibi(Gi)表示2的30次方,因此1 gibibyte等于1073741824 bytes = 1024 mebibyte(MiB)。吉比字节由符号GiB表示。
1048576000 sectors
:表示总共有1048576000 个扇区
Units: sectors of 1 * 512 = 512 bytes
表示每个扇区的大小单位,某些情况下展示cylinder 的大小(这是为了兼容性)
Sector size (logical/physical): 512 bytes / 512 bytes
物理扇区和逻辑扇区
逻辑扇区大小:这表示操作系统在阅读或写入数据时与之交互的扇区大小。
物理扇区大小:这表示磁盘本身物理扇区的实际大小。在这种情况下,它也被称为512字节。现代硬盘驱动器和SSD通常具有物理扇区空间。
如果这些值相同(逻辑扇区大小和物理扇区大小均为512字节),则表明磁盘使用一致的扇区大小
目前的扇区的大小是:512B,随着数据量的扩大有的是4KB的大小。
补充:设备的字节单位
fdisk 更多的输出结果,请直接参考的fdisk
的参考手册:https://man7.org/linux/man-pages/man8/fdisk.8.html
二、磁盘分区
为了适应高数据量4KB扇区的扇区。有了新的分区方式GPT模式。
- MBR分区(MS-DOS兼容模式)
- 新方式GPT模式
2.1 常见磁盘传输接口类型
2.1.1 接口概述
- SATA (主流接口,包括 SATA1.0/2.0/3.0)
- SAS(主流接口,高端设备口 1.0/2.0/3.0)
- IDE (淘汰)
- SCSI(淘汰)
- USB(USB盘)
- eSATA(SATA扩展)
- m.2(专为笔记本口)
2.1.2 SATA
SATA(Serial Advanced Technology Attachment)是一种用于连接计算机内部硬盘驱动器、固态硬盘以及光驱等存储设备的接口标准。它是一种串行数据传输接口,取代了早期的并行ATA(IDE)接口,为数据传输提供了更高的速度和性能。
固态硬盘(SSD)和机械硬盘(HDD)支持: SATA接口广泛用于连接各种类型的硬盘驱动器,包括传统的机械硬盘和更快速、耐用的固态硬盘。
总结,SATA作为主流接口,优点很多,发展很快包括:1.0/2.0/3.0/等。
个人电脑上一般会有接口
SAS是一种功能强大、用途广泛的存储接口,非常适合要求高性能、可扩展性和可靠性的苛刻应用。虽然其较高的成本和复杂性可能不适合所有情况,但它仍然是数据中心和其他数据为王的关键任务环境的首选。
一个个人电脑上并不配置此接口。SAS 发展到1.0/2.0/3.0 速度更快,当然也更加昂贵。
2.1.4 IDE 接口
IDE已经被SATA替代了,这里并不做讨论,因为一般也见不到了。
IDE(Integrated Drive Electronics)接口,也称为PATA(Parallel ATA),曾经是连接计算机主板和硬盘驱动器之间的标准接口。然而,随着技术的发展和性能需求的提升,IDE接口已经逐渐被更先进的接口标准所取代,特别是SATA和SAS接口。
在现代计算机中,IDE接口已经相对较少见,而SATA接口成为连接内部硬盘驱动器的主流标准。SATA接口具有更高的传输速度和更好的性能,同时支持热插拔和更紧凑的数据线,这些特性相比IDE接口更加优越。
另外,固态硬盘(SSD)的普及也加速了IDE接口的淘汰。大多数SSD采用SATA或更先进的接口标准(比如NVMe),因为这些接口能够更好地发挥固态硬盘的性能优势。
2.1.4 SCSI接口
在消费级市场和普通家用计算机中,SCSI接口已经相对较少见。SATA和SAS等接口标准更加普及,因为它们提供了更高的性价比和易用性。
SCSI接口有多种类型,包括并行SCSI(Parallel SCSI)和串行SCSI(Serial SCSI)。串行SCSI又被称为SAS(Serial Attached SCSI),它是SCSI的现代化版本,提供了更高的性能和可靠性。
2.1.5 USB
USB盘就是我们使用接口,这里不再赘述。
2.1.6 eSATA接口
eSATA是一种扩展SATA 接口,实际上就是外置式SATA II规范,是业界标准接口Serial ATA(SATA)的延伸,用来连接外部而不是内部SATA 设备。 简单的说就是通过eSATA 技术,让外部I/O 接口使用SATA2 功能。
eSATA它不牵涉到底层的复杂技术,只需要完善下接口部分而已,最终的应用形式显然是需要把硬盘配置在某种盒状装置内的,虽然SATA硬盘本身支持热插拔。业界对eSATA接口的描述就是,基于标准的SATA线缆和接口,连接处加装了金属弹片来保证物理连接的稳固性,而eSATA线缆能够插拔2000次,这也为eSATA抢班夺权创造了很好的条件。
随着USB 3.0和更高版本的普及,eSATA的使用减少,但对于需要更高速、更可靠的数据传输的场景,eSATA仍然是一种有用的外部存储连接接口。
尽管eSATA只是SATA接口的延伸,而且制造商并不需要对SATA的协议和处理芯片进行任何修改,但要确保将SATA安全地移到机箱外,并通过SATA-IO国际组织的审核,必然有许多地方需要加以改进。
M.2原名为NGFF接口,标准名称为PCI Express M.2 Specification。它是为超极本(Ultrabook)量身定做的新一代接口标准,以取代原来基于mini PCIe改良而来的mSATA固态硬盘。无论是更小巧的规格尺寸还是更高的传输性能M.2都远胜于mSATA。
M.2接口支持多种数据传输协议,如SATA、PCIe、USB、HSIC、UART、SMBus等。其中包括SATA(以传统的SATA III速度运行)和PCI Express(PCIe),其中PCIe x2和PCIe x4速度版本较为常见。
M.2 SATA接口 指的是M.2插槽上使用的SATA协议,用于连接SATA SSD。这意味着SSD通过M.2插槽使用SATA接口协议进行通信,这些SSD通常采用SATA III接口标准,传输速度受到SATA III的限制(理论上最高速度为6Gbps)。
2.2 传输接口总结
我们常见的接口有USB优盘/SATA接口(个人笔记本)/SAS 接口(高性能服务器配置)。其他接口基本被淘汰了。
2.3 协议
主流硬盘使用的协议主要包括AHCI、NVMe和SCSI。其中,AHCI是硬盘的主流协议,被广泛用于民用场合。
而NVMe协议则主要应用于超高性能和企业级硬盘场合。
AHCI(Advanced Host Controller Interface)是一种硬盘接口标准,它允许存储驱动程序启用高级串行ATA功能,如本机命令队列和热插拔。AHCI通过包含一个PCI BAR(基址寄存器),来实现原生SATA功能。由于AHCI统一接口的研发成功,使得支持串行ATA产品的开发工作大为简化。
具体来说,AHCI技术规范提供了一种通用的硬盘接口规范,该规范可以让SATA存储设备激活高级SATA功能,例如原生指令队列及热插拔。因此,AHCI协议实际上定义了如何传输SATA协议的数据。
三、参考
[1] https://man7.org/linux/man-pages/man8/fdisk.8.html
原创内容,禁止转载!
没有评论:
发表评论