Создадим RAM диск на Windows Server 2012 R2. Выделим из оперативки 32 Гб в отдельный диск R. Используем для этого средства Windows через драйвер iSCSI.
Для создания RAM диска нам понадобится оперативка. Вставляем в сервер память или выделяем её виртуальной машине:
Итак, 32 Гб оперативки добавили.
Добавляем серверу роль iSCSI Target Server:
Настраиваем Windows Firewall. Выполняем:
firewall.cpl
Запускается оснастка Windows Firewall. Нажимаем Allow an app or feature through Windows Firewall:
Выбираем iSCSI Service и ставим галки на Domain, Private, Public:
В настройках реестра убеждаемся в наличие значения:
HKLM\Software\Microsoft\iSCSI Target
Value Name: AllowLoopBack
Type: REG_DWORD
Value: 1
Запускаем Powershell и создаём виртуальный диск как Ramdisk:
New-IscsiVirtualDisk -Path "ramdisk:tempdbRAM.vhdx" -Size 32GB
Создаём target iSCSI:
New-IscsiServerTarget -TargetName targetRAM -InitiatorIds @("IPAddress:10.10.30.10")
Я сначала пробовал на 127.0.0.1, но что-то не срослось. Пришлось использовать локальный IP адрес, на нём всё завелось.
Мапим Ramdisk на target iSCSI:
Add-IscsiVirtualDiskTargetMapping -TargetName targetRAM -DevicePath "ramdisk:tempdbRAM.vhdx"
Запускаем консоль Server Manager и кликаем Tools > iSCSI Initiator:
Просят запустить iSCSI сервис, соглашаемся:
Запускается настройка iSCSI Initiator Properties:
Указываем в Target адрес, у меня в коде выше был 10.10.30.10, кликаем Quick Connect.
Login Succeeded. Всё в порядке. В оснастке Disk Management можно увидеть новый диск:
Настроил его как R.
Тестируем с помощью ATTO Disk Benchmark.
ATTO DIsk Benchmark - тестируем скорость накопителей
И видим засаду: скорость чтения/записи очень мала, по сравнению с RAM диском от WinRamTech Ramdisk Enterprise:
Создание RAM диска на Windows Server 2012 R2 средствами WinRamTech Ramdisk Enterprise
У технологии есть свои плюсы и минусы. Не требуется сторонний софт, можно презентовать диск другому серверу. Но низкая скорость портит всё удовольствие. Возможно, есть способы ускорить, я вникать не стал.
Как всё это разобрать
Удаляем диск, потом:
Remove-IscsiVirtualDiskTargetMapping -TargetName targetRAM -DevicePath "ramdisk:tempdbRAM.vhdx"
Remove-IscsiServerTarget -TargetName targetRAM
Remove-IscsiVirtualDisk -Path "ramdisk:tempdbRAM.vhdx"