הוספת דיסקים ממאגר Hyperdisk למכונות וירטואליות

במאמר הזה נסביר איך ליצור דיסקים במאגר.

אפשר ליצור דיסק במאגר ואז לצרף אותו למכונה וירטואלית (VM), או ליצור דיסקים במאגר כשיוצרים מכונת VM.

אי אפשר להעביר דיסק קיים אל מאגר או ממאגר. צריך ליצור דיסק חדש מהדיסק הקיים. כדי לעשות זאת, אפשר לעיין במאמר בנושא שינוי הסוג, המיקום או המיקום של דיסק.

לפני שמתחילים

תפקידים והרשאות נדרשים

כדי לקבל את ההרשאות שדרושות ליצירת דיסק Hyperdisk Balanced או Hyperdisk Throughput במאגר, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:

  • Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1)
  • כדי להתחבר למכונה וירטואלית שיכולה לפעול כחשבון שירות: משתמש בחשבון שירות (גרסה 1) (תפקיד roles/iam.serviceAccountUser)

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקידים המוגדרים מראש האלה מכילים את ההרשאות שנדרשות ליצירת דיסק Hyperdisk Balanced או Hyperdisk Throughput במאגר. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

כדי ליצור מאגר של דיסקים מסוג Hyperdisk Balanced או Hyperdisk Throughput, צריך את ההרשאות הבאות:

  • כדי ליצור דיסקים במאגר ולצרף אותם למכונת VM:
    • compute.disks.create בפרויקט
    • compute.instances.attachDisk במכונה הווירטואלית
    • compute.disks.use בנפח שרוצים לצרף למכונה הווירטואלית
    • compute.storagePools.use במאגר שבו אתם יוצרים דיסקים
  • כדי לפרמט את אמצעי האחסון המצורף ולהפעיל אותו: compute.instances.setMetadata במכונה הווירטואלית

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

בקטע ההרשאות הנדרשות מפורטות ההרשאות שצריך כדי ליצור מכונה.

מגבלות

הגבלות על הוספת דיסקים למאגר:

  • אפשר ליצור רק דיסקים מסוג Hyperdisk Balanced במאגר Hyperdisk Balanced, ואפשר ליצור רק דיסקים מסוג Hyperdisk Throughput במאגר Hyperdisk Throughput
  • אפשר ליצור מאגר רק מדיסקים חדשים שנמצאים באותו פרויקט ואותו אזור.
  • מאגרי משאבים לא תומכים בדיסקים אזוריים.
  • אי אפשר להעביר דיסקים אל מאגר או ממאגר. כדי להעביר דיסק אל מאגר או ממאגר, צריך ליצור מחדש את הדיסק מתמונת מצב. מידע נוסף זמין במאמר בנושא שינוי סוג הדיסק.
  • כדי ליצור דיסקים לאתחול במאגר, צריך להשתמש ב-Hyperdisk Balanced Storage Pool או ב-Hyperdisk Balanced Exapool.

מגבלות ספציפיות למאגרי אחסון:

  • אפשר ליצור עד 10,000 דיסקים במאגר אחסון.

מגבלות ספציפיות ל-Exapools:

  • אפשר ליצור עד 500,000 דיסקים ב-Exapool.

אפשרויות הקצאת הרשאות

בהתאם לסוג ההקצאה של המאגר, אתם יכולים לבחור איך להקצות את הקיבולת והביצועים של כל דיסק שאתם יוצרים במאגר.

הקצאת נפח דיסק

אם אתם משתמשים ב-Exapool או ב-Storage Pool עם קיבולת מתקדמת, אתם יכולים ליצור דיסקים ב-Pool עם גודל מצטבר שגדול מהקיבולת שהוקצתה ל-Pool. הקיבולת בשימוש של המאגר מוגדרת לפי סך הנתונים בשימוש ולא לפי נפח האחסון שהקציתם. אתם יכולים להקצות דיסקים עם קיבולת כוללת של עד פי חמישה או פי 50 מהקיבולת שהוקצתה למאגר קיבולת מתקדם או ל-Hyperdisk Exapool, בהתאמה.

