Configurar o armazenamento para o SQL Server em VMs do Azure

Aplica-se a:SQL Server na VM do Azure

Este artigo ensina como configurar o armazenamento para o SQL Server em máquinas virtuais (VMs) do Azure implantadas por meio do Azure Marketplace usando o SSD Premium.

As VMs do SQL Server implantadas por meio de imagens do Marketplace seguem automaticamente as melhores práticas de armazenamento padrão que podem ser modificadas durante a implantação. Algumas dessas definições de configuração podem ser alteradas após a implantação.

Observação

Este artigo só é aplicável ao SQL Server nas VMs do Azure que usam o armazenamento Premium, não o armazenamento SSD Premium v2.

Pré-requisitos

Para usar as definições automatizadas de configuração de armazenamento, sua máquina virtual exige as seguintes características:

Novas VMs

As seções a seguir descrevem como configurar o armazenamento para novas máquinas virtuais do SQL Server.

Portal do Azure

Ao provisionar uma VM do Azure usando uma imagem de SQL Server da galeria, selecione Alterar configuração em Armazenamento na guia Configurações do SQL Server para abrir a página Configurar armazenamento. Você pode deixar os valores no padrão ou modificar o tipo de configuração de disco que melhor atenda às suas necessidades com base na carga de trabalho.

Screenshot that highlights the SQL Server settings tab and the Change configuration option.

Observação

Se você selecionou um tamanho de VM compatível, poderá usar o SSD Premium v2, que dá a você controle granular sobre tamanho de disco, IOPS e taxa de transferência.

Escolha o local da unidade para seus arquivos de dados e arquivos de log, especificando o tipo de disco e o número de discos. Use os valores de IOPS para determinar a melhor configuração de armazenamento para atender às suas necessidades comerciais. Escolher o armazenamento premium define o armazenamento em cache como Somente Leitura para a unidade de dados e Nenhum para a unidade de log, de acordo com as melhores práticas de desempenho de VM do SQL Server.

Screenshot from the Azure portal of the SQL Server VM Storage Configuration page during provisioning.

A configuração de disco é totalmente personalizável para que você possa configurar a topologia de armazenamento, o tipo de disco e o IOPS necessário para a carga de trabalho da VM do SQL Server. Você também poderá usar o Ultradisk como opção para Tipo de disco se a VM do SQL Server estiver em uma das regiões compatíveis e se você tiver habilitado discos ultra em sua assinatura.

Defina as configurações do seu banco de dados tempdb em Armazenamento Tempdb, como o local dos arquivos do banco de dados, bem como o número de arquivos, o tamanho inicial e o tamanho de aumento automático em MB.

  • Atualmente, durante a implantação, o número máximo de arquivos tempdb é 8, mas mais arquivos podem ser adicionados depois que a VM do SQL Server é implantada.
  • Se você configurar a instância tempdb do SQL Server no volume de SSD local D: conforme recomendado, a extensão SQL IaaS Agent gerenciará as pastas e as permissões necessárias ao fazer o reprovisionamento. Isso não exige que você tenha criado a máquina virtual SQL com uma imagem no Azure Marketplace.

Screenshot that shows where you can configure the tempdb storage for your SQL VM.

Além disso, você tem a capacidade de definir o cache para os discos. As VMs do Azure têm uma tecnologia de cache de várias camadas chamada Cache BLOB quando usada com Discos Premium. O Cache Blob usa uma combinação de RAM da Máquina Virtual e SSD local para cache.

O armazenamento em cache de disco no SSD Premium pode ser Somente Leitura, *Somente Gravação ou Nenhum.

  • O cache ReadOnly é altamente benéfico para arquivos de dados do SQL Server armazenados no Armazenamento Premium. O cache ReadOnly traz baixa latência de leitura, IOPS de leitura e taxa de transferência altas, pois as leituras são executadas no cache, que está dentro da memória da VM e do SSD local. Essas leituras são muito mais rápidas do que as leituras no disco de dados, que é do Armazenamento de blobs do Azure. O armazenamento Premium não conta as leituras servidas do cache para o IOPS e a taxa de transferência do disco. Portanto, o aplicativo é capaz de atingir uma Taxa de Transferência e IOPS total mais altos.

  • A configuração de cache Nenhum deve ser usada para os discos que hospedam o arquivo de log do SQL Server, pois o arquivo de log é escrito em sequência e não é beneficiado com o cache Somente Leitura.

  • O cache Somente Gravação não deve ser usado para hospedar arquivos do SQL Server, pois o SQL Server não dá suporte a consistência de dados com o cache Somente Gravação. A capacidade de desperdício de gravação dos cache de blobs ReadOnly e as latências serão ligeiramente aumentadas se as gravações passarem por camadas de cache de blobs ReadOnly.

    Dica

    A sua configuração de armazenamento deve corresponder às limitações impostas pelo tamanho da VM selecionada. A escolha de parâmetros de armazenamento que excedam o limite de desempenho do tamanho da VM resultará em aviso: The desired performance might not be reached due to the maximum virtual machine disk performance cap. Diminua o IOPS alterando o tipo de disco ou aumente o limite de desempenho, aumentando o tamanho da VM. Isso não irá parar o provisionamento.

