Como trabalhar com discos permanentes

Use um disco permanente como um disco de inicialização de uma instância de máquina virtual (VM, na sigla em inglês) ou como um disco de dados anexado a uma VM. Neste documento, explicamos como modificar os discos permanentes existentes para fazer o seguinte:

  • Aumentar o espaço de armazenamento
  • Recuperar instâncias inacessíveis
  • Excluir discos automaticamente quando as VMs anexadas forem excluídas
  • Alternar para um tipo de disco diferente.

Para obter informações gerais sobre discos permanentes e os tipos de discos disponíveis, leia a visão geral de discos permanentes.

Como redimensionar um disco permanente

É possível aumentar o tamanho do disco permanente quando a instância de máquina virtual (VM, na sigla em inglês) exigir mais espaço de armazenamento ou limites de desempenho maiores. Ao redimensionar um disco permanente, é possível aumentar o tamanho dele, mas não é possível reduzir.

É possível redimensionar os discos a qualquer momento, se o disco estiver ou não conectado a uma VM em execução.

O Compute Engine gerencia o hardware por trás dos discos permanentes. Assim, é possível adicionar e redimensionar os discos sem lidar com divisão ou redundância.

Redimensionar o disco

Para aumentar o tamanho de um disco de inicialização ou não inicialização, use o seguinte procedimento:

Console

  1. No Console do Google Cloud, acesse a página Discos.

    Acessar "Discos"

  2. Na lista de discos permanentes no projeto, clique no nome do disco que você quer redimensionar.

  3. Na página de detalhes do disco, clique em Editar.

  4. No campo Tamanho, insira o novo tamanho do disco. Discos com tabelas particionadas MBR podem ser redimensionados apenas até 2 TB.

  5. Clique em Salvar para aplicar as mudanças ao disco.

gcloud

Na ferramenta gcloud, use o comando disks resize e especifique a sinalização --size com o tamanho de disco desejado, em gigabytes.

gcloud compute disks resize DISK_NAME --size DISK_SIZE

Substitua:

  • DISK_NAME: o nome do disco que você está redimensionando.
  • DISK_SIZE: o novo tamanho do disco em gigabytes. Discos com tabelas particionadas MBR podem ser redimensionados apenas até 2 TB.

API

Na API, crie uma solicitação POST para o método compute.disks.resize. No corpo da solicitação, especifique o parâmetro sizeGb e defina-o para o tamanho de disco que você quer em gigabytes.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/resize

{
 "sizeGb": "DISK_SIZE"
}

Substitua:

  • PROJECT_ID: o ID do projeto.
  • ZONE: zona em que o disco está.
  • DISK_NAME: o nome do disco a ser redimensionado.
  • DISK_SIZE: o novo tamanho do disco em gigabytes. Discos com tabelas particionadas MBR podem ser redimensionados apenas até 2 TB.

Fazer backup do disco

O redimensionamento de um disco não exclui nem modifica os dados dele. No entanto, como prática recomendada, sempre faça backup do disco criando um snapshot antes de fazer alterações no sistema de arquivos ou partições.

Redimensionar o sistema de arquivos e as partições

Depois de redimensionar o disco, pode ser preciso redimensionar o sistema de arquivos e as partições.

  • Disco de inicialização: as VMs que usam imagens públicas redimensionam automaticamente a partição raiz e o sistema de arquivos depois de redimensionar o disco de inicialização na VM e reiniciá-la. Se você estiver usando uma imagem incompatível com essa funcionalidade, redimensione manualmente a partição raiz e o sistema de arquivos.

  • Disco não inicializável: depois de redimensionar o disco, estenda o sistema de arquivos no disco para usar o espaço extra.

No exemplo a seguir, mostramos como redimensionar manualmente a partição raiz e o sistema de arquivos de um disco de inicialização e como redimensionar manualmente o sistema de arquivos de um disco de dados que não seja de inicialização sem tabela de partição.

