Menambahkan disk dari kumpulan Hyperdisk ke VM

Dokumen ini menjelaskan cara membuat disk dalam kumpulan.

Anda dapat membuat disk di pool, lalu memasang disk ke instance virtual machine (VM), atau membuat disk di pool saat membuat instance VM.

Anda tidak dapat memindahkan disk yang ada ke dalam atau ke luar pool. Anda harus membuat disk baru dari disk yang ada. Untuk melakukannya, lihat Mengubah jenis, penempatan, atau lokasi disk.

Sebelum memulai

  • Siapkan autentikasi jika Anda belum melakukannya. Autentikasi memverifikasi identitas Anda untuk mengakses layanan Google Cloud dan API. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    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. Instal Google Cloud CLI. Setelah penginstalan, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

      gcloud init

      Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

    2. Set a default region and zone.

    Go

    Untuk menggunakan contoh Go di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

      Instal Google Cloud CLI.

      Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

      If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Untuk informasi selengkapnya, lihat Set up authentication for a local development environment.

    Java

    Untuk menggunakan contoh Java di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

      Instal Google Cloud CLI.

      Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

      If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Untuk informasi selengkapnya, lihat Set up authentication for a local development environment.

    Node.js

    Untuk menggunakan contoh Node.js di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

      Instal Google Cloud CLI.

      Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

      If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Untuk informasi selengkapnya, lihat Set up authentication for a local development environment.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

      Instal Google Cloud CLI.

      Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

    Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .

Peran dan izin yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk membuat disk Hyperdisk Seimbang atau Hyperdisk Throughput di pool, minta administrator untuk memberi Anda peran IAM berikut di project:

  • Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1)
  • Untuk terhubung ke instance VM yang dapat dijalankan sebagai akun layanan: Service Account User (v1) (peran roles/iam.serviceAccountUser)

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk membuat disk Hyperdisk Seimbang atau Hyperdisk Throughput dalam pool. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat disk Hyperdisk Balanced atau Hyperdisk Throughput dalam pool:

  • Untuk membuat disk di pool dan memasang disk ke instance VM:
    • compute.disks.create dalam project
    • compute.instances.attachDisk di VM
    • compute.disks.use di volume yang ingin Anda sertakan ke VM
    • compute.storagePools.use di pool tempat Anda membuat disk
  • Untuk memformat dan memasang volume yang terpasang: compute.instances.setMetadata di VM

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Untuk mengetahui izin yang diperlukan untuk membuat instance, lihat Izin yang diperlukan.

Batasan

Batasan untuk menambahkan disk ke kumpulan:

  • Anda hanya dapat membuat disk Hyperdisk Balanced di pool Hyperdisk Balanced, dan Anda hanya dapat membuat disk Hyperdisk Throughput di pool Hyperdisk Throughput
  • Hanya disk baru di project dan zona yang sama yang dapat dibuat di pool.
  • Pool tidak mendukung disk regional.
  • Anda tidak dapat memindahkan disk ke dalam atau ke luar pool. Untuk memindahkan disk ke dalam atau ke luar pool, Anda harus membuat ulang disk dari snapshot. Untuk mengetahui informasi selengkapnya, lihat Mengubah jenis disk.
  • Untuk membuat disk boot di pool, Anda harus menggunakan Hyperdisk Balanced Storage Pool atau Hyperdisk Balanced Exapool.

Batasan khusus untuk Kumpulan Penyimpanan:

  • Anda dapat membuat hingga 10.000 disk di Kumpulan Penyimpanan.

Batasan khusus untuk Exapools:

  • Anda dapat membuat hingga 500.000 disk di Exapool.

Opsi penyediaan

Bergantung pada jenis penyediaan untuk kumpulan, Anda dapat memilih cara menyediakan kapasitas dan performa setiap disk yang Anda buat di kumpulan.

Menyediakan kapasitas disk

Jika menggunakan Exapool atau Storage Pool dengan kapasitas lanjutan, Anda dapat membuat disk di pool dengan ukuran kumulatif yang melebihi kapasitas yang disediakan di pool. Kapasitas yang digunakan pool ditentukan oleh total data yang digunakan dan bukan oleh jumlah ruang disk yang telah Anda sediakan. Anda dapat menyediakan disk dengan kapasitas gabungan hingga lima atau 50 kali kapasitas yang disediakan dari pool kapasitas Lanjutan atau Hyperdisk Exapool.

Jika Anda membuat disk di pool kapasitas Standard, Anda membuat disk di pool hingga total ukuran semua disk di pool mencapai kapasitas yang disediakan pool. Disk dalam pool dengan kapasitas Standar berperilaku serupa dengan disk non-pool, di mana kapasitas digunakan saat Anda membuat disk.

Performa penyediaan

