Domanda

Sto cercando un modo più semplice per testare la mia applicazione contro i dispositivi a blocchi difettosi che generano i / o errori di lettura quando alcuni blocchi vengono letti. Cercando di utilizzare un disco rigido fisico con blocchi danneggiati noto è un dolore e vorrei trovare una soluzione software, se ne esiste uno.

Ho trovato il Linux Disk Failure Simulation Driver di che permette di creare un'interfaccia che può essere configurato per generare errori quando determinati intervalli di blocchi vengono letti, ma è per il kernel Linux 2.4 e non è stato aggiornato per la 2.6.

Quale sarebbe perfetta sarebbe un autista losetup e ciclo che anche permesso di configurarlo per restituire errori di lettura quando si tenta di leggere da un dato insieme di blocchi.

È stato utile?

Soluzione

Non è un dispositivo di loopback che stai cercando, ma piuttosto device-mapper.

dmsetup per creare un dispositivo sostenuta dal " errore di target". Mostrerà in /dev/mapper/<name>.

Pagina 7 del presentazione Device mapper (PDF) ha esattamente quello che 're alla ricerca di:

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

O lasciare le parti sdb1 da e per mettere il bersaglio "errore" come dispositivo per i blocchi 0 -. 8 (invece di sdb1) per fare un disco di errore di puro

Si veda anche Il Device Mapper appendice da "RHEL 5 Logical Volume Manager Administration".

Altri suggerimenti

Sembra che Linux di funzionalità integrate di iniezione colpa sarebbe una buona idea di utilizzare.

Blog: http://blog.wpkg.org/2007 / 11/08 / usando-fault-iniezione /
Riferimento: https://www.kernel.org/doc/Documentation /fault-injection/fault-injection.txt

Il modo più semplice per giocare con i dispositivi a blocchi è utilizzando NBD .

Scarica i sorgenti userland da git: //github.com/yoe/nbd.git modificare nbd-server.c a fallire in lettura o scrittura su qualunque aree si vuole fallire su, o di fallire in un pattern casuale in modo controllato, o fondamentalmente tutto quello che vuoi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top