Afficher et appliquer les recommandations pour les disques persistants inactifs

Compute Engine fournit des recommandations pour vous aider à identifier les disques persistants qui n'ont été associés à aucune instance de machine virtuelle (VM) depuis au moins 15 jours. Vous pouvez utiliser des recommandations de disques persistants inactifs pour réduire le gaspillage de ressources et votre facturation liée aux charges de calcul. Pour les disques persistants qui ne sont pas activement utilisés, créez un instantané de sauvegarde et supprimez le disque persistant.

L'outil de recommandation génère l'une des actions recommandées suivantes pour les disques inactifs :

  • Supprimer : lorsqu'un disque est vide et n'a jamais été associé à une instance de VM. Vous pouvez supprimer le disque pour économiser 100 % de son coût (voir les tarifs des disques).
  • Instantané : lorsque des données sont stockées sur un disque inactif. Vous pouvez créer un instantané pour stocker les données pour une utilisation ultérieure et supprimer le disque pour économiser entre 35 % et 92 % sur les coûts de maintenance qui lui sont associés (voir les tarifs des disques).

À réception d'une recommandation, vous pouvez décider de prendre un instantané ou de supprimer le disque inactif.

Avant de commencer

Tarifs

Les recommandations relatives aux disques persistants inactifs sont disponibles gratuitement.

Génération de recommandations

Si un disque n'a été associé à aucune VM depuis 15 jours, l'outil de recommandation classe ce disque comme inactif.

L'une des conditions suivantes doit être remplie pour classer un disque persistant comme inactif et générer l'action recommandée correspondante :

Condition pour qu'un disque persistent soit classé comme inactif Action recommandée
Créé il y a au moins 15 jours ET
Jamais associé à une VM ET
Est vide
Supprimer
Dissocié pendant au moins 15 jours Créer un instantané et supprimer

Fréquence des recommandations

Les recommandations relatives aux disques persistants inactifs commencent à être publiées 15 jours après la création des disques. Elles sont mises à jour toutes les 24 heures.

Afficher des recommandations

Pour afficher des recommandations sur les disques persistants inactifs, utilisez l'outil gcloud ou l'API.

gcloud

Exécutez la commande gcloud recommender recommendations list avec l'option --recommender=google.compute.disk.IdleResourceRecommender :

gcloud recommender recommendations list \
    --project=project-id \
    --location=location \
    --recommender=google.compute.disk.IdleResourceRecommender \
    --format=yaml

Remplacez les éléments suivants :

  • project-id : l'ID du projet.
  • location : la zone ou la région pour laquelle vous souhaitez répertorier les recommandations, par exemple us-central1-c.

Ainsi, la commande suivante répertorie les recommandations relatives aux disques persistants inactifs dans us-central1-c pour my-project :

gcloud recommender recommendations list \
    --project=test-project \
    --location=us-central1-c \
    --recommender=google.compute.disk.IdleResourceRecommender \
    --format=yaml


---
content:
    operationGroups:
    - operations:
      - action: add
        resource: //compute.googleapis.com/projects/test-project/global/snapshots/$snapshot-name
        resourceType: compute.googleapis.com/Disk
        path: /
        value:
        - name: $snapshot-name
          sourceDisk: projects/test-project/locations/us-central1-c/disks/pd-name
          storageLocations: us-central1
      - action: remove
        resource: //compute.googleapis.com/projects/test-project/zones/us-central1-c/disks/pd-name
        resourceType: compute.googleapis.com/Disk
        path: /
description: Save cost by snapshotting and then deleting idle persistent disk 'pd-name'
name: projects/test-project/locations/us-central1-c/recommenders/google.compute.disk.IdleResourceRecommender/recommendations/0fd31b24-cc05-4132-8431-ed54a22dd4f1
recommenderSubtype: SNAPSHOT_AND_DELETE_DISK
lastRefreshTime:
  seconds: 1543912652
primaryImpact:
  category: COST
  costProjection:
    cost:
      currencyCode: USD
      units: '-50'
    duration:
      seconds: 2592000
stateInfo: ACTIVE
etag: "cb0e6ac2cfc0b591"

Obtenez plus d'informations sur l'utilisation de l'outil gcloud avec les recommandations

API

Appelez la méthode recommendations.list et spécifiez l'ID de recommandation suivant (google.compute.disk.IdleResourceRecommender) :

GET https://recommender.googleapis.com/v1/projects/project-id/locations/location/recommenders/google.compute.disk.IdleResourceRecommender/recommendations

