Aumenta el tamaño de un disco persistente


Puedes aumentar el tamaño de tu Persistent Disk cuando la instancia de máquina virtual (VM) requiere espacio de almacenamiento adicional o límites de rendimiento aumentados. Puedes aumentar el tamaño del disco en cualquier momento, ya sea que el disco esté conectado o no a una VM en ejecución.

En esta página, se explica cómo aumentar el tamaño de un Persistent Disk. Para aumentar el tamaño de un volumen de Google Cloud Hyperdisk, consulta Modifica la configuración de un Hyperdisk.

Solo puedes aumentar y no disminuir el tamaño de un disco. Para disminuir el tamaño del disco, debes crear un disco nuevo con un tamaño menor. Se te cobrará por los discos hasta que se borre el disco original y más grande.

Cuando creas una imagen personalizada de Linux o una imagen personalizada de Windows, debes aumentar de forma manual el tamaño del disco de arranque y de los que no son de arranque. Si usas una imagen pública, Compute Engine cambia el tamaño de los discos de arranque de forma automática.

Cuando se aumenta el tamaño de un disco, no se borran ni modifican los datos de este, pero la práctica recomendada es siempre crear una instantánea para generar una copia de seguridad del disco antes de realizar cambios en el sistema de archivos o las particiones.

Compute Engine administra el hardware detrás de los discos persistentes zonales para que puedas agregar discos y cambiar su tamaño discos sin tener que controlar la fragmentación ni la redundancia.

Antes de comenzar

  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    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 las muestras de Terraform de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

      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.

      Para obtener más información, consulta Set up authentication for a local development environment.

      REST

      Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

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

        gcloud init

      Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.

Roles y permisos requeridos

Para obtener el permiso que necesitas para cambiar el tamaño de un Persistent Disk, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene el permiso compute.disks.update, que se requiere para cambiar el tamaño de un Persistent Disk.

También puedes obtener este permiso con roles personalizados o con otros roles predefinidos.

Aumenta el tamaño de un disco

Para aumentar el tamaño de un disco de arranque o que no sea de arranque, usa los siguientes procedimientos:

Console

  1. En la consola de Google Cloud, ve a la página Discos.

    Ir a Discos

  2. En la lista de discos persistentes de tu proyecto, haz clic en el nombre del disco al que deseas cambiar el tamaño.

  3. En la página de detalles del disco, haz clic en Editar. Es posible que debas hacer clic en el menú Más acciones y, luego, en Editar.

  4. En el campo Tamaño, ingresa el tamaño nuevo para tu disco. Se puede cambiar el tamaño de los discos con tablas de partición MBR solo hasta 2 TB.

  5. Haz clic en Guardar para aplicar los cambios en el disco.

El tamaño nuevo del disco se muestra en la lista de discos.

gcloud

Usa el comando gcloud compute disks resize y especifica la marca --size con el nuevo tamaño de disco, en gibibytes (GiB).

gcloud compute disks resize DISK_NAME \
    --size DISK_SIZE \
    --zone=ZONE

Reemplaza lo siguiente:

  • DISK_NAME: el nombre del disco al que deseas cambiarle el tamaño.
  • DISK_SIZE: Es el tamaño nuevo, en gibibytes (GiB), del disco. Se puede cambiar el tamaño de los discos con tablas de partición MBR solo hasta 2 TB.
  • ZONE: Para Persistent Disk zonal, especifica la zona en la que se encuentra el disco.

    Para el disco persistente regional, usa la marca --region=REGION y especifica la región en la que se encuentra el disco regional.

Terraform

Elige una de las siguientes opciones para cambiar el tamaño de los discos zonales o del disco persistente regional:

Disco zonal

Para cambiar el tamaño de un Persistent Disk, puedes usar el recurso google_compute_disk y el 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"
}

Si incluyes el parámetro size junto con el parámetro image o snapshot, el valor size debe ser igual o mayor que el tamaño de la imagen o instantánea.

Si omites los parámetros image y snapshot, puedes establecer el parámetro size en un tamaño menor que el existente. Si haces esto, Terraform destruye el disco y crea un nuevo Persistent Disk vacío.

Disco persistente regional

Para cambiar el tamaño de un disco persistente regional, puedes usar el recurso google_compute_region_disk y el parámetro size.

resource "google_compute_region_disk" "regiondisk" {
  name                      = "region-disk-name"
  snapshot                  = google_compute_snapshot.snapdisk.id
  type                      = "pd-ssd"
  region                    = "us-central1"
  physical_block_size_bytes = 4096
  size                      = 11

  replica_zones = ["us-central1-a", "us-central1-f"]
}

