如何在Windows服务器上创建RAM磁盘?
RAM磁盘是在内存(RAM)的可用区域创建的虚拟磁盘,操作系统将其视为单独的物理磁盘。由于RAM磁盘存储在快速RAM中,该磁盘上的所有读/写操作几乎都是即时执行的,甚至比使用SSD时更快(最高效的SSD的数据传输速度约为560 MB/s,而DDR4内存为12000-25000 MB/s)
建议在有多余可用内存的系统中使用RAM磁盘。我们可以使用RAM磁盘来放置应用程序/系统、临时SQL数据库的缓存或者临时文件。因此,我们可以显著提高应用程序和数据库的性能。
在Windows操作系统中,没有集成的工具来创建RAM磁盘,所以必须使用第三方软件(AMD RAMDisk、ImDisk、PassMark OSFMount、StarWind RAM Disk等)。
但是,我们可以在Windows Server中创建RAM磁盘,而无需使用任何第三方应用程序。为此,我们可以使用iSCSI驱动程序。
首先,安装 iSCSI目标服务器组件(它是文件和存储服务角色的一部分)。
如果启用了Windows防火墙,则必须允许iSCSI服务流量。
要允许到iSCSI环回接口的流量,请将
HKLM\Software\Microsoft\iSCSI Target
注册表项中的DWORD参数 AllowLoopBack的值更改为 1。我们可以使用单个命令从PowerShell更改注册表参数:
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\iSCSI Target' -Name AllowLoopBack -Value 1
现在打开PowerShell控制台并使用以下命令创建5 GB虚拟RAM磁盘:
New-IscsiVirtualDisk -Path "ramdisk:testRAM.vhdx" -Size 5GB
现在,我们需要创建一个指向服务器IP地址的iSCSI目标(不是本地主机!):
New-IscsiServerTarget -TargetName targetRAMDisk -InitiatorIds @("IPAddress:10.1.1.200")
将RAM磁盘连接到创建的iSCSI目标:
Add-IscsiVirtualDiskTargetMapping -TargetName targetRAMDisk -DevicePath "ramdisk:testRAM.vhdx"
通过服务器管理器运行iSCSI启动器管理控制台。
在 目标页签中指定服务器的IP地址,点击 快速连接添加iSCSI目标。
我们可以使用以下命令连接iSCSI目标:
Get-IscsiTarget | Connect-IscsiTarget
打开磁盘管理控制台,确保新的5 GB磁盘出现在那里。这是我们创建的RAM磁盘。初始化磁盘,创建一个分区并格式化它。给它分配一个磁盘号。
我们可以使用内置磁盘和分区管理模块 存储中的PowerShell cmdlet初始化RAM磁盘并为其分配一个驱动器号,命令行如下:
Get-Disk | Where partitionstyle -eq 'raw' | Initialize-Disk -PartitionStyle MBR -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -NewFileSystemLabel "disk2" -Confirm:$false