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 até oito dispositivos SSD locais, totalizando 3 TB de espaço de armazenamento SSD local por instância. Se quiser, é possível formatar e ativar vários dispositivos de SSD local 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. Se você armazenar dados importantes em um dispositivo SSD local, será necessário armazená-los também em uma opção 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 redundância ou de flexibilidade, use esse tipo de unidade com outras opções de armazenamento de instância.

Antes de começar

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 eventos a seguir:

  • Se você reinicializar 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 reconexão falhar, a VM será reiniciada sem os dados.

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

  • Se você encerrar a instância manualmente.
  • Se você desligar o sistema operacional convidado e forçar a interrupção 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 encerrar 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 seus 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 GCP, acesse a página Instâncias de VMs.

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

  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.
  10. Depois de criar um SSD local, formate e ative o dispositivo antes de usá-lo.

gcloud

Para gerar uma instância de VM com um SSD local anexado, siga as instruções sobre como criar uma instância. Use a sinalização --local-ssd para criar e anexar dispositivos de SSD local. Para criar vários dispositivos 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 n1-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 os dispositivos de SSD local a uma única instância usando uma combinação de nvme e scsi de dispositivos 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/n1-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 anexando vários SSDs locais a uma única instância de VM, há algumas restrições relacionadas ao número válido de SSDs locais que podem ser anexados, com base no tipo de máquina da instância de VM. Saiba mais sobre essas restrições de tipos de máquinas e SSDs locais.

Como formatar e ativar um dispositivo SSD local

Formatar e ativar dispositivos de SSD local individuais

O jeito mais fácil de conectar SSDs locais à instância é formatar e ativar cada dispositivo com uma partição única. Como alternativa, você pode combinar vários dispositivos 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 preservará dados no SSD local se a instância for interrompida ou encerrada. 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 os dispositivos anexados à 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 local antes, a ferramenta solicitará que você selecione um esquema de particionamento para os dispositivos novos. 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ários dispositivos 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 você quiser combinar vários dispositivos de SSD local em um único volume lógico, defina o gerenciamento de volumes nesses dispositivos por conta própria.

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-get update && sudo apt-get 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 dispositivos de SSD local 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 preservará dados no SSD local se a instância for encerrada. 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 os dispositivos anexados à 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 os novos dispositivos. 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 os dispositivos de SSD local que você quer incluir na matriz distribuída. Neste exemplo, selecione todos os dispositivos para combiná-los em um único dispositivo de SSD local.

    Selecione os dispositivos de SSD local que serão incluídos 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.