A.16. 存储
存储测试涵盖的内容
目前系统中有许多不同类型的持久在线存储设备。STORAGE 测试旨在测试在 udev 数据库中报告 ID_TYPE "disk" 的任何内容。这包括 IDE、SCSI、SATA、SAS 和 SSD 驱动器、PCIe SSD 块存储设备以及 SD 介质、xD 介质、MemoryStick 和 MMC 卡。test plan 脚本读取通过 udev 数据库,并查找满足上述条件的存储设备。当找到设备时,它会记录设备及其父项,并将其与任何其他记录设备的父设备进行比较。它确实可以确保只有具有唯一父级的设备被测试。如果之前没有看到父设备,则设备将添加到测试计划中。这会加快测试速度,因为每个控制器只有一个设备将根据策略指南进行测试。
测试的作用
STORAGE 测试对唯一父项的所有存储设备执行以下操作:
-
该脚本通过分区表来查找不在 LVM 或软件 RAID 设备上的交换分区。如果找到,它将使用
swapoff
取消激活它,并将该空间用于测试。如果没有交换,系统仍然可以测试驱动器(如果没有分区)。请注意,交换设备必须处于活动状态,以便正常工作(测试会读取/proc/swaps
来查找交换分区),并且交换分区不得在任何类型的软件容器中(无 LVM 或软件 RAID),但硬件 RAID 可以正常工作。 - 该工具在设备上创建一个文件系统,无论是在空白驱动器上的交换分区中。
-
文件系统已挂载,而
fio
或dt
命令用于测试该设备。fio
或dt
命令是一个 I/O 测试程序,它是一个通用的测试工具,能够测试、读取和写入设备。多个测试模式会验证存储设备的功能。 - 在挂载的文件系统测试后,卸载文件系统,并针对块设备执行 dt 测试,忽略文件系统。dt 测试使用"直接"参数来处理这一点。
准备测试
您应该安装官方测试计划中列出的所有驱动器和存储控制器。对于多个存储选项,可以一次测试系统,也可以单独安装每个存储设备,并自行运行存储测试。您可以决定每个测试的测试和控制器数量。除任何其他分区之外,附加到系统的每个逻辑驱动器必须包含交换分区,或者完全为空。这是为测试提供创建文件系统并运行测试的位置。交换分区的使用将带来更快速的测试,因为设备留有空白。它们总会比驱动器上放置的交换分区要大得多。
如果测试 SD 介质卡,请使用您可以获得的最快卡。虽然类 4 SD 卡可能需要 8 小时或更长时间来运行测试,但类 10 或 UHS 1/2 卡可在 30 分钟或更短时间内完成测试运行。
当为官方测试计划选择存储设备时,审阅团队所运行的规则是"每个代码路径"的测试。我们认为,我们希望看到使用控制器可以使用的每个驱动程序运行的存储测试。同一控制器的多个驱动程序的场景通常涉及某些类型的 RAID 存储。在常规磁盘模式中,存储控制器通常使用一个驱动程序,在 RAID 模式中使用另一个驱动程序。有些驱动程序也会根据它们所在 RAID 模式使用。审阅团队将分析所有存储硬件,以确定需要用来满足所有测试要求的驱动程序。正因如此,您可以在官方测试计划中看到一次相同的存储设备。策略指南中提供了有关存储设备测试的完整信息。
执行测试
存储测试是非交互式的。运行以下命令,然后从显示的列表中选择适当的 STORAGE
测试名称。
rhcert-run
运行时间,裸机
在 2013-era workstation 系统中安装的 6Gb/s SATA 硬盘驱动器上,存储测试需要大约 22 分钟时间。在 2013-era workstation 系统中安装的 6Gb/s SATA 固态驱动器上需要大约 3 分钟的时间。所需的 可支持 测试将大约一分钟添加到整个运行时间。
其他资源
- 有关适当交换文件大小的更多信息,请参阅 红帽平台推荐的 swap 大小是什么?