Visualiza y aplica recomendaciones de PD inactivos

Compute Engine proporciona recomendaciones para ayudarte a identificar discos persistentes (PD) que no se hayan conectado a ninguna instancia de máquina virtual (VM) durante al menos 15 días. Puedes usar recomendaciones de discos persistentes inactivos para minimizar el desperdicio de recursos y reducir la factura de procesamiento. Para los PD que no se usan de forma activa, crea una instantánea de copia de seguridad y borra el PD.

El recomendador genera una de las siguientes acciones recomendadas para los discos inactivos:

  • Borrar: Cuando un disco está en blanco y nunca se conectó a ninguna instancia de VM. Puedes borrar el disco para ahorrar el 100% del costo de ese disco (consulta Precios de discos).
  • Crear una instantánea: Cuando los datos se almacenan en un disco que está inactivo. Puedes crear una instantánea a fin de almacenar los datos para usar más tarde, y borrar el disco a fin de reducir el costo de mantenimiento de ese disco entre un 35% y 92% (consulta Precios de discos).

Después de recibir una recomendación, puedes tomar medidas para crear una instantánea o borrar el disco inactivo.

Antes de comenzar

Precios

Las recomendaciones de PD inactivos están disponibles de forma gratuita.

Generación de recomendaciones

Si un disco no se conectó a una VM durante 15 días, el recomendador clasifica ese disco como inactivo.

Se debe cumplir una de las siguientes condiciones para clasificar un PD como inactivo y generar la acción recomendada correspondiente:

Condición para que el PD se clasifique como inactivo Acción recomendada
Creado hace al menos 15 días Y
nunca se conectó a una VM Y
está en blanco
Borrar
Desconectado durante al menos 15 días Crear instantánea y borrar

Frecuencia de recomendaciones

Las recomendaciones de PD inactivos comienzan 15 días después de la creación del PD y se actualizan una vez cada 24 horas.

Visualiza las recomendaciones

Para ver recomendaciones sobre PD inactivos, usa la herramienta de gcloud o la API.

gcloud

Usa el comando gcloud recommender recommendations list con la marca --recommender=google.compute.disk.IdleResourceRecommender:

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

Reemplaza lo siguiente:

  • project-id: El ID de tu proyecto
  • location: La zona o región para la que se enumeran las recomendaciones, por ejemplo, us-central1-c

Por ejemplo, el siguiente comando enumera las recomendaciones de PD inactivos en us-central1-c para 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"

Obtén más información sobre cómo usar la herramienta gcloud para trabajar con recomendaciones.

API

Llama al método recommendations.list y especifica el siguiente ID de recomendador, google.compute.disk.IdleResourceRecommender:

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

Reemplaza lo siguiente:

  • project-id: El ID de tu proyecto
  • location: La zona o región para la que se enumeran las recomendaciones, por ejemplo, us-central1-c

Si todavía no estás familiarizado con los requisitos de autenticación para realizar llamadas a las API de Google Cloud, consulta Descripción general de la autenticación.

En la siguiente secuencia de comandos de Bash de ejemplo, se usa el flujo de autenticación de usuario final con una credencial de cliente OAuth. En la secuencia de comandos, se usa la herramienta de línea de comandos Google oauth2l para obtener un token de acceso de OAuth 2.0 y, luego, se realiza una solicitud curl mediante el token.

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

Ejemplo de respuesta JSON para recomendaciones de PD inactivos:

{
 "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"
       }
      ]
    }
   ]
 },
 "etag": "cb0e6ac2cfc0b591"
}

Interpreta la respuesta de las recomendaciones

Cada recomendación que recibes a través de la herramienta de gcloud o la API contiene un grupo de operaciones, algunas de las cuales puedes realizar en serie para aplicar la recomendación. Los grupos de operaciones de recomendación de PD inactivos incluyen dos operaciones:

  • Si el PD inactivo tiene datos, la recomendación incluye una operación add para crear una instantánea a fin de crear una copia de seguridad del PD. Por ejemplo:

       {
         "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"]
         }
       }
    
  • Una operación remove para borrar el PD inactivo de forma permanente. Por ejemplo:

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

Consulta Aplica recomendaciones de PD inactivos, por ejemplo, comandos para crear una instantánea de un PD y borrarlo.

Aplica recomendaciones de PD inactivos

Si recibes una recomendación sobre un PD inactivo y quieres aplicarla, sigue las instrucciones a continuación para aprender a tomar una instantánea de un PD a fin de crear una copia de seguridad, borrar el PD inactivo y, de forma opcional, recuperar el PD de la instantánea.

Captura una instantánea de un PD inactivo

gcloud

Si quieres crear una instantánea de un disco persistente zonal en la ubicación de almacenamiento predeterminada, usa el comando gcloud compute disks snapshot:

gcloud compute disks snapshot disk-name

Reemplaza lo siguiente:

  • disk-name: El nombre del disco persistente zonal para el que deseas crear una instantánea

API

Si quieres crear una instantánea de un disco persistente zonal en la ubicación de almacenamiento predeterminada, realiza una solicitud POST al método disks.createSnapshot:

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

Reemplaza lo siguiente:

  • project-id: El ID del proyecto
  • zone: La zona en la que se encuentran la instancia y el disco
  • disk-name: El nombre del disco persistente zonal para el que deseas crear una instantánea

Para obtener una guía sobre cómo crear una instantánea de un PD regional o en una ubicación de almacenamiento personalizada, consulta Crea instantáneas de discos persistentes.

Borra un PD inactivo

gcloud

Para borrar un disco inactivo, usa el comando gcloud compute disks delete:

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

Reemplaza lo siguiente:

  • disk-name: El nombre del disco persistente zonal que deseas borrar
  • zone: La zona en la que se encuentra el disco
  • region: La región en la que se encuentra el disco

API

Para borrar un disco inactivo, realiza una solicitud DELETE al método disks.delete:

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

Reemplaza lo siguiente:

  • project-id: El ID del proyecto
  • zone: La zona en la que se encuentra el disco
  • disk-name: El nombre del disco persistente que deseas borrar

Para un PD regional, reemplaza zones/zone por regions/region.

Recupera un PD de una instantánea

Para obtener información sobre cómo recuperar datos de una instantánea y volver a crear un PD, consulta Restablece instantáneas de discos persistentes.