Como adicionar SSDs locais

O Compute Engine oferece armazenamento local em blocos de unidades de estado sólido (SSD, na sigla em inglês) sempre criptografado para as instâncias de máquinas virtuais (VMs, na sigla em inglês). Cada SSD local tem 375 GB, mas é possível anexar no máximo 24 partições SSD locais com 9 TB por instância. Outra opção é formatar e montar várias partições SSD locais em um único volume lógico.

Ao contrário dos discos permanentes, os SSDs locais são anexados fisicamente ao servidor que hospeda a instância de VM. Essa união proporciona desempenho superior, operações de entrada/saída por segundo (IOPS, na sigla em inglês) com taxas muito altas e latência muito baixa em comparação com os discos permanentes. Consulte Desempenho do armazenamento em blocos para mais detalhes.

Os SSDs locais são adequados apenas para armazenamento temporário, como caches, espaço de processamento ou dados de pouco valor. Para armazenar dados que não são temporários nem de natureza efêmera, use uma das opções de armazenamento durável.

Não é possível interromper e reiniciar uma instância que tenha um SSD local. Se você encerrar uma instância desse tipo por meio do sistema operacional convidado, não será possível reiniciá-la. Além disso, os dados no SSD local serão perdidos.

Se os SSDs locais não atenderem aos requisitos de flexibilidade ou redundância, use SSDs locais com outras opções de armazenamento.

Antes de começar

Capacidade máxima de 9 TB

É possível criar uma instância com:

  • 16 partições SSD locais para 6 TB de espaço SSD local e desempenho de 1,6 milhões de IOPS de leitura
  • 24 partições SSD locais para 9 TB de espaço SSD local e desempenho de 2,4 milhões de IOPS de leitura

Isso está disponível em instâncias com tipos de máquina N2 predefinidos e personalizados. Para ter o desempenho máximo, selecione um tipo de máquina com 32 ou mais vCPUs. Observe que a leitura e a gravação em discos SSD locais exigem ciclos de CPU da máquina virtual. Para atingir níveis altos e consistentes de IOPS, você precisa ter CPUs livres para processar operações de entrada e saída. Para saber mais, consulte Desempenho do armazenamento em blocos.

Permanência de dados no SSD local

Antes de criar uma instância com um SSD local, saiba quais eventos preservam os dados dessa unidade e quais podem torná-los irrecuperáveis.

Os dados em SSDs locais permanecem apenas durante os seguintes eventos:

  • Se você reiniciar o sistema operacional convidado.
  • Se você configurar a instância para a migração em tempo real e ela passar por um evento de manutenção do host.
  • Se ocorrer um erro no sistema host, o Compute Engine tentará se reconectar à VM e preservar os dados do SSD local. No entanto, esse processo pode falhar. Se a tentativa for bem-sucedida, a VM será reiniciada automaticamente. No entanto, se a tentativa de reconectar falhar, a VM reinicia sem os dados.

Os dados em SSDs locais não permanecem durante os seguintes eventos:

  • Se você parar a instância manualmente.
  • Se você desligar o sistema operacional convidado e forçar a parada da instância.
  • Se você configurar a instância como preemptiva e ela passar pelo processo de preempção.
  • Se você configurar a instância para interromper eventos na manutenção do host e ela passar por um evento desse tipo.
  • Se ocorrer um erro no sistema host e a unidade subjacente não se recuperar em até 60 minutos, o Compute Engine não tentará preservar os dados no SSD local.
  • Se você configurar incorretamente o SSD local, tornando-o inacessível.
  • Se você desativar o faturamento do projeto. A instância será interrompida, e os dados serão perdidos.

Como criar uma instância com um SSD local

Como os SSDs locais ficam localizados na máquina física em que a instância da máquina virtual está em execução, só é possível criá-los durante o processo de criação da instância. Não é possível usar os SSDs locais como dispositivos de inicialização.

Depois de criar um SSD local, formate e ative o dispositivo antes de usá-lo.

É possível criar uma instância com um SSD local usando o Console do Google Cloud, a ferramenta gcloud ou a API Compute Engine.