Instâncias do Linux

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

    Acessar instâncias de VM

  2. Ao lado da instância que tem o novo disco anexado, clique no botão SSH. O navegador abre uma conexão de terminal à instância.

  3. Use os comandos df e lsblk para listar o tamanho do sistema de arquivos e encontrar os nomes dos dispositivos dos discos.

    $ sudo df -Th
    
    Filesystem      Type     Size   Used  Avail  Use%  Mounted on
    /dev/sda1       ext4     9.7G   1.2G   8.5G   12%  /
    /dev/sdb        ext4     250G    60M   250G    1%  /mnt/disks/disk-1
    
    
    $ sudo lsblk
    
    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda       8:0    0   20G  0 disk
    └─sda1    8:1    0   10G  0 part /
    sdb       8:16   0  500G  0 disk /mnt/disks/disk-1
    
    

    Este exemplo inclui os seguintes discos:

    • Disco de inicialização: a partição /dev/sda1 está em um disco de inicialização que foi redimensionado para 20 GB. A tabela de partição e o sistema de arquivos fornecem apenas 9,7 GB para o sistema operacional.
    • Disco de dados não inicializável: o disco de dados /dev/sdb não inicializável não tem tabela de partição, mas o sistema de arquivos nesse disco fornece apenas 250 GB para o sistema operacional. O diretório de ativação para este disco é /mnt/disks/disk-1.

    O comando df mostra que a partição /dev/sda1 é montada como o sistema de arquivos raiz, e o disco /dev/sdb é montado como um disco de dados não inicializável em /mnt/disks/disk-1. Anote a coluna Tipo, que indica se o disco usa um sistema de arquivos ext4 ou xfs.

  4. Redimensione a partição raiz e o sistema de arquivos no disco de inicialização. Neste exemplo, supomos que a imagem da VM não seja compatível com a partição raiz automática e o redimensionamento do sistema de arquivos.

    1. Redimensione a partição raiz usando parted. Por exemplo, o comando a seguir expande a partição 1 de /dev/sda para o tamanho máximo possível:

      sudo parted -sm /dev/sda -- resizepart 1 -1
      
    2. Mova as estruturas de dados de GPT para o fim do disco de modo a alinhar a tabela de GPT.

      sudo sgdisk --move-second-header /dev/sda
      
    3. Leia a nova tabela de partições usando partprobe.

      sudo partprobe /dev/sda
      
    4. Se você estiver usando ext4, utilize o comando resize2fs para estender o sistema de arquivos:

      sudo resize2fs /dev/sda1
      
    5. Se você estiver usando xfs, utilize o comando xfs_growfs para estender o sistema de arquivos:

      sudo xfs_growfs -d /
      
  5. Redimensione o sistema de arquivos no disco de dados não inicializável.

    1. Se você estiver usando ext4, utilize o comando resize2fs para estender o sistema de arquivos:

      sudo resize2fs /dev/DEVICE_NAME
      

      Substitua DEVICE_NAME pelo nome do dispositivo do disco. Neste exemplo, o nome do dispositivo é /dev/sdb.

    2. Se você estiver usando xfs, utilize o comando xfs_growfs para estender o sistema de arquivos:

      sudo xfs_growfs MOUNT_DIR
      

      Substitua MOUNT_DIR pelo ponto de montagem do dispositivo. É possível encontrar o ponto de montagem listado na coluna MOUNTPOINT na saída do comando lsblk.

  6. Use o comando df para verificar se o sistema de arquivos foi estendido. Exemplo:

    df -h /dev/sdb
    
    Filesystem        Size  Used Avail Use% Mounted on
    /dev/sdb  493G   70M  492G   1% /mnt/disks/disk-1
    

Instâncias do Windows

Use a ferramenta Gerenciamento de disco do Windows para redimensionar as partições de uma instância.

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

    Acessar instâncias de VM

  2. Ao lado da instância com o disco redimensionado, clique no botão RDP. O navegador abre uma conexão RDP com a instância.

  3. Clique com o botão direito do mouse no botão Iniciar do Windows e selecione Gerenciamento de Disco para abrir a ferramenta "Gerenciamento de disco".

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

  4. Atualize a ferramenta Gerenciamento de Disco para que o espaço extra do disco permanente zonal seja reconhecido. Na parte superior da janela Gerenciamento de Disco, clique em Ação e selecione Atualizar.

    Como clicar no menu Ação e selecionar Atualizar na ferramenta Gerenciamento de Disco para atualizar as informações do disco permanente zonal.

  5. No disco que você redimensionou, clique com o botão direito do mouse na partição formatada e selecione Estender Volume.

    Como clicar com o botão direito na parte formatada do disco e selecionar a opção Estender volume.

  6. Siga as instruções do Assistente para Extensão de Volumes para estender a partição atual e incluir o espaço extra no disco. Se a partição atual estiver formatada em NTFS, o tamanho máximo da partição será limitado pelas configurações de tamanho do cluster.

  7. Depois de concluir a tarefa guiada pelo assistente e a formatação do volume, verifique a coluna Status na lista de discos anexados para confirmar que o novo disco está com o status Healthy.

    Ao ver a lista de discos reconhecidos pelo Windows, verifique se a instância está on-line e com status íntegro.

