Modifier la taille d'un disque persistant

Si votre instance de machine virtuelle (VM) Compute Engine nécessite un espace de stockage supplémentaire ou des limites de performances plus élevées, vous pouvez augmenter la taille de votre disque persistant. Vous pouvez augmenter la taille du disque à tout moment, qu'il soit ou non associé à une VM en cours d'exécution.

Cette page explique comment modifier la taille d'un disque persistant. Pour augmenter la taille d'un volume Google Cloud Hyperdisk, consultez Modifier la taille et les performances provisionnées d'un volume Hyperdisk.

Lorsque vous créez une image Linux personnalisée, une image Windows personnalisée ou une image Fedora CoreOS, vous devez augmenter manuellement la taille des disques de démarrage et non amorçables. Si vous utilisez une image publique (à l'exception des images Fedora CoreOS), Compute Engine redimensionne automatiquement les disques de démarrage.

L'augmentation de la taille d'un disque n'entraîne aucune suppression ou modification des données du disque, mais il est recommandé de sauvegarder le disque en créant un instantané avant de modifier le système de fichiers ou les partitions.

Compute Engine gère le matériel derrière les disques persistants, ce qui vous permet d'ajouter et de redimensionner vos disques sans vous préoccuper des questions de répartition ou de redondance.

Avant de commencer

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification permet de valider votre identité pour accéder aux services et aux API Google Cloud . Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud , vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez la Google Cloud CLI. Une fois l'installation terminée, initialisez la Google Cloud CLI en exécutant la commande suivante :

      gcloud init

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  • Définissez une région et une zone par défaut.
  • Terraform

    Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.

    1. Installez la Google Cloud CLI.

    2. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    3. Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :

      gcloud auth application-default login

      Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.

      Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

    REST

    Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.

      Installez la Google Cloud CLI.

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .

Rôles et autorisations nécessaires

Pour obtenir l'autorisation dont vous avez besoin pour redimensionner un disque persistant, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient l'autorisation compute.disks.update, qui est requise pour redimensionner un disque persistant.

Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

Déplacer des données vers un disque plus petit

Vous ne pouvez pas réduire directement la taille d'un disque persistant. Si la taille provisionnée d'un volume de disque persistant est trop importante, vous devez remplacer le disque par un nouveau disque plus petit. Pour ce faire, créez un disque vide de taille inférieure, puis copiez le contenu du disque d'origine sur le nouveau disque. Vous pouvez ensuite utiliser le nouveau disque à la place de l'original.

Pour remplacer un disque par un disque plus petit, procédez comme suit :

  1. Créez un disque persistant vide et spécifiez la taille souhaitée. Assurez-vous que le nouveau disque est suffisamment grand pour contenir les données du disque source.
  2. Associez les deux disques à la même instance. Pour obtenir des instructions, consultez Associer un disque non amorçable à une VM.
  3. Formatez et installez le nouveau disque. Consultez les instructions pour les instances Linux et Windows.
  4. Copiez les données du disque d'origine vers le nouveau disque à l'aide des utilitaires disponibles pour votre système d'exploitation. Par exemple, sous Linux, vous pouvez utiliser rsync ou dd. Pour les instances Windows, vous pouvez utiliser robocopy.
  5. Vérifiez que le nouveau disque contient toutes les données et qu'il fonctionne comme prévu.
  6. Mettez à jour votre application ou votre OS pour utiliser le nouveau disque.
  7. Après avoir vérifié que la migration a réussi, vous pouvez dissocier et supprimer le disque d'origine, plus volumineux.
Le disque d'origine vous est facturé jusqu'à ce que vous le supprimiez.

Limites de taille des volumes Persistent Disk

La taille que vous spécifiez pour un volume Persistent Disk doit être comprise dans les plages indiquées dans le tableau suivant.

Type de disque Taille minimale Taille maximale Taille par défaut
Disque persistant avec équilibrage Zonal : 10 Gio
Régional : 10 Gio
64 Tio 100 Gio
Performance (SSD) Persistent Disk Zonal : 10 Gio
Régional : 10 Gio
64 Tio 100 Gio
Disque persistant standard Zonal : 10 Gio
Régional : 200 Gio
64 Tio 500 Gio
Disque persistant extrême 500 Gio 64 Tio 1 Tio

Augmenter la taille d'un volume Persistent Disk

Pour augmenter la taille d'un disque de démarrage ou non amorçable, procédez comme suit :

Console

  1. Dans la console Google Cloud , accédez à la page Disques.

    Accéder à la page Disques

  2. Dans la liste des disques de votre projet, cliquez sur le nom du disque à redimensionner.

  3. Sur la page des informations du disque, cliquez sur Modifier. Vous devrez peut-être cliquer sur le menu Autres actions, puis sur Modifier.

  4. Dans le champ Taille, indiquez la nouvelle taille de votre disque. Le redimensionnement des disques dotés de tables de partition MBR est limité à 2 To.

  5. Cliquez sur Enregistrer pour appliquer vos modifications au disque.

La nouvelle taille de disque s'affiche dans la liste des disques.

gcloud

Exécutez la commande gcloud compute disks resize et spécifiez l'option --size avec la nouvelle taille de disque, en gibioctets (Gio).

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

Remplacez les éléments suivants :

  • DISK_NAME : le nom du disque que vous redimensionnez.
  • DISK_SIZE : la nouvelle taille du disque, en gibioctets (Gio). Le redimensionnement des disques dotés de tables de partition MBR est limité à 2 To.
  • ZONE : pour un disque persistant zonal, spécifiez la zone où se trouve le disque.

    Pour un disque persistant régional, utilisez plutôt l'option --region=REGION et spécifiez la région dans laquelle se trouve le disque régional.

Terraform

Choisissez l'une des options suivantes pour redimensionner des disques zonaux ou des disques persistants régionaux :

Disque zonal

Pour modifier la taille d'un disque persistant, vous pouvez utiliser la ressource google_compute_disk et le paramètre 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 vous incluez le paramètre size avec le paramètre image ou snapshot, la valeur size doit être supérieure ou égale à la taille de l'image ou de l'instantané.

Si vous omettez les paramètres image et snapshot, vous pouvez définir le paramètre size sur une valeur inférieure à la taille du disque existant. Dans ce cas, Terraform détruit le disque et crée un disque Persistent Disk vide.

Disques persistants régionaux

Pour modifier la taille d'un disque persistant régional, vous pouvez utiliser la ressource google_compute_region_disk et le paramètre 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 vous incluez le paramètre size avec le paramètre image ou snapshot, la valeur size doit être supérieure ou égale à la taille de l'image ou de l'instantané.

Si vous omettez les paramètres image et snapshot, vous pouvez définir le paramètre size sur une valeur inférieure à la taille du disque existant. Dans ce cas, Terraform détruit le disque et crée un disque RegionalPersistentDisk vide.

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.

REST

Pour redimensionner un disque persistant, envoyez une requête POST à la méthode compute.disks.resize.

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

Pour redimensionner un disque persistant régional, envoyez une requête POST à la méthode compute.regionDisks.resize.

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet.
  • ZONE : pour un disque persistant zonal, zone où se trouve le disque.
  • REGION : pour un disque persistant régional, région où se trouve le disque.
  • DISK_NAME : le nom du disque à redimensionner.
  • DISK_SIZE : la nouvelle taille du disque, en gibioctets (Gio). Le redimensionnement des disques dotés de tables de partition MBR est limité à 2 To.

Redimensionner le système de fichiers et les partitions

Après avoir augmenté la taille d'un disque, vous devrez peut-être redimensionner le système de fichiers et les partitions. Vous trouverez ci-dessous des informations supplémentaires sur les disques de démarrage et non amorçables :

  • Disques de démarrage : si vous utilisez une image Linux personnalisée, une image Windows personnalisée ou une image Fedora CoreOS, vous devez redimensionner manuellement la partition racine et le système de fichiers. Pour les instances dotées d'images publiques (à l'exception des images Fedora CoreOS), Compute Engine redimensionne automatiquement la partition racine et le système de fichiers après l'augmentation de la taille du disque de démarrage. Vous n'avez pas besoin de redémarrer l'instance.

  • Disques non amorçables : après avoir augmenté la taille du disque, vous devez étendre le système de fichiers sur le disque pour utiliser l'espace supplémentaire.

