Pregunta

Estoy buscando una manera más fácil de probar mi aplicación contra los dispositivos de bloques defectuosos que generan i / o errores de lectura cuando se leen ciertos bloques. Tratando de usar un disco duro físico con bloques malos conocidos es un dolor y me gustaría encontrar una solución de software si existe.

Lo que encontrar la disco Linux simulación del fallo de controlador que permite crear una interfaz que puede ser configurado para generar errores cuando se leen ciertos rangos de bloques, pero es para el núcleo de Linux 2.4 y no ha sido actualizado para 2.6.

Lo que sería ideal sería un controlador losetup y bucle que también le ha permitido configurar para volver errores de lectura al intentar leer de un determinado conjunto de bloques.

¿Fue útil?

Solución

No es un dispositivo de bucle que busca, sino más bien mapeador de dispositivos.

dmsetup para crear un dispositivo respaldado por el " de error" objetivo. Se mostrará en /dev/mapper/<name>.

Página 7 de la presentación mapeador de dispositivos (PDF) tiene exactamente lo que buscaba:

dmsetup create bad_disk << EOF
  0 8       linear /dev/sdb1 0
  8 1       error
  9 204791 linear /dev/sdb1 9
EOF

O dejar de lado las partes a sdb1 y poner el objetivo de "error" como dispositivo de bloques 0 -. 8 (en lugar de sdb1) para hacer un disco de error pura

Ver también El mapeador de dispositivos apéndice de "RHEL 5 Administración de volúmenes lógicos Manager".

Otros consejos

Parece que Linux incorporado en las capacidades de inyección de fallos que sería una buena idea utilizar.

Blog: http://blog.wpkg.org/2007 / 11/08 / utilizando a fallos de inyección /
Referencia: https://www.kernel.org/doc/Documentation /fault-injection/fault-injection.txt

La forma más fácil de jugar con los dispositivos de bloque es el uso de NBD .

Descarga las fuentes de entorno de usuario de git: //github.com/yoe/nbd.git modificar nbd-server.c a fallar en la lectura o escritura en lo que las áreas que desea que falle en, o que falle en un patrón aleatorio de forma controlada, o básicamente cualquier cosa que desee.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top