Remplacez les éléments suivants :

  • project-id : l'ID du projet.
  • location : la zone ou la région pour laquelle vous souhaitez répertorier les recommandations, par exemple us-central1-c.

Si vous ne maîtrisez pas encore les conditions préalables d'authentification pour appeler les API Google Cloud, consultez la page Présentation de l'authentification.

L'exemple suivant de script bash utilise le flux d'authentification de l'utilisateur final avec des identifiants client OAuth. Le script utilise l'outil de ligne de commande Google oauth2l pour obtenir un jeton d'accès OAuth 2.0, puis envoie une requête curl à l'aide du jeton.

PROJECT_ID=test-project
LOCATION=us-central1-c
RECOMMENDER=google.compute.disk.IdleResourceRecommender
OAUTH_JSON=~/service-account.json
OAUTH_HEADER="$(oauth2l header --json $OAUTH_JSON cloud-platform)"

curl -H "$OAUTH_HEADER" https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$LOCATION/recommenders/google.compute.disk.IdleResourceRecommender/recommendations

Exemple de réponse JSON pour une recommandation concernant un disque persistant inactif :

{
 "description" : "Save cost by deleting idle persistent disk 'pd-name'",
 "name": "projects/test-project/locations/us-central1-c/recommenders/"
         "google.compute.disk.IdleResourceRecommender/"
         "recommendations/0fd31b24-cc05-4132-8431-ed54a22dd4f1",
 "recommenderSubtype" : "SNAPSHOT_AND_DELETE_DISK",
 "lastRefreshTime": {
   "seconds": 1543912652
 },
 "primaryImpact": {
   "category": COST,
   "costProjection": {
    "cost": {"currencyCode": "USD", "units": -50},
    "duration": { "seconds": 2592000 }
   }
 },
 "stateInfo": ACTIVE,
 "content": {
   "operationGroups" : [
    {
      "operations" : [
       {
         "action": "add",
         "resourceType": "compute.googleapis.com/Disk",
         "resource" : "//compute.googleapis.com/projects/test-project/global/snapshots/$snapshot-name",
         "value": {
           "name": "$snapshot-name",
           "sourceDisk": "projects/test-project/zones/us-central1-c/disks/pd-name",
           "storageLocations": ["us-central1"],
         }
       },
       {
         "action": "remove",
         "resourceType": "compute.googleapis/Disk",
         "resource": "//compute.googleapis.com/projects/test-project/"
                     "zones/us-central1-c/disks/pd-name"
       }
      ]
    }
   ]
 },
 "associatedInsights": [
    {
      "insight": "projects/test-project/locations/us-central1-c/insightTypes/google.compute.disk.IdleResourceInsight/insights/31326443-bcc3-4776-9b86-48879fddb656"
    }
  ],
 "etag": "cb0e6ac2cfc0b591"
}

Interpréter la réponse à la recommandation

Chaque recommandation que vous recevez via l'outil gcloud ou l'API contient un groupe d'opérations que vous pouvez exécuter en série pour appliquer la recommandation. Les groupes d'opérations de recommandation par rapport aux disques persistants inactifs incluent une ou deux opérations :

  • Si votre disque persistant inactif contient des données, la recommandation inclut une opération add pour créer un instantané afin de sauvegarder le disque persistant. Exemple :

       {
         "action": "add",
         "resourceType": "compute.googleapis.com/Disk",
         "resource" : "//compute.googleapis.com/projects/test-project/global/snapshots/$snapshot-name",
         "path": "/",
         "value": {
           "name": "$snapshot-name",
           "sourceDisk": "projects/test-project/zones/us-central1-c/disks/pd-name",
           "storageLocations": ["us-central1"]
         }
       }
    
  • Une opération remove pour supprimer définitivement le disque persistant inactif. Exemple :

       {
         "action": "remove",
         "resourceType": "compute.googleapis.com/Disk",
         "resource" : "//compute.googleapis.com/projects/test-project/zones/us-central1-c/disks/pd-name",
         "path": "/"
       }
    

Consultez la section Appliquer les recommandations pour les disques persistants inactifs pour obtenir des exemples de commandes permettant de créer un instantané et de supprimer un disque persistant.

Afficher des insights pour obtenir des recommandations sur les disques persistants inactifs

L'outil de recommandation génère des recommandations basées sur les insights relatifs aux ressources de disques persistants. En affichant des insights sur les ressources de disques persistants, vous pouvez savoir pendant combien de temps un disque persistant a été dissocié d'une VM et s'il est vide.

Si vous souhaitez afficher l'insight qui a généré la recommandation, vous pouvez utiliser l'outil gcloud ou l'API.

