首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Linux下SSD磁盘的默认512字节物理扇区大小合适吗?

Linux下SSD磁盘的默认512字节物理扇区大小合适吗?
EN

Ask Ubuntu用户
提问于 2019-05-19 16:04:39
回答 2查看 21K关注 0票数 16

GSmartControl和其他命令行工具(如fdisksmartctlcat /sys/block/sd*/queue/hw_sector_sizecat /sys/block/sd*/queue/physical_block_size)对我的两个磁盘都使用了相同的report:

代码语言:javascript
运行
复制
Sector Size: 512 bytes logical/physical

这是一个默认的Ubuntu18.10(后来升级到19.04)安装。但是,两个磁盘上的stat -f命令都报告:

代码语言:javascript
运行
复制
Block size: 4096       Fundamental block size: 4096

我的两个磁盘都是SSD,AFAIK SSD磁盘需要4K扇区大小。这样可以吗,还是我漏掉了什么?stat (= 4K )返回的信息是否确保操作系统总是以4K的倍数将IOs发送到磁盘,并且这些块永远不会跨越4K边界(IO块将始终与4K对齐)?

请注意以下输出(sdb2是我的根分区,sda是我的/home磁盘):

代码语言:javascript
运行
复制
# fdisk -l /dev/sd?
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: SanDisk SDSSDH35
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sdb: 238.5 GiB, 256060514304 bytes, 500118192 sectors
Disk model: ADATA SU800NS38 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: xxxx....

Device       Start       End   Sectors  Size Type
/dev/sdb1     2048   1050623   1048576  512M EFI System
/dev/sdb2  1050624 500117503 499066880  238G Linux filesystem

# df / /home
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sdb2      244568380  17799136 214276188   8% /
/dev/sda       479670976 129685112 325550152  29% /home
EN

回答 2

Ask Ubuntu用户

发布于 2019-05-19 17:28:05

在过去,512字节扇区是磁盘的标准。该系统过去一次只读/写扇区,这是旧硬盘所能做到的最好的。

现在,随着现代驱动器如此密集,如此快速,如此智能,读写扇区一次只有一个扇区确实减缓了总吞吐量。

诀窍是..。如何提高总吞吐量,但仍然保持与旧的/标准磁盘子系统的兼容性?创建一个由8个512字节物理扇区组成的4096块大小。4096现在是对磁盘的最小读写传输,但它是以兼容512字节的块传给操作系统的。

这意味着即使系统只需要一个512字节的信息扇区,驱动器也会读取8个512字节扇区来获取它。但是,如果系统需要接下来的七个扇区,它已经读取了它们,所以不需要发生磁盘I/O。因此,总吞吐量有了快速增长。

现代操作系统可以充分利用现代驱动器的原生4K块大小。

票数 10
EN

Ask Ubuntu用户

发布于 2019-05-21 06:05:52

Linux下SSD磁盘的默认512字节物理扇区大小合适吗?我的两个磁盘都是SSD,AFAIK SSD磁盘需要4K扇区大小。这样可以吗,还是我漏掉了什么?

旧的硬件和操作系统使用512个字节扇区,自2011年以来 (几乎)所有存储硬件都有4096 (或更大)字节扇区;但是一些硬件支持对遗留系统的512字节扇区进行仿真。有例外,三星840 EVO有块大小2048 KB

纠错码 ( ECC )是为每512个字节块计算的,正如您可以想象的那样,ECC数据也需要存储空间。不用说,如果ECC算法保持不变,一个4096字节扇区需要的ECC信息比8个512字节块所需的信息要少。最后,由于ECC数据开销减少,硬盘驱动器的总存储容量增加了。

从架构的角度来看,使用4K扇区是有意义的,因为其他关键人物(如x86内存页和许多文件系统集群)也采用了4KB大小。高级格式允许更健壮的ECC算法,这是重要的考虑到不断增加的能力。通过了解NAND闪存错误特性和工作负载行为,控制器采用了附加技术而不是纠错。

高级格式(AF)是用于在硬盘驱动器(HDD)中存储数据的任何磁盘扇区格式,每个扇区超过512、520或528字节,例如高级格式驱动器(AFD)的4096、4112、4160和4224字节(4KB)扇区。较大的扇区可以集成更强的纠错算法,以在较高的存储密度下保持数据完整性。

对于SCSI (SAS)磁盘,RAID块大小大于JBOD块大小,这是由于SCSI T10标准化数据完整性字段以及存储在每个块上的逻辑坏块检查和数据。SAS RAID适配器支持基于512字节数据或4K字节数据的磁盘块。512磁盘的RAID块大小为每个扇区528字节,4K磁盘的RAID块大小为每个扇区4224字节。

因为您正在写入内存,而不是旋转磁盘,所以物理扇区大小的影响小于确保分区与擦除块大小对齐。。即使如此,最好是拥有最新的软件和硬件,并使用4K扇区大小。

更大的行业规模是英特尔推荐的- "通过改变SSD物理扇区大小获得最佳性能“。

票数 4
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1144535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档