Как создать RAM диск в оперативной памяти Windows?

Как создать RAM диск в оперативной памяти Windows?

RAM диск – это виртуальный диск, который создается в свободной области оперативной памяти и с точки зрения операционной системы выглядит как обычный локальный диск. Преимущество RAM Drive – очень высокая скорость чтения и записи на него (до 10 раз быстрее чем SSD, и до 2-3 раз чем NVME M.2). RAM диск можно использовать на компьютерах с большим объёмом RAM для хранения кеша и временных файлов приложений. Чаще всего RAM Drive используется для хранения кэша браузера, временных баз SQL, кэша приложений обработки графики, видео, рендеринга. При перезагрузке компьютера содержимое RAM диска обычно очищается.

Создать RAM диск в Windows 10 и 11

В Windows 10 и 11 нет встроенных средств для создания RAM дисков, поэтому нужно использовать сторонние программы (AMD RAMDisk, ImDisk, PassMark OSFMount, StarWind RAM Disk и т.д.).

В этом примере рассмотрим open-source утилиту ImDisk Toolkit (https://sourceforge.net/projects/imdisk-toolkit/). Ее преимущества:

  • Бесплатная
  • Компактная
  • Нет ограничений на максимальный размер RAM диска
  • Позволяет сохранять данные на RAM диске после выключения
  1. Скачайте и установите программу ImDisk Toolkit, запустив install.bat;Установка ImDisk Toolkit в Windows 10
  2. После установки откройте ярлык RamDisk Configuration на рабочем столе;
  3. На вкладке Basic нужно указать размер RAM диска (обычно рекомендуется использовать не более чем 20-30% RAM), назначить букву диска, указать нужно ли запускать RAM диск автоматически после загрузки Windows;Создать RAM Drive в Windows 10
  4. Можно автоматически перенаправить папки TEMP на RAM диск через переменные окружения или через символические ссылки;temp папки на RAM диске
  5. Нажмите Mount чтобы включить RAM Drive. Откройте проводник и проверьте, что в нем появится новый диск указанного вами размера.
  6. По умолчанию содержимое RAM диска очищается при перезагрузке Windows. Вы можете настроить автоматическое сохранение содержимого RAM диска в локальную папку при выключении компьютера. Для этого перейдите на вкладку Data, укажите целевой каталог, включите Synchronize at System Shutdown. При загрузке операционной системы содержимое этого каталога будет копироваться на RAM диск.Сохранять содержимое RAM диска в Windows

Вы можете перенести кэш приложений на RAM диск с помощью символьный ссылок Windows. Например, чтобы хранить кэш 1С на RAM-диске:

mklink /j %USERPROFILE%AppDataLocal1C1cv8 R:UserLocal
mklink /j %USERPROFILE%AppDataRoaming1C1cv8 R:UserRoaming

Чтобы браузер Google Chrome хранил данные на RAM диске, нужно добавить в ярлык его запуска следующий параметр:

"C:Program Files (x86)GoogleChromeApplicationchrome.exe" --disk-cache-dir="R:Chrome"

В таком режиме Google Chrome будет меньше изнашивать ваш SSD накопитель.

Скорость чтения и записи на RAM диск можно оценить с помощью утилиты Crystal Disk Mark. В нашем тесте скорость чтения/записи на RAM диск в DDR4 в 2-3 раза больше чем на SSD NVME M.2 накопитель.

производительность ram диска сравнить с nvme ssd

Создаем RAM диск с помощью встроенных средств Windows Server

Windows Server вы можете создать RAM диск без использования сторонних программ. Можно выделить часть оперативной памяти сервера с помощью драйвера iSCSI.

Установите компонент iSCSI Target Server с помощью Server Manager (File and Storage Services -> File and iSCSI Services)

Установка iSCSI Target Server

 

Откройте порты для службы iSCSI Service в Windows Defender Firewall. Можно разрешить доступ в графической консоли управления Windows Firewall или вы можете включить правила файервола с помощью PowerShell:

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

Открыть порты iscsi service в windows firewall

Чтобы разрешить трафик на loopback интерфейсе для iSCSI, измените в ветке реестра HKLMSoftwareMicrosoftiSCSI Target значение DWORD параметра AllowLoopBack на 1: Можно изменить значение параметра реестра из PowerShell командой:

Set-ItemProperty -Path 'HKLM:SOFTWAREMicrosoftiSCSI Target' -Name AllowLoopBack -Value 1

Затем создайте виртуальный RAM диск размером 5 Гб:

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

New-IscsiVirtualDisk

Теперь нужно создать iSCSI таргет:

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

Укажите здесь IP адрес вашего сетевого интерфейса.

Подключите RAM диск в созданный iSCSI таргет:

Add-IscsiVirtualDiskTargetMapping -TargetName targetRAMDisk -DevicePath "ramdisk:testRAM.vhdx"

New-IscsiServerTarget

Откройте консоль Server Manager -> Tools -> iSCSI Initiator.

iSCSI Initiator

На вкладке Targets укажите IP адрес вашего сервера, нажмите Quick Connect и подключите ваш iSCSI таргет.

iscsi terget Quick Connect

Подключить ISCSI Target также можно так:

Get-IscsiTarget | Connect-IscsiTarget

Теперь откройте консоль управления дисками (
diskmgmt.msс
), проверьте что у вас появился новый диск размером 5 Гб (это и есть ваш RAM диск). Инициализируйте, разметьте, отформатируйте диск, и назначьте ему букву диска.

инифиализация RAM диска в панели управления дисками

Инициализировать дик и назначить ему букву тоже можно с помощью встроенных PowerShell командлетов из модуля управления дисками:
Get-Disk | Where partitionstyle -eq 'raw' | Initialize-Disk -PartitionStyle MBR -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "disk2" -Confirm:$false

Теперь вы можете перенести необходимые файлы на RAM диск и перенастроить ПО на использование данного диска.

ram диск в проводнике

После перезагрузки сервера RAM диск удаляется (вместе со всем содержимым) и его нужно пересоздавать заново.

Но к сожалению при тесте оказалось, что производительность (iOPS) RAM диска, созданного через iSCSI таргет на Windows Server почти в 2 раза меньше, чем у RAM диска на базе ImDisk.

Windows 10
Как создать RAM диск в оперативной памяти Windows?