システムがディスクの位置合わせ不良によって悪影響を受けるかどうかを知る方法があるかどうかを判断しようとしています。つまり、ディスクI / O操作を実行するときは、実際にバックエンドストレージから追加のブロックを要求する必要があります(SANを使用しています)。 )要求されたデータブロックが実際に物理ディスクの複数のブロックに存在するためです。
この問題は、ディスクが抽象化され、不適切なセクタオフセットによってブロックがソートされないため、仮想マシンからバックエンドストレージにアクセスするときに追加のIOPSが使用されるため、仮想マシンに大きな影響を与えることが知られています。
とにかくiostat出力を見てみると、そこにあるデータが私に手がかりを与えることもあるようですが、推論が遅いようです。 iostat(または他のもの)で、マシンがより最適なディスクI / Oを実行できるという手がかりはありますか?
(ディスクの並べ替えが調査/心配する価値があるとは確信していませんが、この問題についてのコメントを聞きたいです!)
答え1
以前は、ディスクの位置合わせはかなり単純な問題でした。すべてのトラックには同じサイズの同じ数のセクタがあります。最新の高密度ドライブは、トラックごとに異なる数のセクタを使用して、プラッタ内でほぼ同じビット密度を維持します。それでも以前のシリンダー、トラック、セクターサイズの情報が報告されます。実際のセクタ構造はディスクの書き込み位置によって異なります。
実際のアドレス指定は通常、論理ブロック・アドレス指定(LBA)形式で行われます。そして実際にディスクの幾何学に興味はありません。分割I / Oはディスク制御ソフトウェアで実行できます。予期しない場所と予期しない場所から分離されたI / Oが発生する可能性があります。
これらのディスクをSANに挿入して共有すると、ジオメトリは他のジオメトリレイヤの背後に隠れます。その時点では、どのI / Oがいつ分割されたかを推測しようとしませんでした。私は、4Kbから4Mbの間の2乗にデータをストライプできるSANビューに興味があります。これらの境界のI / Oはディスク全体に分割されます。 SAN管理者がSAN割り当てサイズを知らせることができる必要があります。割り振りサイズが小さい場合は、パーティションとブロック・サイズをSANのサイズと一致させておくほうが有利です。
sar
通常、ディスクI / Oに問題がないかどうかを確認するために出力を見てください。 I / Oの問題が発生すると、平均キューサイズとサービス時間が増加することがわかります。この時点で、I / Oがなぜ問題なのかを調べる必要があります。 SANを使用すると、このようなことがさまざまな場所で発生する可能性があります。いくつかの解決策があります。仮想マシンでは、各マシンに別々のSANディスクを使用する傾向があります。これは、VMDKなどのファイル形式の仮想ディスクの1つではなく、rawディスクとして仮想マシンに割り当てることができます。