Настройка дисковых пространств с помощью кэша обратной записи 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
Примечание.
При использовании устройств 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
Создание пула носителей
Используя переменную $pd, содержащую физические диски, можно легко создать пул носителей с помощью командлета PowerShell New-StoragePool
.
New-StoragePool -StorageSubSystemFriendlyName "Windows Storage*" -FriendlyName NVDIMM_Pool -PhysicalDisks $pd
Создание виртуального диска и тома
После создания пула следует выделить виртуальный диск и отформатировать его. В этом случае будет создан только один виртуальный диск, и процесс можно упростить с помощью командлета PowerShell New-Volume
:
New-Volume -StoragePool (Get-StoragePool -FriendlyName NVDIMM_Pool) -FriendlyName Log_Space -Size 300GB -FileSystem NTFS -AccessPath S: -ResiliencySettingName Mirror
Виртуальный диск создан, инициализирован и отформатирован как NTFS. На снимке экрана ниже показано, что он имеет размер 300 ГБ и кэш обратной записи размером 1 ГБ, который будет размещаться на устройствах NVDIMM-N.
Теперь этот новый том можно увидеть на сервере. Этот диск можно использовать для хранения журнала транзакций SQL Server.