Jika menggunakan Exapool atau Penyimpanan Gabungan dengan kapasitas lanjutan, Anda dapat membuat disk di gabungan dengan jumlah kumulatif IOPS dan throughput yang melebihi performa gabungan yang disediakan. Performa yang digunakan pool ditentukan oleh total performa yang digunakan oleh disk, bukan oleh jumlah performa yang disediakan untuk setiap disk.

  • Untuk Kumpulan Penyimpanan, Anda dapat menyediakan disk dengan performa gabungan hingga 500% dari performa yang disediakan untuk kumpulan performa Tingkat lanjut.

  • Untuk Exapools, Anda dapat menyediakan disk dengan performa gabungan hingga 50x performa tulis yang disediakan pool.

Jika Anda membuat disk di pool performa Standar, IOPS atau throughput yang Anda sediakan untuk disk harus kurang dari IOPS atau throughput yang tersedia di Hyperdisk Storage Pool. IOPS atau throughput yang tersedia adalah jumlah yang disediakan untuk pool dikurangi jumlah yang digunakan untuk semua disk yang dibuat di pool.

Jika salah satu kondisi dalam paragraf sebelumnya tidak terpenuhi, maka permintaan untuk membuat disk di pool akan gagal dan disk tidak akan dibuat.

Contoh

Asumsikan Anda memiliki Penyimpanan Gabungan Hyperdisk Balanced dengan 100.000 IOPS yang disediakan.

Dengan penyediaan performa Standar:

  • Anda dapat menyediakan hingga 100.000 IOPS gabungan saat membuat disk Hyperdisk Seimbang di Storage Pool.
  • Anda akan ditagih untuk performa yang disediakan Hyperdisk Balanced Storage Pool sebesar 100.000 IOPS.
  • Seperti disk yang dibuat di luar storage pool, disk Hyperdisk Balanced di Storage Pool performa Standar disediakan secara otomatis dengan IOPS dasar pengukuran hingga 3.000 dan throughput dasar pengukuran 140 MiB/s. Performa dasar ini tidak dihitung terhadap performa yang disediakan untuk Kumpulan Penyimpanan. Hanya jika Anda menambahkan disk ke Kumpulan Penyimpanan dengan performa yang disediakan di atas baseline, performa tersebut akan dihitung terhadap performa yang disediakan untuk Kumpulan Penyimpanan, misalnya:

    • Disk yang disediakan dengan 3.000 IOPS menggunakan 0 IOPS pool dan pool masih memiliki 100.000 IOPS yang disediakan dan tersedia untuk disk lain.
    • Disk yang disediakan dengan 13.000 IOPS menggunakan 10.000 IOPS pool dan pool memiliki 90.000 IOPS yang disediakan yang tersisa yang dapat Anda alokasikan ke disk lain di Storage Pool.

Dengan Penyediaan performa lanjutan:

  • Anda dapat menyediakan performa Hyperdisk gabungan hingga 500.000 IOPS saat membuat disk di Storage Pool.
  • Anda akan ditagih untuk 100.000 IOPS yang disediakan oleh Storage Pool.
  • Jika Anda membuat satu disk (Disk1) di Storage Pool yang memiliki 5.000 IOPS, Anda tidak menggunakan IOPS dari IOPS yang disediakan Storage Pool. Namun, jumlah IOPS yang dapat Anda sediakan untuk disk baru yang dibuat di Kumpulan Penyimpanan kini adalah 495.000.
  • Jika Disk1 mulai membaca dan menulis data, dan jika Disk1 menggunakan maksimum 5.000 IOPS dalam satu menit tertentu, maka 5.000 IOPS akan digunakan dari IOPS yang disediakan di Kumpulan Penyimpanan. Disk lain yang Anda buat di kumpulan penyimpanan yang sama dapat menggunakan maksimum agregat 95.000 IOPS dalam menit yang sama tanpa mengalami pertentangan.

Buat disk di pool

Anda dapat menggunakan konsol Google Cloud , Google Cloud CLI, atau REST untuk membuat disk di pool.

Konsol

Dengan menggunakan konsol Google Cloud , Anda dapat membuat disk baru di pool melalui halaman Storage pools atau halaman Disks.

Di halaman Kumpulan penyimpanan:

  1. Di konsol Google Cloud , buka halaman Storage pools.

    Buka halaman Storage pools

  2. Pilih tab untuk Exapools atau Storage Pools.

  3. Klik nama pool tempat Anda ingin membuat disk.

  4. Di halaman Kelola pool penyimpanan, klik +Buat Disk Baru.

  5. Di panel Add new disk, masukkan Name untuk disk.

  6. Tentukan atau ubah nilai apa pun yang tidak ingin Anda gunakan sebagai nilai default.

  7. Setelah selesai menentukan properti disk, klik Simpan.

  8. Di halaman Kelola pool penyimpanan, Anda akan melihat disk baru yang tercantum di bagian Disk pool penyimpanan.