Si incluyes el parámetro size junto con el parámetro image o snapshot, el valor size debe ser igual o mayor que el tamaño de la imagen o instantánea.

Si omites los parámetros image y snapshot, puedes establecer el parámetro size en un tamaño menor que el existente. Si haces esto, Terraform destruye el disco y crea un nuevo disco persistente regional vacío.

REST

Para cambiar el tamaño de un Persistent Disk, crea una solicitud POST para el método compute.disks.resize.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/resize
{
  "sizeGb": "DISK_SIZE"
}

Para cambiar el tamaño de un disco persistente regional, crea una solicitud POST para el método compute.regionDisks.resize.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME/resize
{
   "sizeGb": "DISK_SIZE"
}

Reemplaza lo siguiente:

  • PROJECT_ID: el ID de tu proyecto
  • ZONE: Para el Persistent Disk zonal, es la zona en la que se encuentra el disco.
  • REGION: Para el disco persistente regional, es la región en la que se encuentra el disco.
  • DISK_NAME: Es el nombre del disco cuyo tamaño deseas cambiar.
  • DISK_SIZE: Es el tamaño nuevo, en gibibytes (GiB), del disco. Se puede cambiar el tamaño de los discos con particiones de MBR solo hasta 2 TB.

Cambia el tamaño del sistema de archivos y las particiones

Después de aumentar el tamaño de un disco, es posible que debas cambiar el tamaño de su sistema de archivos y particiones. En la siguiente lista, se muestra información adicional para los discos de arranque y los que no son de arranque:

  • Disco de arranque: si usas una imagen personalizada de Linux o una imagen personalizada de Windows, debes cambiar de forma manual el tamaño de la partición raíz y el sistema de archivos. Para las VMs con imágenes públicas, Compute Engine cambia el tamaño de la partición raíz y el sistema de archivos de forma automática después de aumentar el tamaño del disco de arranque y reiniciar la VM.

  • Disco que no es de arranque: después de aumentar el tamaño del disco, debes extender el sistema de archivos en el disco para usar el espacio agregado.

En el siguiente ejemplo, se muestra cómo cambiar el tamaño de la partición raíz y el sistema de archivos de un disco de arranque de forma manual y cómo cambiar manualmente el tamaño del sistema de archivos de un disco de datos que no es de arranque sin tabla de partición. En este ejemplo, se supone que el disco se conecta con SCSI y que se formateó y activó antes.

Si tu Persistent Disk se conectó con NVMe, consulta Cambia el tamaño del sistema de archivos y las particiones para ver un ejemplo de salida para discos conectados con NVMe.

