在Linux虚拟机(Vmware工作站或类似的)中,如何在先前工作的光盘上模拟故障?
我在生产中发生了一个光盘发生故障的情况(可能是控制器,电缆或固件问题)。显然这是不可预测的或可重复的,我想测试我的监控,以确保它提醒正确。
我最好能够模拟一个写入失败但成功读取的情况,以及一个完整的故障,即scsi界面将错误报告回内核。
有几个层可以模拟磁盘错误。如果您正在测试单个用户空间程序,可能最简单的方法是插入适当的调用(例如write()),并有时会返回错误。故障注入库使用其工具。
另一种方法是使用可以将数据传递到另一个设备的内核驱动程序,但是会导致错误。然后,您可以安装设备,并从任何应用程序使用它,就像它是一个有故障的磁盘。驱动是一个例子。
还有一个已经合并到Linux内核的故障注入基础设施,尽管您可能需要重新配置内核以启用它。它在被记录。这对于测试内核代码是有用的。
在内核级别注入故障。