Di halaman Create Disk:

  1. Di konsol Google Cloud , buka Disks > Create a disk.

    Buka halaman Buat disk

  2. Masukkan Nama untuk disk.

  3. Pilih zona yang berisi kumpulan yang ingin Anda buat disk-nya.

  4. Untuk Jenis disk, pilih jenis disk yang cocok dengan pool, baik Hyperdisk Throughput maupun Hyperdisk Seimbang.

  5. Ubah nilai di kolom Ukuran, IOPS yang Disediakan, dan Throughput yang Disediakan sesuai kebutuhan.

  6. Di bagian Storage pool, pilih Enable storage pool, lalu pilih nama pool untuk membuat disk. Hanya kumpulan yang ada di zona yang dipilih yang muncul dalam daftar.

  7. Setelah selesai menentukan informasi disk, klik Buat.

gcloud

Untuk membuat satu atau beberapa disk dalam pool, gunakan perintah gcloud compute disks create.

gcloud compute disks create DISK_NAME \
    --zone=ZONE \
    --storage-pool=STORAGE_POOL_NAME \
    --size=SIZE \
    --type=DISK_TYPE \
    --provisioned-iops=PROVISIONED_IOPS \
    --provisioned-throughput=PROVISIONED_THROUGHPUT

Ganti kode berikut:

  • DISK_NAME: nama unik untuk disk. Anda dapat memberikan daftar nama disk yang ditentukan oleh spasi untuk membuat beberapa disk dengan atribut yang sama.
  • ZONE: zona tempat pool dibuat. Tentukan nilai ini dalam format region-zona, misalnya us-central1-a.
  • STORAGE_POOL_NAME: nama pool untuk membuat disk
  • SIZE: Opsional: kapasitas yang disediakan untuk disk baru. Nilai harus berupa bilangan bulat yang diikuti dengan satuan ukuran GB untuk gibibyte, atau TB untuk tebibyte. Jika tidak ada ukuran yang ditentukan, 100 GB akan digunakan sebagai nilai default.
  • DISK_TYPE: jenis disk yang akan dibuat. Nilai ini harus cocok dengan jenis Hyperdisk Storage Pool, baik hyperdisk-balanced maupun hyperdisk-throughput.
  • PROVISIONED_IOPS: Opsional: IOPS yang akan disediakan untuk disk. Anda hanya dapat menggunakan flag ini dengan disk Hyperdisk Seimbang.
  • PROVISIONED_THROUGHPUT: Opsional: throughput dalam MiB/s yang akan disediakan untuk disk.

REST

Untuk membuat satu atau beberapa disk dalam kumpulan, buat POST menggunakan metode disks.insert. Sertakan properti name, sizeGb, type, storagePool, provisionedIops, dan provisionedThroughput. Untuk membuat disk ini sebagai disk non-boot kosong dan tidak terformat, jangan tentukan image sumber atau snapshot sumber.

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

{
    "name": "DISK_NAME",
    "description": "DESCRIPTION",
    "type": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE",
    "sizeGb": "DISK_SIZE",
    "storagePool": "STORAGE_POOL_NAME",
    "provisionedIops": "IOPS_LIMIT",
    "provisionedThroughput": "THROUGHPUT_LIMIT",
}

Ganti kode berikut:

  • PROJECT_ID: the project ID
  • ZONE: zona tempat pool berada, misalnya, us-central1-a. Ini adalah zona tempat disk akan dibuat.
  • DISK_NAME: nama unik untuk disk.
  • DESCRIPTION: Opsional: string teks yang mendeskripsikan disk.
  • DISK_TYPE: jenis disk, yang harus cocok dengan jenis pool. Gunakan hyperdisk-throughput atau hyperdisk-balanced.
  • DISK_SIZE: Opsional: Ukuran disk baru. Nilai harus berupa bilangan bulat yang diikuti dengan unit ukuran GB untuk gibibyte atau TB untuk tebibyte. Jika tidak ada ukuran yang ditentukan, 100 GB akan digunakan sebagai nilai default.
  • STORAGE_POOL_NAME: nama pool tempat disk akan dibuat.
  • IOPS_LIMIT: Opsional: IOPS yang akan disediakan untuk disk. Anda hanya dapat menggunakan flag ini dengan disk Hyperdisk Seimbang.
  • THROUGHPUT_LIMIT: Opsional: Throughput dalam MiB/s yang akan disediakan untuk disk.

Go


