[パタヘネ:読書メモ]第6章 ストレージおよびその他の入出力の話題 その2

6.7 入出力性能の測定法:ディスクおよびファイル・システムを例にして

省略

6.8 入出力システムの設計


入出力システムを設計する上で、要求される指標値には、バスのバンド幅と応答の遅延(レイテンシ)がある。

無負荷時のレイテンシ試算は簡単だけど、負荷がある場合は設計が難しい。
そのあたりの設計は、待ち行列理論などでシミュレーションさせたりする必要がある。



6.9 並列処理と入出力:RAID

基本的なRAIDの仕組みは常識レベルの話なので省略。



RAID構成の問題点として1台のディスクに故障が出ると、リビルド時に既存ディスクに負荷が高くなる問題がある。既存ディスクも同じ環境に晒されているため、1台のディスクに障害が発生した時は、連鎖して不具合が出やすい傾向がある。この為、予備ディスクを2台設けたRAID6が有効になってくる。


ディスク故障時に、替わりのディスクが届くまでの時間を削減するため、スタンバイスペアのディスクを用意する場合もある。


RAIDが有効なのは、基本的に”複数のディスクが同時に壊れない”というのが前提となっているけど、実態はそれ程甘くは無い。例えばサーバルームの空調が壊れたといった場合、全てのディスクが高温下にさらされる為、全ディスクがほぼ同時に壊れてしまうというリスクはある。また、RAIDを組む時は、同一メーカー・同一型番のディスクを複数用意する事が多いが、ロットが同じものをセットで使用すると、製造上の問題で不備があった場合に同時故障に繋がる。



ディスクの転送速度は遅いので、リビルドに時間が掛かるというのも問題。
1TBのデータをリビルドさせると、無負荷の時でも3時間ぐらい掛かってしまう。

RAID構成をとっているサーバの場合、無停止で運用を継続させたい場合も多い。稼動させながら(ディスクのI/Oがある状態)でのリビルドはさらに時間が掛かる。



6.10 実例:Sun Fire x4150サーバー

省略。



6.11高度な話題:ネットワーク(◎CDコンテンツ)

省略。



6.12 誤信と落とし穴


誤信:あるディスクの平均故障寿命(MTTF)が規格上は1,200,000時間である。これは役140年に相当する。したがってディスクが故障する事は事実上ありえない


故障までの時間は幅が有るので平均値を見てもあまり意味が無い。
また、メーカーは一定時間、多数のディスクを稼動させ、何台のディスクが壊れたかでMTTFを算出している。この算出方法だと、当たり前の事だけど実際に1,200,000時間稼動しているわけでは無いので、劣化に伴う故障のリスクは過小評価される事になる。

MTTFだと誤解してしまうので、替わりに年間故障率(AFR:annual failure rate)という指標値を使ったほうが直感に沿ったものになる。AFRは、沢山のディスクを1年使用した場合、何パーセントのディスクが壊れるかを意味している。



誤信:現場環境でのディスク故障率は仕様に合致している


過去に行われた実験によると、仕様値より5~6倍以上の故障率が有ったらしい。



誤信:1Gバイト/秒の相互連絡路は,1秒間に1Gバイトのデータを転送できる


これは、実際に開発、運用している側からしてみたら、直感的におかしい事が分かる。(実測値は仕様値より明らかに遅いので)理由としては、バスの占有待ち、その他コマンド送信に伴うオーバーヘッド等がある。

他には、バスの幅は1000を基準に単位を変えているけど、データ(ディスク容量等を含む)は1024を基準にしているので、実は単位が違うという所から、見かけ上の能力が落ちて見える。



落とし穴:エンド・ツー・エンドで実現すべき機能を、ネットワークの中だけで実現しようとする事


例えば、アプリケーションレイヤで行うべきデータのチェックサム計算を、下のレイヤで計算させたとする。この場合プログラマの負荷は低くなるが、通信レイヤ~ソフトウェア間での異常(例えばメモリの故障など)が検出できなくなる。



落とし穴:性能向上をもくろんで、十分な解析をせずにCPUから入出力プロセッサに機能を移すこと


普通はCPUより、入出力プロセッサのが能力が低いので、同じ仕事をさせるなら、CPUの方が効率が良い。
なので、非同期で複数の処理を行うメリットが、速度差のデメリットを超えない限り性能は上がらない。



落とし穴:ディスクのバックアップに磁気テープを使用すること


昔はテープのほうが、容量あたりのコストメリットがあったけど、今ではHDDのほうが単価が安くメリットが薄い。



誤信:オペレーティング・システムは、ディスクのアクセスをスケジューリングする最善の場所である。


ストレージの要件はストレージが一番知っているので、デバイス側に任せたほうがよいこともある。
例えばHDD上でどこにデータがあるかについて、OSはLBAによる論理位置しか知らないけど、HDDはディスクのどこのシリンダ、セクタにあるかという物理位置を知っている。
HDDにデータのアクセス順を(ある程度)任せてあげれば、ディスクの回転待ちが最小になるように最適化させることも可能となる。(例えばS-ATAではNCQ機能でこれを実装している)



落とし穴:入出力システム内の一部のピーク転送速度を使用して、性能の予測や比較を行うこと。


ピーク値というものは、そもそも出ない数字(理論上の最大値)なので、性能比較にはあまり意味が無い。大事なのは実効値。あと、Amdahlの法則より、ピーク値がよくても、ボトルネックが他にあれば、全体のスループットはそこに引っ張られるというのも重要なポイントになる。



6.13 おわりに

省略


6.14 歴史展望と参考文献(◎CDコンテンツ)

省略

6.15 演習問題

省略


関連記事

コメントを残す

メールアドレスが公開されることはありません。