VM de Linux

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Junto a la instancia que tiene el disco conectado nuevo, haz clic en el botón SSH. El navegador abrirá una conexión de terminal a la instancia.

  3. Usa los comandos df y lsblk a fin de enumerar el tamaño del sistema de archivos y encontrar los nombres de dispositivo de tus 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
    
    

    En este ejemplo, se incluyen los siguientes discos:

    • Disco de arranque: La partición /dev/sda1 está en un disco de arranque que se cambió de tamaño a 20 GB. La tabla particionada y el sistema de archivos proporcionan solo 9.7 GB al sistema operativo.
    • Disco de datos no de arranque: El disco de datos /dev/sdb que no es de arranque no tiene una tabla particionada, pero el sistema de archivos en ese disco proporciona solo 250 GB al sistema operativo. El directorio de activación de este disco es /mnt/disks/disk-1.

    El comando df muestra que la partición /dev/sda1 está activada como el sistema de archivos raíz y el disco /dev/sdb está activado como un disco de datos que no es de arranque en /mnt/disks/disk-1. Toma nota de la columna Tipo, que indica si tu disco usa un sistema de archivos ext4 o xfs.

  4. Verifica el tipo de partición:

    sudo parted -l
    
    Como alternativa, para ver información solo de un disco específico, haz lo siguiente:
    sudo parted -l /dev/DEVICE_NAME
    
    Busca el campo Tabla de particiones. Si el valor es msdos, el disco tiene un tipo de partición MBR. Esto significa que el tamaño máximo de ese disco es de 2 TB.

  5. Cambia el tamaño de la partición raíz y el sistema de archivos en el disco de arranque. En este ejemplo, se supone que la imagen de VM no admite la partición automática de la raíz ni el cambio de tamaño del sistema de archivos.

    1. Cambia el tamaño de la partición raíz mediante parted. Por ejemplo, con los siguientes comandos, se expande la partición 1 de /dev/sda al tamaño máximo posible:

      1. Abre parted en la partición /dev/sda:

        sudo parted /dev/sda
      2. Cuando aparezca el mensaje (parted), ingresa lo siguiente:

        resizepart
      3. Cuando aparezca el mensaje Partition number?, ingresa lo siguiente:

        1
      4. Cuando aparezca el mensaje Warning: Partition /dev/sda1 is being used. Are you sure you want to continue?, ingresa lo siguiente:

        Yes
      5. Cuando aparezca el mensaje End?, ingresa lo siguiente:

        100%
      6. Cuando aparezca el mensaje (parted), ingresa lo siguiente:

        quit
    2. Lee la tabla particionada nueva mediante partprobe.

      sudo partprobe /dev/sda
      
    3. Extiende el sistema de archivos:

      • Si usas ext4, usa el comando resize2fs:

        sudo resize2fs /dev/sda1
        
      • Si usas xfs, usa el comando xfs_growfs:

        sudo xfs_growfs -d /
        
      • Si usas btrfs, usa el comando btrfs:

        sudo btrfs filesystem resize max /
        
  6. Cambia el tamaño del sistema de archivos en el disco de datos que no es de arranque.

    • Si usas ext4, usa el comando resize2fs para extender el sistema de archivos:

      sudo resize2fs /dev/DEVICE_NAME
      

      Reemplaza DEVICE_NAME por el nombre del dispositivo del disco. En este ejemplo, el nombre del dispositivo es /dev/sdb.

    • Si usas xfs, usa el comando xfs_growfs para extender el sistema de archivos:

      sudo xfs_growfs MOUNT_DIR
      

      Reemplaza MOUNT_DIR por el punto de activación del dispositivo. Puedes encontrar el punto de activación en la columna MOUNTPOINT del resultado del comando lsblk.

    • Si usas btrfs, usa el comando btrfs para extender el sistema de archivos:

      sudo btrfs filesystem resize max MOUNT_DIR
      

      Reemplaza MOUNT_DIR por el punto de activación del dispositivo. Puedes encontrar el punto de activación en la columna MOUNTPOINT del resultado del comando lsblk.

  7. Usa el comando df para verificar que el sistema de archivos esté extendido. Por ejemplo:

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

VM de Windows

Usa la herramienta de administración de discos de Windows para cambiar el tamaño de las particiones en una instancia de Windows.

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Junto a la instancia que tiene el disco que cambió de tamaño, haz clic en el botón RDP. El navegador abre una conexión de RDP a la instancia.

  3. Haz clic derecho en el botón de Inicio de Windows y selecciona Administración de discos para abrir la herramienta Administración de discos.

    Selección de la herramienta Administración de discos de Windows en el menú que aparece cuando haces clic derecho en el botón Inicio de Windows

  4. Para mostrar el tipo de partición de disco, ejecuta en PowerShell:

    Get-Disk
    
    En la columna Estilo de partición, si el valor es MBR, el disco tiene un tipo de partición MBR. Esto significa que el tamaño máximo de ese disco sería de 2 TB.

  5. Actualiza la herramienta Administración de discos para que reconozca el espacio adicional en tu disco persistente zonal. En la parte superior de la ventana Administración de discos, haz clic en Acción y selecciona Actualizar.

    Haz clic en el menú Acción y selecciona Actualizar para actualizar la información del disco persistente zonal en la herramienta Administración de discos.

  6. En el disco que cambiaste de tamaño, haz clic derecho en la partición formateada y selecciona Extender volumen.

    Haz clic derecho en la parte formateada del disco y selecciona la opción Extender volumen.

  7. Sigue las instrucciones en el asistente Extender volumen (Extend Volume Wizard) a fin de extender tu partición existente para incluir el espacio adicional en el disco. Si la partición existente está formateada en NTFS, el tamaño máximo de la partición está limitado por su configuración de tamaño de clúster.

  8. Después de completar el asistente y de que el volumen se termine de formatear, revisa la columna Status en la lista de discos conectados para asegurarte de que el disco nuevo tenga el estado Healthy.

    En la vista de la lista de discos reconocidos por Windows, verifica que la instancia esté en línea y en buen estado.

No es necesario reiniciar la VM después de completar este proceso. Ahora puedes usar el espacio en el disco agregado para almacenar datos.

¿Qué sigue?