// createDiskInStoragePool creates a new Hyperdisk in the specified storage pool.
func createDiskInStoragePool(w io.Writer, projectId, zone, diskName, storagePoolName, diskType string) error {
	// Example usage:
	//   projectID := "your_project_id"
	//   zone := "europe-central2-b"
	//   diskName := "your_disk_name"
	//   storagePoolName := "https://www.googleapis.com/compute/v1/projects/your_project_id/zones/europe-central2-b/storagePools/your_storage_pool"
	//   diskType := "zones/europe-central2-b/diskTypes/hyperdisk-balanced"

	ctx := context.Background()
	client, err := compute.NewDisksRESTClient(ctx)
	if err != nil {
		return fmt.Errorf("NewDisksRESTClient: %v", err)
	}
	defer client.Close()

	// Create the disk resource
	disk := &computepb.Disk{
		Name:                  proto.String(diskName),
		Type:                  proto.String(diskType),
		SizeGb:                proto.Int64(50),
		Zone:                  proto.String(zone),
		StoragePool:           proto.String(storagePoolName),
		ProvisionedIops:       proto.Int64(10000),
		ProvisionedThroughput: proto.Int64(1024),
	}

	// Create the insert disk request
	req := &computepb.InsertDiskRequest{
		Project:      projectId,
		Zone:         zone,
		DiskResource: disk,
	}

	// Send the insert disk request
	op, err := client.Insert(ctx, req)
	if err != nil {
		return fmt.Errorf("Insert disk request failed: %v", err)
	}

	// Wait for the insert disk operation to complete
	if err = op.Wait(ctx); err != nil {
		return fmt.Errorf("unable to wait for the operation: %w", err)
	}

	fmt.Fprintf(w, "Disk created in storage pool: %v\n", disk.Name)
	return nil
}

Java


import com.google.cloud.compute.v1.Disk;
import com.google.cloud.compute.v1.DisksClient;
import com.google.cloud.compute.v1.InsertDiskRequest;
import com.google.cloud.compute.v1.Operation;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

public class CreateDiskInStoragePool {
  public static void main(String[] args)
          throws IOException, ExecutionException, InterruptedException, TimeoutException {
    // TODO(developer): Replace these variables before running the sample.
    // Project ID or project number of the Google Cloud project you want to use.
    String projectId = "YOUR_PROJECT_ID";
    // Name of the zone in which you want to create the disk.
    String zone = "europe-central2-b";
    // Name of the disk you want to create.
    String diskName = "YOUR_DISK_NAME";
    // Link to the storagePool you want to use. Use format :
    // https://www.googleapis.com/compute/v1/projects/%s/zones/%s/storagePools/%s"
    String storagePoolName = "YOUR_STORAGE_POOL_LINK";
    // The type of disk you want to create. This value uses the following format:
    // "zones/{zone}/diskTypes/(hyperdisk-balanced|hyperdisk-throughput)".
    // For example: "zones/us-west3-b/diskTypes/hyperdisk-balanced"
    String diskType = String.format("zones/%s/diskTypes/hyperdisk-balanced", zone);
    // Size of the new disk in gigabytes.
    long diskSizeGb = 10;
    // Optional: the IOPS to provision for the disk.
    // You can use this flag only with Hyperdisk Balanced disks.
    long provisionedIops = 3000;
    // Optional: the throughput in mebibyte (MB) per second to provision for the disk.
    long provisionedThroughput = 140;

    createDiskInStoragePool(projectId, zone, diskName, storagePoolName, diskType,
            diskSizeGb, provisionedIops, provisionedThroughput);
  }

  // Creates a hyperdisk in the storage pool
  public static Disk createDiskInStoragePool(String projectId, String zone, String diskName,
                                             String storagePoolName, String diskType,
                                             long diskSizeGb, long iops, long throughput)
          throws IOException, ExecutionException, InterruptedException, TimeoutException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (DisksClient client = DisksClient.create()) {
      // Create a disk.
      Disk disk = Disk.newBuilder()
              .setZone(zone)
              .setName(diskName)
              .setType(diskType)
              .setSizeGb(diskSizeGb)
              .setStoragePool(storagePoolName)
              .setProvisionedIops(iops)
              .setProvisionedThroughput(throughput)
              .build();

      InsertDiskRequest request = InsertDiskRequest.newBuilder()
              .setProject(projectId)
              .setZone(zone)
              .setDiskResource(disk)
              .build();

      // Wait for the insert disk operation to complete.
      Operation operation = client.insertAsync(request).get(1, TimeUnit.MINUTES);

      if (operation.hasError()) {
        System.out.println("Disk creation failed!");
        throw new Error(operation.getError().toString());
      }

      // Wait for server update
      TimeUnit.SECONDS.sleep(10);

      Disk hyperdisk = client.get(projectId, zone, diskName);

      System.out.printf("Hyperdisk '%s' has been created successfully", hyperdisk.getName());

      return hyperdisk;
    }
  }
}

Node.js

// Import the Compute library
const computeLib = require('@google-cloud/compute');
const compute = computeLib.protos.google.cloud.compute.v1;

// Instantiate a diskClient
const disksClient = new computeLib.DisksClient();
// Instantiate a zoneOperationsClient
const zoneOperationsClient = new computeLib.ZoneOperationsClient();

/**
 * TODO(developer): Update/uncomment these variables before running the sample.
 */
