Aumentar o tamanho de 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. É possível aumentar o tamanho do disco a qualquer momento, esteja ele conectado ou não a uma VM em execução.

Nesta página, discutimos como aumentar o tamanho de um disco permanente. Para aumentar o tamanho de um volume do Google Cloud Hyperdisk, consulte Modificar as configurações de um hiperdisco.

É possível apenas aumentar, e não diminuir, o tamanho do disco. Para diminuir o tamanho do disco, crie um novo com um tamanho menor. Até excluir o disco maior e original, você será cobrado pelos dois discos.

Ao criar uma imagem personalizada do Linux ou imagem personalizada do Windows, você precisa aumentar manualmente o tamanho dos discos de inicialização e de não inicialização. Se você estiver usando uma imagem pública, o Compute Engine redimensionará automaticamente os discos de inicialização.

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

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.

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine da seguinte maneira.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. Terraform

      Para usar os exemplos do Terraform nesta página em um ambiente de desenvolvimento local, instale e inicialize a gcloud CLI e, em seguida, configure o Application Default Credentials com suas credenciais de usuário.

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      Confira mais informações em Set up authentication for a local development environment.

      REST

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Aumentar o tamanho de um 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. Talvez seja necessário clicar no menu Mais ações e em Editar.

  4. No campo Tamanho, insira o novo tamanho do disco. Os discos com tabelas particionadas de MBR só podem ser redimensionados até 2 TB.

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

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Na CLI gcloud use o comando gcloud compute 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.

Terraform

Para alterar o tamanho de um disco permanente, use o recurso google_compute_disk e o parâmetro size.

# Using pd-standard because it's the default for Compute Engine

resource "google_compute_disk" "default" {
  name = "disk-data"
  type = "pd-standard"
  zone = "us-west1-a"
  size = "5"
}

Se você incluir o parâmetro size com o parâmetro image ou snapshot, o valor size precisa ser igual ou maior que o tamanho da imagem ou do snapshot.

Se você omitir os parâmetros image e snapshot, poderá definir o parâmetro size como menor que o tamanho do disco atual. Se você fizer isso, o Terraform destruirá o disco e criará um novo disco permanente vazio. Durante a recriação, o Terraform não copia outros dados que também não estejam incluídos na configuração do Terraform, como rótulos ou programações de snapshot. Para impedir que o Terraform destrua e recrie um disco, adicione a configuração lifecycle.prevent_destroy = true à configuração do Terraform.

REST

Crie uma solicitação POST para o método compute.disks.resize.

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.

Redimensionar o sistema de arquivos e as partições

Depois de aumentar o tamanho de um disco, talvez seja necessário redimensionar o sistema de arquivos e as partições dele. A lista a seguir mostra mais informações sobre discos de inicialização e de não inicialização:

  • Disco de inicialização: se você estiver usando uma imagem personalizada do Linux ou uma imagem personalizada do Windows, será preciso redimensionar manualmente a partição raiz e o sistema de arquivos. Para VMs com imagens públicas, o Compute Engine redimensiona automaticamente a partição raiz e o sistema de arquivos depois que você aumenta o tamanho do disco de inicialização e reinicia a VM.

  • Disco que não é de inicialização: depois de aumentar o tamanho do disco, estenda o sistema de arquivos no disco para usar o espaço adicionado.

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. Neste exemplo, presumimos que o disco anexado foi formatado e montado anteriormente.

VMs do Linux

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

    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 para seus 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. Verifique o tipo de partição:

    sudo parted -l
    
    ou consulte informações apenas de um disco específico:
    sudo parted -l /dev/DEVICE_NAME
    
    procure o campo: Tabela particionado. Se o valor for msdos, o disco terá um tipo de partição MBR. Isso significa que o tamanho máximo desse disco seria de 2 TB.

  5. Redimensione a partição raiz e o sistema de arquivos no disco de inicialização. Neste exemplo, presumimos que a imagem de VM não é compatível com o particionamento raiz automático e o redimensionamento de sistema de arquivos.

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

      1. Abra parted na partição /dev/sda:

        sudo parted /dev/sda
        
      2. No prompt (parted), insira:

        resizepart
        
      3. No prompt Partition number?, insira:

        1
        
      4. No prompt Warning: Partition /dev/sda1 is being used. Are you sure you want to continue?, insira:

        Yes
        
      5. No prompt End?, insira

        100%
        
      6. No prompt (parted), insira:

        quit
        
    2. Leia a nova tabela de partições usando partprobe.

      sudo partprobe /dev/sda
      
    3. Ampliar o sistema de arquivos:

      • Se estiver usando ext4, utilize o comando resize2fs:

        sudo resize2fs /dev/sda1
        
      • Se estiver usando xfs, utilize o comando xfs_growfs:

        sudo xfs_growfs -d /
        
      • Se você estiver usando btrfs, use o comando btrfs:

        sudo btrfs filesystem resize max /
        
  6. Redimensione o sistema de arquivos no disco de dados não inicializável.

    • 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.

    • 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.

    • Se você estiver usando btrfs, utilize o comando btrfs para estender o sistema de arquivos:

      sudo btrfs filesystem resize max 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.

  7. 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
    

VM 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 VMs.

    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. Mostre o tipo de partição dos discos executando no PowerShell:

    Get-Disk
    
    na coluna "Estiço de partição", se o valor for MBR, o disco terá um tipo de partição MBR. Isso significa que o tamanho máximo desse disco seria de 2 TB.

  5. 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.

  6. 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.

  7. 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.

  8. 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 vai ser necessário reiniciar a VM depois que esse processo for concluído. Já é possível usar o espaço em disco adicionado para armazenar dados.

A seguir