最近ハードディスクを酷使することが増えました。
SSDやNVMe M.2 SSDを使えば高速になりますが、容量単価が高いです。
そのため、2TBを越えるような容量が必要になると結構困ります。
これが下記の理由で大容量が必要になったりするんです。
- 日次/週次のデータバックアップ(万が一のリストアも)
- 動画関連データの読み書き
- 仮想環境のイメージデータの読み書き
そこでこの記事では、試行錯誤の末に某コミュニティで教えていただいた方法でハードディスクの読み書きを高速化する方法について、ご紹介します。
ハードディスクを爆速にするのに必要なもの
ソフトウェア
この記事を要約すると、某コミュニティで教えていただいた下記のソフトウェアが素晴らしいという話です。
以前からあるソフトウェアですが、より安定してきた最近のようです。
海外ソフトウェアですので、英語がある程度わかる、もしくはGoogle翻訳やMicrosoft Edgeの翻訳機能を活用しながら注文できる人限定といことになります。
あるいは、AMDユーザーの皆様であれば、下記の無料ソフトウェアを活用することで同じことが実用できるかも知れません。
https://www.amd.com/ja/technologies/store-miこちらは先に紹介したFuzeDriveから派生したソフトウェアで、まだ発展の時期にあるようです。
ただし、無料というのが大きい。
このStoreMIについては、こちらの記事が参考になります。
ちなみに、匠はマザボもCPUもAMDユーザーなのですが、なぜかStoreMIは上手く動作しませんでした。
そのため、有償の FuzeDrive を購入したという経緯がある点、ご了承ください。
ハードウェア
今回 構成したハードウェアはこちらです。
HDD(ハードディスクドライブ)
とにかく大容量で低価格、今や転送速度は二の次と考えられているハードディスクです。
4TBもあれば、通常利用で困ることは稀です。通常利用なら。
NVMe M.2 SSD
今回の肝になるハードウェアです。コレがないと爆速になりません。
どれくらい高速なディスクドライブかというと、下記が参考になります。
以下の256GBくらい小さくても良かったのですが、もう少し欲しかったので500GBにしました。
更に下の128GBになると、性能の落ちる別ラインになるようです。
ちなみに、このシリーズの最大容量は1TBまでで、以下のモデルです。
ハードディスクの単価と比べると、10倍くらい高価です
そのため、こちらで4TBなんかの容量を用意しようとしたら、RAIDボードと組み合わせると10万円くらいになってしまうわけです。(2020年末時点)
そう考えると、SATA SSDに手を出したくなりますが、それでもSATA HDDの最低2~3倍は高価という状況です。
以降では、これらNVMe M.2 SSDのことは NVMe とだけ呼称します。
上記の市場価格を踏まえ、可能な限り安価で大容量の内蔵ディスクを確保したいのが人情です。
これを踏まえて、FuzeDrive + NVMe M.2 SSD + HDD で爆速化します。
ハードディスクを爆速化する方法
概要
FuzeDrive や StoreMI の動作はこういう感じです。
- 書き込みはとりあえず高速なNVMeに対して行う
- 溢れた時や適当に良いタイミングでFuzeDriveがNVMeからHDDへデータを移す
- よく読み込まれるデータはキャッシュとしてNVMeに保存しておくので、必要なときに早く読み出せる(キャッシュ化)
このNVMeとHDDの間のデータ保存の制御をウマイ感じにやるのが、FuzeDriveやStoreMIです。
昔からあるキャッシュ化という技術を、ハードディスクリソースに応用した仕組みです。
当然ですが、難点もあります。
- キャッシュを保存するNVMeのサイズを超えるデータを保存する場合は、結局HDDに保存することになるので低速になる
- 読み込むデータに偏りが無い場合、結局HDDから読み込まないといけないので低速になる
この難点を考えさせず、なるべくNVMeを利用できるように、大容量NVMeを使うと良いです。
ただ、そうなるとコスト面で本末転倒になるため、この辺りのバランスを考えるのが難しいところですね。
ちなみに、メインメモリをディスクとして扱うRAMディスクでキャッシュ化ができると、もっともっと早いです。
FuzeDriveは、このRAMディスク(RAMキャッシュ)も活用できるので、より高速化できるのがウリでもあります。
実施手順
簡単に実行手順をご紹介しておきます。
まず、FuzeDriveを起動します。すると次のウインドウが表示されます。
英語だと読めない人もいるかも知れませんが、訳すと上から下記の5つの選択肢になります。
- ブータブルFuzeDriveを作成する
- 非ブータブルFuzeDriveを作成する
- 新しい非FuzeDrive
- 速いメディアを解除する
- ライセンスをアップデートする
今回は新しいディスク2つで構成したので、3を選びました。
2を選ぶと既にデータが保存されているドライブにSSDを追加することができます。
これには少しリスクがあるので、それはまた後ほどご紹介します。
ここで3のボタンを押下した後、下記のウインドウが表示されます。
2つのボタンのうち、右の「I Understand – Please Proceed (理解しました – 進めてください)」ボタンを押下します。そうして下記のウインドウを表示します。
高速なディスク(Fast)と低速なディスク(Slow)を選択します。
匠の場合は、上記の画像の通りに、NVMe と HDD を選択しました。
そうすると、次のウインドウが表示されます。
それぞれの説明は公式の情報を参照いただくとして、FuzeRAM cache だけ 4G Cache を選択しました。
これは匠のパソコンが64GBと、メモリに余裕があるからです。
8GBとか16GBとか、通常のメモリ容量を利用している方にはオススメしにくい設定ですね。効果のほどもあんまりわからないですし…
それ以外はデフォルトのまま。
そうして「Create Tier」ボタンを押下すると、次のウインドウが表示されます。
設定内容の確認画面です。
選択した高速ディスクと低速ディスクに加え、そして一番上の行が実行した結果でき上がるドライブの情報です。
不思議なのが、FuzeDriveで提供されるドライブ(R:)と、直接HDDドライブにアクセスする(E:)が出来上がりました。
前者は分かるけど、後者があるのが意味不明です…ドキュメントを全部は読み込んでないので、無視することにしたんですがね。
ちなみに、NVMe+HDDのデータ容量となっている点にも注目です。
NVMeがキャッシュ専用となると勿体ない感じがしますが、NVMe容量も上手く使える分はFuzeDriveに投資して良かったと感じます。
そんなわけで「Next」ボタンを押下します。
そうすると、「変換中はオフラインにするから、このドライブを使ってるアプリケーションは全部止めてね」と確認ダイアログが表示されます。
ここだけなんで日本語なんだ?と不安になりますが、「はい」ボタンを押下します。
そうすると、Windows 10の通知が表示されます。
FuzeDriveが追加されたよ、という完了表示でしたね。
匠のパソコンの場合は、ほとんど時間はかからずに表示されました。
そうして実行結果のウインドウが表示されるので、こちらを確認すれば終わりです。
実行した後、ドライブにドライブレターが付与されていなければ、初期化して付与する必要があります。
匠の場合は、何度か試してから本記事の画像を取得したため、画像上はドライブレターが振られているように見えてますが、最初は付与されませんのでご注意ください。(色々パターンがありそうですが)
そうすると、下記のディスク状態になりました。
たくさんディスクがあって分かりづらいですが、上記のディスク1が今回作成したFuzeDriveによるドライブです。
こちらにドライブレター(匠は R: )を割り当てれば、利用できるようになりました。
結果
FuzeDriveのドライブを作成して、さっそくベンチマークを実行してみました。
その結果はこちらです。
爆速ですよね!
上二段のシーケンシャルな読み書き、つまり1ファイルが大きい場合の読み込みが6GB/秒以上、書き込みが3.7GB/秒以上と期待値に近いパフォーマンスを見せてくれています。
下二段のランダムな読み書き、つまり小さいファイルを沢山読み書きする場合は低速に見えます。
この辺は特性として理解をしておく必要があるかもしれません。
ただ、実用を考えてみると多くの場合、大きなディスクに書き込むのは大きなファイルですよね?
オンラインストレージやディスクミラーをしたい場合は、さくさんの小さいファイルを読み書きするでしょう。
しかし、バックアップを始め、匠の使い方では殆どがシーケンシャルな読み書きに該当します。
そう考えると今回の性能によって、十分な恩恵が受けられるわけです。
こちらがその証拠。Acronis Image Backupの実行ログです。
バックアップ処理の時間込みで、これくらいの転送速度が出てくれれば十分に満足できます。
トラブル
ただし、全てOKというわけではありません。
トラブル1. 構築時のデータ全損
実は用意したハードディスクには、予めデータが格納されていました。
それをキャッシュ化、つまりは高速ディスクとしてNVMeを後から追加する予定でした。
その前提で設定を進めました。
つまり、「2. 非ブータブルFuzeDriveを作成する」を選択して進めていました。
FuzeDriveのドライブが出来上がって、CrystalDiskMarkを1回実行した直後にドライブを認識できない状態になってしまいました。
どうにもならなかったので、仕方なくFuzeDriveを解除しました。
そうすると、予め保存していたデータが無い状態になってしまっていました。
つまり、保存データの全損が発生してしまったんですね。
最悪の事態です。
ただ、こんなこともあろうかとバックアップを取得していたので、新規の非ブータブルFuzeDriveを作成して事なきを得ました。
そんなわけで、設定変更前には必ずバックアップという基本を忘れずに、この作業を実行することをオススメしますね。
匠としてはトラブルを考えると、ブートドライブやWindowsシステムを保存するドライブにするのはオススメできないと感じました。
ダイナミックボリューム非対応
本来は ソフトウェアRAID0を組んでる2ディスクを使用して、FuzeDriveを追加して、更に速度を稼ごうと目論んでいました。
しかし、該当のダイナミックボリュームを設定したディスクを使用しようとすると、次のようなダイアログが表示されました。
つまり、ダイナミックボリューム、ソフトウェアRAIDに非対応ということです。
ハードウェアRAIDの場合は試していないので分かりませんが、もしダイナミックボリュームを対象として組みたいと画策していたなら完全にムダになってしまいます。
これはFuzeDriveの仕様ですから、改善されるまでは十分に気をつけておく必要がありますね。
高速なディスクは夢だ
今回ご紹介した方法は、いずれ一般的になるでしょうし、もっともっと発展する可能性を秘めている構成です。
今回のような単純なNVMe+HDD+FuzeDriveで高速化を図るのも良いですが、次のような構成を試した記事も公開されています。
この記事の内容を考慮すると、次の構成が考えられます。
高速ディスク | NVMe 250GB 4枚+RAID 0 |
低速ディスク | HDD 10TB |
制御ソフト | FuzeDrive |
こうすることで超高速キャッシュと超大容量の10TB超が両立するドライブが、10万円前後で出来上がるはずです。
夢のような話が既に手の届くところまできているわけです。
惜しむらくは、ここまでの超高速超大容量ディスクを必要とするほどの作業を匠が必要としていない点ですね。何か生かせる理由はないでしょうか…何か…
最後まで読んでいただいて、誠にありがとうございました。