Frage

Ich bin auf der Suche nach einem einfacheren Weg meine Anwendung gegen fehlerhafte Block-Geräte zu testen, erzeugen i / o Lesefehler, wenn bestimmte Blöcke gelesen werden. Der Versuch, eine physische Festplatte mit bekannten defekten Blöcken zu verwenden, ist ein Schmerz, und ich möchte eine Software-Lösung zu finden, wenn ein solches vorhanden ist.

habe ich die Linux Disk-Failure Simulation Treiber finden, die eine Schnittstelle ermöglicht die Erstellung, die konfiguriert werden kann, um Fehler zu erzeugen, wenn bestimmte Bereiche von Blöcken gelesen werden, aber es ist für den 2.4 Linux Kernel und wurde für 2.6 nicht aktualisiert.

Was wäre perfekt wäre ein losetup und Loop-Treiber sein, der erlauben Sie auch zu konfigurieren Fehler zurückzukehren zu lesen, wenn aus einer gegebenen Menge von Blöcken zu lesen versuchen.

War es hilfreich?

Lösung

Es ist kein Loopback-Gerät Sie suchen, sondern geräte Mapper.

Verwenden Sie dmsetup ein Gerät durch die gesicherte zu schaffen " Fehler“Ziel. Es wird sich zeigen in /dev/mapper/<name>.

Seite 7 der Device-Mapper-Präsentation (PDF) genau das, was hat Sie ist suchen:

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

oder die sdb1 Teile wegzulassen und setzen Sie den „Fehler“ Ziel als das Gerät für die Blöcke 0 -. 8 (statt sdb1) eine reine Fehlerplatte zu machen

Siehe auch The Device Mapper Anhang von „RHEL 5 Logical Volume Manager Administration“.

Andere Tipps

Es scheint, wie Linux eingebaut Fehlerinjektions Fähigkeiten eine gute Idee wäre, zu verwenden.

Blog: http://blog.wpkg.org/2007 / 11/08 / mit-Fehler-Einspritzung /
Referenz: https://www.kernel.org/doc/Documentation /fault-injection/fault-injection.txt

Der einfachste Weg, mit Block-Geräten zu spielen ist mit nbd .

, um die Userland Quellen Download von git: //github.com/yoe/nbd.git und ändern nbd-server.c beim Lesen oder Schreiben auf scheitern je nachdem, welche Bereiche Sie es auf scheitern wollen, oder in einem kontrollierbaren zufälligen Mustern zu scheitern, oder im Grunde alles, was Sie wollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top