本文档介绍了如何查看和应用针对 Persistent Disk 卷、IP 地址和自定义磁盘映像的空闲资源建议。
Compute Engine 可帮助您识别空闲的 Persistent Disk 卷、IP 地址和自定义磁盘映像,并提供建议,帮助您最大限度地减少浪费并避免不必要的费用。
如果您对空闲虚拟机 (VM) 实例的建议感兴趣,请参阅查看和应用空闲虚拟机建议。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以选择以下任一选项向 Compute Engine 进行身份验证:
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- 永久性磁盘至少已创建 15 天。
- 永久性磁盘从未挂接到虚拟机。
- 永久性磁盘为空。
- 永久性磁盘未绑定到 GKE Pod。
- 永久性磁盘已分离至少 15 天。
- 永久性磁盘未绑定到 GKE Pod。
- 映像至少有 15 天未用于创建磁盘。
- 该映像未在任何实例模板中使用。
PROJECT_ID
:您的项目的 ID。LOCATION
:您想要查看其建议的资源所在的位置。- 对于永久性磁盘卷,请指定可用区或区域,例如
us-central1-c
。 - 对于 IP 地址:
- 如需列出区域 IP 地址,您必须指定区域。
- 如需列出全局 IP,请指定
global
。如需详细了解区域和全局 IP 地址资源,请参阅 IP 地址。
- 对于自定义映像,请指定
global
。
- 对于永久性磁盘卷,请指定可用区或区域,例如
RECOMMENDER_ID
:Recommender 的 ID- 对于磁盘,请指定
google.compute.disk.IdleResourceRecommender
。 - 对于映像,请指定
google.compute.image.IdleResourceRecommender
。 - 对于 IP 地址,请指定
google.compute.address.IdleResourceRecommender
。
- 对于磁盘,请指定
PROJECT_ID
:您的项目的 ID。LOCATION
:您想要查看其建议的资源所在的位置。- 对于永久性磁盘卷,请指定可用区或区域,例如
us-central1-c
。 - 对于 IP 地址:
- 如需列出区域 IP 地址,您必须指定区域。
- 如需列出全局 IP,请指定
global
。如需详细了解区域和全局 IP 地址资源,请参阅 IP 地址。
- 对于自定义映像,请指定
global
。
- 对于永久性磁盘卷,请指定可用区或区域,例如
RECOMMENDER_ID
:Recommender 的 ID- 对于磁盘,请指定
google.compute.disk.IdleResourceRecommender
。 - 对于映像,请指定
google.compute.image.IdleResourceRecommender
。 - 对于 IP 地址,请指定
google.compute.address.IdleResourceRecommender
。
- 对于磁盘,请指定
如果您的空闲 Persistent Disk 上有数据,则建议会包含一个
add
操作以创建快照来备份 Persistent Disk。例如:{ "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"] } }
用于永久删除空闲 Persistent Disk 的
remove
操作。例如:{ "action": "remove", "resourceType": "compute.googleapis.com/Disk", "resource" : "//compute.googleapis.com/projects/test-project/zones/us-central1-c/disks/pd-name", "path": "/" }
LOCATION
:您想要查看其数据洞见的资源所在的位置。- 对于永久性磁盘,请指定可用区或区域,例如
us-central1-c
。 - 对于 IP 地址:
- 如需列出区域 IP 地址,您必须指定区域。
- 如需列出全局 IP,请指定
global
。如需详细了解区域和全局 IP 地址资源,请参阅 IP 地址。
- 对于自定义映像,请指定
global
。
- 对于永久性磁盘,请指定可用区或区域,例如
INSIGHT_TYPE
:数据洞见类型的 ID- 对于磁盘,请指定
google.compute.disk.IdleResourceInsight
。 - 对于映像,请指定
google.compute.image.IdleResourceInsight
。 - 对于 IP 地址,请指定
google.compute.address.IdleResourceInsight
。
- 对于磁盘,请指定
PROJECT_ID
:您的项目的 ID。LOCATION
:您想要查看其数据洞见的资源所在的位置。- 对于永久性磁盘卷,请指定可用区或区域,例如
us-central1-c
。 - 对于 IP 地址:
- 如需列出区域 IP 地址,您必须指定区域。
- 如需列出全局 IP,请指定
global
。如需详细了解区域和全局 IP 地址资源,请参阅 IP 地址。
- 对于自定义映像,请指定
global
。
- 对于永久性磁盘卷,请指定可用区或区域,例如
INSIGHT_TYPE
:数据洞见类型的 ID- 对于磁盘,请指定
google.compute.disk.IdleResourceInsight
。 - 对于映像,请指定
google.compute.image.IdleResourceInsight
。 - 对于 IP 地址,请指定
google.compute.address.IdleResourceInsight
。
- 对于磁盘,请指定
diskLastUseTime
:磁盘上次挂接到虚拟机的时间。如果磁盘从未挂接到虚拟机,则此字段会设置为磁盘的创建时间。isBlank
:如果磁盘为空且从未挂接到虚拟机,则此字段会设置为true
,否则设置为false
。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
价格
使用空闲资源建议不会产生任何费用。
生成建议
如果某个资源在 15 天内未挂接到虚拟机或其他资源,则 Recommender 会将该资源归类为空闲资源。如需详细了解将资源归类为空闲资源的条件和建议的操作,请参阅下表:
资源 资源被归类为空闲资源的条件 推荐执行的操作 节省 Persistent Disk 以下所有条件都必须成立:
删除 节省该磁盘的全部费用。如需了解详情,请参阅磁盘和映像价格。 Persistent Disk 以下所有条件都必须成立:
为 Persistent Disk 创建快照,然后删除该快照 将该磁盘的维护费用降低 35% 到 92%。如需了解详情,请参阅磁盘和映像价格。 自定义映像 以下所有条件都必须成立:
删除 节省该映像的全部费用。如需了解详情,请参阅磁盘和映像价格。 外部 IP 地址 IP 地址至少有 15 天未挂接到任何资源。 删除 节省该 IP 地址的全部费用。如需了解详情,请参阅外部 IP 地址价格。 建议频率
空闲资源建议会在资源创建后 15 天开始提供,并且每 24 小时会更新一次。
查看建议
如需查看有关空闲资源的建议,请使用 gcloud CLI 或 REST。
控制台
在 Google Cloud 控制台中,前往所有建议页面。
所有空闲资源都列在未用的 Compute Engine 资源下。
gcloud
使用带有
--recommender=
RECOMMENDER_ID
标志的gcloud recommender recommendations list
命令:gcloud recommender recommendations list \ --project=PROJECT_ID \ --location=LOCATION \ --recommender=RECOMMENDER_ID \ --format=yaml
替换以下内容:
例如,以下命令会为
test-project
列出us-central1-c
中的空闲 Persistent Disk 建议: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"
详细了解如何使用 gcloud CLI 处理建议。
REST
调用
recommendations.list
方法并指定 Recommender ID,例如google.compute.disk.IdleResourceRecommender
:GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/RECOMMENDER_ID/recommendations
替换以下内容:
以下示例演示了如何发送包含
curl
的请求以及关联的示例响应。PROJECT_ID=test-project LOCATION=us-central1-c RECOMMENDER_ID=google.compute.disk.IdleResourceRecommender curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$LOCATION/recommenders/$RECOMMENDER_ID/recommendations
空闲 Persistent Disk 建议的 JSON 响应示例:
{ "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" }
解读建议响应
您通过 gcloud CLI 或 REST 收到的每条建议都包含操作组,其中有一些可按顺序执行以应用该建议的操作。例如,空闲 Persistent Disk 建议操作组包含一个或两个操作:
查看空闲资源建议的数据洞见
Recommender 会根据资源数据洞见生成建议。通过查看资源的数据洞见,您可以详细了解这些资源,例如资源与虚拟机分离的时长或者 Persistent Disk 是否为空。
如果要查看生成建议的数据洞见,您可以使用 gcloud CLI 或 REST。
gcloud
gcloud beta recommender insights list --project=PROJECT_NAME \ --location=LOCATION --insight-type=INSIGHT_TYPE
替换以下内容:
REST
使用
insights.list
方法。GET https://recommender.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/insightTypes/INSIGHT_TYPE/insights
替换以下内容:
以下是空闲 Persistent Disk 资源的数据洞见示例响应:
{ "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" } ] }
示例响应包括以下字段:
如需详细了解数据洞见,请参阅参考文档。
应用空闲资源建议
如果您收到关于空闲资源的建议,并且决定采纳建议,请按照以下部分中的说明操作。
删除空闲 IP 地址
请参阅
addresses.delete
方法、gcloud compute addresses delete
命令或释放静态外部 IP 地址文档。删除空闲自定义映像
请参阅
images.delete
方法、gcloud compute images delete
命令或删除映像文档。应用空闲 Persistent Disk 建议
如果您需要在删除 Persistent Disk 之前创建其快照,请参阅创建永久性磁盘快照。
如需删除空闲的 Persistent Disk 永久性磁盘,请参阅
gcloud compute disks delete
命令。如需了解如何从快照恢复数据以及重新创建 Persistent Disk,请参阅恢复快照。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-22。
-