Menambahkan disk dari kumpulan penyimpanan ke VM


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

Sebelum memulai

  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi adalah proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud. 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. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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.

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. 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.

      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.

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. 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.

      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.

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. 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.

      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.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

Peran dan izin yang diperlukan

Untuk mendapatkan izin yang diperlukan agar dapat membuat disk Hyperdisk Balanced atau Hyperdisk Throughput di penyimpanan bersama, minta administrator untuk memberi Anda peran IAM berikut pada 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 cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk membuat disk Hyperdisk Balanced atau Hyperdisk Throughput dalam kumpulan penyimpanan. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

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

  • Untuk membuat disk dalam kumpulan penyimpanan 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 penyimpanan bersama tempat Anda membuat disk
  • Untuk memformat dan menyertakan volume yang terpasang: compute.instances.setMetadata di VM

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

Untuk izin yang diperlukan guna membuat instance, lihat Izin yang diperlukan.

Batasan

Tinjau batasan berikut untuk membuat disk di Penyimpanan Gabungan Hyperdisk:

  • Anda hanya dapat membuat disk Hyperdisk Balanced di Hyperdisk Balanced Storage Pool dan hanya dapat membuat Hyperdisk Throughput disk di Hyperdisk Throughput Storage Pool.
  • Hanya disk baru di project dan zona yang sama yang dapat dibuat di penyimpanan bersama.
  • Untuk membuat disk booting di penyimpanan bersama, Anda harus menggunakan Penyimpanan Bersama Hyperdisk Balanced.
  • Memindahkan disk ke dalam atau keluar dari kumpulan penyimpanan tidak diizinkan. Untuk memindahkan disk ke dalam atau ke luar kumpulan penyimpanan, Anda harus membuat ulang disk dari snapshot. Untuk mengetahui informasi selengkapnya, lihat Mengubah jenis disk.
  • Anda dapat membuat hingga 1.000 disk dalam kumpulan penyimpanan.
  • Storage pool tidak mendukung disk regional.

Opsi penyediaan

Bergantung pada jenis penyediaan untuk Penyimpanan Gabungan Hyperdisk, Anda dapat memilih cara menyediakan kapasitas dan performa setiap disk yang Anda buat di penyimpanan gabungan.

Menyediakan kapasitas disk

Jika membuat penyimpanan bersama kapasitas Lanjutan, Anda dapat menggunakan penyediaan tipis. Anda dapat membuat disk di penyimpanan bersama dengan ukuran kumulatif yang melebihi kapasitas penyimpanan bersama yang disediakan. Kapasitas yang digunakan dari kumpulan penyimpanan ditentukan oleh total data yang digunakan, bukan oleh jumlah ruang disk yang telah Anda sediakan. Anda dapat menyediakan disk dengan kapasitas agregat hingga 500% dari kapasitas yang disediakan dari kumpulan penyimpanan kapasitas Lanjutan.

Jika membuat disk di penyimpanan bersama kapasitas Standar, Anda akan membuat disk di penyimpanan bersama hingga total ukuran semua disk di penyimpanan bersama mencapai kapasitas yang disediakan penyimpanan bersama. Disk dalam penyimpanan gabungan dengan kapasitas Standar berperilaku mirip dengan disk non-gabungan, dengan kapasitas yang digunakan saat Anda membuat disk.

Performa penyediaan

Jika membuat kumpulan penyimpanan performa Lanjutan, Anda dapat menggunakan penyediaan tipis. Anda dapat membuat disk di kumpulan penyimpanan dengan jumlah kumulatif IOPS dan throughput yang melebihi performa kumpulan yang disediakan. Performa yang digunakan dari kumpulan penyimpanan ditentukan oleh total performa yang digunakan oleh disk, bukan oleh jumlah performa yang disediakan untuk setiap disk. Anda dapat menyediakan disk dengan performa gabungan hingga 500% dari performa yang disediakan kumpulan penyimpanan performa Lanjutan.

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