// Project ID or project number of the Google Cloud project you want to use.
const projectId = await disksClient.getProjectId();

// The zone where your VM and new disk are located.
// zone = 'us-central1-a';

// The name of the new disk
// diskName = 'disk-from-pool-name';

// The name of the storage pool
// storagePoolName = 'storage-pool-name';

// Link to the storagePool you want to use. Use format:
// https://www.googleapis.com/compute/v1/projects/{projectId}/zones/{zone}/storagePools/{storagePoolName}
const storagePool = `https://www.googleapis.com/compute/v1/projects/${projectId}/zones/${zone}/storagePools/${storagePoolName}`;
// The type of disk. This value uses the following format:
// "zones/{zone}/diskTypes/(hyperdisk-balanced|hyperdisk-extreme|hyperdisk-ml|hyperdisk-throughput)".
// For example: "zones/us-west3-b/diskTypes/hyperdisk-balanced"
const diskType = `zones/${zone}/diskTypes/hyperdisk-balanced`;
// Size of the new disk in gigabytes.
const diskSizeGb = 10;
// Optional: For Hyperdisk Balanced or Hyperdisk Extreme disks,
// this is the number of I/O operations per second (IOPS) that the disk can handle.
const provisionedIops = 3000;
// Optional: For Hyperdisk Balanced or Hyperdisk Throughput volumes,
// this is an integer that represents the throughput,
// measured in MiB per second, that the disk can handle.
const provisionedThroughput = 140;

async function callCreateComputeHyperdiskFromPool() {
  // Create a disk
  const disk = new compute.Disk({
    sizeGb: diskSizeGb,
    name: diskName,
    type: diskType,
    zone,
    storagePool,
    provisionedIops,
    provisionedThroughput,
  });

  const [response] = await disksClient.insert({
    project: projectId,
    zone,
    diskResource: disk,
  });

  let operation = response.latestResponse;

  // Wait for the create disk operation to complete.
  while (operation.status !== 'DONE') {
    [operation] = await zoneOperationsClient.wait({
      operation: operation.name,
      project: projectId,
      zone: operation.zone.split('/').pop(),
    });
  }

  console.log(`Disk: ${diskName} created.`);
}

await callCreateComputeHyperdiskFromPool();

Setelah membuat disk, Anda dapat melampirkan disk ke VM.

Membuat VM yang menggunakan disk di pool

Saat membuat VM, Anda mengonfigurasi disk boot, dan Anda dapat membuat disk data (non-boot) tambahan secara opsional, yang otomatis terpasang ke VM. Bagian berikut menjelaskan cara membuat setiap jenis disk dalam pool sebagai bagian dari proses pembuatan VM.

Membuat boot disk untuk VM dalam kumpulan

Untuk membuat VM yang menggunakan boot disk dalam pool, Anda harus membuat Hyperdisk Balanced Storage Pool atau Hyperdisk Balanced Exapool terlebih dahulu. Kemudian, Anda dapat membuat instance menggunakan jenis mesin yang mendukung disk Hyperdisk Seimbang. Jenis mesin, jenis disk, dan kumpulan harus tersedia di zona yang Anda pilih.

Konsol

  1. Di konsol Google Cloud , buka halaman VM Instances.

    Buka instance VM

  2. Klik Create Instance.

  3. Masukkan nama untuk instance.

  4. Tetapkan zona ke zona yang sama dengan tempat kumpulan berada.

  5. Pilih jenis mesin yang mendukung Hyperdisk Seimbang, misalnya H3.

  6. Di bagian Boot disk, klik Ubah.

  7. Di panel Boot disk, tetapkan Boot disk type ke Hyperdisk Balanced.

  8. Konfigurasi properti untuk disk.

  9. Luaskan Show advanced configuration.

  10. Di bagian heading Storage pool, pilih Enable storage pool.

  11. Pilih pool untuk membuat disk dari daftar.

  12. Setelah selesai mengonfigurasi disk, klik Pilih.

  13. Selesaikan konfigurasi properti VM.

  14. Klik Create.

    Konsol membuat VM di zona yang ditentukan, dan membuat boot disk di pool yang dipilih.

gcloud

Anda dapat membuat boot disk untuk VM baru di pool menggunakan perintah gcloud compute instances create dan menyertakan properti storage-pool untuk boot disk.

gcloud compute instances create VM_NAME \
    --zone=ZONE \
    --machine-type=MACHINE_TYPE \
    --create-disk=boot=yes,type=hyperdisk-balanced,size=DISK_SIZE,provisioned-throughput=THROUGHPUT, \
    provisioned-iops=IOPS,image=projects/IMAGE_PROJECT/global/images/IMAGE, \
    storage-pool=STORAGE_POOL_NAME

