Question

Je cherche un moyen plus facile de tester mon application contre les dispositifs de blocs défectueux qui i / o lu générer des erreurs lorsque certains blocs sont lus. Tenter d'utiliser un disque dur physique avec des blocs défectueux connus est une douleur et je voudrais trouver une solution logicielle si l'on existe.

J'ai trouvé Linux Pilote de disque non Simulation qui permet de créer une interface peut être configuré pour générer des erreurs lors de certaines gammes de blocs sont lus, mais il est pour le noyau Linux 2.4 et n'a pas été mis à jour pour 2.6.

Quel serait parfait serait un pilote losetup et la boucle que vous avez également le droit de le configurer pour revenir lire des erreurs lors de la tentative de lecture à partir d'un ensemble de blocs donné.

Était-ce utile?

La solution

Il est pas un dispositif de réalimentation que vous cherchez, mais plutôt mappeur de périphériques.

dmsetup pour créer un dispositif soutenu par le " cible d'erreur ». Il apparaîtra dans /dev/mapper/<name>.

Page 7 de la a exactement ce que vous « cherchez:

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

Ou laisser les pièces à sdb1 et mettre la cible « d'erreur » en tant que dispositif pour les blocs 0 -. 8 (au lieu de sdb1) pour créer un disque d'erreur pur

Voir aussi Le Device Mapper annexe de « RHEL 5 Administration logique Volume Manager ».

Autres conseils

Il semble que les capacités de l'injection intégrée faute Linux serait une bonne idée d'utiliser.

Blog: http://blog.wpkg.org/2007 / 11/08 / utilisant-Fault-injection /
Référence: https://www.kernel.org/doc/Documentation /fault-injection/fault-injection.txt

La meilleure façon de jouer avec les périphériques de bloc est en utilisant NBD .

Télécharger les sources userland de git: //github.com/yoe/nbd.git modifier nbd-server.c à l'échec à la lecture ou l'écriture sur selon les zones que vous voulez échouer sur ou à l'échec dans un motif aléatoire contrôlée, ou fondamentalement tout ce que vous voulez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top