Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第 23 章 存储 I/O 校准和大小

最近对 SCSI 和 ATA 标准的增强允许存储设备指明其首选的(在某些情况下需要的) I/O 校准I/O 大小。对于将物理扇区大小从 512 字节增加到 4k 字节的较新的磁盘驱动器,此信息特别有用。此信息可能对 RAID 设备有好处,其中块大小和条带大小可能会影响性能。
Linux I/O 堆栈已被改进,可处理供应商提供的 I/O 校准和 I/O 大小信息,允许存储管理工具(partedlvmmkfs. X 等)来优化数据放置和访问。如果传统设备没有导出 I/O 校准和大小数据,Red Hat Enterprise Linux 7 中的存储管理工具会更保守地在 4k (或更大 2 的指数 2)边界上校准 I/O。这可以确保 4k 扇区设备正确运行,即使它们没有指出任何需要/首选的 I/O 校准和大小。
有关确定操作系统从该设备中获取的信息,请参考 第 23.2 节 “用户空间访问”。存储管理工具随后将使用此数据来确定数据放置。
Red Hat Enterprise Linux 7 的 IO 调度程序已更改。默认的 IO 调度程序现在为 Deadline,但 SATA 驱动器除外。CFQ 是 SATA 驱动器的默认 IO 调度程序。为实现更快的存储,Deadline 优于 CFQ 的性能,在使用时可以提高性能,无需特殊调优。
如果默认值不适合某些磁盘(例如,SAS 轮转磁盘),则将 IO 调度程序更改为 CFQ。此实例将取决于工作负载。

23.1. 存储访问参数

操作系统使用以下信息来确定 I/O 校准和大小:
physical_block_size
设备可操作的最小内部单位
logical_block_size
用于外部定位设备上的位置
alignment_offset
Linux 块设备开始的字节数(分区/MD/LVM 设备)是底层物理校准的偏移量
minimum_io_size
设备用于随机 I/O 的首选最小单位
optimal_io_size
设备用于流 I/O 的首选单位
例如,某些 4K 扇区设备可以在内部使用 4K physical_block_size,但向 Linux 公开更精细的 512 字节 logical_block_size。这种差异可能会导致 I/O 不准。为解决这个问题,Red Hat Enterprise Linux 7 I/O 堆栈将尝试启动自然对齐边界(physical_block_size)上的所有数据区域,如果块设备的开头是底层物理校准的偏移量。
存储供应商还可以提供有关设备的随机 I/O (minimum_io_size)和流 I/O (optimal_io_size)的首选最小单元的 I/O 提示。例如: minimum_io_sizeoptimal_io_size 分别对应于 RAID 设备的块大小和条带大小。