אם אתם יוצרים דיסקים במאגר קיבולת רגיל, תוכלו ליצור דיסקים במאגר עד שהגודל הכולל של כל הדיסקים במאגר יגיע לקיבולת שהוקצתה למאגר. הדיסקים במאגר עם קיבולת רגילה מתנהגים באופן דומה לדיסקים שלא נמצאים במאגר, שבהם הקיבולת נצרכת כשיוצרים את הדיסקים.

ביצועי הקצאת הרשאות

אם אתם משתמשים ב-Exapool או ב-Storage Pool עם קיבולת מתקדמת, אתם יכולים ליצור דיסקים ב-Pool עם כמות מצטברת של IOPS ושל קצב העברת נתונים שחורגת מהביצועים שהוקצו ל-Pool. הביצועים שנעשה בהם שימוש במאגר מוגדרים לפי הביצועים הכוללים שנעשה בהם שימוש בדיסקים, ולא לפי כמות הביצועים שהוקצו לכל דיסק.

  • ב-Storage Pools, אפשר להקצות דיסקים עם ביצועים מצטברים של עד 500% מהביצועים שהוקצו ב-Advanced performance pool.

  • ב-Exapools, אפשר להקצות דיסקים עם ביצועים מצטברים של עד פי 50 מביצועי הכתיבה שהוקצו למאגר.

אם יוצרים דיסקים במאגר ביצועים רגיל, ערכי ה-IOPS או קצב העברת הנתונים שמוקצים לדיסק צריכים להיות נמוכים מערכי ה-IOPS או קצב העברת הנתונים שזמינים ב-Hyperdisk Storage Pool. ה-IOPS או התפוקה הזמינים הם הסכום שהוקצה למאגר, בניכוי הסכום שנעשה בו שימוש בכל הדיסקים שנוצרו במאגר.

אם אף אחד מהתנאים שבפסקה הקודמת לא מתקיים, הבקשה ליצירת דיסק במאגר נכשלת והדיסק לא נוצר.

דוגמה

נניח שיש לכם Hyperdisk Balanced Storage Pool עם 100,000 IOPS שהוקצו.

עם הקצאת משאבים רגילה לביצועים:

  • אפשר להקצות עד 100,000 IOPS מצטבר כשיוצרים דיסקים מאוזנים של Hyperdisk ב-Storage Pool.
  • תחויבו על הביצועים של מאגר האחסון Hyperdisk Balanced שהוקצו לכם, שהם 100,000 IOPS.
  • בדומה לדיסקים שנוצרו מחוץ למאגר אחסון, דיסקים מסוג Hyperdisk Balanced במאגרי אחסון של ביצועים רגילים מוקצים אוטומטית עם עד 3,000 IOPS בסיסיים ועם תפוקה בסיסית של 140MiB/s. הביצועים הבסיסיים האלה לא נכללים בביצועים שהוקצו למאגר האחסון. רק כשמוסיפים דיסקים למאגר נפח האחסון עם ביצועים שהוקצו מעל קו הבסיס, הם נספרים כחלק מהביצועים שהוקצו למאגר נפח האחסון. לדוגמה:

    • דיסק שהוקצו לו 3,000 פעולות קלט/פלט בשנייה (IOPS) משתמש ב-0 פעולות קלט/פלט בשנייה של המאגר, ובמאגר עדיין יש 100,000 פעולות קלט/פלט בשנייה שהוקצו וזמינות לדיסקים אחרים.
    • דיסק שהוקצו לו 13,000 פעולות קלט/פלט בשנייה (IOPS) משתמש ב-10,000 פעולות קלט/פלט בשנייה של מאגר האחסון, ובמאגר האחסון נשארות 90,000 פעולות קלט/פלט בשנייה שהוקצו שאפשר להקצות לדיסקים אחרים במאגר האחסון.