Ganti kode berikut:

  • VM_NAME: nama VM.
  • ZONE: region dan zona tempat VM dibuat, menggunakan format us-central1-a.
  • MACHINE_TYPE: jenis mesin VM, misalnya, m3-ultramem-32.
  • DISK_SIZE: ukuran boot disk, dalam GiB
  • THROUGHPUT: throughput yang akan disediakan untuk disk
  • IOPS: IOPS yang akan disediakan untuk disk
  • IMAGE_PROJECT: project yang berisi image
  • IMAGE: menentukan salah satu dari hal berikut:
    • Versi tertentu dari OS image—misalnya, debian-12-bookworm-v20240213.
    • Kelompok image, yang harus diformat sebagai family/IMAGE_FAMILY. Hal ini akan membuat instance dari OS image terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-12, Compute Engine akan membuat VM menggunakan versi OS image terbaru dalam kelompok image debian-12. Untuk mengetahui informasi selengkapnya tentang cara menggunakan kelompok image, lihat Praktik terbaik kelompok image.
  • STORAGE_POOL_NAME: nama pool penyimpanan untuk membuat disk baru.

REST

Anda dapat membuat boot disk untuk VM baru di pool dengan membuat permintaan POST untuk metode instances.insert dan menyertakan properti storagePool untuk boot disk.

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

{
   "name": "VM_NAME",
   "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
   "disks": [
      {
         "deviceName": "BOOT_DISK_DEVICE_NAME",
         "initializeParams": {
            "diskSizeGb": "DISK_SIZE",
            "diskType": "DISK_TYPE",
            "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
            "boot": true,
            "provisionedIops": "IOPS_LIMIT",
            "provisionedThroughput": "THROUGHPUT_LIMIT",
            "storagePool": "POOL_URL"
         }
      }
   ]
}

Ganti kode berikut:

  • PROJECT_ID: the project ID
  • ZONE: zona tempat pool berada, misalnya, us-central1-a. Ini adalah zona tempat VM dan boot disk dibuat.
  • VM_NAME: nama VM.
  • MACHINE_TYPE: jenis mesin VM, misalnya, m3-ultramem-32.
  • BOOT_DISK_DEVICE_NAME: nama perangkat untuk disk boot
  • DISK_SIZE: ukuran boot disk, dalam GiB
  • DISK_TYPE: jenis disk, ditentukan sebagai URI
  • IMAGE_PROJECT: project yang berisi image
  • IMAGE: menentukan salah satu dari hal berikut:
    • Versi tertentu dari OS image—misalnya, debian-12-bookworm-v20240213.
    • Kelompok image, yang harus diformat sebagai family/IMAGE_FAMILY. Hal ini akan membuat instance dari OS image terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-12, Compute Engine akan membuat VM menggunakan versi OS image terbaru dalam kelompok image debian-12. Untuk mengetahui informasi selengkapnya tentang cara menggunakan kelompok image, lihat Praktik terbaik kelompok image.
  • IOPS_LIMIT: IOPS yang akan disediakan untuk disk
  • THROUGHPUT_LIMIT: throughput yang akan disediakan untuk disk
  • POOL_URL: pool penyimpanan tempat disk baru dibuat. Anda dapat memberikan ini sebagai URL sebagian atau lengkap ke resource. Misalnya, berikut adalah nilai yang valid:
    • https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/storagePools/STORAGE_POOL_NAME
    • projects/PROJECT_ID/zones/ZONE/storagePools/STORAGE_POOL_NAME
    • zones/ZONE/storagePools/STORAGE_POOL_NAME

Membuat disk tambahan dalam kumpulan selama pembuatan VM

Saat membuat disk dalam pool selama pembuatan VM, jenis mesin, jenis disk, dan pool harus tersedia di zona yang Anda pilih.

Konsol

Gunakan langkah-langkah berikut untuk menggunakan konsol guna membuat VM baru dengan disk non-boot tambahan:

  1. Di konsol Google Cloud , buka halaman VM Instances.

    Buka instance VM

  2. Klik Create Instance.

  3. Masukkan nama untuk VM.

  4. Tetapkan zona ke zona yang sama dengan tempat kumpulan berada.

  5. Pilih jenis mesin yang mendukung jenis disk yang digunakan oleh pool.

  6. Luaskan bagian Advanced options.

  7. Luaskan Disks.

  8. Klik Tambahkan disk baru.

  9. Di panel Add new disk, masukkan informasi untuk disk. Tetapkan Jenis disk agar sesuai dengan jenis pool.

  10. Di bagian Storage Pool, pilih Enable storage pool.

  11. Di kolom Pilih pool penyimpanan, pilih pool untuk membuat disk.

  12. Setelah selesai mengonfigurasi disk, klik Simpan.

  13. Selesaikan konfigurasi properti VM.

  14. Klik Create.

    Konsol membuat VM di zona yang ditentukan, dan membuat disk non-boot di pool yang dipilih.

gcloud

Anda dapat membuat disk baru di pool selama pembuatan VM menggunakan perintah gcloud compute instances create dan menyertakan properti storage-pool untuk disk.

gcloud compute instances create VM_NAME \
    --zone=ZONE \
    --machine-type=MACHINE_TYPE \
    --create-disk=auto-delete=yes,boot=yes,device-name=BOOT_DISK_DEVICE_NAME,image=IMAGE_NAME, \
    size=BOOT_DISK_SIZE,type=BOOT_DISK_TYPE
    --create-disk=auto-delete=yes,boot=no,device-name=DATA_DISK_DEVICE_NAME,size=DATA_DISK_SIZE, \
    type=DATA_DISK_TYPE,provisioned-iops=IOPS,provisioned-throughput=THROUGHPUT, \
    storage_pool=STORAGE_POOL_NAME

Ganti kode berikut:

  • VM_NAME: nama VM.
  • ZONE: region dan zona tempat VM dibuat, menggunakan format us-central1-a
  • MACHINE_TYPE: jenis mesin VM
  • BOOT_DISK_DEVICE_NAME: nama perangkat untuk disk boot
  • IMAGE_NAME: nama image sistem operasi yang akan diinstal di boot disk, misalnya, debian-12-bookworm-v20240213
  • BOOT_DISK_SIZE: ukuran boot disk, dalam GiB
  • BOOT_DISK_TYPE: jenis disk
  • DATA_DISK_DEVICE_NAME: nama perangkat disk untuk disk data
  • DATA_DISK_SIZE: ukuran disk data, dalam GiB
  • DATA_DISK_TYPE: jenis disk data, hyperdisk-balanced atau hyperdisk-throughput
  • IOPS: IOPS yang akan disediakan untuk disk
  • THROUGHPUT: throughput yang akan disediakan untuk disk
  • STORAGE_POOL_NAME: nama unik untuk pool tempat Anda ingin membuat disk.

REST

Anda dapat membuat disk baru di kumpulan selama pembuatan VM dengan membuat permintaan POST untuk metode instances.insert dan menyertakan properti storagePool untuk disk tambahan.

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

{
   "name": "VM_NAME",
   "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
   "disks": [
      {
        "initializeParams":{
            "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE"
        },
        "boot":true
      },
      {
        "deviceName": "DEVICE_NAME",
        "boot":false,
        "initializeParams": {
           "diskSizeGb": "DISK_SIZE",
           "diskType": "DISK_TYPE",
           "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
           "provisionedIops": "IOPS_LIMIT",
           "provisionedThroughput": "THROUGHPUT_LIMIT",
           "storagePool": "POOL_URL"
        }
      }
   ]
}

Ganti kode berikut:

  • PROJECT_ID: the project ID
  • ZONE: zona tempat pool berada, misalnya, us-central1-a. Ini adalah zona tempat VM dan boot disk dibuat.
  • VM_NAME: nama VM.
  • MACHINE_TYPE: jenis mesin VM, misalnya, m3-ultramem-32.
  • IMAGE_PROJECT: project yang berisi image
  • IMAGE: menentukan salah satu dari hal berikut:
    • Versi tertentu dari OS image—misalnya, debian-12-bookworm-v20240213.
    • Kelompok image, yang harus diformat sebagai family/IMAGE_FAMILY. Hal ini akan membuat instance dari OS image terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-12, Compute Engine akan membuat VM menggunakan versi OS image terbaru dalam kelompok image debian-12. Untuk mengetahui informasi selengkapnya tentang cara menggunakan kelompok image, lihat Praktik terbaik kelompok image.
  • DEVICE_NAME: nama perangkat untuk disk data
  • DISK_SIZE: ukuran disk data, dalam GiB
  • DISK_TYPE: jenis disk, ditentukan sebagai URI
  • IOPS_LIMIT: IOPS yang akan disediakan untuk disk
  • THROUGHPUT_LIMIT: throughput yang akan disediakan untuk disk
  • POOL_URL: pool penyimpanan tempat disk baru dibuat. Anda dapat memberikan ini sebagai URL sebagian atau lengkap ke resource. Misalnya, berikut adalah nilai yang valid:
    • https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/storagePools/STORAGE_POOL_NAME
    • projects/PROJECT_ID/zones/ZONE/storagePools/STORAGE_POOL_NAME
    • zones/ZONE/storagePools/STORAGE_POOL_NAME

Menggunakan kumpulan di template instance

Template instance yang digunakan untuk membuat grup instance terkelola (MIG) dapat berisi informasi kumpulan. Disk yang dibuat menggunakan template instance ditempatkan di pool yang ditentukan.

