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 大小信息,允许存储管理工具(parted 、 lvm、mkfs. * 等)优化数据放置和访问。如果传统设备不导出 I/O 校准和大小数据,则红帽企业 Linux 7 中的存储管理工具将在 4k(或更大的 2 个)边界上对 I/O 进行匹配。这可以确保 4k 扇区设备正确运行,即使它们没有指出任何需要/首选 I/O 校准和大小。
有关确定操作系统从该设备获得的信息的详情请参考 第 23.2 节 “用户空间访问”。存储管理工具随后将使用此数据来确定数据放置。
红帽企业 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 字节 logic_block_size。这种差异可能会导致 I/O 不正确。为解决这一问题,Red Hat Enterprise Linux 7 I/O 堆栈将尝试通过确保块设备的开头与底层物理匹配相偏差时,在自然的边界(物理块_size)上启动所有数据区域。
存储供应商还可以提供有关设备随机 I/O(minimum_io_size)和流传输 I/O(best_io_size)的首选最小单元的 I/O 提示。例如: minimum_io_size 和 best_io_size 分别对应于 RAID 设备的块大小和条带大小。