Compartilhar via


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  

Captura de tela de uma janela do Windows PowerShell mostrando a saída do cmdlet Get-PhysicalDisk.

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  

Captura de tela de uma janela do Windows PowerShell mostrando a saída do cmdlet $pd.

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  

Captura de tela de uma janela do Windows PowerShell mostrando a saída do cmdlet New-StoragePool.

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  

Captura de tela de uma janela do Windows PowerShell mostrando a saída do cmdlet New-Volume.

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.

Captura de tela de uma janela do Windows PowerShell mostrando a saída do cmdlet Get-VirtualDisk.

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.

Captura de tela de uma janela do Explorador de Arquivos na página Este Computador mostrando a unidade Log_Space.

Próximas etapas