L'exemple suivant montre comment redimensionner manuellement la partition racine et le système de fichiers d'un disque de démarrage, et comment redimensionner manuellement le système de fichiers d'un disque de données non amorçable sans table de partitionnement. Ces deux exemples partent du principe que les disques associés ont déjà été formatés et installés.

Instances Linux

  1. Dans la console Google Cloud , accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Recherchez l'instance à laquelle le disque que vous avez redimensionné est associé. Cliquez sur SSH. Le navigateur ouvre une connexion de terminal vers l'instance.

  3. Exécutez la commande df et la commande lsblk pour répertorier la taille du système de fichiers et trouver les noms d'appareils de vos disques.

    $ sudo df -Th
    
    Filesystem      Type      Size  Used Avail Use% Mounted on
    udev            devtmpfs  3.9G     0  3.9G   0% /dev
    /dev/nvme0n1p1  ext4      9.7G  2.0G  7.2G  22% /
    /dev/nvme0n1p15 vfat      124M   12M  113M  10% /boot/efi
    /dev/nvme0n2    ext4       98G   24K   98G   1% /mnt/disks/data
    
    
    $ sudo lsblk
    
    NAME        MAJ:MIN   RM  SIZE RO TYPE MOUNTPOINT
    nvme0n1      259:0    0   20G  0 disk
    ├─nvme0n1p1  259:5    0  9.9G  0 part /
    ├─nvme0n1p14 259:6    0    3M  0 part
    └─nvme0n1p15 259:7    0  124M  0 part /boot/efi
    nvme0n2      259:4    0  100G  0 disk /mnt/disks/data
    
    

    Cet exemple inclut les disques suivants :

    • Disque de démarrage : la partition /dev/nvme0n1p1 se trouve sur un disque de démarrage redimensionné à 20 Go. La table de partition et le système de fichiers ne fournissent que 9,9 Go au système d'exploitation.
    • Disque de données non amorçable : le disque de données non amorçable /dev/nvme0n2 ne possède pas de table de partitionnement, mais le système de fichiers de ce disque fournit 100 Go au système d'exploitation. Le répertoire d'installation de ce disque est /mnt/disks/data.

    Notez la colonne Type dans le résultat de la commande df, qui indique si votre disque utilise un système de fichiers ext4 ou xfs.

  4. Vérifiez le type de partition :

    sudo parted -l
    

    La première fois que vous exécutez cette commande après avoir redimensionné un disque, un message semblable à celui-ci peut s'afficher :

    Warning: Not all of the space available to /dev/nvme0n1 appears to be
    used, you can fix the GPT to use all of the space (an extra 20971520
    blocks) or continue with the current setting?
    Fix/Ignore?
    

    Si vous saisissez Fix, l'OS repartitionne automatiquement le disque pour mettre l'espace supplémentaire à la disposition de l'OS. Passez à la dernière étape si vous n'avez pas d'autres disques à modifier.

  5. Si vous choisissez de ne pas utiliser l'option de correction automatique ou si elle n'est pas disponible, affichez les informations du disque que vous souhaitez repartitionner :

    sudo parted -l /dev/DEVICE_NAME
    

    Recherchez le champ Table de partition : si la valeur est msdos, le disque possède un type de partition MBR. Cela signifie que la taille maximale de ce disque est de 2 To.

  6. Pour un disque de démarrage, redimensionnez la partition racine et le système de fichiers sur le disque. Cet exemple part du principe que l'image de VM n'est pas compatible avec le partitionnement racine automatique et le redimensionnement des systèmes de fichiers.

    1. Redimensionnez la partition racine à l'aide de parted. Par exemple, les commandes suivantes étendent la partition 1 de l'appareil à la taille maximale possible :

      1. Ouvrez parted sur l'appareil :

        sudo parted /dev/DEVICE_NAME
        

        Remplacez DEVICE_NAME par le nom de l'appareil pour le disque de démarrage, par exemple nvme0n1.

      2. Lorsque l'invite s'affiche, saisissez :

        (parted) resizepart
        
      3. Lorsque l'invite Partition number? s'affiche, saisissez :

        1
        
      4. Lorsque l'invite Warning: Partition /dev/DEVICE_NAMEp1 is being used. Are you sure you want to continue? s'affiche, saisissez :

        Yes
        
      5. Lorsque l'invite End? s'affiche, saisissez :

        100%
        
      6. Lorsque l'invite (parted) s'affiche, saisissez :

        (parted) quit
        
    2. Affichez la nouvelle table de partition à l'aide de parted -l.

      sudo parted -l /dev/DEVICE_NAME
      
      Model: nvme_card-pd (nvme)
      Disk /dev/DEVICE_NAME: 21.5GB
      Sector size (logical/physical): 512B/512B
      Partition Table: gpt
      Disk Flags:
      
      Number  Start   End     Size    File system  Name  Flags
      14      1049kB  4194kB  3146kB                     bios_grub
      15      4194kB  134MB   130MB   fat16              boot, esp
      1       134MB   21.5GB  21.3GB  ext4
      
    3. Étendez le système de fichiers :

      • Si vous utilisez ext4, exécutez la commande resize2fs :

        sudo resize2fs /dev/PARTITION_NAME
        

        Remplacez PARTITION_NAME par le nom de la partition du disque de démarrage, par exemple nvme0n1p1.

      • Si vous utilisez xfs, exécutez la commande xfs_growfs :

        sudo xfs_growfs -d /
        
      • Si vous utilisez btrfs, exécutez la commande btrfs :

        sudo btrfs filesystem resize max /
        
  7. Pour un disque de données non amorçable, redimensionnez le système de fichiers sur le disque.

    • Si vous utilisez ext4, utilisez la commande resize2fs pour étendre le système de fichiers :

      sudo resize2fs /dev/PARTITION_NAME
      

      Remplacez PARTITION_NAME par le nom de la partition du disque de données. Dans cet exemple, le nom de la partition est /dev/nvme0n2p1.

    • Si vous utilisez xfs, utilisez la commande xfs_growfs pour étendre le système de fichiers :

      sudo xfs_growfs MOUNT_DIR
      
    • Si vous utilisez btrfs, utilisez la commande btrfs pour étendre le système de fichiers :

      sudo btrfs filesystem resize max MOUNT_DIR
      

      Remplacez MOUNT_DIR par le point d'installation de l'appareil. Le point d'installation est indiqué dans la colonne MOUNTPOINT de la sortie de la commande lsblk.

  8. Utilisez la commande df pour vérifier que le système de fichiers est bien étendu. Exemple :

    df -h /dev/PARTITION_NAME
    
    Filesystem       Size  Used  Avail    Use%     Mounted on
    /dev/nvme0n2p1   118G  70M   118G     1%     /mnt/disks/data
    