עם הקצאת משאבים מתקדמת לשיפור הביצועים:

  • כשיוצרים דיסקים ב-Storage Pool, אפשר להקצות עד 500,0�0 IOPS של ביצועים מצטברים של Hyperdisk.
  • אתם מחויבים על 100,000 פעולות קלט/פלט בשנייה (IOPS) שהוקצו על ידי מאגר האחסון.
  • אם יוצרים דיסק אחד (Disk1) במאגר האחסון עם 5,000 IOPS, לא נצרכים IOPS מ-IOPS שהוקצו למאגר האחסון. עם זאת, כמות ה-IOPS שאפשר להקצות לדיסקים חדשים שנוצרו ב-Storage Pool היא עכשיו 495,000.
  • אם Disk1 מתחיל לקרוא ולכתוב נתונים, ואם הוא משתמש ב-IOPS המקסימלי שלו (5,000) בדקה מסוימת, אז 5,000 IOPS נצרכים מ-IOPS שהוקצו למאגר האחסון. דיסקים אחרים שיצרתם באותה מאגר אחסון יכולים להשתמש ב-IOPS מצטבר של עד 95,000 באותה דקה, בלי להיתקל במצב של מחלוקת.

יצירת דיסקים במאגר

אפשר להשתמש במסוף Cloud de Confiance , ב-Google Cloud CLI או ב-REST כדי ליצור דיסק במאגר.

המסוף

באמצעות מסוף Cloud de Confiance , אפשר ליצור דיסק חדש במאגר דרך הדף Storage pools או הדף Disks.

בדף Storage pools:

  1. נכנסים לדף Storage pools במסוף Cloud de Confiance .

    כניסה לדף Storage pools

  2. לוחצים על הכרטיסייה Exapools או Storage Pools.

  3. לוחצים על שם המאגר שבו רוצים ליצור דיסק.

  4. בדף Manage storage pool (ניהול מאגר אחסון), לוחצים על +Create New Disk (יצירת דיסק חדש).

  5. בחלונית הוספת דיסק חדש, מזינים שם לדיסק.

  6. מציינים או משנים את הערכים שבהם לא רוצים להשתמש בערך ברירת המחדל.

  7. אחרי שמסיימים לציין את מאפייני הדיסק, לוחצים על שמירה.

  8. בדף ניהול מאגר האחסון, הדיסק החדש אמור להופיע בקטע דיסקים במאגר האחסון.

בדף Create Disk:

  1. במסוף Cloud de Confiance , נכנסים לדף Disks > Create a disk.

    כניסה לדף Create a disk

  2. מזינים שם לדיסק.

  3. בוחרים את התחום (zone) שמכיל את המאגר שבו רוצים ליצור את הדיסק.

  4. בקטע Disk type (סוג הדיסק), בוחרים את סוג הדיסק שמתאים למאגר, Hyperdisk Throughput או Hyperdisk Balanced.

  5. משנים את הערכים בשדות Size,‏ Provisioned IOPS ו-Provisioned Throughput לפי הצורך.

  6. בקטע Storage pool, בוחרים באפשרות Enable storage pool, ואז בוחרים את שם המאגר שבו רוצים ליצור את הדיסק. ברשימה יופיעו רק מאגרי משאבים שקיימים באזור שנבחר.

  7. כשמסיימים לציין את פרטי הדיסק, לוחצים על יצירה.

gcloud

כדי ליצור דיסק אחד או יותר במאגר, משתמשים בפקודה 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