Console

    1. No Console do Cloud, acesse a página Instâncias de VM.

      Acessar a página Instâncias de VM (em inglês)

    2. Clique em Criar instância.
    3. Na página Criar uma nova instância, preencha as propriedades da sua instância.
    4. Expanda Gerenciamento, segurança, discos, rede, locatário único.
    5. Clique em Discos e, em Discos adicionais, clique em Adicionar novo disco.
    6. No campo Nome, insira um nome para o novo disco.
    7. Em Tipo, escolha Disco de trabalho SSD local (no máximo 8).
    8. Clique em Concluído.
    9. Clique em Criar para criar a instância.

    gcloud

    Para criar uma instância de VM com um SSD local anexado, siga as instruções sobre como criar uma instância, usando a sinalização --local-ssd para criar e anexar dispositivos SSD locais. Para criar várias partições de SSD local, adicione mais sinalizações --local-ssd. Se quiser, também é possível definir valores da interface e o nome do dispositivo de cada sinalização --local-ssd.

    Da mesma maneira, crie uma instância com dois SSDs locais que usam uma interface SCSI assim:

    gcloud compute instances create example-instance \
        --machine-type n2-standard-8 \
        --local-ssd interface=[INTERFACE_TYPE] \
        --local-ssd interface=[INTERFACE_TYPE] \
        --image-project [IMAGE_PROJECT] \
        --image-family [IMAGE_FAMILY]
    

    em que:

    Se necessário, anexe as partições de SSD local a somente uma instância usando uma combinação de nvme e scsi para partições diferentes. O desempenho do dispositivo nvme depende da imagem de disco de inicialização da instância.

    Depois de criar um SSD local, formate e ative o dispositivo antes de usá-lo.

    API

    Na API, crie um dispositivo de SSD local ao gerar uma instância de máquina virtual. Basta usar a propriedade initializeParams. Forneça também as propriedades a seguir:

    • diskType: definido como o SSD local
    • autoDelete: definido como verdadeiro
    • type: definido como SCRATCH

    Não é possível definir as propriedades a seguir nas instâncias de SSDs locais:

    • diskName
    • Propriedade sourceImage
    • diskSizeGb

    Veja uma amostra de payload de solicitação que cria uma instância com um disco de inicialização e um dispositivo de SSD local:

    {
       "machineType":"zones/us-central1-f/machineTypes/n2-standard-8",
       "name":"local-ssd-instance",
       "disks":[
          {
             "type":"PERSISTENT",
             "initializeParams":{
                "sourceImage":"projects/ubuntu-os-cloud/global/images/family/ubuntu-1604-lts"
             },
             "boot":true
          },
          {
             "type":"SCRATCH",
             "initializeParams":{
                "diskType":"zones/us-central1-f/diskTypes/local-ssd"
             },
             "autoDelete":true,
             "interface": "NVME"
          }
       ],
       "networkInterfaces":[
          {
             "network":"global/networks/default"
          }
       ]
     }
    

    Depois de criar um SSD local, formate e ative o dispositivo antes de usá-lo.

    Para mais informações sobre como criar uma instância na API, consulte API Compute Engine.

    Como selecionar as interfaces NVMe ou SCSI

    Use uma interface NVMe ou SCSI para conectar SSDs locais às suas instâncias. A maioria das imagens públicas inclui drivers NVMe e SCSI. No entanto, algumas imagens incluem drivers otimizados que aumentam o desempenho da instância em relação ao NVMe, ou podem usar o SCSI de várias filas para alcançar o melhor desempenho em relação à interface SCSI.

    • Imagens públicas otimizadas para NVMe:
      • Imagem do Ubuntu 14.04 LTS ubuntu-1404-trusty-v20170110 e superior ou família de imagens ubuntu-1404-lts
      • Imagem do Ubuntu 16.04 LTS ubuntu-1604-xenial-v20170113 e superior ou família de imagens ubuntu-1604-lts
      • Família de imagens Ubuntu 17.10 ubuntu-1710
      • Família de imagens Ubuntu 18.04 LTS ubuntu-1804-lts
    • Imagens públicas compatíveis com SCSI de várias filas:
      • Imagens do Debian 9 Stretch ou família de imagens debian-9
      • Imagem do Ubuntu 14.04 LTS ubuntu-1404-trusty-v20170807 e superior ou família de imagens ubuntu-1404-lts
      • Imagem do Ubuntu 16.04 LTS ubuntu-1604-xenial-v20170803 e superior ou família de imagens ubuntu-1604-lts
      • Família de imagens Ubuntu 17.10 ubuntu-1710
      • Família de imagens Ubuntu 18.04 LTS ubuntu-1804-lts
      • Todas as imagens do Windows Server
      • Todas as imagens do SQL Server

    Se preferir, ative o SCSI de várias filas nas imagens personalizadas que você importar para o projeto. Para mais informações, consulte Como ativar o SCSI de várias filas.

    Como selecionar um número válido de SSDs locais

    Se você estiver conectando vários SSDs locais a uma única instância da VM, há certas restrições em torno do número válido de SSDs locais que podem ser conectados, com base no tipo de máquina da instância da VM. Dependendo do tipo de máquina da VM, é possível anexar de 1 a 8, 16 ou 24 SSDs locais a uma única VM. Para mais informações, consulte Restrições de tipos de máquina e SSDs locais.

    Como formatar e ativar um dispositivo SSD local

    Formatar e ativar partições SSD locais individuais

    O jeito mais fácil de conectar SSDs locais à instância é formatar e ativar cada dispositivo com uma partição única. Como alternativa, combine várias partições em um único volume lógico.

    Instâncias do Linux

    Formate e ative o novo SSD local na instância do Linux. Use qualquer formato de partição e configuração que precisar. Neste exemplo, crie uma única partição ext4.

    1. Acesse a página "Instâncias de VM".

      Acessar a página "Instâncias de VM"

    2. Clique no botão SSH ao lado da instância que tem o novo SSD local anexado. O navegador abrirá uma conexão de terminal com a instância.

    3. No terminal, use o comando lsblk para identificar o SSD local que você quer ativar.

      $ lsblk
      

      Os SSDs locais no modo SCSI têm nomes padrão como sdb. Os SSDs locais no modo NVMe têm nomes como nvme0n1, conforme mostrado na coluna "NAME" da saída a seguir:

      NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
      sda       8:0    0   10G  0 disk
      └─sda1    8:1    0   10G  0 part /
      nvme0n1 259:0    0  375G  0 disk
      
    4. Formate o SSD local com um sistema de arquivos ext4. Esse comando exclui todos os dados atuais do SSD local.

      $ sudo mkfs.ext4 -F /dev/[SSD_NAME]
      

      Substitua [SSD_NAME] pelo ID do SSD local que você quer formatar. Por exemplo, especifique nvme0n1 para formatar o primeiro SSD local NVMe na instância.

    5. Use o comando mkdir para criar um diretório em que seja possível ativar o dispositivo.

      $ sudo mkdir -p /mnt/disks/[MNT_DIR]
      

      em que [MNT_DIR] é o diretório em que você quer ativar o SSD local.

    6. Ative o SSD local na instância. Se preferir, desative a limpeza do cache de gravação para melhorar o desempenho de gravação, com risco de reduzir a durabilidade em até dois segundos da gravação de dados em cache.

      $ sudo mount /dev/[SSD_NAME] /mnt/disks/[MNT_DIR]
      

      em que:

      • [SSD_NAME] é o ID do SSD local que você quer ativar;
      • [MNT_DIR] é o diretório em que você quer ativar o SSD local.
    7. Configure o acesso de leitura e gravação no dispositivo. Neste exemplo, conceda acesso de gravação no dispositivo a todos os usuários.

      $ sudo chmod a+w /mnt/disks/[MNT_DIR]
      

      em que: [MNT_DIR] é o diretório em que você ativou o SSD local.

    Se quiser, adicione o SSD local ao arquivo /etc/fstab para que o dispositivo seja reativado automaticamente quando a instância for reiniciada. Essa entrada não preserva dados no SSD local se a instância for interrompida. Consulte a seção Permanência de dados no SSD local para ver os detalhes completos.

    Ao especificar o arquivo /etc/fstab de entrada, inclua a opção nofail para que a instância possa continuar a inicialização mesmo que o SSD local não esteja presente. Por exemplo, se você gerar um snapshot do disco de inicialização e criar uma instância nova sem SSDs locais anexados, a instância poderá continuar o processo de inicialização sem pausar indefinidamente.

    1. Crie a entrada /etc/fstab. Use o comando blkid para localizar o UUID do sistema de arquivos no dispositivo e edite o arquivo /etc/fstab para incluir esse UUID com as opções de ativação. É possível concluir esta etapa com um único comando. Por exemplo:

      $ echo UUID=`sudo blkid -s UUID -o value /dev/disk/by-id/google-local-ssd-0` /mnt/disks/[MNT_DIR] ext4 discard,defaults,nofail 0 2 | sudo tee -a /etc/fstab
      

      em que [MNT_DIR] é o diretório em que você ativou o SSD local.

    2. Use o comando cat para verificar se as entradas /etc/fstab estão corretas:

      $ cat /etc/fstab
      

    Se você criar um snapshot a partir do disco de inicialização dessa instância e usá-lo para gerar uma instância separada que não tenha SSDs locais, edite o arquivo /etc/fstab e remova a entrada desse SSD local. Mesmo com a opção nofail, mantenha o arquivo /etc/fstab sincronizado com as partições anexadas à instância e remova essas entradas antes de criar o snapshot do disco de inicialização.

    Instâncias do Windows

    Use a ferramenta Gerenciamento de Disco (em inglês) do Windows para formatar e ativar um SSD local em uma instância do Windows.

    1. Conecte-se à instância por meio do RDP. Neste exemplo, acesse a página "Instâncias de VM" e clique no botão RDP ao lado da instância que tem os SSDs locais anexados. Depois de inserir o nome de usuário e a senha, uma janela é aberta com a interface da área de trabalho do servidor.

    2. Clique com o botão direito do mouse no botão "Iniciar" do Windows e selecione Gerenciamento de Disco.

      Selecione a ferramenta Gerenciamento de Disco clicando com o botão direito do mouse no botão Iniciar do Windows.

    3. Se você não inicializou o SSD locais antes, a ferramenta solicitará que você selecione um esquema de particionamento para as novas partições. Selecione GPT e clique em OK.

      Selecione um esquema de partição na janela de inicialização do disco.

    4. Após a inicialização do SSD local, clique com o botão direito do mouse no espaço em disco não alocado e selecione Novo Volume Simples.

      Crie um novo volume simples no disco anexado.

    5. Siga as instruções no Assistente para Novas Partições Simples para configurar o novo volume. É possível usar qualquer formato de partição que preferir, mas, neste exemplo, selecione NTFS. Além disso, marque Executar uma formatação rápida para acelerar esse processo.

      Selecione o tipo de formato da partição no Assistente para Novas Partições Simples.

    6. Após a conclusão do assistente e da formatação do volume, verifique se o novo SSD local tem o status Healthy.

      Visualize a lista de discos reconhecidos pelo Windows e verifique se o SSD local tem status

    Pronto. Agora é possível gravar arquivos no SSD local.

    Formatar e ativar várias partições de SSD local em um único volume lógico

    Ao contrário dos SSDs permanentes, os SSDs locais têm uma capacidade fixa de 375 GB para cada dispositivo anexado à instância. Se quiser combinar várias partições de SSDs locais em um único volume lógico, defina o gerenciamento de volume em todas essas partições.

    Instâncias do Linux

    Use mdadm para criar uma matriz RAID 0. Neste exemplo, a matriz é formatada com um único sistema de arquivos ext4, mas é possível aplicar qualquer sistema de arquivos que quiser.

    1. Acesse a página "Instâncias de VM".

      Acessar a página "Instâncias de VM"

    2. Clique no botão SSH ao lado da instância que tem o novo SSD local anexado. O navegador abrirá uma conexão de terminal com a instância.

    3. No terminal, instale a ferramenta mdadm. O processo de instalação de mdadm inclui um prompt do usuário que interrompe os scripts. Por isso, execute esse processo manualmente.

      Debian e Ubuntu:

      $ sudo apt update && sudo apt install mdadm --no-install-recommends
      

      CentOS e RHEL:

      $ sudo yum install mdadm -y
      

      SLES e openSUSE:

      $ sudo zypper install -y mdadm
      

    4. Use o comando lsblk para identificar todos os SSDs locais que você quer ativar. Neste exemplo, a instância tem oito partições de SSDs locais no modo NVMe:

      $ lsblk
      
      NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
      sda       8:0    0   10G  0 disk
      └─sda1    8:1    0   10G  0 part /
      nvme0n1 259:0    0  375G  0 disk
      nvme0n2 259:1    0  375G  0 disk
      nvme0n3 259:2    0  375G  0 disk
      nvme0n4 259:3    0  375G  0 disk
      nvme0n5 259:4    0  375G  0 disk
      nvme0n6 259:5    0  375G  0 disk
      nvme0n7 259:6    0  375G  0 disk
      nvme0n8 259:7    0  375G  0 disk
      
      

      Os SSDs locais no modo SCSI têm nomes padrão como sdb. Os SSDs locais no modo NVMe têm nomes como nvme0n1.

    5. Use mdadm para combinar vários dispositivos de SSD local em uma única matriz chamada /dev/md0. Neste exemplo, são combinados oito dispositivos de SSD local no modo NVMe. Para dispositivos de SSD local no modo SCSI, especifique os nomes que você conseguiu a partir do comando lsblk:

      $ sudo mdadm --create /dev/md0 --level=0 --raid-devices=8 \
      /dev/nvme0n1 /dev/nvme0n2 /dev/nvme0n3 /dev/nvme0n4 \
      /dev/nvme0n5 /dev/nvme0n6 /dev/nvme0n7 /dev/nvme0n8
      
      mdadm: Defaulting to version 1.2 metadata
      mdadm: array /dev/md0 started.
      
      
    6. Formate a matriz /dev/md0 inteira com um sistema de arquivos ext4. Esse comando exclui todos os dados atuais dos SSDs locais.

      $ sudo mkfs.ext4 -F /dev/md0
      
    7. Crie um diretório em que seja possível ativar /dev/md0. Neste exemplo, crie o diretório /mnt/disks/ssd-array:

      $ sudo mkdir -p /mnt/disks/[MNT_DIR]
      

      em que [MNT_DIR] é o diretório em que você quer ativar a matriz do SSD local.

    8. Ative a matriz /dev/md0 no diretório /mnt/disks/ssd-array. Se preferir, desative a limpeza do cache de gravação para melhorar o desempenho de gravação, com risco de reduzir a durabilidade em até dois segundos da gravação de dados em cache.

      $ sudo mount /dev/md0 /mnt/disks/[MNT_DIR]
      

      em que [MNT_DIR] é o diretório em que você quer ativar a matriz do SSD local.

    9. Configure o acesso de leitura e gravação no dispositivo. Neste exemplo, conceda acesso de gravação no dispositivo a todos os usuários.

      $ sudo chmod a+w /mnt/disks/[MNT_DIR]
      

      em que: [MNT_DIR] é o diretório em que você ativou a matriz do SSD local.

    Se quiser, adicione o SSD local ao arquivo /etc/fstab para que o dispositivo seja reativado automaticamente quando a instância for reiniciada. Essa entrada não preserva dados no SSD local se a instância for interrompida. Consulte a seção Permanência de dados no SSD local para ver os detalhes completos.

    Ao especificar o arquivo /etc/fstab de entrada, inclua a opção nofail para que a instância possa continuar a inicialização mesmo que o SSD local não esteja presente. Por exemplo, se você gerar um snapshot do disco de inicialização e criar uma instância nova sem SSDs locais anexados, a instância poderá continuar o processo de inicialização sem pausar indefinidamente.

    1. Crie a entrada /etc/fstab. Use o comando blkid para localizar o UUID do sistema de arquivos no dispositivo e edite o arquivo /etc/fstab para incluir esse UUID com as opções de ativação. Especifique a opção nofail para permitir que o sistema seja inicializado mesmo se o SSD local estiver indisponível. É possível concluir essa etapa com um único comando. Por exemplo:

      $ echo UUID=`sudo blkid -s UUID -o value /dev/md0` /mnt/disks/[MNT_DIR] ext4 discard,defaults,nofail 0 2 | sudo tee -a /etc/fstab
      

      em que [MNT_DIR] é o diretório em que você ativou a matriz do SSD local.

    2. Use o comando cat para verificar se as entradas /etc/fstab estão corretas:

      $ cat /etc/fstab
      

    Se você criar um snapshot a partir do disco de inicialização dessa instância e usá-lo para gerar uma instância separada que não tenha SSDs locais, edite o arquivo /etc/fstab e remova a entrada dessa matriz de SSD local. Mesmo com a opção nofail, mantenha o arquivo /etc/fstab sincronizado com as partições anexadas à instância e remova essas entradas antes de criar o snapshot do disco de inicialização.

    Instâncias do Windows

    Use a ferramenta Gerenciamento de Disco (em inglês) do Windows para formatar e ativar uma matriz de SSDs locais em uma instância do Windows.

    1. Conecte-se à instância por meio do RDP. Neste exemplo, acesse a página "Instâncias de VM" e clique no botão RDP ao lado da instância que tem os SSDs locais anexados. Depois de inserir o nome de usuário e a senha, uma janela é aberta com a interface da área de trabalho do servidor.

    2. Clique com o botão direito do mouse no botão "Iniciar" do Windows e selecione Gerenciamento de Disco.

      Selecione a ferramenta Gerenciamento de Disco clicando com o botão direito do mouse no botão Iniciar do Windows.

    3. Se você não inicializou os SSDs locais antes, a ferramenta solicitará que você selecione um esquema de particionamento para as novas partições. Selecione GPT e clique em OK.

      Selecione um esquema de partição na janela de inicialização do disco.

    4. Após a inicialização do SSD local, clique com o botão direito do mouse no espaço em disco não alocado e selecione Novo Volume Distribuído.

      Crie um novo volume distribuído no disco anexado.

    5. Selecione as partições do SSD local que você quer incluir na matriz distribuída. Neste exemplo, selecione todos as partições para combiná-las em apenas um dispositivo de SSD local.

      Seleção das partições do SSD local a serem incluídas na matriz.

    6. Siga as instruções no Assistente de Novo Volume Distribuído para configurar o novo volume. É possível usar qualquer formato de partição que preferir, mas, neste exemplo, selecione NTFS. Além disso, marque Executar uma formatação rápida para acelerar esse processo.

      Selecione o tipo de formato da partição no Assistente de Novo Volume Distribuído.

    7. Após a conclusão do assistente e da formatação do volume, verifique se o novo SSD local tem o status Healthy.

      Visualize a lista de discos reconhecidos pelo Windows e verifique se o SSD local tem status

    Agora é possível gravar arquivos no SSD local.

    Desempenho

    O desempenho do SSD local depende muito da interface que você seleciona. Os SSDs locais estão disponíveis nas interfaces SCSI e NVMe (páginas em inglês). Se você optar pela NVMe, use uma imagem especial habilitada para NVMe para conseguir o melhor desempenho. Para mais informações, consulte Como selecionar as interfaces NVMe ou SCSI.

    Para atingir os limites máximos de desempenho com 16 ou 24 partições de SSDs locais, use uma VM com 32 ou mais vCPUs.

    NVMe

    Espaço de armazenamento (GB) Partições IOPS Capacidade
    (MB/s)
    Leitura Gravação Leitura Gravação
    375 1 170.000 90.000 660 350
    750 2 340.000 180.000 1.320 700
    1.125 3 510.000 270.000 1.980 1.050
    1.500 4 680.000 360.000 2.650 1.400
    1.875 5 680.000 360.000 2.650 1.400
    2.250 6 680.000 360.000 2.650 1.400
    2.625 7 680.000 360.000 2.650 1.400
    3.000 8 680.000 360.000 2.650 1.400
    6.000 16 1.600.000 800.000 6.240 3.120
    9.000 24 2.400.000 1.200.000 9.360 4.680

    SCSI

    Espaço de armazenamento (GB) Partições IOPS Capacidade
    (MB/s)
    Leitura Gravação Leitura Gravação
    375 1 100.000 70.000 390 270
    750 2 200.000 140.000 780 550
    1.125 3 300.000 210.000 1.170 820
    1.500 4 400.000 280.000 1.560 1.090
    1.875 5 400.000 280.000 1.560 1.090
    2.250 6 400.000 280.000 1.560 1.090
    2.625 7 400.000 280.000 1.560 1.090
    3.000 8 400.000 280.000 1.560 1.090
    6.000 16 900.000 800.000 6.240 3.120
    9.000 24 900.000 800.000 9.360 4.680