Jika salah satu kondisi di paragraf sebelumnya tidak benar, permintaan untuk membuat disk di kumpulan penyimpanan akan gagal dan disk tidak akan dibuat.

Contoh

Anggaplah Anda memiliki Hyperdisk Balanced Storage Pool dengan 100.000 IOPS yang disediakan.

Dengan penyediaan performa Standar:

  • Anda dapat menyediakan hingga 100.000 IOPS gabungan saat membuat disk Hyperdisk Balanced 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 hingga 3.000 IOPS dasar pengukuran dan throughput dasar pengukuran 140 MiB/s. Performa dasar pengukuran ini tidak dihitung berdasarkan performa yang disediakan untuk kumpulan penyimpanan. Hanya jika Anda menambahkan disk ke kumpulan penyimpanan dengan performa yang disediakan di atas dasar pengukuran, disk tersebut akan diperhitungkan terhadap performa yang disediakan untuk kumpulan penyimpanan, misalnya:

    • Disk yang disediakan dengan 3.000 IOPS menggunakan 0 IOPS kumpulan dan kumpulan masih memiliki 100.000 IOPS yang disediakan untuk disk lain.
    • Disk yang disediakan dengan 13.000 IOPS menggunakan 10.000 IOPS kumpulan dan kumpulan memiliki 90.000 IOPS yang disediakan yang dapat Anda alokasikan ke disk lain dalam kumpulan penyimpanan.

Dengan penyediaan performa Lanjutan:

  • Anda dapat menyediakan performa Hyperdisk agregat hingga 500.000 IOPS saat membuat disk di penyimpanan gabungan.
  • Anda akan ditagih untuk 100.000 IOPS yang disediakan oleh kumpulan penyimpanan.
  • Jika membuat satu disk (Disk1) di storage pool yang memiliki 5.000 IOPS, Anda tidak akan menggunakan IOPS dari IOPS yang disediakan storage pool. Namun, jumlah IOPS yang dapat Anda sediakan ke disk baru yang dibuat di kumpulan penyimpanan kini menjadi 495.000.
  • Jika Disk1 mulai membaca dan menulis data, dan jika menggunakan maksimum 5.000 IOPS dalam satu menit tertentu, maka 5.000 IOPS akan digunakan dari IOPS yang disediakan 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.

Membuat disk di penyimpanan bersama

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

Konsol

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

Di halaman Storage pools:

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

    Buka halaman Storage pools

  2. Klik nama penyimpanan penyimpanan tempat Anda ingin membuat disk.

  3. Di halaman Manage storage pool, klik +Create New Disk.

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

  5. Tentukan atau ubah nilai apa pun yang tidak ingin Anda gunakan dengan nilai default.

  6. Setelah selesai menentukan properti disk, klik Simpan.

  7. Di halaman Manage storage pool, Anda akan melihat disk baru tercantum di bagian Storage pool disks.

Di halaman Create Disk:

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

    Buka halaman Buat disk

  2. Masukkan Nama untuk disk.

  3. Pilih zona yang berisi kumpulan penyimpanan tempat Anda ingin membuat disk.

  4. Untuk Disk type, pilih jenis disk yang cocok dengan Hyperdisk Storage Pool, baik Hyperdisk Throughput maupun Hyperdisk Balanced.

  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 storage pool tempat disk akan dibuat. Hanya kumpulan penyimpanan yang ada di zona yang dipilih yang akan muncul dalam daftar.

  7. Setelah selesai menentukan informasi disk, klik Buat.

gcloud

Untuk membuat satu atau beberapa disk dalam kumpulan penyimpanan, 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 penyimpanan dibuat. Tentukan nilai ini dalam format zona wilayah, misalnya us-central1-a.
  • STORAGE_POOL_NAME: nama penyimpanan pool tempat membuat disk
  • SIZE: Opsional: kapasitas disk baru yang disediakan. 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.
  • DISK_TYPE: jenis disk yang akan dibuat. Jenis ini harus cocok dengan jenis Penyimpanan Gabungan Hyperdisk, baik hyperdisk-balanced maupun hyperdisk-throughput.
  • PROVISIONED_IOPS: Opsional: IOPS yang akan disediakan untuk disk. Anda hanya dapat menggunakan flag ini dengan disk Hyperdisk Balanced.
  • PROVISIONED_THROUGHPUT: Opsional: throughput dalam mebibyte (MB) per detik untuk menyediakan disk.

