この記事で紹介している製品
おことわり
この記事は、2022年2月にQiitaに投稿した記事を加筆修正したものです。
また、この記事のオリジナルは日本語で書かれています。記事が日本語以外の言語で表示されている場合、それは機械翻訳の結果です。当社は機械翻訳の精度に責任を負いません。
はじめに
Windowsには「システム要件」と呼ばれる「インストールに最低限必要なシステム(主にハードウェア)スペック」が定義されています。Windows 11の場合、ストレージ要件は容量について「64 GB以上」です[1]。
そこで今回の記事では、Windowsに注目してOSのインストールに適したストレージの要件について説明します。また、NANDフラッシュメモリを記憶メディアとして使用するSSDならではの要件についても説明します。
まとめ
- Windowsのストレージに関するシステム要件は容量のみ規定され、その容量は増加している
- Windowsの起動時のアクセスログからは、システムドライブにはQueue Depth (QD)が小さい時のランダムRead性能が重要
- SSDをシステムドライブに使う場合、耐環境性や耐障害性、そしてデータリテンション対策とリードディスターブ対策が必要
容量:Windowsのストレージ要件
Windowsのストレージに関するシステム要件は、記事執筆時点までは「容量(空き容量)」のみです。そこでバージョンによる違い(変遷)を調べました。ここではデスクトップ版のみを対象とします。
バージョン(名称) | リリース年 | ストレージ要件(容量) |
---|---|---|
Windows XP | 2001年 | 1.5GB 以上の空き容量[2] |
Windows Vista | 2006年 | 20 GB以上(空き容量15 GB以上)[3] |
Windows 7 | 2009年 | 16 GB(32ビット版)、20 GB(64ビット版)[4] |
Windows 8 | 2012年 | 16 GB(32ビット版)、20 GB(64ビット版)[5] |
Windows 10 | 2015年 | 16 GB(32ビット版)、32 GB(64ビット版)[6] |
Windows 11 | 2021年 | 64 GB[1] |
Windows XPとWindows 11を比較すると隔世の感があります。
Windowsにはデスクトップ版のほかに、Windows ServerやWindows RT、Windows Mobile、Windows IoT Coreなどの様々なエディションがあり、各エディションの特性によりストレージの容量要件は異なります。例えば、Raspberry Pi向けイメージもリリースされたWindows 10 IoT Coreは2 GB[7]です。
いずれにしても、ストレージ要件(容量)は増えてきました。今後も増えていくと考えられますので、アプリケーションのインストールやインストール後の運用(Windows Updateなどによるもの)を考えても容量64 GBでは到底心許ないです。またNANDフラッシュメモリを記憶媒体とするSSDの場合、容量が大きいほうが(余裕が多いほうが)性能も高くなりかつ寿命の有効活用が期待できますので、より容量の大きいドライブを選択すべきです。
つまり、「より容量の大きなSSD」がOSインストールに適していると言えます。
性能:システムドライブに要求される性能
Windowsのストレージ要件は容量のみです。リードやライトなどの性能要件はありません。
この「OSをインストールするドライブ(システムドライブ)に求められる性能」を考えるには、「システムドライブ」に行われて「非システムドライブ」には行われないワークロードを考えるのが近道です。答えはもちろん「OSに関連するワークロード」です。
OSワークロードの特徴1:単発コマンドが多い(QDが小さい、浅い)
OS起動時は、多数のアプリケーションが並列動作するのではなく、ハードウェアやソフトウェアの初期化そして準備などの処理をひとつずつ順番に実行すると考えられます。
さらに、OS起動時の処理には依存関係があると考えられます。処理の依存関係とは「ある処理Aが終わらないと次の処理Bが実行できない」のような関係です。
ホスト(プロセッサ)からストレージへのアクセスに着目すると、「ホストは、ある処理Aのためにストレージにアクセスした後は、その処理Aが終わらないと次の処理Bのためのストレージアクセスを実行しない(できない)」ことになります。
この結果、ストレージへのアクセス(コマンド)が散発的になります。その極端な時が、ストレージにとり実行可能なコマンドが1つしかない「Queue Depth (QD) = 1」の状態です。
もちろん、OS起動処理中常にQD = 1の状態が続くわけではありませんが、QDが少ない状態の性能が参考になると考えられます。
つまり、「QD = 1の性能が高いSSD」がOSインストールに適していると言えます。
OSワークロードの特徴2:Readコマンドが多くLBAのランダム性が高い
加えてOS起動処理中のストレージアクセスには、ランダムアクセス(アクセス先LBAがランダムであること)が多くなります。
以下の図1は、Windows 11のコールドブート時の総コマンド数と総アクセスサイズをまとめたものです。コマンドログ取得環境や条件はQiitaの記事をご覧ください。
このログはOSインストール直後に採取したため、グラフ中の約20 GBのTrimはインストールに使用したファイルの削除によるものの可能性があります。
この図1の通り、起動処理中は圧倒的にReadコマンドのほうが多いことがわかります。
次にReadコマンドとWriteコマンドをシーケンシャルアクセスとランダムアクセスに分類した結果を表2に示します。
なお、アクセスがシーケンシャルであることの判定条件は「同一コマンド(ReadならReadコマンド)が連続し、かつその複数コマンド間でアクセス範囲(LBA領域)はLBAが増える方向に連続していること」というものです。
Read | Write | |
---|---|---|
総コマンド数 | 40553 | 4938 |
シーケンシャルコマンド数 | 6 | 2 |
ランダムコマンド数 | 40547 | 4936 |
そして、シーケンシャルアクセスコマンドとランダムアクセスコマンドそれぞれでアクセスした総サイズを表3に示します。
Read | Write | |
---|---|---|
総アクセスサイズ (MB) | 1029.5 | 96.2 |
シーケンシャルアクセスサイズ (MB) | 0.14 | 0.02 |
ランダムコマンドアクセスサイズ (MB) | 1029.36 | 96.18 |
このように、アクセスのほとんどがランダムアクセスです。
つまり、「ランダムアクセス性能特にRead性能の高いSSD」がOSインストールに適していると言えます。
OSワークロードの特徴3:耐環境性および耐障害性が重要
正しい手順で電源を落とす場合、OSはストレージにシステムの状態を書き込みます。これは、次の起動時にそれらのデータを読み出して電源断時の状態からスムーズにシステムの動作を再開するためです。
つまり、電源断時にはOSによるストレージへの書き込みがあり、この書き込みがきちんと完了することはシステムの整合性を保ち次に電源が投入された時にシステムが正常な動作を継続するために重要であることを意味します。
なんらかの理由で正しい手順での電源断に失敗した場合、上記の前提が崩れます。このような場合に備え、OSは電源断前のシステムの状態を可能な限り復元する機能を持ちます。
OSはこの復元機能においてストレージに記録されたデータを使用しますので、システムドライブには正しい手順を経ない電源断後でも可能な限りデータの整合性がとれた状態となることが求められます。
また改めて言うまでもなくシステムデータは重要ですので、ドライブが運用される環境、特に温度に対してはきちんとした耐性を備える必要があります。
このため、システムドライブには、ドライブが運用される環境への耐性も求められます。
OSワークロードの特徴4:長時間上書きされないデータへの対応
NANDフラッシュメモリには「データリテンション」という特性があります。これは「データ書き込み後アクセスせずに放置する時間が長くなると電荷が抜けていきエラーが多くなる」というものです。
システムドライブに記録されるデータは長期間書き換えられないものが多い傾向があります。例えば「OSインストール時に書き込まれたまま読み書きの頻度が低い」データです。
このため、システムドライブに使用するSSDには、データリテンション対策が必要です。
データリテンション特性によるエラー増加対策機能には、パトロールやリフレッシュがあります。
機能名 | 内容 |
---|---|
パトロール | 適切な間隔でNANDフラッシュメモリからデータを読み出し、エラー数が増えすぎていないかチェックする |
リフレッシュ | NANDフラッシュメモリからデータを読み出した際にエラー数が閾値を超えていたら、読み出したデータ(エラー訂正したデータ)をNANDフラッシュメモリ内の別の場所に書き直す |
パトロールの頻度(間隔)やリフレッシュの判断基準は、メーカーや製品に依存します。
加えて、NANDフラッシュメモリには「リードディスターブ」という別の特性もあります。
これは、NANDフラッシュメモリのメモリセルは「データ読み出し動作が弱いデータ書き込み動作に相当する」ため、データ書き込み後書き換えないまま(特に短い時間間隔で)あるメモリセルとそのメモリセルの周辺メモリセルのデータの読み出しを繰り返すとそのメモリセルに電荷がたまりエラーが多くなる、というものです。
このため、書き換えられずにひたすら読み続けられるデータには、この特性によるエラー増加への対策が必要になります。
システムドライブに記録されたOSや各種アプリケーションプログラムのデータは「書き換えられずに読み続けられるデータ」が多いです。アップデートなどで書き換えられることがあるとはいえ、その頻度は低いと考えられます。
つまり、システムドライブに使用するSSDには、リードディスターブ対策が必要です。
リードディスターブ対策は、データリテンション対策と同様「パトロールしてリフレッシュする」という方法が一般的です。
おわりに
今回の記事では、Windowsに注目してOSのインストールつまりシステムドライブに適したストレージの要件をまとめました。
Windowsのシステム要件においてストレージについては容量のみ規定されていてかつ年々容量は増えていますので、より容量の大きなストレージが適しています。
また、実際に取得したWindows起動時のアクセスログから、性能についてはQueue Depth (QD)が小さい時のランダムRead性能が重要であることがわかりました。SSDはランダムRead性能が高いので、システムドライブには適していると言えます。
ただし、システムドライブにNANDフラッシュメモリを記憶メディアとするSSDを使用する場合、耐環境性や耐障害性に加え、データリテンション対策とリードディスターブ対策が必要です。
このことは事務用PCから産業用PCまで様々なシステムに当てはまると考えられます。
今後のシステムドライブ選定のご参考になれば幸いです。
References
[1] Microsoft、「Windows 11 の仕様、機能、コンピューターの要件を確認する」、2023年3月6日閲覧
[2] Microsoft Windows XP – Wikipedia、2023年3月6日閲覧
[3] Microsoft Windows Vista – Wikipedia、2023年3月6日閲覧
[4] Microsoft、「Windows 7 のシステム要件」、2023年3月6日閲覧
[5] Microsoft Windows 8 – Wikipedia、2023年3月6日閲覧
[6] Microsoft、「Windows 10 インストールのシステム要件」、2023年3月6日閲覧
[7] Microsoft, “Windows 10 Minimum Hardware Requirements”, December, 2019
他社商標について
記事中には登録商標マークを明記しておりませんが、記事に掲載されている会社名および製品名等は一般に各社の商標または登録商標です。
記事内容について
この記事の内容は、発表当時の情報です。予告なく変更されることがありますので、あらかじめご了承ください。