מחליפים את מה שכתוב בשדות הבאים:

  • DISK_NAME: שם ייחודי לדיסק. אתם יכולים לספק רשימה של שמות דיסקים שמופרדים ברווחים כדי ליצור כמה דיסקים עם אותם מאפיינים.
  • ZONE: האזור שבו נוצר המאגר. מציינים את הערך הזה בפורמט של אזור-אזור, לדוגמה us-central1-a.
  • STORAGE_POOL_NAME: שם המאגר שבו רוצים ליצור את הדיסק
  • SIZE: אופציונלי: הקיבולת שהוקצתה לדיסק החדש. הערך חייב להיות מספר שלם שאחריו יחידת גודל של GB לגיביבייט או TB לטביבייט. אם לא מציינים גודל, הערך 100 GB משמש כברירת מחדל.
  • DISK_TYPE: סוג הדיסק שרוצים ליצור. הערך הזה צריך להיות זהה לסוג של Hyperdisk Storage Pool, כלומר hyperdisk-balanced או hyperdisk-throughput.
  • PROVISIONED_IOPS: אופציונלי: מספר פעולות הקלט/פלט בשנייה (IOPS) להקצאה לדיסק. אפשר להשתמש בדגל הזה רק עם דיסקים מסוג Hyperdisk Balanced.
  • PROVISIONED_THROUGHPUT: אופציונלי: התפוקה ב-MiB/s להקצאה לדיסק.

REST

כדי ליצור דיסק אחד או יותר במאגר, יוצרים POST באמצעות ה-method‏ disks.insert. צריך לכלול את המאפיינים name,‏ sizeGb,‏ type,‏ storagePool,‏ provisionedIops ו-provisionedThroughput. כדי ליצור את הדיסק הזה כדיסק ריק ולא מעוצב שאינו דיסק אתחול, אל תציינו תמונת מקור או קובץ snapshot של מקור.

POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/disks

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

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • ZONE: האזור שבו נמצא המאגר, לדוגמה, us-central1-a. זהו האזור שבו הדיסק ייווצר.
  • DISK_NAME: שם ייחודי לדיסק.
  • DESCRIPTION: אופציונלי: מחרוזת טקסט שמתארת את הדיסק.
  • DISK_TYPE: סוג הדיסק, שחייב להיות זהה לסוג המאגר. אפשר להשתמש ב-hyperdisk-throughput או ב-hyperdisk-balanced.
  • DISK_SIZE: אופציונלי: גודל הדיסק החדש. הערך חייב להיות מספר שלם שאחריו יחידת גודל של GB לגיביבייט או TB לטביבייט. אם לא מציינים גודל, הערך 100 GB משמש כברירת מחדל.
  • STORAGE_POOL_NAME: שם המאגר שבו רוצים ליצור את הדיסק.
  • IOPS_LIMIT: אופציונלי: מספר ה-IOPS להקצאה לדיסק. אפשר להשתמש בדגל הזה רק עם דיסקים מסוג Hyperdisk Balanced.
  • THROUGHPUT_LIMIT: אופציונלי: התפוקה ב-MiB/s להקצאה לדיסק.

המשך


// 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();

אחרי שיוצרים את הדיסק, אפשר לחבר אותו למכונה וירטואלית.

יצירת מכונה וירטואלית שמשתמשת בדיסקים במאגר

כשיוצרים מכונה וירטואלית, מגדירים דיסק אתחול, ואפשר גם ליצור דיסקים נוספים של נתונים (לא דיסקים של אתחול) שמצורפים אוטומטית למכונה הווירטואלית. בקטעים הבאים מוסבר איך ליצור כל סוג של דיסק במאגר כחלק מתהליך יצירת המכונה הווירטואלית.

יצירת דיסק אתחול למכונה וירטואלית במאגר

כדי ליצור מכונה וירטואלית שמשתמשת בדיסק אתחול במאגר, צריך קודם ליצור Hyperdisk Balanced Storage Pool או Hyperdisk Balanced Exapool. אחר כך תוכלו ליצור מכונה באמצעות סוג מכונה שתומך בדיסקים מסוג Hyperdisk Balanced. סוג המכונה, סוג הדיסק והמאגר חייבים להיות זמינים באזור שתבחרו.