VM Windows

Utilisez l'utilitaire Gestion du disque de Windows pour redimensionner des partitions sur une instance Windows.

  1. Dans la console Google Cloud , accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Recherchez l'instance contenant le disque redimensionné. Cliquez sur le bouton RDP de l'instance. Le navigateur ouvre une connexion RDP vers l'instance.

  3. Effectuez un clic droit sur le bouton "Démarrer" de Windows, puis sélectionnez Disk Management (Gestion du disque) pour ouvrir l'outil Disk Management.

    Sélectionner l'outil Gestion du disque de Windows dans le menu contextuel du bouton Démarrer de Windows.

  4. Affichez le type de partition des disques en exécutant la commande suivante dans Powershell :

    Get-Disk
    

    Dans la colonne Style de partition, si la valeur est MBR, le disque possède un type de partition MBR. Cela signifie que la taille maximale d'un tel disque serait de 2 To.

  5. Actualisez l'outil Gestion du disque afin qu'il reconnaisse l'espace supplémentaire sur le disque. En haut de la fenêtre Gestion des disques, cliquez sur Action et sélectionnez Actualiser.

    Cliquer sur le menu Action et sélectionner Actualiser pour mettre à jour les informations du disque dans l'outil Gestion du disque.

  6. Sur le disque que vous avez redimensionné, effectuez un clic droit sur la partition formatée et sélectionnez Extend Volume (Étendre le volume).

    Effectuer un clic droit sur la partie formatée du disque et sélectionner l'option "Étendre le volume".

  7. Suivez les instructions de l'Assistant Extension du volume pour étendre votre partition existante afin d'inclure l'espace disque supplémentaire. Si la partition existante est formatée en NTFS, la taille de partition maximale est limitée par ses paramètres de taille de cluster.

  8. Une fois que vous avez achevé les étapes de l'assistant d'extension de volume et que le formatage du volume est terminé, vérifiez dans la colonne État de la liste des disques associés que l'état du nouveau disque est défini sur Sain.

    Afficher la liste des disques reconnus par Windows et vérifier que l'instance est en ligne et définie sur l'état "Sain".

Vous n'avez pas besoin de redémarrer votre instance après avoir terminé ce processus. Vous pouvez commencer à utiliser l'espace disque supplémentaire.

Étapes suivantes