Compartilhar via


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.

Captura de tela que realça a guia Configurações do SQL Server e a opção Alterar configurações.

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.

Captura de tela do portal do Azure da página Configuração de Armazenamento de VM do SQL Server durante o provisionamento.

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.

Captura de tela que mostra onde você pode configurar o armazenamento do tempdb para a VM do SQL.

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 modificar as configurações de disco em uma máquina virtual do Azure com o SQL Server instalado automaticamente, use o painel Discos.

Modificar unidades existentes

Para VMs do SQL Server existentes implantadas por meio do Azure Marketplace, é possível modificar algumas configurações de armazenamento no portal do Azure via recurso de máquinas virtuais SQL ou no painel Discos.

Para modificar as configurações de armazenamento, abra o recurso Máquinas virtuais SQL e selecione Configuração de armazenamento em Configurações, onde é possível:

  • Adicionar discos extras
  • Configurar ou expandir discos existentes

Captura de tela que realça a opção Configurar e a seção Uso de armazenamento.

Ao selecionar Configurar, a página Estender a Unidade de Dados é aberta, permitindo que você altere o tipo de disco e adicione discos. Você também pode adicionar discos por meio do painel Discos.

Uma captura de tela do portal do Azure que mostra a página Estender unidade de dados usada para configurar o armazenamento de uma VM do SQL Server existente.

Se você já atingiu o máximo de discos suportados para um determinado tamanho de VM, talvez seja necessário Redimensionar a VM.

Modificando tempdb

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.

Captura de tela da página de configuração do tempdb do portal do Azure na página de recursos de máquinas virtuais de SQL.

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

Aumentando o tamanho do disco temporário

Para aumentar o disco temporário, é necessário redimensionar a VM para uma SKU que oferece suporte a um tamanho de disco superior para armazenamento temporário.

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.

Observação

Use Optimize-StoragePoo e Optimize-Volume para reequilibrar a alocação de espaço em um pool e otimizar o desempenho para tipos de carga de trabalho que têm padrões de E/S aleatórios profundamente enfileirados.

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.

    Captura de tela que mostra o painel de configuração de disco da VM no portal do Azure.

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

    Captura de tela mostrando a configuração da política de cache de disco no portal do Azure.

  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.

    Captura de tela que mostra o painel de configuração de disco da VM no portal do Azure.

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

    Captura de tela mostrando a política de cache do acelerador de gravação.

  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

A página Armazenamento pode estar esmaecida no painel de recursos de máquinas virtuais do SQL no portal do Azure pelos seguintes motivos:

  • Sua extensão do Agente de IaaS do SQL está em estado de falha. Exclua e registre sua VM do SQL Server com a extensão mais uma vez.
  • Você personalizou seu pool de armazenamento.
  • Você está usando uma imagem que não é do Marketplace.
  • Você criou sua máquina virtual com discos não gerenciados. Há suporte apenas para discos gerenciados.

A opção Estender disco está esmaecida

A opção Estender disco pode ficar esmaecida pelos seguintes motivos:

  • Você personalizou seu pool de armazenamento. Se você precisar estender seu disco, adicione discos ao pool de armazenamento para ampliar o disco virtual.
  • Você alterou os nomes de disco virtual ou volume de seus valores padrão:
    • Nomenclatura do pool de armazenamento: SQLVMStoragePool1, SQLVMStoragePool2, SQLVMStoragePool3
    • Disco virtual: SQLVMVirtualDisk1, SQLVMVirtualDisk2, SQLVMVirtualDisk3
    • Volumes: SQLVMDATA1, SQLVMLOG e SQLVMTEMPDB
  • Você instalou um Cluster do Windows em sua VM do SQL Server, portanto, não há suporte para a extensão de discos.

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.

Meu log de transações está cheio

Revise Solucionar problemas de um log de transações cheio se o log encher.

Não é possível configurar o armazenamento com o recurso de máquinas virtuais SQL

O painel de configuração de armazenamento para o recurso de máquinas virtuais SQL no portal do Azure pode estar indisponível ou esmaecido ou selecionar Estender discos não faz nada nos seguintes cenários:

  • Máquinas virtuais com instâncias do SQL Server instaladas automaticamente. Atualmente, apenas imagens de VM do SQL Server do Azure Marketplace são aceitas.
  • VMs do SQL Server usando SSDv2 Premium. No momento, somente VMs do SQL Server com SSD Premium são aceitas.
  • Quando o TCP/IP está desabilitado no SQL Server Configuration Manager.