Konsol

  1. Di konsol Google Cloud , buka halaman Instance templates.

    Buka Instance templates

  2. Klik Create Instance Template.

  3. Masukkan nama untuk template instance.

  4. Pilih Regional untuk lokasi, dan di kolom Region, pilih region tempat kumpulan berada.

  5. Pilih jenis mesin yang mendukung Hyperdisk Seimbang, misalnya C3.

  6. Di bagian Boot disk, klik Ubah.

  7. Di panel Boot disk, tetapkan Boot disk type ke Hyperdisk Balanced.

  8. Konfigurasi properti untuk disk.

  9. Luaskan Show advanced configuration.

  10. Di bagian heading Storage pool, pilih Enable storage pool.

  11. Pilih pool untuk membuat disk dari daftar.

  12. Setelah selesai mengonfigurasi disk, klik Pilih.

  13. Selesaikan konfigurasi properti VM.

  14. Klik Create.

    Template membuat VM di zona yang ditentukan, dan membuat boot disk di pool yang dipilih.

gcloud

Anda dapat menentukan dalam template instance bahwa disk boot dibuat di pool menggunakan perintah gcloud compute instance-templates create dan menyertakan properti storage-pool untuk disk boot.

gcloud compute instance-templates create TEMPLATE_NAME \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE \
    --create-disk=boot=yes,type=hyperdisk-balanced,size=DISK_SIZE,provisioned-throughput=THROUGHPUT, \
    provisioned-iops=IOPS,image=projects/IMAGE_PROJECT/global/images/IMAGE, \
    storage-pool=STORAGE_POOL_NAME

Ganti kode berikut:

  • TEMPLATE_NAME: nama template instance.
  • REGION: region tempat Anda ingin membuat template instance regional. Region harus berisi zona tempat kumpulan berada.
  • MACHINE_TYPE: jenis mesin yang akan digunakan saat membuat VM, misalnya, h3-standard-88.
  • DISK_SIZE: ukuran disk, dalam GiB
  • THROUGHPUT: throughput yang akan disediakan untuk disk
  • IOPS: IOPS yang akan disediakan untuk disk
  • IMAGE_PROJECT: project yang berisi image
  • IMAGE: menentukan salah satu dari hal berikut:
    • Versi tertentu dari OS image—misalnya, debian-12-bookworm-v20240213.
    • Kelompok image, yang harus diformat sebagai family/IMAGE_FAMILY. Hal ini akan membuat instance dari OS image terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-12, Compute Engine akan membuat VM menggunakan versi OS image terbaru dalam kelompok image debian-12. Untuk mengetahui informasi selengkapnya tentang cara menggunakan kelompok image, lihat Praktik terbaik kelompok image.
  • STORAGE_POOL_NAME: nama pool penyimpanan untuk membuat disk baru.

REST

Anda dapat membuat boot disk untuk VM baru di pool dengan membuat permintaan POST untuk metode instances.insert dan menyertakan properti storagePool untuk boot disk.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
{
   "name": "VM_NAME",
   "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
   "disks": [
      {
         "deviceName": "BOOT_DISK_DEVICE_NAME",
         "initializeParams": {
            "diskSizeGb": "DISK_SIZE",
            "diskType": "DISK_TYPE",
            "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
            "boot": true,
            "provisionedIops": "IOPS_LIMIT",
            "provisionedThroughput": "THROUGHPUT_LIMIT",
            "storagePool": "POOL_URL"
         }
      }
   ]
}

Ganti kode berikut:

  • PROJECT_ID: the project ID
  • VM_NAME: nama VM.
  • ZONE: zona tempat pool berada, misalnya, us-central1-a. Ini adalah zona tempat VM dan boot disk dibuat.
  • MACHINE_TYPE: jenis mesin VM, misalnya, m3-ultramem-32.
  • BOOT_DISK_DEVICE_NAME: nama perangkat untuk disk boot
  • DISK_SIZE: ukuran boot disk, dalam GiB
  • DISK_TYPE: jenis disk, ditentukan sebagai URI
  • IMAGE_PROJECT: project yang berisi image
  • IMAGE: menentukan salah satu dari hal berikut:
    • Versi tertentu dari OS image—misalnya, debian-12-bookworm-v20240213.
    • Kelompok image, yang harus diformat sebagai family/IMAGE_FAMILY. Hal ini akan membuat instance dari OS image terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-12, Compute Engine akan membuat instance menggunakan versi OS image terbaru dalam kelompok image debian-12. Untuk mengetahui informasi selengkapnya tentang cara menggunakan kelompok image, lihat Praktik terbaik kelompok image.
  • IOPS_LIMIT: IOPS yang akan disediakan untuk disk
  • THROUGHPUT_LIMIT: throughput yang akan disediakan untuk disk
  • POOL_URL: pool penyimpanan tempat disk baru dibuat. Anda dapat memberikan ini sebagai URL sebagian atau lengkap ke resource. Misalnya, berikut adalah nilai yang valid:
    • https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/storagePools/STORAGE_POOL_NAME
    • projects/PROJECT_ID/zones/ZONE/storagePools/STORAGE_POOL_NAME
    • zones/ZONE/storagePools/STORAGE_POOL_NAME