什么是Linux SCSI命令超时,是否适用于软件raid?
我对SCSI超时的理解是任何读,写,刷新和其他命令都只有有限的时间来完成.如果超出,则中止命令并向上层报告错误.在等待命令完成时,任何取决于I / O的应用程序都将停止. 我的下一层是mdraid,Linux软件RAID.从我读到的内容来看,mdraid本身没有超时但依赖于较低层的超时命令. 对于内核3.2(Debian),默认的SCSI超时值为90秒. 遇到读取错误的硬盘将尽力在固件定义的时间范围内纠正错误.桌面驱动器的超时设置(通常是独立的,因此更正具有高优先级)和服务器驱动器(通常为RAID,因此很快报告坏扇区,让其他驱动器应答)的设置为低.有时它可以通过smartctl(SCTERC,TLER等)进行调整. 所以我想如果硬盘设置为高ERC超时,内核将在中止请求之前默认等待90秒.只有这样,mdraid才会将应用程序的请求重定向到另一个磁盘. 加载网页的时间为90秒. 假设默认SCSI超时用于桌面目的或非硬盘SCSI设备(磁带驱动器,磁带库可以想到),并且可以安全地调低,例如7秒用于RAID使用,这是正确的吗? 解决方法适用性取决于您的需求.对你而言,听起来像90秒不太合适.我在过去看到供应商文档建议将超过60秒的fibre-channel HBA超时设置为更好地处理阵列故障转移,控制器的固件更新等事情.正如你所指出的那样,缺点是:它可能导致很长的滞后以返回存储. 实际上这不是一件坏事.如果LUN上的HBA超时,许多操作系统将强制卸载LUN,这可能比偶尔的长滞后返回块更具破坏性.诀窍是平衡以下几点: >您的存储堆栈产生长滞后的可能性 通常,放入RAID阵列的磁盘应具有较低的超时值,因为它让RAID控制器知道在其他地方处理块请求.这是消费级驱动器与硬件RAID卡一起使用时的一个重要原因;他们的超时很长,这可能导致你不想要的问题. (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |