Compreender e configurar o DAX

O DAX (acesso direto) trata os dispositivos de memória persistente como memória endereçável por bytes para obter a menor latência, dando acesso direto à memória endereçável por bytes, em vez de seguir as convenções normais de E/S do sistema de arquivos. O aplicativo modifica diretamente a memória persistente, ignorando a sobrecarga de software da pilha de E/S. Quando usado corretamente pelo código com reconhecimento de DAX (ou seja, por dados de mapeamento de memória), pode proporcionar benefícios significativos de desempenho. No entanto, o DAX tem uma série de problemas e não proporcionará benefícios significativos sem código com reconhecimento de DAX.

No Windows Server 2019 e posteriores, você só pode criar um volume DAX em uma configuração de Espaços de Armazenamento ou Espaços de Armazenamento Diretos que usa um só disco de memória persistente, sem paridade nem redundância. Você não pode usar DAX em mais de um disco de memória persistente e só pode usar DAX com NTFS.

Observação

Não há suporte para DAX em ambientes do Azure Stack HCI.

DAX e BTT (tabela de conversão de blocos)

Se você não usar o DAX corretamente, poderá ocorrer perda de dados. É altamente recomendável que você use o DAX com a BTT (tabela de conversão de blocos) para se proteger contra "gravações interrompidas" que podem ocorrer no caso de uma falha de energia ou interrupção do sistema. A BTT atenua esse risco fornecendo semântica de atualização do setor atômico para dispositivos de memória persistente, essencialmente habilitando gravações de setor no estilo bloco para que os aplicativos consigam evitar a mistura de dados antigos e novos em um cenário de falha.

Embora seja recomendável habilitar o BTT na maioria dos volumes DAX para evitar submeter os metadados do NTFS a problemas de gravação interrompida, a desvantagem do BTT é que ele pode afetar o uso de páginas de memória "grandes" e "enormes" em um volume DAX porque ocorrerão remapeamentos para operações de metadados. Se você quiser usar páginas de memória grandes e muito grandes para suas seções mapeadas de memória, não ative BTT.

Criar um volume DAX usando Windows PowerShell

Como o DAX é propriedade do sistema de arquivos, ele deve ser especificado ao formatar um volume NTFS.

Depois de criar um volume, use a opção -IsDax com o cmdlet Format-Volume para formatar o volume a ser habilitado para DAX.

Format-Volume -IsDax:$true

O snippet de código a seguir cria um volume DAX em um disco de memória persistente.

# Here we use the first pmem disk to create the volume as an example
$disk = (Get-PmemDisk)[0] | Get-PhysicalDisk | Get-Disk
# Initialize the disk to GPT if it is not initialized
If ($disk.partitionstyle -eq "RAW") {$disk | Initialize-Disk -PartitionStyle GPT}
# Create a partition with drive letter 'S' (can use any available drive letter)
$disk | New-Partition -DriveLetter S -UseMaximumSize

   DiskPath: \\?\scmld#ven_8980&dev_097a&subsys_89804151&rev_0018#3&1b1819f6&0&03018089fb63494db728d8418b3cbbf549997891#{53f56307-b6
bf-11d0-94f2-00a0c91efb8b}

PartitionNumber  DriveLetter Offset                                               Size Type
---------------  ----------- ------                                               ---- ----
2                S           16777216                                        251.98 GB Basic

# Format the volume with drive letter 'S' to DAX Volume
Format-Volume -FileSystem NTFS -IsDax:$true -DriveLetter S

DriveLetter FriendlyName FileSystemType DriveType HealthStatus OperationalStatus SizeRemaining      Size
----------- ------------ -------------- --------- ------------ ----------------- -------------      ----
S                        NTFS           Fixed     Healthy      OK                    251.91 GB 251.98 GB

# Verify the volume is DAX enabled
Get-Partition -DriveLetter S | fl

UniqueId             : {00000000-0000-0000-0000-000100000000}SCMLD\VEN_8980&DEV_097A&SUBSYS_89804151&REV_0018\3&1B1819F6&0&03018089F
                       B63494DB728D8418B3CBBF549997891:WIN-8KGI228ULGA
AccessPaths          : {S:\, \\?\Volume{cf468ffa-ae17-4139-a575-717547d4df09}\}
DiskNumber           : 2
DiskPath             : \\?\scmld#ven_8980&dev_097a&subsys_89804151&rev_0018#3&1b1819f6&0&03018089fb63494db728d8418b3cbbf549997891#{5
                       3f56307-b6bf-11d0-94f2-00a0c91efb8b}
DriveLetter          : S
Guid                 : {cf468ffa-ae17-4139-a575-717547d4df09}
IsActive             : False
IsBoot               : False
IsHidden             : False
IsOffline            : False
IsReadOnly           : False
IsShadowCopy         : False
IsDAX                : True                   # <- True: DAX enabled
IsSystem             : False
NoDefaultDriveLetter : False
Offset               : 16777216
OperationalStatus    : Online
PartitionNumber      : 2
Size                 : 251.98 GB
Type                 : Basic

Próximas etapas

Para informações relacionadas, confira também: