O Compute Engine fornece recomendações para ajudar a identificar discos permanentes (DPs) que não foram anexados a nenhuma instância de máquina virtual (VM, na sigla em inglês) há pelo menos 15 dias. É possível usar as recomendações de disco permanente inativo para ajudar a minimizar o desperdício de recursos e reduzir sua fatura de computação. Para DPs que não são usados ativamente, crie um snapshot de backup e exclua o DP.
O Recomendador gera uma das ações recomendadas a seguir para discos inativos:
- Excluir: quando um disco está em branco e nunca foi anexado a uma instância de VM. É possível excluir o disco para economizar 100% do custo dele. Consulte os preços de disco.
- Snapshot: quando os dados são armazenados em um disco inativo. É possível criar um snapshot para armazenar os dados para mais tarde e excluir o disco para reduzir o custo de manutenção desse disco em 35% a 92%. Consulte os preços de disco.
Depois de receber uma recomendação, é possível realizar uma ação para capturar o snapshot ou excluir o disco inativo.
Antes de começar
- Para usar os exemplos de linha de comando deste guia, siga estas etapas:
- Instale ou atualize a ferramenta de linha de comando gcloud.
- Defina uma região e uma zona padrão.
- Para usar os exemplos da API deste guia, configure o acesso a ela.
Preços
As recomendações de DPs inativos estão disponíveis gratuitamente.
Geração de recomendações
Se um disco não tiver sido anexado a uma VM por 15 dias, o Recomendador o classificará como inativo.
É necessário atender a uma das condições a seguir para classificar um DP como inativo e gerar a ação recomendada correspondente:
Condição para o DP ser classificado como inativo | Ação recomendada |
---|---|
Criado há pelo menos 15 dias atrás E Nunca foi anexado a uma VM E Está em branco |
Excluir |
Removido há pelo menos 15 dias | Criar snapshot e excluir |
Frequência das recomendações
As recomendações de DPs inativos começam 15 dias após a criação do DP e são atualizadas a cada 24 horas.
Como visualizar recomendações
Para visualizar recomendações sobre DPs inativos, use a ferramenta gcloud
ou a API.
gcloud
Use o comando gcloud recommender recommendations list
com a sinalização --recommender=google.compute.disk.IdleResourceRecommender
.
gcloud recommender recommendations list \ --project=project-id \ --location=location \ --recommender=google.compute.disk.IdleResourceRecommender \ --format=yaml
Substitua o seguinte:
project-id
: o ID do seu projeto;location
: a zona ou região para listar recomendações, por exemplo,us-central1-c
.
Por exemplo, o comando a seguir lista recomendações de DPs inativos em 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"
Saiba mais sobre como usar a ferramenta gcloud
para trabalhar com
recomendações.
API
Chame o método recommendations.list
e especifique o seguinte ID do recomendador google.compute.disk.IdleResourceRecommender
:
GET https://recommender.googleapis.com/v1/projects/project-id/locations/location/recommenders/google.compute.disk.IdleResourceRecommender/recommendations
Substitua o seguinte:
project-id
: o ID do seu projeto;location
: a zona ou região para listar recomendações, por exemplo,us-central1-c
.
Se você ainda não se familiarizou com os pré-requisitos de autenticação para chamar APIs do Google Cloud, consulte a Visão geral da autenticação.
O exemplo de script bash a seguir usa a autenticação de usuário final com uma credencial de cliente do OAuth. O script usa a ferramenta de linha de comando oauth2l do Google para conseguir um token de acesso do OAuth 2.0 e, em seguida, faz uma solicitação curl
usando o 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
Exemplo de resposta JSON para uma recomendação de DP inativo:
{ "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" }
Como interpretar a resposta da recomendação
Cada recomendação recebida por meio da ferramenta gcloud
ou da API contém um grupo de operações, as quais podem ser executadas em série para aplicar a recomendação. Os grupos de operações de recomendação de DPs inativos incluem duas operações:
Se o DP inativo tiver dados, a recomendação incluirá uma operação
add
para criar um snapshot e fazer backup do DP. Exemplo:{ "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"] } }
Uma operação
remove
para excluir permanentemente o DP inativo. Exemplo:{ "action": "remove", "resourceType": "compute.googleapis.com/Disk", "resource" : "//compute.googleapis.com/projects/test-project/zones/us-central1-c/disks/pd-name", "path": "/" }
Consulte Como aplicar recomendações de DPs inativos para ver exemplos de comandos para criar um snapshot e excluir um DP.
Como visualizar insights de recomendações de DPs inativos
O recomendador gera recomendações com base nos insights dos recursos de DP. Ao visualizar insights sobre recursos do DP, é possível saber há quanto tempo um DP foi removido de uma VM e se um DP está em branco.
Se você quiser visualizar o insight
que gerou a recomendação, use a API ou ferramenta gcloud
.
gcloud
Use o comando insights list
.
gcloud beta recommender insights list --project=project-name \ --location=us-central1-c --insight-type=google.compute.disk.IdleResourceInsight
API
Use o método insights.list
com google.compute.disk.IdleResourceInsights
como o ID do tipo de insight.
GET https://recommender.googleapis.com/v1beta1/projects/project-id/locations/location/insightTypes/google.compute.disk.IdleResourceInsights/insights
Substitua o seguinte:
project-id
: ID do projeto.location
: a zona ou região que contém DPs para listar insights. Por exemplo,us-central1-c
.
Veja um exemplo de resposta de um insight sobre um recurso de DP inativo:
{ "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" } ] }
A resposta inclui os campos a seguir:
diskLastUseTime
: a última vez em que o disco foi anexado a uma VM. Se o disco nunca tiver sido anexado a uma VM, isso será definido como a data/hora de criação do disco.isBlank
: este campo é definido comotrue
se o disco estiver em branco e nunca tiver sido anexado à VM. Caso contrário, seráfalse
.
Para mais informações sobre insights, consulte os documentos de referência.
Como aplicar recomendações de DPs inativos
Se você receber uma recomendação sobre um DP inativo e decidir aplicá-la, siga as instruções abaixo para saber como fazer um snapshot para ter um backup do DP, excluir o DP inativo e, opcionalmente, recuperar o DP com base no snapshot.
Como tirar um snapshot de um DP inativo
gcloud
Para criar um snapshot de um disco permanente zonal no local de armazenamento padrão, use o comando gcloud compute disks snapshot
:
gcloud compute disks snapshot disk-name
Substitua o seguinte:
disk-name
: o nome do disco permanente zonal de que você quer criar o snapshot.
API
Para criar um snapshot de um disco permanente zonal no local de armazenamento padrão, faça uma solicitação POST
para o método disks.createSnapshot
:
POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/disks/disk-name/createSnapshot
Substitua o seguinte:
project-id
: o ID do projeto;zone
: a zona em que a instância e o disco estão localizados;disk-name
: o nome do disco permanente zonal de que você quer criar um snapshot.
Para um guia sobre como criar um snapshot de um DP regional ou em um local de armazenamento personalizado, consulte Como criar snapshots de discos permanentes.
Como excluir um DP inativo
gcloud
Para excluir um disco inativo, use o comando gcloud compute disks delete
:
gcloud compute disks delete disk-name \ [--zone=zone | --region=region]
Substitua o seguinte:
disk-name
: o nome do disco permanente zonal que você quer excluir;zone
: a zona em que o disco está localizado;region
: região em que o disco está.
API
Para excluir um disco inativo, faça uma solicitação DELETE
para o método disks.delete
:
DELETE https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/disks/disk-name
Substitua o seguinte:
project-id
: o ID do projeto;zone
: a zona em que o disco está localizado;disk-name
: o nome do disco permanente zonal que você quer excluir.
Para DPs regionais, substitua zones/zone
por regions/region
.
Como recuperar o DP com base em um snapshot
Para informações sobre como recuperar dados com base em um snapshot e recriar o DP, consulte Como restaurar snapshots de discos permanentes.