查看磁盘详情


在 Compute Engine 中创建永久性磁盘或 Hyperdisk 后,您可以查看有关磁盘配置的信息。您可以使用此信息来监控磁盘性能、增强数据安全性,以及优化存储空间和费用。本文档介绍了如何查看以下基本磁盘详细信息:

  • 项目中的所有可用磁盘的列表,包括未挂接到实例的磁盘
  • 关联的实例
  • 磁盘是否会随实例一起自动删除
  • 访问模式
  • 吞吐量和每秒输入/输出操作数 (IOPS) 性能指标
  • 加密信息

准备工作

  • 如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 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

    1. 安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:

      gcloud init

      如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

    2. Set a default region and zone.

    REST

    如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。

      安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:

      gcloud init

      如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

    如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

查看项目中的所有磁盘

如需全面了解存储资源,您可以列出项目中的所有磁盘,包括未挂接到实例的磁盘。

控制台

在 Google Cloud 控制台中,前往磁盘页面。

转到“磁盘”

磁盘页面列出了项目中的所有磁盘。

gcloud

运行 disks list 命令

gcloud compute disks list

命令输出

项目中的所有 Persistent Disk 卷和 Hyperdisk 卷的列表。

如需查看特定区域或可用区中的磁盘,请使用 --zone--region 标志指定位置。

REST

compute.disks.aggregatedList 方法发出 POST 请求。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/disks/

替换以下内容:

  • PROJECT_ID:您的项目 ID。

请求响应

项目中的所有 Persistent Disk 卷和 Hyperdisk 卷的列表。

查看磁盘所挂接到的实例

了解磁盘的使用情况,并通过确定哪些实例挂接到该磁盘来防止因未使用磁盘而产生费用。

控制台

  1. 在 Google Cloud 控制台中,前往磁盘页面。

    转到“磁盘”

  2. 名称列中,点击磁盘的名称。

  3. 属性表格中,标有使用方的行会列出所有已挂接到相应磁盘的实例。

gcloud

运行 gcloud compute disks describe 命令

    gcloud compute disks describe DISK_NAME 
--zone=ZONE --format="json(users)"

替换以下内容:

  • ZONE:您的磁盘所在的区域。
  • DISK_NAME:磁盘的名称。

命令输出

如果输出为 null,则表示相应磁盘未挂接到任何实例。 否则,输出为包含名为 users 的字段的 JSON 对象。users 字段列出了使用相应磁盘的所有实例的网址。

REST

compute.disks.get 方法发出 POST 请求。

  POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME

替换以下内容:

  • PROJECT_ID:您的项目 ID。
  • ZONE:您的磁盘所在的区域。
  • DISK_NAME:磁盘的名称。

请求响应

REST 响应是一个 JSON 对象,其中包含名为 users 的字段。

如果 users 字段的值为 null,则表示相应磁盘未挂接到任何实例。否则,users 对象会列出使用相应磁盘的所有实例的网址。

查看磁盘是否已启用自动删除

为防止意外丢失数据,请检查在删除所挂接的实例时,系统是否会同时删除启动磁盘或非启动磁盘。

默认情况下,启动磁盘已启用 autoDelete,这意味着删除实例也会删除其挂接的启动磁盘。不过,如果您想保留所挂接的启动磁盘,可以替换此设置。如果非启动磁盘已启用autoDelete,也会被删除。

控制台

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面。

    转到虚拟机实例

  2. 名称列中,点击实例的名称。

  3. 存储部分中,找到删除实例时列。删除实例时可以是下列值之一:

    • 删除磁盘:磁盘将随实例一起删除。
    • 保留磁盘:磁盘不会随实例一起删除。

gcloud

运行 gcloud compute disks describe 命令

    gcloud compute disks describe DISK_NAME 
--zone=ZONE

替换以下内容:

  • ZONE:您的磁盘所在的区域。
  • DISK_NAME:磁盘的名称。

命令输出

包含名为 autoDelete 的字段的 JSON 对象。autoDelete 用于描述磁盘是否会随其所挂接的实例一起删除,可以是以下值之一:

  • true:磁盘将随实例一起删除。
  • false:磁盘不会随实例一起删除。

REST

compute.disks.get 方法发出 POST 请求。

  POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME

替换以下内容:

  • PROJECT_ID:您的项目 ID。
  • ZONE:您的磁盘所在的区域。
  • DISK_NAME:磁盘的名称。

请求响应

包含名为 autoDelete 的字段的 JSON 对象。autodelete 用于描述磁盘是否会随其挂接的实例一起删除,可以是以下值之一:

  • true:磁盘将随实例一起删除。
  • false:磁盘不会随实例一起删除。

查看磁盘上还剩多少空间

如需在不连接到所挂接实例的情况下查看磁盘上剩余的空间,您需要在实例上安装 Ops Agent。Ops Agent 为 bytes_used(已用磁盘字节数)和 percent_used(磁盘利用率)提供了其他指标。

如需详细了解如何监控磁盘空间,请参阅 Ops Agent 指标

查看 Hyperdisk 的访问模式

访问模式决定了 Hyperdisk 卷是否可以挂接到多个实例,以及挂接的实例是否对磁盘具有只读或读写访问权限。

控制台

  1. 在 Google Cloud 控制台中,前往磁盘页面。

    转到“磁盘”

  2. 名称列中,点击磁盘的名称。

  3. 属性表中,标记为访问模式的行描述了实例如何访问磁盘上的数据,并且可以是以下值之一:

    • 以读写模式连接至单个虚拟机(默认),表示从一个实例进行读写访问。
    • 以读写模式连接至多个虚拟机,表示从多个实例进行读写访问。
    • 以只读模式连接至多个虚拟机,表示从多个实例进行只读访问。

gcloud

运行 gcloud compute disks describe 命令

    gcloud compute disks describe DISK_NAME 
--zone=ZONE
--format="json(accessMode)"

替换以下内容:

  • ZONE:您的磁盘所在的区域。
  • DISK_NAME:磁盘的名称。

命令输出

包含名为 accessMode 的字段的 JSON 对象。accessMode 用于描述实例如何访问磁盘上的数据,可以是以下值之一:

  • READ_ONLY_MANY,表示从多个实例进行只读访问。
  • READ_WRITE_MANY,表示从多个实例进行读写访问。
  • READ_WRITE_SINGLE,表示从一个实例进行读写访问。

REST

compute.disks.get 方法发出 POST 请求。

  POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME

替换以下内容:

  • PROJECT_ID:您的项目 ID。
  • ZONE:您的磁盘所在的区域。
  • DISK_NAME:磁盘的名称

请求响应

REST 响应是一个 JSON 对象,其中包含名为 accessMode 的字段。accessMode 用于描述实例如何访问磁盘上的数据,可以是以下值之一:

  • READ_ONLY_MANY,表示从多个实例进行只读访问。
  • READ_WRITE_MANY,表示从多个实例进行读写访问。
  • READ_WRITE_SINGLE,表示从一个实例进行读写访问。

确定磁盘是否按预期运行

磁盘可以达到的最大 IOPS 和吞吐量存在限制。这些限制取决于磁盘大小和所连接的实例。磁盘的最高性能不能超过所挂接实例的限制

如需确定 Hyperdisk 或永久性磁盘卷是否根据其大小和所挂接的实例以预期水平运行,请完成以下步骤:

  1. 检查磁盘的预配性能或最高性能。
  2. 将预配的性能或最高性能与磁盘的实际性能进行比较。

检查磁盘的预配性能或最高性能的步骤取决于磁盘是 Hyperdisk 还是永久性磁盘。

查看 Hyperdisk 的预配性能

如需查看 Hyperdisk 卷的预配 IOPS 和吞吐量值,请参阅查看 Hyperdisk 的预配性能设置

查看Persistent Disk的最大性能

永久性磁盘卷具有其可以维持的每 GiB 和每个实例的吞吐量和 IOPS 限制。以下各部分详细介绍了可用区级和区域级永久性磁盘的性能限制:

平衡永久性磁盘和固态硬盘(性能)永久性磁盘还为持续 IOPS 和吞吐量提供了基准性能。如需计算平衡永久性磁盘或 SSD 永久性磁盘卷的最大 IOPS 和吞吐量值,请使用以下等式:

Maximum expected performance = Baseline performance + (Per GiB performance limit * Combined disk size in GiB)

如需了解详情,请参阅基准性能

查看磁盘的实际性能

如需查看磁盘的 IOPS 和吞吐量性能,请使用 Google Cloud 控制台。

控制台

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面。

    转到虚拟机实例

  2. 名称列中,点击磁盘所挂接到的虚拟机的名称。

  3. 点击可观测性

  4. 在菜单中,依次选择磁盘 > 性能

    系统会显示图表,其中展示了磁盘的 IOPS 和吞吐量性能。 如需查看所有图表,您必须安装 Ops Agent

如需查看有关磁盘性能的更详细报告,请参阅查看磁盘性能指标

如果磁盘性能不符合预期,请查看监控磁盘的健康状况中的指南。

查看有关磁盘加密的信息

Compute Engine 中的磁盘使用以下类型的加密密钥进行加密:

  • Google-owned and managed keys
  • 客户管理的加密密钥 (CMEK)
  • 客户提供的加密密钥 (CSEK)

默认情况下,Compute Engine 使用 Google-owned and managed keys。

控制台

  1. 在 Google Cloud 控制台中,前往磁盘页面。

    转到“磁盘”

  2. 名称列中,点击磁盘的名称。

  3. 属性表中,标记为加密的行表示加密的类型:由 Google 管理、由客户管理或由客户提供

gcloud

运行 gcloud compute disks describe 命令

    gcloud compute disks describe DISK_NAME 
--zone=ZONE
--format="json(diskEncryptionKey)"

替换以下内容:

  • ZONE:您的磁盘所在的区域。
  • DISK_NAME:磁盘的名称。

命令输出

如果输出为 null,则表示磁盘使用 Google-owned and managed key。

否则,输出为 JSON 对象。

如果 JSON 对象包含名为 diskEncryptionKey 的字段,则磁盘会进行加密。diskEncryptionKey 对象包含有关磁盘是使用 CMEK 加密还是 CSEK 加密的信息:

  • 如果存在 diskEncryptionKey.kmsKeyName 属性,则表示磁盘采用 CMEK 加密。kmsKeyName 属性指示用于加密磁盘的特定密钥的名称:
    {
      "diskEncryptionKey": {
        "kmsKeyName": "projects/my-proj/.."
      }
    }
    
  • 如果存在 diskEncryptionKey.sha256 属性,则表示磁盘采用 CSEK 加密。sha256 属性是用于保护磁盘的客户提供的加密密钥的 SHA-256 哈希。
      {
        "diskEncryptionKey": {
          "sha256": "abcdefghijk134560459345dssfd"
        }
      }
        

REST

compute.disks.get 方法发出 POST 请求。

  POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME

替换以下内容:

  • PROJECT_ID:您的项目 ID。
  • ZONE:您的磁盘所在的区域。
  • DISK_NAME:磁盘的名称

请求响应

如果响应为 null,则表示磁盘使用 Google-owned and managed key。

否则,响应为 JSON 对象。

如果 JSON 对象包含名为 diskEncryptionKey 的字段,则磁盘会进行加密。diskEncryptionKey 对象包含有关磁盘是使用 CMEK 加密还是 CSEK 加密的信息:

  • 如果存在 diskEncryptionKey.kmsKeyName 属性,则表示磁盘采用 CMEK 加密。kmsKeyName 属性指示用于加密磁盘的特定密钥的名称:
    {
      "diskEncryptionKey": {
        "kmsKeyName": "projects/my-proj/.."
      }
    }
    
  • 如果存在 diskEncryptionKey.sha256 属性,则表示磁盘采用 CSEK 加密。sha256 属性是用于保护磁盘的客户提供的加密密钥的 SHA-256 哈希。
      {
        "diskEncryptionKey": {
          "sha256": "abcdefghijk134560459345dssfd"
        }
      }
        

如果磁盘使用 CMEK,您可以按照按项目查看密钥中的步骤找到有关密钥、其密钥环和位置的详细信息。

如果磁盘使用 CSEK,请与组织管理员联系,以详细了解该密钥。您还可以使用 CMEK,通过密钥使用情况跟踪来查看密钥所保护的资源。如需了解详情,请参阅查看密钥使用情况

查看磁盘的所有详细信息

如需大致了解磁盘,您可以一次性查看磁盘的所有属性。

控制台

  1. 在 Google Cloud 控制台中,前往磁盘页面。

    转到“磁盘”

  2. 名称列中,点击磁盘的名称。

    系统会显示属性表,其中包含基本磁盘信息的摘要。

  3. 如需查看其他磁盘信息,请点击 EQUIVALENT REST

    系统会显示一个对话框,其中包含来自 Compute Engine API 的原始 REST 响应。

gcloud

运行 gcloud compute disks describe 命令

  gcloud compute disks describe DISK_NAME \
    --zone=ZONE

替换以下内容:

  • DISK_NAME:磁盘的名称。
  • ZONE:您的磁盘所在的区域。

命令输出

与 Compute Engine 磁盘关联的所有数据。

REST

compute.disks.get 方法发出 POST 请求。

  POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME

替换以下内容:

  • PROJECT_ID:您的项目 ID。
  • ZONE:您的磁盘所在的区域。
  • DISK_NAME:磁盘的名称

请求响应

REST 响应包含与 Compute Engine 磁盘关联的所有数据。

后续步骤