המסוף

  1. נכנסים לדף VM Instances במסוף Cloud de Confiance .

    כניסה לדף VM instances

  2. לוחצים על Create Instance.

  3. מזינים שם למופע.

  4. מגדירים את האזור לאותו אזור שבו נמצאת הבריכה.

  5. בוחרים סוג מכונה שתומך ב-Hyperdisk Balanced, לדוגמה H3.

  6. בקטע דיסק אתחול לוחצים על Change.

  7. בחלונית Boot disk, מגדירים את Boot disk type ל-Hyperdisk Balanced.

  8. מגדירים את המאפיינים של הדיסק.

  9. מרחיבים את הקטע הצגת הגדרות מתקדמות.

  10. בקטע מאגר אחסון, בוחרים באפשרות הפעלת מאגר אחסון.

  11. בוחרים מהרשימה את המאגר שבו רוצים ליצור את הדיסק.

  12. כשמסיימים להגדיר את הדיסק, לוחצים על בחירה.

  13. מסיימים להגדיר את מאפייני המכונה הווירטואלית.

  14. לוחצים על יצירה.

    המסוף יוצר את המכונה הווירטואלית באזור שצוין, ויוצר את דיסק האתחול במאגר שנבחר.

gcloud

אפשר ליצור את דיסק האתחול למכונה וירטואלית חדשה במאגר באמצעות הפקודה gcloud compute instances create ולכלול את המאפיין storage-pool של דיסק האתחול.

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

מחליפים את מה שכתוב בשדות הבאים:

  • VM_NAME: שם ה-VM.
  • ZONE: האזור והאזור שבו יוצרים את המכונה הווירטואלית, בפורמט us-central1-a.
  • MACHINE_TYPE: סוג המכונה של המכונה הווירטואלית, לדוגמה, m3-ultramem-32.
  • DISK_SIZE: הגודל של דיסק האתחול ב-GiB
  • THROUGHPUT: קצב העברת הנתונים (throughput) שיוקצה לדיסק
  • IOPS: מספר ה-IOPS להקצאה לדיסק
  • IMAGE_PROJECT: הפרויקט שמכיל את התמונה
  • IMAGE: מציינים אחת מהאפשרויות הבאות:
    • גרסה ספציפית של תמונת מערכת ההפעלה – לדוגמה, debian-12-bookworm-v20240213.
    • משפחת תמונות, שצריכה להיות בפורמט family/IMAGE_FAMILY. הפעולה הזו יוצרת את המכונה מקובץ האימג' העדכני ביותר של מערכת ההפעלה, שלא הוצא משימוש. לדוגמה, אם מציינים family/debian-12, ‏ Compute Engine יוצר מכונת VM באמצעות הגרסה האחרונה של תמונת מערכת ההפעלה במשפחת התמונות debian-12. מידע נוסף על שימוש במשפחות תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות תמונות.
  • STORAGE_POOL_NAME: השם של מאגר האחסון שבו רוצים ליצור את הדיסק החדש.

REST

אפשר ליצור את דיסק האתחול למכונה וירטואלית חדשה במאגר על ידי יצירת בקשת POST לשיטה instances.insert וצירוף המאפיין storagePool לדיסק האתחול.

POST https://compute.s3nsapis.fr/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"
         }
      }
   ]
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • ZONE: האזור שבו נמצא המאגר, לדוגמה, us-central1-a. זהו התחום שבו נוצרו המכונה הווירטואלית ודיסק האתחול.
  • VM_NAME: שם ה-VM.
  • MACHINE_TYPE: סוג המכונה של המכונה הווירטואלית, לדוגמה, m3-ultramem-32.
  • BOOT_DISK_DEVICE_NAME: שם המכשיר של דיסק האתחול
  • DISK_SIZE: הגודל של דיסק האתחול ב-GiB
  • DISK_TYPE: סוג הדיסק, שצוין כ-URI
  • IMAGE_PROJECT: הפרויקט שמכיל את התמונה
  • IMAGE: מציינים אחת מהאפשרויות הבאות:
    • גרסה ספציפית של תמונת מערכת ההפעלה – לדוגמה, debian-12-bookworm-v20240213.
    • משפחת תמונות, שצריכה להיות בפורמט family/IMAGE_FAMILY. הפעולה הזו יוצרת את המכונה מקובץ האימג' העדכני ביותר של מערכת ההפעלה, שלא הוצא משימוש. לדוגמה, אם מציינים family/debian-12, ‏ Compute Engine יוצר מכונת VM באמצעות הגרסה האחרונה של תמונת מערכת ההפעלה במשפחת התמונות debian-12. מידע נוסף על שימוש במשפחות תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות תמונות.
  • IOPS_LIMIT: מספר ה-IOPS להקצאה לדיסק
  • THROUGHPUT_LIMIT: קצב העברת הנתונים (throughput) שיוקצה לדיסק
  • POOL_URL: מאגר האחסון שבו נוצר הדיסק החדש. אפשר לציין כתובת URL מלאה או חלקית למשאב. לדוגמה, אלה ערכים תקינים:
    • 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

