本投稿、この投稿は、vExperts Advent Calendar 2021 の 12/20 分を担当しています。
元々、一昨年辺りからまとめていた仮想化環境におけるストレージ性能設計、検証方法の考慮点の3つ目のコンテンツの予定だったのですが、ずっと放置していたものをようやく投稿しました。
私なりの vSphere 環境でのストレージ負荷試験時に考慮しているポイントをまとめていますが、ストレージ機器の性能検証をする時の参考にしていただく以外にも、一般的なアプリなどの性能検証時にも共通する部分があるかと思いますのでご一読いただければ幸いです。
ストレージ性能は何を見るべきか?
一般的なストレージ IO 性能を示す値として、IOPS (毎秒あたりの Read / Write の IO 数)、スループット (毎秒あたりの Read / Write のデータ流量)、遅延 ( IO 毎の Read / Write 完了までに要する時間)があげられます。
その性能を提供するために必要となるコントローラやドライブの選定し、組み合わせて検証を行いますが、IO そのものの性能以外にも IO 性能を出す際のストレージコントローラやドライブなどの利用率・負荷、サーバーのシステム利用率など実際の利用下での負荷状況の予測値がまずは見るべきポイントと考えています。
メーカーのストレージの性能情報や、各種 IT インフラの RFP・仕様書を見てみると「IOPS」の数字だけが独り歩きしている事が多々あります。
どんな条件下での IOPS なのか、その IOPS を出している時のシステムは余裕があるのか、限界ギリギリなのかで状況は大きく異なってきますのでそれ以外の指標をしっかりと把握する事が重要です。
私のストレージ性能を計測して、サイジング・設計に落とし込む順序は、
- Max 負荷の IOPS・スループットがどの程度か、様々な IO パターンで限界性能の測定
- Max 負荷を把握したらその値を上限に徐々に IO 負荷を上げていき、IO 遅延の変化とシステム負荷を計測
- 遅延とシステム負荷の傾向が把握出来たら、健全と判断できる数値内でのサイジング
この順序で各種パターン検証と考察を行い、実際に必要なサイジングに反映します。
※ アプリケーション開発などと絡む場合は高負荷な限界状態での稼働確認テストや、長時間負荷や温度などを変えた耐久テストなどもありますが、今回は対象から外しております。
IOPS だけを見て性能要件とすると多くのストレージ選定は失敗するのでご注意ください。
※ 今回ご紹介する検証の考え方は、メーカーが Max 性能を引き出す際のベンチマークの掛け方とは異なります。とにかく高い IO 性能を出すためのベンチマークツールの使い方やチューニング方法はそれぞれのベンチマークツールの使い方の公式ガイドなどに例があるのでそれらをご参照ください。