Як створити RAM диск в оперативній пам'яті засобами Windows Server

RAM диск - це віртуальний диск, створений у вільній області оперативної пам'яті, який сприймається операційною системою як окремий фізичний диск. За рахунок, того, що RAM диск зберігається в швидкої оперативної пам'яті, всі операції читання / запису з такого диска виконуються майже миттєво, навіть швидше, ніж при використанні SSD накопичувача (у найпродуктивніших SSD швидкість передачі даних зараз становить близько 560МБ / с, в той час як у пам'яті DDR4 - 12000-25000МБ / с).

Використання RAM диска доцільно в системах з надлишком оперативної пам'яті. На такому RAM диску можна розміщувати кеш і тимчасові файли додатків / системи, тимчасові бази SQL, тим самим можна домогтися істотного збільшення продуктивності додатків.

В операційній системі Windows відсутні вбудовані засоби створення RAM-дисків, тому в цих цілях доводиться використовувати сторонні програми (AMD RAMDisk, ImDisk, PassMark OSFMount, StarWind RAM Disk і т.д.).

Однак в Windows Server ви можете створити RAM диск і без використання сторонніх програм. Для цього можна скористатися драйвером iSCSI.

В першу чергу на сервері потрібно встановити компонент iSCSI Target Server (Входить до складу ролі File and Storage Services).

Якщо у вас включений файервол Windows, Вам потрібно включити трафік для служби iSCSI Service.

Щоб дозволити трафік на loopback інтерфейс для iSCSI, потрібно в гілці реєстру HKLM \ Software \ Microsoft \ iSCSI Target змінити значення DWORD параметра AllowLoopBack на 1. Можна змінити ключ реєстру з PowerShell однією командою:

Set-ItemProperty -Path 'HKLM: \ SOFTWARE \ Microsoft \ iSCSI Target' -Name AllowLoopBack -Value 1

Тепер відкрийте консоль PowerShell і створіть віртуальний RAM диск розміром 5 Гб командою:

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

Тепер потрібно створити iSCSI таргет:

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

Підключимо RAM диск в створений iSCSI таргет

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

Тепер потрібно запустити консоль iSCSI Initiator через Server Manager

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

Тепер відкрийте консоль управління дисками і перевірте, що у вас з'явився новий диск розміром 5 Гб. Це і є той самий RAM диск. Ініціалізуйте, розмітьте і відформатуйте даний диск. Призначте йому букву диска.

Тепер ви можете перенести необхідні файли на RAM диск і переналаштувати ПО на використання даного диска.

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

У деяких сторонніх програмах для створення RAM дисків є можливість збереження даних RAM диска в файл на жорсткому диску. Після перезавантаження системи дані витягуються і поміщаються на RAM диск.