第5章 Windows 8を支える機能たち - デフラグツールの「SSD」対応とチェックディスクの改善

Windows 8におけるSSDの扱いは、Windows 7と比較するといくつかの変化が見られた。今回ホストドライブをHDDからSSDに変更して最初に気付いたのが、デフラグツールの有効設定である。Windows 7時代は過度なSSDへのアクセスは"寿命を短くする"として無効になっていた。

そもそもSSDには、内部で完全消去しても構わないデータブロックをOSに通知する「Trim」というコマンドが用意されている。OS上でファイルが削除されてもSSD側はそれを認識できないため消去されないまま放置されていた。このデータブロックへの書き込みは元のファイルがあった場所に書き込みが発生する時点で初めて消去処理が行われるため、パフォーマンスの低下が発生する。

その一方でTrimコマンドが有効な場合、SSDが同コマンドを受け取ることでOSがファイルを削除すると同時にデータブロックを消去するため、長期間使用する際のパフォーマンス低下を防ぐというものだ。

そのためWindows 7では、ホストドライブがSSDであることを検知した際はデフラグの自動実行などいくつかの機能を抑制し、SSDに対する過度の書き込みを防ぐ仕組みが用意されていた。だが、今回SSDに対してWindows 8を新規インストールした環境ではデフラグの自動実行スケジュールが組まれていたのである(図370~371)。

図370 SSDに対してWindows 8をインストールしても、デフラグツールの自動実行スケジュールは組まれる

図371 こちらは別コンピューターのダイアログ。HDDやリムーバブルドライブを検知している

確かに登場直後のSSDと比べると最近は故障に至ることも少なくなり、それらを踏まえての仕様変更かと資料を調べてみたが、Microsoftが明確に説明を行っているものはなかった。だが、気になるのはTecnNetのフォーラムに寄せられたこの回答。投稿者はコアシステムチームのプログラムマネージャーであるKiran Bangalore(キラン・バンガロール)氏。Building Windows 8では、NTFSに関する記事を投稿したソフトウェア開発者だ。

投稿内容を簡単に意訳すると「我々はWindows 7でSSDのデフラグをオフにした。だが、Windows 8ではデフラグツールの機能を変更している。(中略)伝統的なデフラグ(パフォーマンスを向上させるためのファイルの移動や最適化)を行わず、SSDストレージの最適化を行うために、ボリューム全体に完全なTrimを行う」と書かれている。

Bangalore氏の説明を踏まえると、Windows 8ではSSDに対してはSSD専用の処理を行うため、前述した自動実行スケジュールが有効になっているのだろう。同機能の具体的な処理内容は確認できないが、Intel SSD Optimizerのように、定期的にTrimコマンドを発行し、パフォーマンスの改善を行っているようだ(図372)。

図372 SSDに対してデフラグを実行すると、Trimコマンドを発行していることが確認できる

ディスク周りの変更はSSDに限らず、Windows 8の標準ファイルシステムであるNTFSにも加わっている。正しくは、NTFSの整合性をチェックする機能の改善だ。これまではOS起動時やユーザーのタイミングでチェックディスクを実行してきたが、Windows 8では、「Spot Verifier(スポット検証)」というサービスを追加し、メモリに何らかの異常が発生している場合に、ディスク構造が破損するケースを軽減するというもの(図373)。

図373 ファイルシステム破損の可能性を検査する「Spot Verifier」

ここで異常を検知すると、Online identification and logging(オンライン識別とロギング)と呼ばれる機能が、次回再起動時にチェックディスクを実行するためのトリガーを追加する。このオンラインスキャンで修復できない問題を検知した場合、オフラインスキャンを必要とするが、早期に問題を改善するためにアクションセンター経由でコンピューターの再起動を求め、オフラインスキャンを実行する。このロジックを用いることでチェックディスクによるダウンタイムを最小限に抑えることが可能になったそうだ(図374)。

図374 Windows 8におけるディスク修復の流れ