SQL Server on Windows의 PMEM(영구 메모리) 구성

이 문서에서는 Windows에서 SQL Server 2016 (13.x) 이상용 PMEM(영구적 메모리)을 구성하는 방법을 설명합니다.

개요

SQL Server 2019(15.x)에는 영구 메모리를 사용하는 여러 메모리 내 데이터베이스 기능이 있습니다. 이 문서에서는 SQL Server on Windows용 영구 메모리를 구성하는 데 필요한 단계를 설명합니다.

참고

‘인식’이라는 용어는 영구 메모리 인식 파일 시스템의 작업 개념을 전달하기 위해 도입되었습니다. 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을 사용하여 특정 파일의 파일 맞춤을 확인합니다. 파일 크기는 2MB의 모듈로여야 합니다.

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를 참조하세요.