硬盘读写特性
所属分类 architecture
浏览量 1393
A.SATA硬盘因为有机械部件,随机读写时会发生磁头的物理运动。主流硬盘的平均寻道时间在几毫秒到几十毫秒
B.SATA硬盘读写的最小单位是扇区,扇区的大小是512字节或者4KB
C.文件系统读写硬盘的最小单位也是扇区
D.SSD支持随机读写,但是一般读性能要好于写性能
E.SSD的随机读写延时要比SATA硬盘低两个数量级
F.SSD根据使用技术的不同,写的寿命是有限的,需要硬件进行写优化,确保存储单元的写次数基本同步增长
硬磁盘(Hard Disk,HD) 固态硬盘(Solid State Disk,SSD)
机械
盘面 磁头 传动臂 磁道
平均寻道时间 几毫秒 ~ 几十毫秒
早期内置的硬盘驱动器使用并行的IDE接口(PATA)与磁盘控制器相连,目前几乎所有内置硬盘驱动器都使用串行的SATA接口。
SATA硬盘因为有机械部件,随机读写时会发生磁头的物理运动。主流硬盘的平均寻道时间在几毫秒到几十毫秒
每个盘片上有很多磁道,它们构成一个个同心圆。每个磁道由若干个扇区(也称扇段)组成,每个扇区记录一个数据块,每个扇区有ID字段和数据字段组成。
ID字段用于保存数据所在的位置信息(磁道号、磁头号、扇区号);数据字段中存放真正的数据和相应的CRC信息。
早期磁盘的记录格式中,数据占512字节,最近几年的磁盘记录格式中,数据占4KB。因此,对于磁盘来说,最小的读写单位是扇区。
SATA硬盘读写的最小单位是扇区,扇区的大小是512字节或者4KB
文件系统读写硬盘的最小单位是扇区
文件系统以逻辑块(簇)大小为单位在磁盘上给文件分配空间,因而最小的读写单位是一个逻辑块。
一个逻辑块可以包含一个或多个扇区。大多数文件系统的逻辑块大小为多个扇区而不是一个扇区。
若逻辑块大小设定为一个扇区,则文件系统需要使用更多的磁盘空间存放索引信息,而且在文件读写时会发生频繁的寻道和旋转等待操作。
如果某文件系统的逻辑块大小就设定为一个扇区,这也是可以的,这种情况下,文件系统进行磁盘读写的最小单位就是一个扇区。
固态硬盘(SSD)是一种使用NAND闪存组成的外部存储系统。与硬盘一样,SSD通过标准的硬盘接口(SATA或USB)插槽连接到主机上,
其外部接口的行为和硬盘一样,处理的也是来自CPU的磁盘逻辑块的读写请求,文件系统以逻辑块为单位在SSD上为文件分配空间。
SSD中包含一个或多个闪存芯片和闪存翻译层(flashtranslation layer),其中的闪存芯片相当于硬盘驱动器,闪存翻译层相当于磁盘控制器,
用于把对逻辑块的请求转换成对底层闪存芯片的访问。因此,SSD也和硬盘一样支持随机读写。
由于闪存芯片中写的过程是先进行区块擦除(使一个区块中全都变成“1”状态),然后再在需要的地方改写为“0”,因此SSD的读性能要好于写性能。
顺序读比顺序写大致快一倍,而随机读比随机写大致快10倍。
SSD也可以通过标准的硬盘接口(SATA或USB)插槽连接到主机上,进行随机读写,
其随机读的访问时间(延时latency)大约为几十微秒,而随机写的访问时间大约为几百微秒。
硬盘由于需要寻道和旋转等待,所以其读和写的访问时间大约是几毫秒到几十毫秒,因此,SSD随机读写延时比硬盘要低两个数量级。
SSD中一个闪存芯片由若干个区块组成,每个区块由若干页组成,
通常,页大小为512B~4KB,每个区块由32~128个页组成,因而区块大小为16KB~512KB,数据可以按页为单位进行读写。
当需要写某页信息时,必须先对该页所在的区块进行擦除操作。一旦一个区块被擦除过,区块中的每一页就可以直接再写一次。
若某一区块进行了大约100 000次重复写之后,就会被磨损而变成坏的区块,不能再被使用。
因此,闪存翻译层中有一个专门的均化磨损(wear leveling)逻辑电路,试图将擦除操作平均分布在所有区块上,以最大限度地延长SSD的使用寿命。
由此可见,对于物理区块的写优化是由SSD中的硬件实现的,无需软件进行写优化。
上一篇
下一篇
GO的垃圾特性
springboot2网关zuul实例
三体精句摘录
linux configure --prefix 参数的作用
java日志打印建议
groovy与java的一些区别