Настройка дисковых пространств с помощью кэша обратной записи NVDIMM-N

Применимо к:SQL Server

В Windows Server 2016 добавлена поддержка устройств NVDIMM-N, которые обеспечивают высочайшую скорость операций ввода-вывода. Одним из привлекательных способов применения таких устройств является организация кэша обратной записи для обеспечения низкой задержки при записи. В этой статье описывается, как настроить зеркальное дисковое пространство с зеркальным кэшем обратной записи NVDIMM-N в качестве виртуального устройства для хранения журнала транзакций SQL Server. Если вы также хотите использовать его для хранения таблиц или иных данных, вы можете добавить в пул носителей больше дисков или создать несколько пулов для обеспечения изоляции.

Определение нужных дисков

Настраивать дисковые пространства в Windows Server 2016, особенно с расширенными функциями, такими как кэш обратной записи, проще всего с помощью PowerShell. Прежде всего следует определить, какие диски должны входить в пул дисковых пространств, на основе которого будет создаваться виртуальный диск. В устройствах NVDIMM-N применяется тип носителя и тип шины SCM (память класса хранилища), поддерживающий запросы посредством командлета PowerShell Get-PhysicalDisk.

Get-PhysicalDisk | Select FriendlyName, MediaType, BusType  

Screenshot of a Windows Powershell window showing the output of the Get-PhysicalDisk cmdlet.

Заметка

При использовании устройств NVDIMM-N больше не требуется выбирать целевые устройства для кэша обратной записи.

Для создания зеркального виртуального диска с зеркальным кэшем обратной записи требуется по крайней мере два устройства NVDIMM-N и еще два других диска. Присвоение нужных физических дисков переменной перед созданием пула позволяет упростить процесс.

$pd =  Get-PhysicalDisk | Select FriendlyName, MediaType, BusType | WHere-Object {$_.FriendlyName -like 'MK0*' -or $_.FriendlyName -like '2c80*'}  

На снимке экрана показана переменная $pd, а также присвоенные ей два диска SSD и два устройства NVDIMM-N, возвращенные с помощью следующего командлета PowerShell:

$pd | Select FriendlyName, MediaType, BusType  

Screenshot of a Windows Powershell window showing the output of the $pd cmdlet.

Создание пула носителей

Используя переменную $pd, содержащую физические диски, можно легко создать пул носителей с помощью командлета PowerShell New-StoragePool.

New-StoragePool -StorageSubSystemFriendlyName "Windows Storage*" -FriendlyName NVDIMM_Pool -PhysicalDisks $pd  

Screenshot of a Windows Powershell window showing the output of the New-StoragePool cmdlet.

Создание виртуального диска и тома

После создания пула следует выделить виртуальный диск и отформатировать его. В этом случае будет создан только один виртуальный диск, и процесс можно упростить с помощью командлета PowerShell New-Volume:

New-Volume -StoragePool (Get-StoragePool -FriendlyName NVDIMM_Pool) -FriendlyName Log_Space -Size 300GB -FileSystem NTFS -AccessPath S: -ResiliencySettingName Mirror  

Screenshot of a Windows Powershell window showing the output of the New-Volume cmdlet.

Виртуальный диск создан, инициализирован и отформатирован как NTFS. На снимке экрана ниже показано, что он имеет размер 300 ГБ и кэш обратной записи размером 1 ГБ, который будет размещаться на устройствах NVDIMM-N.

Screenshot of a Windows Powershell window showing the output of the Get-VirtualDisk cmdlet.

Теперь этот новый том можно увидеть на сервере. Этот диск можно использовать для хранения журнала транзакций SQL Server.

Screenshot of a File Explorer window on the This PC page showing the Log_Space drive.

Дальнейшие действия