第5章 Windows 8を支える機能たち - 大容量ディスクとネイティブ4Kのサポート

今度はディスク面に焦点を向ける。一時期は自然災害による工場閉鎖で高騰の兆しを見せたHDDだが、最近は元の価格帯に戻ったように見える。市場にはテラバイトクラスのHDDが安価に並び、大容量化の一途をたどるようだ。Windows 8の公式ブログであるBuilding Windows 8の記事では、市場調査会社であるIDCのレポートに掲載された数値を元に、2015年には8テラバイトクラスのHDDが市場に登場すると予測している。2011年の時点で4テラバイトHDDが発売されたことを踏まえれば、非現実的な推測ではないだろう。

しかし、単純に大容量HDDが登場すれば保存先に困らなくなる、といった単純なものではない。OSが採用するファイルシステムやコンピューター側が大容量HDDに対応しなければならないからだ。例えばMS-DOSの時代に使われていたFAT16は32メガバイトの壁があり、Windows 9x時代のFAT16およびFAT32に起因する2/4ギガバイトの壁。

最近ではMBRパーティションの限界値である2テラバイトの壁のように、HDD容量の壁が存在する。もっとも2テラバイトの壁は、GPT(GUIDパーティションテーブル)を用いることで解消できるため、さほど大きな問題とはならないだろう。図343は過去のWindows OSにおけるGPTの対応状況だが、Windows 8もWindows 7の状況に準ずるようだ(図343~344)。

図343 Windows OSにおけるGPTの対応状態

図344 パーティションスタイルとしてGPTを選択することで、3テラバイトHDDをワンボリュームで使用できる

その一方で問題となるのがセクターサイズである。2010年頃からHDD業界団体は、通例的に用いられてきた512バイトの物理セクターを、大容量化に合わせて4KBに拡張している。一時期PCパーツショップ店頭で"Windows XPでは、そのまま使用できない"といった注意書きを見たことがないだろうか。セクターサイズを変更すると、低レベルアクセスを行うBIOSやOSが誤認識し、正しく使用できないという問題が発生していた。これを改善するのが、理論セクターを512バイトセクターとしてエミュレートするAFT(Advanced Format Technology)が用いられいる。

これで解決したように見えるが、結局はエミュレーションという新たなロジックを追加しているため、ボトルネックが生じてしまった。例えば書き換え対象が1セクター(512バイト)程度でも、実際には8セクター相当(一物理セクター)を読み込み、ファームウェア内で書き換えした512バイトを物理セクターに書き戻す、RMW(Read-Modify-Write:リード・モディファイ・ライト)がネックになるのである。これが原因でWindows XPといった古い環境ではアクセス低下が発生するのだ。

さて、Windows 8における大容量HDDのサポート状況だが、前述のとおりGPTを用いることで2テラバイト超のHDDは対応している。また、BIOSではなくUEFIを採用した環境ではOSの起動も可能。セクター問題に対しても改良が加わっており、従来の512バイトセクターを用いたHDDだけでなく、4KネイティブHDDやWindows 8の起動を、既存のAPI拡張やブートコード、NTFSの改良で対応したようだ。これらの改善を踏まえると、Windows 8に移行することで、ディスク周りの対応云々は細かく考えずに済むことは間違いないだろう。

なお、Windows 8のファイルシステムは従来どおりNTFSが用いられる。開発途中で噂にのぼった「Protogon」は「ReFS(Resilient File System)」という正式名称に至り、次期主力となるファイルシステムであることは間違いないが、信頼性の浅さからか、次期Windows Serverでも起動ディスクのファイルシステムとしては使用不可。データディスクなどに限られ、今後もNTFSとReFSを併用する時期が続きそうだ(図345)。

図345 公式ブログに掲載されたNTFSとReFSのイメージ図。両者のストアエンジンが異なっている