向实例添加永久性磁盘


您可以创建空白的永久性磁盘,也可以从数据源创建磁盘。您可以将永久性磁盘用作虚拟机实例的启动磁盘,也可以用作挂接到虚拟机的数据磁盘。本文档介绍如何完成以下任务:

  • 创建空白的非启动可用区永久性磁盘,并将其挂接到虚拟机实例。
  • 格式化并装载磁盘,因为它最初没有任何数据或文件系统。

如需大致了解永久性磁盘以及可用磁盘类型,请参阅永久性磁盘概览

准备工作

限制

  • 在创建实例期间,您最多可以挂接 127 个辅助非启动可用区永久性磁盘。
  • 每个实例可以挂接的总容量为 257 TB。如需了解如何在使用大容量卷时确保最高性能,请参阅逻辑卷大小

将非启动磁盘添加到虚拟机

使用 Google Cloud 控制台Google Cloud CLICompute Engine API 创建并挂接可用区级非启动磁盘。

如果您在 Google Cloud 控制台中创建磁盘,则默认磁盘类型pd-balanced。如果您使用 gcloud CLI 或 Compute Engine API 创建磁盘,则默认磁盘类型为 pd-standard

控制台

  1. 转到虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 选中相应复选框,然后点击您要添加磁盘的实例的名称。

  3. 虚拟机实例详情页面上,点击修改

  4. 额外磁盘下,点击添加新磁盘

  5. 指定磁盘名称,配置磁盘属性,然后选择空白作为来源类型

  6. 点击完成以完成磁盘的配置。

  7. 点击保存以将更改应用于实例并添加新磁盘。

gcloud

  1. 在 Google Cloud 控制台中,激活 Cloud Shell。

    激活 Cloud Shell

    Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。

  2. 使用 gcloud compute disks create 命令创建可用区永久性磁盘。

    gcloud compute disks create DISK_NAME \
      --size DISK_SIZE \
      --type DISK_TYPE
    

    请替换以下内容:

    • DISK_NAME:新磁盘的名称。
    • DISK_SIZE:新磁盘的大小(以 GB 为单位)。可接受的大小范围介于 10 GB 到 65536 GB(含边界值)之间并以 1 GB 为增量。
    • DISK_TYPE:永久性磁盘类型的完整或部分网址。例如 https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd
  3. 创建磁盘后,将其挂接到任何正在运行或已停止的实例。 使用 gcloud compute instances attach-disk 命令

    gcloud compute instances attach-disk INSTANCE_NAME \
      --disk DISK_NAME
    

    请替换以下内容:

    • INSTANCE_NAME:要向其中添加新地区永久性磁盘的实例的名称
    • DISK_NAME:您要挂接到实例的新磁盘的名称。
  4. 使用 gcloud compute disks describe 命令查看磁盘的说明。

Terraform

如需创建磁盘,请使用 google_compute_disk 资源

# Using pd-standard because it's the default for Compute Engine

resource "google_compute_disk" "default" {
  name = "disk-data"
  type = "pd-standard"
  zone = "us-west1-a"
  size = "5"
}

如需将磁盘挂接到虚拟机,请使用 google_compute_instance 资源

resource "google_compute_instance" "test_node" {
  name         = "test-node"
  machine_type = "f1-micro"
  zone         = "us-west1-a"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }
  attached_disk {
    source      = google_compute_disk.default.id
    device_name = google_compute_disk.default.name
  }

  network_interface {
    network = "default"
    access_config {
      // Ephemeral IP
    }
  }
}

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令

API

  1. 在 API 中,构建一个 POST 请求以使用 disks.insert 方法创建可用区永久性磁盘。请添加 namesizeGbtype 属性。如果想要创建一个空白且未格式化的非启动磁盘,请不要为此磁盘指定来源映像或来源快照。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks
    
    {
     "name": "DISK_NAME",
     "sizeGb": "DISK_SIZE",
     "type": "DISK_TYPE"
    }
    

    替换以下内容:

    • PROJECT_ID:您的项目 ID。
    • ZONE:您的实例和新磁盘所在的区域。
    • DISK_NAME:新磁盘的名称。
    • DISK_SIZE:新磁盘的大小(以 GB 为单位)。可接受的大小范围介于 10 GB 到 65536 GB(含边界值)之间并以 1 GB 为增量。
    • DISK_TYPE:永久性磁盘类型的完整或部分网址。例如 https://www.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE/diskTypes/pd-ssd
  2. 构建一个向 compute.instances.attachDisk 方法发出的 POST 请求,并在其中添加您刚创建的地区永久性磁盘的网址:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk
    
    {
     "source": "/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME"
    }
    

    替换以下内容:

    • PROJECT_ID:您的项目 ID
    • ZONE:您的实例和新磁盘所在的地区
    • INSTANCE_NAME:您要向其中添加新永久性磁盘的实例的名称
    • DISK_NAME:新磁盘的名称

创建新磁盘并将其挂接到虚拟机后,必须格式化并装载磁盘,以便操作系统可以使用可用的存储空间。

后续步骤