REST

Untuk membuat satu atau beberapa disk dalam kumpulan penyimpanan, buat POST menggunakan metode disks.insert. Sertakan properti name, sizeGb, type, storagePool, provisionedIops, dan provisionedThroughput. Untuk membuat disk ini sebagai non-boot disk 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 penyimpanan 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 kumpulan penyimpanan. Gunakan hyperdisk-throughput atau hyperdisk-balanced.
  • DISK_SIZE: Opsional: Ukuran disk baru. Nilainya harus 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 penyimpanan untuk membuat disk.
  • IOPS_LIMIT: Opsional: IOPS yang akan disediakan untuk disk. Anda hanya dapat menggunakan flag ini dengan disk Hyperdisk Balanced.
  • THROUGHPUT_LIMIT: Opsional: Throughput dalam mebibyte (MB) per detik untuk menyediakan 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 penyimpanan bersama

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

Membuat disk booting untuk VM di penyimpanan bersama

Untuk membuat VM yang menggunakan boot disk di penyimpanan bersama, Anda harus membuat Hyperdisk Balanced Storage Pool terlebih dahulu. Selanjutnya, Anda dapat membuat VM menggunakan jenis mesin yang mendukung disk Hyperdisk Balanced. Jenis mesin, jenis disk, dan kumpulan penyimpanan harus tersedia di zona yang Anda pilih.

Konsol

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

    Buka instance VM

  2. Klik Create Instance.

  3. Masukkan nama untuk instance.

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

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

  6. Di bagian Boot disk, klik Ubah.

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

  8. Konfigurasikan properti untuk disk.

  9. Luaskan Tampilkan konfigurasi lanjutan.

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

  11. Pilih kumpulan penyimpanan untuk membuat disk dari daftar.

  12. Setelah selesai dengan konfigurasi disk, klik Select.

  13. Selesaikan konfigurasi properti VM.

  14. Klik Create.

    Konsol akan membuat VM di zona yang ditentukan, dan membuat disk booting di kumpulan penyimpanan yang dipilih.

gcloud

Anda dapat membuat boot disk untuk VM baru di storage 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 tersebut
  • IMAGE: menentukan salah satu dari hal berikut:
    • Versi tertentu dari image OS—misalnya, debian-12-bookworm-v20240213.
    • Kelompok image, yang harus diformat sebagai family/IMAGE_FAMILY. Tindakan ini akan membuat instance dari image OS terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-12, Compute Engine akan membuat VM menggunakan OS image versi terbaru dalam kelompok image debian-12. Untuk mengetahui informasi selengkapnya tentang penggunaan kelompok image, lihat Praktik terbaik kelompok image.
  • STORAGE_POOL_NAME: nama storage pool tempat membuat disk baru.

REST

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

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 penyimpanan 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 booting
  • DISK_SIZE: ukuran boot disk, dalam GiB
  • DISK_TYPE: jenis disk, yang ditentukan sebagai URI
  • IMAGE_PROJECT: project yang berisi image tersebut
  • IMAGE: menentukan salah satu dari hal berikut:
    • Versi tertentu dari image OS—misalnya, debian-12-bookworm-v20240213.
    • Kelompok image, yang harus diformat sebagai family/IMAGE_FAMILY. Tindakan ini akan membuat instance dari image OS terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-12, Compute Engine akan membuat VM menggunakan OS image versi terbaru dalam kelompok image debian-12. Untuk mengetahui informasi selengkapnya tentang penggunaan 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: penyimpanan pool tempat disk baru dibuat. Anda dapat memberikannya 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 di kumpulan penyimpanan selama pembuatan VM

