Computer >> 컴퓨터 >  >> 시스템 >> Windows Server

Windows Server에서 서드파티 프로그램 없이 iSCSI로 RAM 디스크 만드는 방법

RAM 디스크란 무엇인가?

RAM 디스크(RAM Disk)는 메모리(RAM)의 여유 공간에 생성되는 가상 디스크로, 운영체제는 이를 하나의 독립된 물리적 디스크로 인식합니다. 데이터가 고속 RAM에 저장되기 때문에 이 디스크에서의 모든 읽기/쓰기 작업은 거의 즉각적으로 수행되며, SSD보다도 훨씬 빠릅니다. 참고로 최고 성능의 SSD 전송 속도가 약 560MB/s 수준인 반면, DDR4 메모리는 12,000~25,000MB/s에 달합니다.

RAM 디스크는 여유 메모리가 넉넉한 시스템에서 사용하는 것이 좋습니다. 애플리케이션이나 시스템의 캐시 및 임시 파일, 임시 SQL 데이터베이스 등을 RAM 디스크에 배치하면 애플리케이션과 데이터베이스의 성능을 크게 향상시킬 수 있습니다.

서드파티 소프트웨어 없이 RAM 디스크 만들기

일반적으로 Windows에는 RAM 디스크를 생성하는 내장 도구가 없어 AMD RAMDisk, ImDisk, PassMark OSFMount, StarWind RAM Disk 같은 서드파티 소프트웨어를 사용해야 합니다. 하지만 Windows Server에서는 iSCSI 드라이버를 활용하면 별도의 프로그램 설치 없이 RAM 디스크를 만들 수 있습니다.

1단계: iSCSI Target Server 구성 요소 설치

먼저 파일 및 저장소 서비스(File and Storage Services) 역할에 포함된 iSCSI Target Server 구성 요소를 설치합니다. 서버 관리자의 '역할 및 기능 추가' 마법사를 통해 설치할 수 있습니다.

Windows 방화벽이 활성화되어 있다면 iSCSI 서비스 트래픽을 허용해야 합니다.

2단계: 루프백 인터페이스 트래픽 허용

iSCSI가 루프백(loopback) 인터페이스로 통신할 수 있도록 하려면 레지스트리 키 HKLM\Software\Microsoft\iSCSI Target에서 DWORD 값 AllowLoopBack1로 변경해야 합니다. PowerShell에서 다음 한 줄 명령으로 간단히 변경할 수 있습니다:

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

3단계: 가상 RAM 디스크 생성

PowerShell 콘솔을 열고 다음 명령으로 5GB 크기의 가상 RAM 디스크를 생성합니다:

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

4단계: iSCSI 대상(Target) 생성 및 연결

이제 서버의 IP 주소(localhost가 아닌 실제 IP!)를 지정하는 iSCSI 대상을 생성합니다:

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

생성한 RAM 디스크를 iSCSI 대상에 연결합니다:

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

5단계: iSCSI 초기자(Initiator)로 연결

서버 관리자를 통해 iSCSI 초기자 관리 콘솔을 실행합니다. 대상(Targets) 탭에서 서버의 IP 주소를 입력하고 빠른 연결(Quick Connect)을 클릭하여 iSCSI 대상을 추가합니다.

명령줄로 연결하려면 다음 명령을 사용할 수 있습니다:

Get-IscsiTarget | Connect-IscsiTarget

6단계: 디스크 초기화 및 포맷

디스크 관리(Disk Management) 콘솔을 열고 새 5GB 디스크가 나타나는지 확인합니다. 이것이 바로 우리가 만든 RAM 디스크입니다. 디스크를 초기화하고 파티션을 생성한 뒤 포맷하고 드라이브 문자를 할당합니다.

내장 저장소 관리 모듈인 Storage의 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

RAM 디스크 활용 및 주의 사항

이제 애플리케이션 파일을 RAM 디스크로 옮기고 해당 소프트웨어가 RAM 디스크를 사용하도록 설정을 변경하면 됩니다.

주의: 서버를 재부팅하면 RAM 디스크와 그 안의 모든 내용이 사라지며, 다시 생성해야 합니다. 일부 RAM 디스크 생성 서드파티 프로그램은 RAM 디스크의 데이터를 하드 드라이브의 파일로 저장하는 기능을 제공하여, 시스템 재시작 시 해당 데이터를 추출해 다시 RAM 디스크로 옮겨줍니다. 중요한 데이터를 다룬다면 이러한 기능을 갖춘 도구를 고려하는 것이 좋습니다.

RAM 디스크 삭제 방법

RAM 디스크를 제거하려면 다음 명령을 순서대로 실행합니다:

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