読み取りエラーと不良ブロックデバイスをシミュレートしますか?

StackOverflow https://stackoverflow.com/questions/1870696

  •  18-09-2019
  •  | 
  •  

質問

私は、特定のブロックが読み込まれたときのI / Oエラーを読んで発生不良ブロック・デバイスに対する私のアプリケーションをテストするための簡単な方法を探しています。既知の不良ブロックとの物理ハードドライブを使用しようとすると痛みだと私は1つが存在する場合は、ソフトウェアソリューションを見つけるしたいと思います。

私はそのインターフェイスを作成することができます Linuxのディスク障害のシミュレーションドライバを見つけましたブロックの特定の範囲が読み込まれたときにエラーを生成するように構成されたが、それは2.4 Linuxカーネルのためのものであり、2.6用に更新されていないことができます。

どのような完璧になることも、あなたはブロックの特定のセットから読み取るしようとしたときに、読み取りエラーを返すように設定することができlosetupをループドライバになります。

役に立ちましたか?

解決

これは、あなたが探しているループバックデバイスではなく、デバイスマッパーではありません。

」に裏打ちされたデバイスを作成するために dmsetup に使用しますエラー」ターゲット。それは/dev/mapper/<name>に表示されます。

正確に何を持っているの

デバイスマッパープレゼンテーション(PDF) 「再を探しています:

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

またはTO sdb1部品を除外し、ブロック0のためのデバイスとして「エラー」の目標を置く - 純粋なエラーディスクを作成する(代わりにsdb1の)8

も参照してください。デバイスマッパー付録 論理ボリュームマネージャの管理」ます。

他のヒント

これは、Linuxのように思える内蔵のフォールトインジェクション機能を使用するには良いでしょう。

ブログ: http://blog.wpkg.org/2007 / 11月8日/使用して、障害投入/
参考: https://www.kernel.org/doc/Documentation /fault-injection/fault-injection.txtする

ブロックデバイスで再生する最も簡単な方法は、 NBD に使用されますます。

のgitからユーザーランドのソースをダウンロードしてください://github.com/yoe/nbd.git とあなたはそれがで失敗する、または制御可能にランダムなパターン、またはあなたが望む基本的に何に失敗したい方の領域上の読み出しや書き込みに失敗するnbd-server.cを変更します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top