ストレージアレイのIOレイテンシデータを見る。ドライブが故障する直前に、IO操作の完了までの時間が増えます。配列は、次の形式でこのデータを提供します。時間ベースの収差を探す
Time Disk Channels
seconds A B C D E F G H P S
0.017 5e98bd 64008b 62a559 68eb45 676ccf 5d3a86 46242b 62dd2e 6976c9 6da51f
0.033 1e821c 1be769 1c372a 185134 19a2c2 21802c 2fa2ba 1d91c4 17b3ca 14cea6
0.050 6638e 3a93b 4b19f 258aa 28b64 4d3ae d92dc 32899 26a5b 1290d
0.067 2df3 1c17 1f1b 180f 1291 1f05 5201 15f4 1856 10d8
0.083 365 293 2b9 296 269 291 3c4 26f 2ae 25d
0.100 ce ae 94 aa 92 86 ce 81 9f 91
...
(時間の繰り返しは2.00秒になり、カウントは16進数になります)。
左の列はIOが完了する時間を示し、他の列はその時間内に完了した特定のスピンドルに対するIOの数です。
ドライブが近づいている場合、そのドライブの「テール」は顕著に「より広い」となります。ほとんどのドライブでは0.2秒を超える小さなIO数があり、ドライブに障害が発生すると0.2を超えるIOが発生します秒。例:
Time Disk channels
seconds A B C D E F G H P S
...
0.200 4 52d 2 7 3 2 1 6 1 8
0.217 2 2a6 0 1 0 0 1 4 0 1
0.233 0 1a1 0 1 0 0 0 1 1 0
0.250 0 cb 0 1 0 0 1 1 0 1
0.267 0 73 0 0 0 0 0 0 0 0
0.283 0 44 0 0 0 0 0 0 0 0
0.300 0 2d 0 0 0 0 0 0 0 0
...
私はちょうど0.2秒以上10の以上のiOS用になりますが、私はより正確に故障を特定することができました数理モデルを探していました。私の最初の考えは、各列の分散を計算することでした...広すぎる分散の範囲を持つドライブのセットは、違反者にフラグを立てます。ただし、これは正常に動作するドライブのフラグを間違って指定します。
min variance is 0.0000437, max is 0.0001250. <== a good set of drives
min variance is 0.0000758, max is 0.0000939. <== a set with one bad drive.
他のアイデアはありますか?
(そしてこれがmath.stackexchange.comなく、StackOverflowの上でなければなりません?)
これは宿題のようですが、興味深いものです。 +1 – ashes999
脚注に関しては、実際にはhttp://stats.stackexchange.com/の方が適切かもしれません。 – NPE
宿題に関する質問ではなく、仕事上の質問です。 ;-)すべてのコードが動作します...それは単に私が望むことをしません。 – Jason