יצירת דיסקים נוספים במאגר במהלך יצירת מכונה וירטואלית

כשיוצרים דיסקים במאגר במהלך יצירת מכונה וירטואלית, סוג המכונה, סוג הדיסק והמאגר צריכים להיות זמינים באזור שבוחרים.

המסוף

כדי להשתמש במסוף כדי ליצור מכונה וירטואלית חדשה עם דיסקים נוספים שאינם דיסקים לאתחול:

  1. נכנסים לדף VM Instances במסוף Cloud de Confiance .

    כניסה לדף VM instances

  2. לוחצים על Create Instance.

  3. מזינים שם למכונה הווירטואלית.

  4. מגדירים את האזור לאותו אזור שבו נמצאת הבריכה.

  5. בוחרים סוג מכונה שתומך בסוג הדיסק שמשמש את המאגר.

  6. מרחיבים את הקטע אפשרויות מתקדמות.

  7. מרחיבים את האפשרות Disks.

  8. לוחצים על Add new disk (הוספת דיסק חדש).

  9. בחלונית הוספת דיסק חדש, מזינים את פרטי הדיסק. מגדירים את סוג הדיסק בהתאם לסוג המאגר.

  10. בקטע מאגר אחסון, בוחרים באפשרות הפעלת מאגר אחסון.

  11. בשדה Select a storage pool, בוחרים את מאגר האחסון שבו רוצים ליצור את הדיסק.

  12. כשמסיימים להגדיר את הדיסק, לוחצים על שמירה.

  13. מסיימים להגדיר את מאפייני המכונה הווירטואלית.

  14. לוחצים על יצירה.

    המסוף יוצר את המכונה הווירטואלית באזור שצוין, ויוצר את הדיסק שאינו דיסק אתחול במאגר שנבחר.

gcloud

אפשר ליצור דיסקים חדשים במאגר במהלך יצירת מכונה וירטואלית באמצעות הפקודה gcloud compute instances create, ולכלול את המאפיין storage-pool של הדיסק.

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

מחליפים את מה שכתוב בשדות הבאים:

  • VM_NAME: שם ה-VM.
  • ZONE: האזור והאזור שבו יוצרים את המכונה הווירטואלית, בפורמט us-central1-a
  • MACHINE_TYPE: סוג המכונה של מכונת ה-VM
  • BOOT_DISK_DEVICE_NAME: שם המכשיר של דיסק האתחול
  • IMAGE_NAME: השם של קובץ אימג' של המערכת להתקנה בדיסק האתחול, לדוגמה, debian-12-bookworm-v20240213
  • BOOT_DISK_SIZE: הגודל של דיסק האתחול ב-GiB
  • BOOT_DISK_TYPE: סוג הדיסק
  • DATA_DISK_DEVICE_NAME: שם מכשיר הדיסק של דיסק הנתונים
  • DATA_DISK_SIZE: גודל דיסק הנתונים, ב-GiB
  • DATA_DISK_TYPE: סוג דיסק הנתונים, hyperdisk-balanced או hyperdisk-throughput
  • IOPS: מספר ה-IOPS להקצאה לדיסק
  • THROUGHPUT: קצב העברת הנתונים (throughput) שיוקצה לדיסק
  • STORAGE_POOL_NAME: השם הייחודי של המאגר שבו רוצים ליצור את הדיסק.

