减少Ubuntu中的坏块重试/等待时间


10

如何减少IO等待时间和重试时间,以使OS不会连续尝试写入发生故障的驱动器?

我有一个用于制作演示内容副本的系统,该演示内容借给客户使用常规SATA台式机硬盘驱动器。我们通过SAS一次连接许多驱动器,并使用脚本将内容复制到它们。

由于驱动器是借出的,有时有些驱动器会损坏,但我不知道它们已损坏,因此下次在复制操作中重新使用该驱动器时,它会减慢其他驱动器的速度,因为系统将IO重试到该驱动器。有时可能要花几个小时才能发现并损坏驱动器。卸下驱动器后,其余驱动器将以正常速度开始写入。

我不在乎恢复损坏的驱动器。我只需要清除它们,以免它们拖慢其他一切的速度。

我也在研究badblocks和smartmontools,并考虑在开始编写之前在驱动器上编写预检查。

操作系统:Ubuntu Linux(12.04 lts)


通过udisks/ 检查SMART数据有什么问题smartmonctl?方法是一种典型的XY问题。
迪尔·亨特

2
谢谢,我将进一步研究smartmonctl。以我的经验,如果坏扇区是在上次装运期间发生的,则SMART状态表明该驱动器仍然良好,并且在复制过程中直到出现随机的一部分为止,它的性能都很好,然后减慢了爬行速度,也影响了其他驱动器,直到它被删除。
瑞安·索伦森2014年

这个问题还没有得到直接的答案,所以我们不知道在Linux中是否有可能:如何减少IO等待时间和重试时间?
imz –伊万·扎哈拉里谢夫(Ivan Zakharyaschev)

@ imz--IvanZakharyaschev unix.stackexchange.com/a/147304/25985但是,内核确实记录了这些错误,因此,如果您要做的只是在出现故障之前捕获故障磁盘,可以在以下位置扫描系统日志:定期间隔。
goldilocks 2014年

@gol如果我想更快地捕获它怎么办?不等上帝就知道IO操作取消报告错误之前需要多少时间?(实际上,我试图从磁盘上保存有错误的数据,但是我的问题是类似的:进入这些“错误”扇区会导致巨大的延迟。...也许我也可以遵循建议,并发明一种方法将信息从SMART测试提供给,ddrescue以便它甚至都不会触及SMART报告的部门。)
imz – Ivan Zakharyaschev

Answers:


7

我以前没有使用过此可调参数,但您可能想为相关驱动器调整eh_timeout(错误处理超时):

[root@localhost device]# cat /sys/block/sda/device/eh_timeout
10
[root@localhost device]# 

上面的显示sda设置为10秒。从红帽知识库:

在某些存储配置中(例如,具有多个LUN的配置),SCSI错误处理代码可能会花费大量时间向无响应的存储设备发出命令“ TEST UNIT READY”。新的sysfs参数eh_timeout已添加到SCSI设备对象,该参数允许配置SCSI错误处理代码使用的TEST UNIT READY和REQUEST SENSE命令的超时值。这减少了检查这些无响应设备所花费的时间。eh_timeout的默认值为10秒,这是添加此功能之前使用的超时值。


我正在检查这个。Ubuntu没有eh_timeout,但是有一个超时文件,可能是同一回事。Ubuntu的默认值似乎是30秒。会将其减少到5秒并报告。
瑞安·索伦森2014年

1
出于好奇,您的结果是什么?
布拉奇利2014年

将超时标志设置为12.04似乎没有任何作用。我计划在本周末将测试系统升级到14.04,因为它确实具有eh_timeout(并且还有超时)。
Ryan Sorensen 2014年

@RyanSorensen,您是否有机会查看此参数是否有效?
纳特

我无法进行修改,eh_timeout但可以进行更改timeout以完成手头的任务。
GuitarPicker

2

监视/sys/block/<dev>/stat您感兴趣的设备并比较第十个参数(io_ticks)。

例如, ticks = io_ticks - prev_ticks / seconds_deltatime / 10

这是磁盘等待磁盘io花费的可用时间百分比。

接近100%当然值得检查,否则会变得非常聪明,将其与所有磁盘的平均值进行比较,然后选择高于平均值的任何磁盘。

请参阅块层统计信息文档

否则使用诸如Munin之类的图形进行绘制。如果Munin超过阈值(例如90%)或您的图形显示的是一个很好的警报值,则可以使Munin发出警报。

例如,请参见显示/ dev / sdi需要查看的这两个Munin图。在此示例中,如果/ dev / sdi是数组的一部分,则整个数组将因此而遭受损失。

每个设备的磁盘利用率-按天

每台设备的磁盘利用率-按周

如果查看周图,您会发现/ dev / sdc可能也很慢。

我应该补充一点,上面的/ dev / sdi没有损坏,它只是一个慢速磁盘(实际上是有人将其添加到企业级sata磁盘阵列中的绿色磁盘),从而降低了阵列速度。实际的故障磁盘会像拇指酸痛一样伸出来。

总而言之,如果有时间的话,我可能会选择一个脚本,但是如果我只是想要一个快速的解决方案并且连接服务器很简单,那么Munin可能会这样做。


谢谢!Linux中有关io统计信息的信息确实很新,并且在这种情况下(对我而言)似乎很有用。
imz-伊万·扎哈拉里舍夫(Ivan Zakharyaschev)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.