Com base em suas opções, o Azure realiza as seguintes tarefas de configuração de armazenamento depois de criar a VM:

  • Cria e anexa os SSDs Premium na máquina virtual.
  • Configura os discos de dados para serem acessíveis ao SQL Server.
  • Configura os discos de dados em um pool de armazenamento com base nos requisitos de tamanho e desempenho (IOPS e taxa de transferência) especificados.
  • Associa o pool de armazenamento a uma nova unidade na máquina virtual.

Para obter uma explicação completa de como criar uma VM do SQL Server no portal do Azure, veja o tutorial de provisionamento.

Modelos do Gerenciador de Recursos

Se você usar os modelos do Resource Manager a seguir, dois discos de dados premium são conectados por padrão, sem nenhuma configuração de pool de armazenamento. No entanto, você pode personalizar esses modelos para alterar o número de discos de dados premium anexados à máquina virtual.

Modelo de Início Rápido

Você pode usar o modelo de início rápido a seguir para implantar uma VM do SQL Server usando a otimização de armazenamento.

Observação

Alguns tamanhos de VM podem não ter armazenamento temporário ou local. Se você implantar o SQL Server na VM do Azure sem armazenamento temporário, os arquivos de log e dados tempdb serão colocados na pasta de dados.

VMs existentes

Observação

O armazenamento só é configurável para VMs do SQL Server que foram implantadas a partir de uma imagem do SQL Server no Azure Marketplace e que atualmente não têm suporte para o SSD Premium v2.

Para VMs do SQL Server existentes implantadas por meio do Azure Marketplace, você pode modificar algumas configurações de armazenamento no portal do Azure.

Para modificar as configurações de armazenamento, abra o recurso Máquinas virtuais SQL e selecione Configuração de armazenamento em Configurações.

Screenshot that highlights the Configure option and the Storage Usage section.

Você pode modificar as configurações de disco das unidades que foram configuradas durante o processo de criação de VM do SQL Server. Ao selecionar Configurar, a página Estender a Unidade de Dados é aberta, permitindo que você altere o tipo de disco e adicione discos.

A screenshot from the Azure portal showing the Extend Data drive page, used to configure storage for an existing SQL Server VM.

Também é possível modificar as configurações de tempdb na página Configuração de armazenamento, como o número de arquivos, o tamanho inicial e a taxa de crescimento automático de tempdb. Selecione Configurar ao lado de tempdb para abrir a página Configuração de tempdb.

Escolha Sim ao lado de Configurar arquivos de dados do tempdb para modificar as configurações e depois escolha Sim ao lado de Gerenciar as pastas do banco de dados tempdb ao reiniciar para permitir que o Azure gerencie a configuração, a pasta e as permissões de tempdb a próxima vez que o serviço SQL Server for iniciado. Isso não exige que você tenha criado a máquina virtual SQL com uma imagem no Azure Marketplace.

Screenshot of the tempdb configuration page of the Azure portal from the SQL virtual machines resource page.

Reinicie o serviço do SQL Server para aplicar as alterações.

Alterações automatizadas

Essa seção fornece uma referência para as alterações de configuração de armazenamento realizadas automaticamente pelo Azure durante a configuração ou o provisionamento de VM do SQL Server no portal do Azure.

  • O Azure configura um pool de armazenamento com o armazenamento selecionado em sua VM. A próxima seção deste artigo fornece detalhes sobre a configuração de um pool de armazenamento.
  • A configuração de armazenamento automática sempre usa discos de dados P30 dos SSDs premium. Assim sendo, existe um mapeamento 1:1 entre o número de terabytes selecionado e o número de discos de dados conectados à VM.

Para saber mais sobre preços, consulte a página Preços de armazenamento na guia Armazenamento em disco .

Criação do pool de armazenamento

O Azure usa as configurações a seguir para criar o pool de armazenamento em VMs do SQL Server.

Configuração Valor
Tamanho da distribuição 64 KB
Tamanhos do disco 1 TB cada
Cache Ler
Tamanho da alocação Tamanho da unidade de alocação do NTFS de 64 KB
Recuperação Recuperação simples (sem resiliência)
Número de Colunas Número de discos de dados até 81

1 Depois que o pool de armazenamento é criado, você não pode alterar seu número de colunas.

Habilitar o cache

Para o SSD Premium, você pode alterar a política de armazenamento em cache no nível do disco. Você pode atualizar usando o portal do Azure, o PowerShell ou a CLI do Azure.