REST

אפשר ליצור דיסקים חדשים במאגר במהלך יצירת מכונה וירטואלית על ידי יצירת בקשה לשיטה instances.insert והוספת המאפיין storagePool לדיסקים הנוספים.POST

POST https://compute.s3nsapis.fr/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"
        }
      }
   ]
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • ZONE: האזור שבו נמצא המאגר, לדוגמה, us-central1-a. זהו התחום שבו נוצרו המכונה הווירטואלית ודיסק האתחול.
  • VM_NAME: שם ה-VM.
  • MACHINE_TYPE: סוג המכונה של המכונה הווירטואלית, לדוגמה, m3-ultramem-32.
  • IMAGE_PROJECT: הפרויקט שמכיל את התמונה
  • IMAGE: מציינים אחת מהאפשרויות הבאות:
    • גרסה ספציפית של תמונת מערכת ההפעלה – לדוגמה, debian-12-bookworm-v20240213.
    • משפחת תמונות, שצריכה להיות בפורמט family/IMAGE_FAMILY. הפעולה הזו יוצרת את המכונה מקובץ האימג' העדכני ביותר של מערכת ההפעלה, שלא הוצא משימוש. לדוגמה, אם מציינים family/debian-12, ‏ Compute Engine יוצר מכונת VM באמצעות הגרסה האחרונה של תמונת מערכת ההפעלה במשפחת התמונות debian-12. מידע נוסף על שימוש במשפחות תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות תמונות.
  • DEVICE_NAME: שם המכשיר של דיסק הנתונים
  • DISK_SIZE: הגודל של דיסק הנתונים ב-GiB
  • DISK_TYPE: סוג הדיסק, שצוין כ-URI
  • IOPS_LIMIT: מספר ה-IOPS להקצאה לדיסק
  • THROUGHPUT_LIMIT: קצב העברת הנתונים (throughput) שיוקצה לדיסק
  • POOL_URL: מאגר האחסון שבו נוצר הדיסק החדש. אפשר לציין כתובת URL מלאה או חלקית למשאב. לדוגמה, אלה ערכים תקינים:
    • 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

שימוש במאגר בתבנית של הגדרות מכונה

תבניות של הגדרות מכונה שמשמשות ליצירת קבוצות מופעי מכונה מנוהלים (MIG) יכולות לכלול את פרטי המאגר. הדיסקים שנוצרו באמצעות תבנית של הגדרות מכונה ממוקמים במאגר שצוין.

המסוף

  1. נכנסים לדף Instance templates במסוף Cloud de Confiance .

    כניסה לדף Instance templates

  2. לוחצים על Create Instance Template (יצירת תבנית מכונה).

  3. מזינים שם לתבנית של הגדרות מכונה.

  4. בוחרים באפשרות Regional למיקום, ובשדה Region בוחרים את האזור שבו נמצאת המאגר.

  5. בוחרים סוג מכונה שתומך ב-Hyperdisk Balanced, למשל C3.

  6. בקטע דיסק אתחול לוחצים על Change.

  7. בחלונית Boot disk, מגדירים את Boot disk type ל-Hyperdisk Balanced.

  8. מגדירים את המאפיינים של הדיסק.

  9. מרחיבים את הקטע הצגת הגדרות מתקדמות.

  10. בקטע מאגר אחסון, בוחרים באפשרות הפעלת מאגר אחסון.

  11. בוחרים מהרשימה את המאגר שבו רוצים ליצור את הדיסק.

  12. כשמסיימים להגדיר את הדיסק, לוחצים על בחירה.

  13. מסיימים להגדיר את מאפייני המכונה הווירטואלית.

  14. לוחצים על יצירה.

    התבנית יוצרת את המכונה הווירטואלית באזור שצוין, ויוצרת את דיסק האתחול במאגר שנבחר.