Não é preciso reiniciar a instância depois de concluir esse processo. Já é possível usar o espaço em disco adicionado para armazenar dados.

Como recuperar uma instância inacessível ou um disco de inicialização completo

Se não conseguir se conectar à instância ou se o disco de inicialização estiver cheio e não for possível redimensioná-lo, crie uma instância e recrie o disco de inicialização tendo como base um snapshot para redimensioná-lo. É preciso saber o tamanho do disco de inicialização que está sendo recriado.

  1. No Console do Google Cloud, acesse a página Criar uma instância.

    Acesse "Criar uma instância"

    1. Clique no nome da instância para abrir a página Detalhes da instância de VM.
    2. Clique em Interromper.
    3. Na seção Disco de inicialização, anote o tamanho e o nome do disco de inicialização.
  2. No Console do Google Cloud, acesse a página Criar um snapshot.

    Acessar "Criar um snapshot"

    1. Digite um Nome de snapshot.
    2. Selecione o disco de inicialização na lista suspensa Disco de origem.
    3. Clique em Criar.
  3. No Console do Google Cloud, acesse a página Criar uma instância.

    Acesse "Criar uma instância"

  4. Insira os detalhes da instância.

  5. Crie um novo disco de inicialização a partir do snapshot do disco de inicialização antigo.

    1. Em Disco de inicialização, selecione Alterar.
    2. Selecione Snapshots.
    3. Selecione o snapshot do disco de inicialização antigo na lista suspensa Snapshot.
    4. Selecione o Tipo de disco de inicialização.
    5. Digite o novo tamanho do disco.
    6. Clique em Selecionar para confirmar as opções de disco.
  6. Clique em Criar.

Como configurar o estado de exclusão automática de um disco permanente zonal

É possível excluir discos permanentes zonais de leitura e gravação automaticamente quando a instância de VM associada for excluída. Esse comportamento é controlado pela propriedade autoDelete na instância de VM de um determinado disco permanente zonal anexado e pode ser atualizado a qualquer momento. Da mesma forma, também é possível impedir que um disco permanente zonal seja excluído marcando o valor autoDelete como falso.

Console

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

    Acessar instâncias de VM

  2. Selecione a instância que tem os discos associados.

  3. Clique no nome da instância. A página Detalhes da instância da VM é exibida.

  4. Clique em Edit.

  5. Role para baixo até Discos adicionais.

  6. Clique no lápis para editar a Regra de exclusão do disco.

  7. Clique em Concluído para salvar as alterações.

  8. Clique em Salvar para atualizar a instância.

gcloud

Para definir o estado de exclusão automática de um disco permanente zonal, use o comando gcloud compute instances set-disk-auto-delete:

gcloud compute instances set-disk-auto-delete example-instance \
  [--auto-delete|--no-auto-delete] \
  --disk DISK_NAME

Substitua DISK_NAME pelo nome do disco.

API

Se estiver usando a API, faça uma solicitação POST para o seguinte URI:

https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setDiskAutoDelete?deviceName=DISK_NAME,autoDelete=true

Substitua:

  • PROJECT_ID: ID do projeto
  • ZONE: a zona em que a instância e o disco estão localizados
  • INSTANCE_NAME: o nome da instância
  • DISK_NAME: o nome do disco

Como alterar o tipo de disco permanente

É possível alterar o tipo do disco permanente a qualquer momento. Os tipos de disco permanente diferem em termos depreços e desempenho. Portanto, pode ser necessário alterar o tipo de um disco permanente existente para se adequar melhor à carga de trabalho

É possível alterar o tipo do disco permanente usando snapshots. Por exemplo, para alterar o disco permanente padrão para um disco permanente SSD, use o seguinte processo:

Console

  1. Crie um snapshot do disco permanente padrão.
  2. Crie um novo disco permanente com base no snapshot. Na lista suspensa Tipo selecione "Disco permanente SSD".

gcloud

  1. Crie um snapshot do disco permanente padrão.
  2. Crie um novo disco permanente com base no snapshot. Inclua a --typesinalização e especifiquepd-ssd.

API

  1. Crie um snapshot do disco permanente padrão.
  2. Crie um novo disco permanente com base no snapshot. No campo type, especifique "zones/ZONE/diskTypes/pd-ssd" e substitua ZONE pela zona em que a instância e o novo disco estão localizados.

Solução de problemas

Para encontrar métodos para diagnosticar e resolver problemas relacionados a discos completos e redimensionamento de disco, consulte Como solucionar problemas de discos completos e redimensionamento de disco.

A seguir