Saat membuat disk di storage pool selama pembuatan VM, jenis mesin, jenis disk, dan storage 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 Instance VM.

    Buka instance VM

  2. Klik Create Instance.

  3. Masukkan nama untuk VM.

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

  5. Pilih jenis mesin yang mendukung jenis disk yang digunakan oleh storage 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 cocok dengan jenis penyimpanan.

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

  11. Di kolom Select a storage pool, pilih storage pool tempat membuat disk.

  12. Setelah selesai dengan konfigurasi disk, klik Simpan.

  13. Selesaikan konfigurasi properti VM.

  14. Klik Create.

    Konsol akan membuat VM di zona yang ditentukan, dan membuat disk non-boot di kumpulan penyimpanan yang dipilih.

gcloud

Anda dapat membuat disk baru di storage 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 booting
  • IMAGE_NAME: nama image sistem operasi yang akan diinstal di disk booting, 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 penyimpanan yang ingin Anda gunakan untuk membuat disk.

REST

Anda dapat membuat disk baru di kumpulan penyimpanan 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 penyimpanan 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 tersebut
  • IMAGE: menentukan salah satu dari hal berikut:
    • Versi tertentu dari image OS—misalnya, debian-12-bookworm-v20240213.
    • Kelompok image, yang harus diformat sebagai family/IMAGE_FAMILY. Tindakan ini akan membuat instance dari image OS terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-12, Compute Engine akan membuat VM menggunakan OS image versi terbaru dalam kelompok image debian-12. Untuk mengetahui informasi selengkapnya tentang penggunaan 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, yang ditentukan sebagai URI
  • IOPS_LIMIT: IOPS yang akan disediakan untuk disk
  • THROUGHPUT_LIMIT: throughput yang akan disediakan untuk disk
  • POOL_URL: penyimpanan pool tempat disk baru dibuat. Anda dapat memberikannya 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 penyimpanan dalam template instance

Template instance yang digunakan untuk membuat grup instance terkelola (MIG) dapat berisi informasi kumpulan penyimpanan. Disk yang dibuat menggunakan template instance ditempatkan di penyimpanan bersama 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 penyimpanan berada.

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

  6. Di bagian Boot disk, klik Ubah.

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

  8. Konfigurasikan properti untuk disk.

  9. Luaskan Tampilkan konfigurasi lanjutan.

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

  11. Pilih kumpulan penyimpanan untuk membuat disk dari daftar.

  12. Setelah selesai dengan konfigurasi disk, klik Select.

  13. Selesaikan konfigurasi properti VM.

  14. Klik Create.

    Template membuat VM di zona yang ditentukan, dan membuat disk booting di kumpulan penyimpanan yang dipilih.

gcloud

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

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 penyimpanan 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 image OS—misalnya, debian-12-bookworm-v20240213.
    • Kelompok image, yang harus diformat sebagai family/IMAGE_FAMILY. Tindakan ini akan membuat instance dari image OS terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-12, Compute Engine akan membuat VM menggunakan OS image versi terbaru dalam kelompok image debian-12. Untuk mengetahui informasi selengkapnya tentang penggunaan kelompok image, lihat Praktik terbaik kelompok image.
  • STORAGE_POOL_NAME: nama storage pool tempat membuat disk baru.

REST

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

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 penyimpanan 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 booting
  • DISK_SIZE: ukuran boot disk, dalam GiB
  • DISK_TYPE: jenis disk, yang ditentukan sebagai URI
  • IMAGE_PROJECT: project yang berisi image
  • IMAGE: menentukan salah satu dari hal berikut:
    • Versi tertentu dari image OS—misalnya, debian-12-bookworm-v20240213.
    • Kelompok image, yang harus diformat sebagai family/IMAGE_FAMILY. Tindakan ini akan membuat instance dari image OS terbaru yang masih digunakan. Misalnya, jika Anda menentukan family/debian-12, Compute Engine akan membuat instance menggunakan OS image versi terbaru dalam kelompok image debian-12. Untuk mengetahui informasi selengkapnya tentang penggunaan 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: penyimpanan pool tempat disk baru dibuat. Anda dapat memberikannya 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