gcloud

אפשר לציין בתבנית של הגדרות מכונה שהדיסק של האתחול ייווצר במאגר באמצעות הפקודה gcloud compute instance-templates create, ולכלול את המאפיין storage-pool עבור דיסק האתחול.

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

מחליפים את מה שכתוב בשדות הבאים:

  • TEMPLATE_NAME: השם של תבנית של הגדרות מכונה.
  • REGION: האזור שבו רוצים ליצור את תבנית של הגדרות מכונה האזורית. האזור צריך להכיל את האזור שבו נמצאת קבוצת כתובות ה-IP.
  • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש כשיוצרים את המכונה הווירטואלית, לדוגמה, h3-standard-88.
  • DISK_SIZE: גודל הדיסק ב-GiB
  • THROUGHPUT: קצב העברת הנתונים (throughput) שיוקצה לדיסק
  • IOPS: מספר ה-IOPS להקצאה לדיסק
  • IMAGE_PROJECT: הפרויקט שמכיל את התמונה
  • IMAGE: מציינים אחת מהאפשרויות הבאות:
    • גרסה ספציפית של תמונת מערכת ההפעלה – לדוגמה, debian-12-bookworm-v20240213.
    • משפחת תמונות, שצריכה להיות בפורמט family/IMAGE_FAMILY. הפעולה הזו יוצרת את המכונה מקובץ האימג' העדכני ביותר של מערכת ההפעלה, שלא הוצא משימוש. לדוגמה, אם מציינים family/debian-12, ‏ Compute Engine יוצר מכונת VM באמצעות הגרסה האחרונה של תמונת מערכת ההפעלה במשפחת התמונות debian-12. מידע נוסף על שימוש במשפחות תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות תמונות.
  • STORAGE_POOL_NAME: השם של מאגר האחסון שבו רוצים ליצור את הדיסק החדש.

REST

אפשר ליצור את דיסק האתחול למכונה וירטואלית חדשה במאגר על ידי יצירת בקשת POST לשיטה instances.insert וצירוף המאפיין storagePool לדיסק האתחול.

POST https://compute.s3nsapis.fr/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"
         }
      }
   ]
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • VM_NAME: שם ה-VM.
  • ZONE: האזור שבו נמצא המאגר, לדוגמה, us-central1-a. זהו התחום שבו נוצרו המכונה הווירטואלית ודיסק האתחול.
  • MACHINE_TYPE: סוג המכונה של המכונה הווירטואלית, לדוגמה, m3-ultramem-32.
  • BOOT_DISK_DEVICE_NAME: שם המכשיר של דיסק האתחול
  • DISK_SIZE: הגודל של דיסק האתחול ב-GiB
  • DISK_TYPE: סוג הדיסק, שצוין כ-URI
  • IMAGE_PROJECT: הפרויקט שמכיל את התמונה
  • IMAGE: מציינים אחת מהאפשרויות הבאות:
    • גרסה ספציפית של תמונת מערכת ההפעלה – לדוגמה, debian-12-bookworm-v20240213.
    • משפחת תמונות, שצריכה להיות בפורמט family/IMAGE_FAMILY. הפעולה הזו יוצרת את המכונה מקובץ האימג' העדכני ביותר של מערכת ההפעלה, שלא הוצא משימוש. לדוגמה, אם מציינים family/debian-12, ‏ Compute Engine יוצר מכונה באמצעות הגרסה האחרונה של תמונת מערכת ההפעלה במשפחת התמונות family/debian-12.debian-12 מידע נוסף על שימוש במשפחות תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות תמונות.
  • IOPS_LIMIT: מספר ה-IOPS להקצאה לדיסק
  • THROUGHPUT_LIMIT: קצב העברת הנתונים (throughput) שיוקצה לדיסק
  • POOL_URL: מאגר האחסון שבו נוצר הדיסק החדש. אפשר לציין כתובת URL מלאה או חלקית למשאב. לדוגמה, אלה ערכים תקינים:
    • 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