이 문서에서는 Windows에서 SQL Server 2016(13.x) 이상에 대한 PMEM(영구 메모리)을 구성하는 방법을 설명합니다.
개요
SQL Server 2019(15.x)에는 영구 메모리를 사용하는 여러 메모리 내 데이터베이스 기능이 있습니다. 이 문서에서는 Windows에서 SQL Server에 대한 영구 메모리를 구성하는 데 필요한 단계를 설명합니다.
메모
깨달음이라는 용어는 영구 메모리 인식 파일 시스템과 함께 작업하는 개념을 전달하기 위해 도입되었습니다. NTFS 파일 시스템에 대한 DAX(직접 액세스) 확장은 커널 공간에서 사용자 공간으로 파일을 메모리 매핑하는 기능을 제공합니다. 파일이 사용자 공간에 매핑된 메모리인 경우 애플리케이션은 커널 I/O 스택을 완전히 우회하여 메모리 매핑된 파일에 직접 로드/저장 지침을 실행할 수 있습니다. 이는 "인식된" 파일 액세스 방법으로 간주됩니다. Windows Server 2022를 기준으로 이 인식 기능은 Windows 및 Linux 플랫폼 모두에서 사용할 수 있습니다.
디바이스 구성
PMEM 디바이스에 대한 네임스페이스 만들기
Windows에서 ipmctl
유틸리티를 사용하여 PMEM 디스크(Linux의 네임스페이스라고 함)를 구성합니다. Intel® Optane™ 관련 지침은 여기서찾을 수 있습니다. 다른 Windows 버전에서 지원되는 PMEM 하드웨어에 대한 세부 정보는 영구 메모리이해 및 배포에 있습니다. PMEM 디스크는 PMEM NVDIMM 간에 인터리브되어야 하며 디바이스의 메모리 영역에 대한 다양한 유형의 사용자 공간 액세스를 제공할 수 있습니다. Windows의 인터리브 집합에 대한 자세한 내용은 영구 메모리이해 및 배포를 참조하세요.
PMEM 디스크
PowerShell을 사용하여 PMEM 디스크 검사
#Get information about all physical disks
Get-PhysicalDisk
#Review logical configuration of PMEM disks
Get-PmemDisk
#Get information about PMEM devices
Get-PmemPhysicalDevice
#Get information about unused PMEM regions
Get-PmemUnusedRegion
BTT 및 DAX
기본적으로 New-PmemDisk
원하는 FSDax
모드를 사용합니다. 원자성은 BlockTranslationTable
대신 None
기본값으로 설정됩니다. 지원 관점에서 필요한 섹터 모드 의미 체계를 모방하려면 트랜잭션 로그에 대해 BTT를 사용하도록 설정해야 합니다. 일반적으로 NTFS에서 BTT 사용하는 것이 좋지만, DAX필요한 경우와 같이 큰 페이지를 사용할 때는 BTT를 사용하지 않는 것이 좋습니다.
Get-PmemUnusedRegion | New-PmemDisk -Atomicity None
NTFS 볼륨 서식 지정
#Initialize PMEM Disk(s)
Get-PmemDisk | Initialize-Disk -PartitionStyle GPT
#Create New Partition(s) and Format the Volume(s) with DAX Mode
Get-PmemDisk[0] | `
New-Partition `
-UseMaximumSize `
-AssignDriveLetter `
-Offset 2097152 `
-Alignment 2097152 | `
Format-Volume `
-FileSystem NTFS `
-IsDAX:$True `
-AllocationUnitSize 2097152
파일 맞춤 및 오프셋
파티션 오프셋 확인
Get-Partition | Select-Object DiskNumber, DriveLetter, IsDAX, Offset, Size, PartitionNumber | fl
fsutil
사용하여 특정 파일의 파일 맞춤을 확인합니다. 파일 크기는 2 MB의 배수여야 합니다.
fsutil dax queryFileAlignment A:\AdventureWorks2022_A.mdf
PMEM 대체
PMEM 디스크 재설정
PMEM 모듈을 교체할 때마다 다시 프로비전해야 합니다.
메모
PMEM 디스크를 제거하면 해당 디스크의 데이터가 손실됩니다.
# Remove all PMEM disks
Get-PmemDisk | Remove-PmemDisk -Confirm:$false
PMEM 모듈 지우기
PMEM 모듈에서 데이터를 영구적으로 지우려면 Initialize-PmemPhysicalDevice
PowerShell cmdlet을 사용합니다.
# Reinitialize all PMEM disks
Get-PmemPhysicalDevice | Initialize-PmemPhysicalDevice -Confirm:$false
참고 항목
PMEM을 조작하기 위한 다른 cmdlet은 PowerShell 참조 설명서의 PersistentMemory 참조하세요.