现在2T以上的磁盘其物理扇区基本上是4K大小的,在linux下要得到磁盘的物理扇区大小有如下几种方式:
1.使用hdparm 工具,hdparm -I 直接查看磁盘原始提供的物理和逻辑扇区大小。
2.对于ata 设备通过ioctl 向磁盘发送 HDIO_GET_IDENTITY 命令获知。
3.blockdev –getss xxx , xxx为设备名。
4. 通过 /sys/dev 下的信息获知。
5.通过 ioctl 向磁盘发送BLKSSZGET请求获知。
其中方法1 和 方法2是可以准确获取磁盘物理扇区大小的,由于现在的4K扇区的磁盘一般支持512Bytes的直接读取和写入,也即其在4K物理扇区上模拟了
512Bytes的概念。不过这种非对齐方式的写入一般是由”先读—再写”两个操作组成,这样不能发挥4K物理扇区磁盘的最大性能。