Configurar Espaços de Armazenamento com um cache de write-back de NVDIMM-N
Aplica-se a: SQL Server
O Windows Server 2016 introduziu suporte a dispositivos NVDIMM-N que permitem operações de E/S (entrada/saída) extremamente rápidas. Uma maneira interessante de usar dispositivos como esses é como um cache com write-back para obter latências de gravação baixas. Este artigo aborda como configurar um espaço de armazenamento espelhado com um cache de write-back de NVDIMM-N espelhado como uma unidade virtual para armazenar o log de transações do SQL Server. Se você pretende utilizá-lo para armazenar também outros dados ou tabelas de dados, é possível incluir mais discos no pool de armazenamento, ou criar vários pools, caso o isolamento seja importante.
Identificar os discos certos
A configuração dos espaços de armazenamento no Windows Server 2016, especialmente com recursos avançados, como caches de write-back, é feita com mais facilidade por meio do PowerShell. A primeira etapa é identificar quais discos devem fazer parte do pool de Espaços de Armazenamento com base nos quais o disco virtual será criado. NVDIMM-Ns têm um tipo de mídia e tipo de barramento de SCM (memória de classe de armazenamento) que pode ser consultado por meio do cmdlet Get-PhysicalDisk
do PowerShell.
Get-PhysicalDisk | Select FriendlyName, MediaType, BusType
Observação
Com dispositivos NVDIMM-N, você não precisa mais selecionar especificamente os dispositivos que podem ser destinos do cache de write-back.
Para criar um disco virtual espelhado com cache de write-back espelhado, são necessários, pelo menos, dois NVDIMM-Ns e dois outros discos. Atribuir os discos físicos desejados a uma variável antes da criação do pool facilita o processo.
$pd = Get-PhysicalDisk | Select FriendlyName, MediaType, BusType | WHere-Object {$_.FriendlyName -like 'MK0*' -or $_.FriendlyName -like '2c80*'}
A captura de tela mostra a variável $pd retornada, bem como os dois SSDs e dois NVDIMM-Ns aos quais ela foi atribuída, usando o seguinte cmdlet do PowerShell:
$pd | Select FriendlyName, MediaType, BusType
Criar o pool de armazenamento
Usando a variável $pd que contém PhysicalDisks, é fácil criar o pool de armazenamento usando o cmdlet New-StoragePool
do PowerShell.
New-StoragePool -StorageSubSystemFriendlyName "Windows Storage*" -FriendlyName NVDIMM_Pool -PhysicalDisks $pd
Criar o disco virtual e o volume
Agora que um pool foi criado, a próxima etapa é criar um disco virtual e formatá-lo. Nesse caso, apenas um disco virtual será criado e o cmdlet New-Volume
do PowerShell poderá ser usado para simplificar esse processo:
New-Volume -StoragePool (Get-StoragePool -FriendlyName NVDIMM_Pool) -FriendlyName Log_Space -Size 300GB -FileSystem NTFS -AccessPath S: -ResiliencySettingName Mirror
O disco virtual foi criado, inicializado e formatado com NTFS. A captura de tela abaixo mostra que ele tem um tamanho de 300 GB e um tamanho de cache de gravação de 1 GB, que será hospedado nos NVDIMM-Ns.
Agora você pode exibir esse novo volume visível em seu servidor. Agora você pode usar essa unidade para o log de transações do SQL Server.