インストラクター：このレッスンでは､
ドライブのパフォーマンス問題について､
特にスマート診断ツールと､ 1秒あたりの入力出力オペレーションとして知られる指標についてお話しします｡
まず､ SMARTについて｡
さて､ SMARTとは頭文字をとったもので､ SMARTとはSelf-Monitoring
Analysis and Reporting Technologyの略である｡
そして､ 日常的に使用するほとんどのハードディスク・ドライブに内蔵されている｡
さて､ このスマート・テクノロジーは､
実際には自己診断プログラムであり､ 故障が発生したり､
故障が近いことを検知すると､ オペレーティング・システムに警告を発する｡
現在､ スマートシステムは約20年から30年前から存在しており､
ハードディスク・ドライブから始まり､
ソリッド・ステート・デバイスにも移行している｡
このSMARTテクノロジーは､ オペレーティング・システムやBIOS､
UEFIなどのシステムを補完するものです｡
SMARTの全体的な考え方は､
ハードディスク・ドライブを監視し､
特定のドライブの健康状態を把握できるようにすることだ｡
ドライブの温度､ ドライブ全体の健康状態､
ハードディスク・ドライブなら回転速度､ ソリッド・ステート・デバイスなら不良ブロックの数などを調べます｡
さて､ SMARTで覚えておくべき重要なことは､
ドライブを健康に保つためのものではないということだ｡
その代わり､ いつ問題を抱えているのか､ 将来的にいつ故障する可能性があるのかを特定するように設計されている｡
だから､ このことを覚えておいてほしい｡
ここでの彼らの目標は､ ドライブを修理することではなく､
単に監視し､ 何か悪いことが起こりそうなときにそれを察知することだ｡
このセルフ・モニタリング､ 分析､ レポート作成技術は､
ハードディスク・ドライブとソリッド・ステート・デバイスに関するさまざまな属性を測定するように設計されています｡
例えば､ 読み取りエラー率､
ハードディスクのスピンアップ時間､ 再割り当てセクタ数､
シークエラー率､ 電源オン時間､ 高温アラート､ その他このようなものを監視することができます｡
これらのさまざまな情報を監視することで､ SMARTユーティリティは､
オペレーティング・システムに未解決の問題や将来存在する可能性のある問題を通知することができます｡
さて､ SMARTユーティリティが監視しているメトリクスのひとつに､
1秒あたりの入出力オペレーション（IOPS）というものがあります｡
さて､ IOPSはシステムで見ることができる本当に重要な指標である｡
というのも､ ストレージ・デバイスへの入出力の速さを測定している以上､
これはストレージを扱う際に理解しなければならない性能に関する重要な指標のひとつだからだ｡
ハードディスク・ドライブとソリッド・ステート・デバイスを比較する場合､
一般的にハードディスク・ドライブのIOPSはソリッド・ステート・デバイスのIOPSよりもはるかに低くなります｡
ソリッドステート・デバイスは､
情報を読み取るためにプラッターを移動させる必要がないため､
シーク時間がはるかに速いからだが､ 必ずしもそうとは限らない｡
非常に安価で安く作られたSSDの中には､
本当に高速なハードディスクドライブよりもはるかに低いIOPS数のものもある｡
だから､ ソリッドステート・デバイスがハードドライブより常に高速であるというように､
すべてが明確に決まっているわけではないことを覚えておく必要がある｡
だから､ このことを覚えておいてほしい｡
クラウドで作業している場合､ 実際には基礎となるストレージにアクセスすることはできない｡
なぜなら､ 仮想化やクラウド・コンピューティングを利用している場合､
ストレージレイヤーの下にハードディスク・ドライブがあるのか､
ソリッド・ステート・デバイスがあるのかがわからないからだ｡
これは､ 特定のストレージ・デバイスにデータを読み書きする際に､
パフォーマンスを測る最良の指標となるからだ｡
さて､ ストレージ・デバイスについて話しているときに､
全体的なパフォーマンスが低下しているのが見え始め､
IOPSを測定してその数値も低下しているのが見えたら､ ストレージ・デバイスへの読み書きに何らかのボトルネックがあることを示している｡
これはハードウェアの問題かもしれないし､
ソフトウェアの問題かもしれない｡
SMARtユーティリティのようなツールを使って､
ドライブが適切な速度で読み書きができているのか､
それともオペレーティング・システムが実際に速度を落としていて､
デバイスへの読み書きが必要な速度でできていないのかを調べる必要があります｡
なぜなら､ 1秒あたりの入出力オペレーションが少ないのは､
ハードウェアの問題かもしれないし､ アプリケーションや一般的なシステム・リソースが､ その特定のシステム上で起こっている他の多くのことのために過負荷になっているのかもしれないからだ｡
ストレージのパフォーマンスが低下している場合､
ハードディスク・ドライブで調べたいのは､
ファイルが断片化していないかどうかだ｡
もしそうなら､
デフラグツールを実行することをお勧めする｡
これは､ これらのファイルのすべての断片を取り出し､
それらを元に戻すことができ､
そのデバイスへの読み取り時間を短縮する｡
これは､ ハードディスク・ドライブに書き込む際､
書き込もうとしているファイルを分割してしまうからだ｡
これらの断片はそれぞれ､ ハードディスクの空いているスペースに､
最初から順番に配置される｡
だから､ ハードディスク・ドライブを本と同じように考えてほしい｡
200ページある白紙の本を渡したとしよう｡
収納はこれだけだが､ 鉛筆は持っていて､
本に書くときは1ページから始めて50ページまで書き続ける｡
さて､ あなたは3ページ目に戻り､
そのページにあるものは必要ないと判断した｡
だから､ それを消すんだ｡
今､ その本には空白のスペースがある｡
7ページ目も12ページ目も15ページ目も同じことをして､
本を見ていらないものを消していったね｡
何か別のことを書き留めたいときは､
51ページから始めるのではなく､
それを消した3ページに戻って空白を埋めるのだ｡
スペースがなくなったら､
空白のある次のページに移動し､ 51ページまで戻るまでそれを続け､ また書き続ける｡
それがハードディスクの仕組みだ｡
つまり､ 小さなファイルをたくさん削除していると､
ドライブ全体に小さな穴がたくさんできてしまうのだ｡
そして次に何かを書こうとするとき､
その穴が埋まり始める｡
しかし､ そのファイル全体を再び取得するために､ それらの異なる場所にシークしなければならないので､
これは過剰な読み取り書き込み時間をもたらす可能性がある｡
だから､ その時間を短縮するために､ デフラグと呼ばれる作業を行うのだ｡
すべてのファイルを同じページに正しい順序で並べる｡
また､ ドライブの周囲にあるものを移動させ､
すべてが再び整然とするまでシャッフルすることができる｡
しかし､ 時間の経過とともに､ 削除や書き換えが繰り返されるため､
ドライブは再び乱雑になり､
そこで断片化が起こります｡
ドライブの断片化が進むと､ ドライブからデータをシークしたり読み取ったりする際のパフォーマンスが低下する｡
幸運なことに､ ソリッド・ステート・デバイスに移行すると､
断片化はもはや問題ではなくなり､ いつでもそのドライブ上のすべてにアクセスできる｡
そのため､ ソリッドステート・デバイスの断片化はもはや問題ではなく､
ソリッドステート・デバイス上でデフラグ・ユーティリティを実行する必要はない｡
しかし､ ハードディスク・ドライブで行う必要がある｡
一方､ ソリッドステート・デバイスの場合､
容量が不足し始め､ 容量が減ってくると､ ドライブの動作が遅くなることに気づくだろう｡
ドライブを高速化するには､ ソリッドステート・デバイスからファイルを移動し､
余分なスペースを確保する必要がある｡
これは､ ソリッドステート・デバイスの仕組み上､
容量がいっぱいになって空き容量がほとんどなくなると､ そのデバイスのパフォーマンスが大幅に低下するためだ｡
そのため､ 私は常にソリッドステート・デバイスの少なくとも10％を空にしておくことを勧めている｡