gcloud

Utiliser la commande insights list

gcloud beta recommender insights list --project=project-name \
  --location=us-central1-c --insight-type=google.compute.disk.IdleResourceInsight

API

Utilisez la méthode insights.list avec google.compute.disk.IdleResourceInsights comme ID de type d'insight.

GET https://recommender.googleapis.com/v1beta1/projects/project-id/locations/location/insightTypes/google.compute.disk.IdleResourceInsights/insights

Remplacez les éléments suivants :

  • project-id : l'ID du projet.
  • location : la zone ou la région contenant les disques persistants pour lesquels répertorier les insights, par exemple us-central1-c.

Voici un exemple de réponse d'un insight pour une ressource de disque persistant inactif :

{
  "name": "projects/test-project/locations/us-central1-c/insightTypes/google.compute.disk.IdleResourceInsight/insights/0ec21a13-bb04-3121-7321-dc43a11cc3e2",
  "description": "Disk 'pd-name' in zone 'us-central1-c' was last used 17 days ago. Consider taking snapshot and delete it.",
  "targetResources": [
    "//compute.googleapis.com/projects/test-project/zones/us-central1-c/disks/pd-name"
  ],
  "insightSubtype": "IDLE_DISK",
  "content": {
    "diskLastUseTime": "2019-10-01 13:00:00",
    "isBlank": false,
  },
  "lastRefreshTime": "2019-10-10 13:00:00",
  "observationPeriod": "15 days",
  "stateInfo": {
    "state": "ACTIVE"
  },
  "category": "COST",
  "etag": "fds421j2349",
  "associatedRecommendations": [
    {
      "projects/test-project/locations/us-central1-c/recommenders/"
      "google.compute.disk.IdleResourceRecommender/"
      "recommendations/0fd31b24-cc05-4132-8431-ed54a22dd4f1"
    }
  ]
}

La réponse inclut les champs suivants :

  • diskLastUseTime : la dernière fois que le disque a été associé à une VM. Si le disque n'a jamais été associé à une VM, il s'agit du moment où le disque a été créé.
  • isBlank : ce champ est défini sur true si le disque est vide et n'a jamais été associé à une VM. Sinon, il est défini sur false.

Pour plus d'informations sur les insights, consultez la documentation de référence.

Appliquer les recommandations pour les disques persistants inactifs

Si vous recevez une recommandation concernant un disque persistant inactif et que vous décidez de la suivre, consultez les instructions ci-dessous pour savoir comment prendre un instantané d'un disque persistant pour le sauvegarder, le supprimer et éventuellement le récupérer à partir de l'instantané.

Prendre un instantané d'un disque persistant inactif

gcloud

Pour créer un instantané d'un disque persistant zonal dans l'emplacement de stockage par défaut, exécutez la commande gcloud compute disks snapshot :

gcloud compute disks snapshot disk-name

Remplacez l'élément suivant :

  • disk-name : le nom du disque persistant zonal pour lequel vous souhaitez créer un instantané.

API

Pour créer un instantané dans l'emplacement de stockage par défaut, envoyez une requête POST à la méthode disks.createSnapshot :

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/disks/disk-name/createSnapshot

Remplacez les éléments suivants :

  • project-id : l'ID de votre projet.
  • zone : la zone dans laquelle se trouvent l'instance et le disque.
  • disk-name : le nom du disque persistant zonal pour lequel vous souhaitez créer un instantané.

Pour savoir comment créer un instantané d'un disque persistant régional ou d'un emplacement de stockage personnalisé, consultez la page Créer des instantanés de disques persistants.

Supprimer un disque persistant inactif

gcloud

Pour supprimer un disque inactif, utilisez la commande gcloud compute disks delete :

gcloud compute disks delete disk-name \
[--zone=zone | --region=region]

Remplacez les éléments suivants :

  • disk-name : le nom du disque persistant zonal que vous souhaitez supprimer.
  • zone : la zone où se trouve le disque.
  • region : la région où se trouve votre disque.

API

Pour supprimer un disque inactif, envoyez une requête DELETE à la méthode disks.delete :

DELETE https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/disks/disk-name

Remplacez les éléments suivants :

  • project-id : l'ID de votre projet.
  • zone : la zone où se trouve le disque.
  • disk-name : le nom du disque persistant que vous souhaitez supprimer.

Pour un disque persistant régional, remplacez zones/zone par regions/region.

Récupérer un disque persistant à partir d'un instantané

Pour savoir comment récupérer des données à partir d'un instantané et recréer votre disque persistant, consultez la page Restaurer des instantanés de disque persistant.