Para remover uma política de cache no portal do Azure, siga estas etapas:

  1. Pare o serviço SQL Server.

  2. Faça logon no Portal do Azure.

  3. Navegue até a máquina virtual, selecione Discos em Configurações.

    Screenshot showing the VM disk configuration pane in the Azure portal.

  4. Escolha a política de armazenamento em cache apropriada para o disco na lista suspensa: Somente Leitura ou Nenhum.

    Screenshot showing the disk caching policy configuration in the Azure portal.

  5. Depois que a alteração entrar em vigor, reinicialize a VM do SQL Server e inicie o serviço SQL Server.

Habilitar acelerador de gravação

Acelerador de Gravação é um recurso de disco disponível somente para máquinas virtuais (VMs) da série M. A finalidade da aceleração de gravação é aprimorar a latência de E/S das gravações em relação ao Armazenamento Premium do Azure, quando você precisa de latência de E/S de dígito único devido a cargas de trabalho OLTP críticas de alto volume ou ambientes de data warehouse.

Antes de habilitar o Acelerador de Gravação, revise algumas das restrições para confirmar que são aceitáveis para a sua empresa.

Interrompa toda atividade do SQL Server e desligue o serviço SQL Server antes de fazer alterações na política de aceleração de gravação.

Se os discos estiverem distribuídos, habilite a Aceleração de Gravação para cada disco individualmente. A VM do Azure deve ser desligada antes de fazer alterações.

Para habilitar a Aceleração de Gravação com o portal do Azure, siga estas etapas:

  1. Pare o serviço SQL Server. Se os discos estiverem distribuídos, desligue a máquina virtual.

  2. Faça logon no Portal do Azure.

  3. Navegue até a máquina virtual, selecione Discos em Configurações.

    Screenshot showing the VM disk configuration pane in the Azure portal.

  4. Escolha a opção de cache com Acelerador de Gravação para o disco na lista suspensa.

    Screenshot showing the write accelerator cache policy.

  5. Depois que a alteração entrar em vigor, inicie a máquina virtual e o serviço SQL Server.

Distribuição de discos

Para taxa de transferência mais alta, você pode adicionar outros discos de dados e usar a distribuição de discos. Analise a taxa de transferência e a largura de banda necessárias para seus arquivos de dados do SQL Server a fim de determinar o número de discos de dados, incluindo o log e o tempdb. Os limites de taxa de transferência e largura de banda variam de acordo com o tamanho da VM. Para saber mais, consulte Tamanho da VM.

  • Para Windows 8/Windows Server 2012 ou posterior, use os Espaços de Armazenamento com as seguintes diretrizes:

    1. Defina a intercalação (tamanho de faixa) como 64 KB (65.536 bytes), a fim de evitar o impacto no desempenho devido ao desalinhamento da partição. Isso deve ser definido com o PowerShell.

    2. Defina a contagem de colunas = número de discos físicos. Use o PowerShell ao configurar mais de 8 discos (não interface do usuário do Gerenciador do Servidor).

Por exemplo, o PowerShell a seguir cria um novo pool de armazenamento com o tamanho de intercalação de 64 KB e o número de colunas igual ao do disco físico no conjunto de armazenamento:

$PhysicalDisks = Get-PhysicalDisk | Where-Object {$_.FriendlyName -like "*2" -or $_.FriendlyName -like "*3"}

New-StoragePool -FriendlyName "DataFiles" -StorageSubsystemFriendlyName "Windows Storage on <VM Name>" `
    -PhysicalDisks $PhysicalDisks | New-VirtualDisk -FriendlyName "DataFiles" `
    -Interleave 65536 -NumberOfColumns $PhysicalDisks.Count -ResiliencySettingName simple `
    -UseMaximumSize |Initialize-Disk -PartitionStyle GPT -PassThru |New-Partition -AssignDriveLetter `
    -UseMaximumSize |Format-Volume -FileSystem NTFS -NewFileSystemLabel "DataDisks" `
    -AllocationUnitSize 65536 -Confirm:$false

No Windows Server 2016 e versões posteriores, o valor padrão para -StorageSubsystemFriendlyName é Windows Storage on <VM Name>

Problemas conhecidos

A opção Configurar disco ou o painel Configuração de Armazenamento no recurso de máquina virtual do SQL estão esmaecidos

O painel Configuração de Armazenamento poderá ficar esmaecido no portal do Azure se a extensão do Agente de IaaS do SQL estiver em um estado de falha. Repare a extensão do Agente de IaaS do SQL.

Configurar no painel Configuração de Armazenamento pode estar esmaecido se você tiver personalizado o pool de armazenamento ou se estiver usando uma imagem que não seja do Marketplace.

Eu tenho um disco com 1 TB de espaço não alocado que não consigo remover do pool de armazenamento

A opção de remover o espaço não alocado de um disco que pertence a um pool de armazenamento não existe.