WindowsでRAMドライブを設定して活用する方法

つまり、RAM ディスク (RAM 内の気の利いた仮想ドライブ) は、特に RAM がたくさんある場合は、クイックアクセス ストレージを大幅に強化できます。SSD よりも最大 10 倍高速な読み書き速度は、キャッシュ、一時ファイル、さらにはブラウザー データなどの保存に最適です。しかし、Windows がこれを行うための組み込みの方法を提供していないため、サードパーティ製のツールが必要なのはちょっと奇妙です。時々、簡単に設定する方法を見つけようとしてイライラしている人々を見てきました。このガイドは、サードパーティ製のアプリを使用している Windows 10/11 を使用している場合でも、追加のソフトウェアを使用せずに Windows Server を使用している場合でも、RAM ディスクを起動して実行するのに役立ちます。注意点として、RAM ディスクは揮発性であるため、何らかの保存/復元ルーチンを設定しない限り、再起動時に消去されます。これは面倒ですが、可能です。基本的に、キャッシュまたは一時フォルダー用の超高速の仮想ドライブが作成され、パフォーマンスがわずかに向上します (設定によっては予想以上に向上することもあります)。

Windows 10/11およびServerでRAMディスクのセットアップを修正する方法

Windows 10/11用のImDiskツールキットを使用する

これは無料で軽量、そしてシンプルという点で私のお気に入りです。オープンソースなので、マルウェアやジャンクウェアの心配もありません。問題は、WindowsにはRAMディスクをワンクリックで作成する方法がないため、サードパーティ製のツールが必要になることです。ImDiskはかなり信頼性が高く、あるマシンでは1回でうまくいきましたが、別のマシンでは再起動が必要でした。Windowsは必要以上に難しくする必要があるからです。

まず、SourceForgeからImDisk Toolkitを入手します。インストール後(インストーラーから実行)、デスクトップのショートカットからRamDisk Configurationをinstall.bat開きます。

「基本」タブでRAMディスクのサイズを設定します。勇気がない限り、RAM全体の20~30%を超えるサイズは割り当てないでください。R:\などのドライブ文字を割り当て、Windowsの起動時に自動起動するかどうかを切り替えます(常に利用できるようにしておくと便利です)。特定のアプリでこの高速ドライブを使用したい場合は、キャッシュフォルダをそこにリダイレクトすると良いでしょう。これは、シンボリックリンク(コマンド)を使えば簡単に行えます。再起動時の作業を容易にするには、 「データ」mklink /jタブでRAMディスクの保存イメージのディレクトリを設定し、「システムシャットダウン時に同期」にチェックを入れます。こうすることで、シャットダウン前にキャッシュが保存され、起動時に再読み込みされます。

動作を確認するには、ファイルエクスプローラーを開いて新しいドライブが表示されるかどうかを確認してください。ドライブが見つからない、またはマウントされていない場合は、Windowsを再起動するか、設定を再確認すると改善する可能性があります。一部のマシンではこの方法が少し不安定な場合があり、再起動すると状況が改善することがあります。

シンボリックリンクとアプリ設定によるキャッシュ使用の最適化

ここからがちょっと面白いのですが、少し面倒でもあります。シンボリックリンクを作成することで、アプリのキャッシュフォルダをRAMドライブに移動できます。アプリはキャッシュがローカルディスクにあると錯覚しますが、実際には高速なRAMが使われています。例えばMicrosoft Edgeの場合、次のようなコマンドを実行できます。

mklink /j "%userprofile%\AppData\Local\Microsoft\Edge\User Data\Default\Cache\" "R:\edge\Default\Cache" mklink /j "%userprofile%\AppData\Local\Microsoft\Edge\User Data\Default\Code Cache\" "R:\edge\Default\Code Cache" mklink /j "%userprofile%\AppData\Local\Microsoft\Edge\User Data\Default\Service Worker\CacheStorage\" "R:\edge\Default\Service Worker\CacheStorage"

TeamsやChromeの場合も同様です。アプリの起動オプションでキャッシュフォルダを指定するだけです。Chromeの場合は、以下のショートカットを微調整します。

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disk-cache-dir="R:\Chrome"

この方法では、Chrome はキャッシュ データを RAM に書き込み、SSD の消耗を減らし、読み込み時間を改善します (RAM ディスクが十分に高速であることが前提)。

パフォーマンスチェックと実践的なヒント

セットアップが完了したら、CrystalDiskMarkなどのツールを使用してRAMディスクをテストすることをお勧めします。RAMディスクが適切に設定されていれば、NVMe SSDよりも2~3倍高速な速度が見られるはずです。ただし、実際のパフォーマンスはRAMとマザーボードの構成によって異なる場合があります。また、一部の設定では、シンボリックリンク方式やアプリ固有の調整がすぐにはうまく機能しない可能性があり、再起動や再設定が必要になる場合があります。

iSCSI を使用して Windows Server に RAM ディスクを作成する

ここから少し複雑になります。Windows に内蔵されている iSCSI 機能を使えば、追加のアプリなしで RAM ディスクを作成できます。これは少々奇抜ですが、サーバーには効果的です。サーバーマネージャー > 役割と機能の追加 から、iSCSI ターゲットサーバーの役割を有効にする必要があります。次に、Windows Defender ファイアウォールで必要なポート(3260 など)を開く必要があります。これは PowerShell を使って実行できます。

Set-NetFirewallRule -Name MsiScsi-in-TCP -Enabled True Set-NetFirewallRule -Name MsiScsi-out-TCP -Enabled True

次に、 HKLM\Software\Microsoft\iSCSI TargetのレジストリAllowLoopBack値を1に設定し、サーバーが自身の iSCSI ターゲットに接続できるようにします(少し複雑ですが)。次に、仮想ディスクを作成します(最初は 5GB 程度が適切です)。

New-IscsiVirtualDisk -Path "ramdisk:testRAM.vhdx" -Size 5GB

次のようなコマンドでターゲットを設定します。

New-IscsiServerTarget -TargetName targetRAMDisk -InitiatorIds @("IPAddress:xxx.xxx.xxx.xxx")

サーバーのiSCSIイニシエーターツールから接続します。接続したら、diskmgmt.mscを開いてドライブを初期化/フォーマットします。つまり、書き込み可能な適切なドライブレターに変換します。この部分はスクリプト化する必要があるかもしれません(私は実際にスクリプト化しました。コマンドラインの魔法がたくさん使われていました)。

ただし、この設定はImDiskなどの専用ツールを使うよりも複雑で、パフォーマンスが少し遅くなる傾向があることを覚えておいてください。また、サーバーを再起動する際には、プロセスを自動化しない限り、すべてを再作成する必要があります。それでも、Windowsがネイティブにこれを実行できることは便利です。

作業が終わったときや、作業が混乱しているときにクリーンアップするには:

Remove-IscsiVirtualDiskTargetMapping -TargetName targetRAMDisk -DevicePath "ramdisk:testRAM.vhdx" Remove-IscsiServerTarget -TargetName targetRAMDisk Remove-IscsiVirtualDisk -Path "ramdisk:testRAM.vhdx"

RAMディスク用の組み込みツールを使うのは、サードパーティ製のオプションほど簡単ではありませんが、PowerShellとレジストリ編集に慣れている方なら可能です。また、サーバー設定をいじくり回すのが好きな方にとっても興味深いプロジェクトです。