ניהול תמונות מצב של דיסקים

תמונות מצב רגילות של דיסקים עוזרות לכם לגבות באופן תקופתי נתונים מ-Persistent Disk ומ-Google Cloud Hyperdisk.

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

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

  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS

    gcloud

    1. התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init
  • הגדרת אזור ותחום כברירת מחדל
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .

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

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

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

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

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

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

  • כדי להציג רשימה של תמונות מצב בפרויקט או במיקום: compute.snapshots.list בפרויקט
  • כדי להציג מידע על snapshot: compute.snapshots.get ב-snapshot
  • כדי למחוק snapshot: compute.snapshots.delete ב-snapshot
  • כדי למחוק תמונות מצב על סמך מסנן:
    • compute.snapshots.delete בתמונת המצב
    • compute.snapshots.list בפרויקט
  • כדי לשתף נתונים של תמונת מצב בין פרויקטים:
    • compute.storageAdmin בפרויקט (לגישה לכל התמונות הרגילות)
    • compute.disks.create בפרויקט שרוצים לשתף
    • compute.snapshots.create בפרויקט המקור
    • compute.disks.createSnapshot בדיסק המקור

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

צפייה בתמונות מצב רגילות

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

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

אפשר להציג או לרשום את התמונות הרגילות בפרויקט או במיקום באמצעות ה-CLI של gcloud,‏ Cloud de Confiance מסוף או REST.

המסוף

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

    לדף Snapshots

  2. בכרטיסייה תמונות מצב אפשר לראות את תמונות המצב הרגילות של הפרויקט הנוכחי.

  3. זה שינוי אופציונלי. כדי לצמצם את התוצאות, משתמשים בשדה filter_list Filter. מזינים שם או ערך של נכס בשדה Filter או בוחרים מתוך הנכסים הזמינים.

gcloud

  • כדי לראות רשימה של כל התמונות הזמינות בפרויקט מסוים, משתמשים בפקודה gcloud compute snapshots list.

    gcloud compute snapshots list --project=PROJECT_ID
    
  • (גרסת Preview) כדי לראות רשימה של תמונות מצב בהיקף אזורי שזמינות לכם בפרויקט מסוים, משתמשים בפקודה gcloud compute snapshots list ומציינים את האזור.

    gcloud compute snapshots list --region=REGION_NAME
    
  • כדי לראות רשימה של תמונות מצב בהיקף גלובלי שזמינות לכם בפרויקט מסוים, משתמשים בפקודה gcloud compute snapshots list וכוללים את הדגל --global.

    gcloud compute snapshots list --global
    

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

  • PROJECT_ID: אופציונלי. מחליפים את הערך במזהה הפרויקט. אם לא מציינים את הדגל הזה, נעשה שימוש בפרויקט הנוכחי. אפשר להגדיר את פרויקט ברירת המחדל עבור הסשן באמצעות הפקודה gcloud config set project PROJECT_ID של ה-CLI של gcloud.
  • REGION_NAME: השם של האזור שרוצים להציג את התמונות שלו.

REST

  • כדי לראות רשימה של כל התמונות הזמינות בפרויקט מסוים, צריך לשלוח בקשת GET לשיטה snapshots.list ולציין את האפשרות aggregated.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/snapshots
    
  • (תצוגה מקדימה) כדי לראות רשימה של תמונות מצב בהיקף אזורי שזמינות לכם בפרויקט מסוים, שולחים בקשת GET לשיטה snapshots.list ומציינים את האזור.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/snapshots
    
  • כדי לראות רשימה של תמונות מצב בהיקף גלובלי שזמינות לכם בפרויקט מסוים, שולחים בקשת GET לשיטה snapshots.list ומציינים 'global'.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots
    

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

  • PROJECT_ID: מזהה הפרויקט.
  • REGION_NAME: השם של האזור שרוצים להציג את התמונות שלו.

צפייה בתמונות המצב הרגילות של דיסק

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

המסוף

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

    לדף Snapshots

  2. בכרטיסייה תמונות מצב מופיעה רשימה של כל תמונות המצב הרגילות בפרויקט.

  3. מצמצמים את התוצאות לפי דיסק המקור:

    1. מזינים Source disk: בשדה filter_list Filter, או לוחצים על השדה Filter ואז בוחרים את הערך Source disk מהרשימה Properties.

    2. בשדה Filter, לוחצים על Source disk: וברשימה Values שמופיעה בוחרים את שם הדיסק.

      בתמונות המצב שמוצגות במסוף מוצגות עכשיו כל תמונות המצב הרגילות של הדיסק שצוין.

      אם שם הדיסק לא מופיע ברשימה Values, מקלידים בשדה Filter שליד Source disk: את כמה האותיות הראשונות של שם דיסק המקור כדי לשנות את רשימת הערכים שמוצגת.

gcloud

כדי להציג את רשימת התמונות הרגילות של מצב הדיסק, משתמשים בפקודה gcloud compute snapshots list ובארגומנט --filter.

  • כדי להציג את תמונות המצב הרגילות של דיסק אזורי:

    gcloud compute snapshots list --filter="sourceDisk:projects/PROJECT_ID/zones/SOURCE_ZONE/disks/DISK_NAME
    
  • הצגת רשימת תמונות המצב הרגילות של דיסק אזורי:

    gcloud compute snapshots list --filter=sourceDisk:projects/PROJECT_ID/regions/SOURCE_REGION/disks/DISK_NAME
    

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

  • PROJECT_ID: מזהה הפרויקט
  • SOURCE_ZONE: (דיסקים אזוריים בלבד) שם האזור של הדיסק, למשל us-west1-a.
  • SOURCE_REGION: (דיסקים אזוריים בלבד) שם האזור של הדיסק, למשל us-west1.
  • DISK_NAME: השם של הדיסק, למשל disk-1.

REST

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

משתמשים בפרמטר השאילתה filter=sourceDisk כדי לציין את שם הדיסק.

  • כדי להציג את תמונות המצב הרגילות של דיסק אזורי:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots?filter=sourceDisk:'https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/SOURCE_ZONE/disks/DISK_NAME'
    
  • הצגת רשימת תמונות המצב הרגילות של דיסק אזורי:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots?filter=sourceDisk:'https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/SOURCE_REGION/disks/DISK_NAME'
    

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

  • PROJECT_ID: מזהה הפרויקט
  • SOURCE_ZONE: (דיסקים אזוריים בלבד) שם האזור של הדיסק, למשל us-west1-a.
  • SOURCE_REGION: (דיסקים אזוריים בלבד) שם האזור של הדיסק, למשל us-west1.
  • DISK_NAME: השם של דיסק המקור, לדוגמה disk-1.

הצגת מידע על תמונת מצב רגילה

אפשר לאחזר מידע מפורט על תמונת מצב רגילה, כמו זמן היצירה, דיסק המקור והגודל שלה, באמצעות מסוף Cloud de Confiance , Google Cloud CLI או REST.

המסוף

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

    לדף Snapshots

  2. בכרטיסייה Snapshots (תמונות מצב), רואים את רשימת תמונות המצב בפרויקט.

  3. בעמודה Name (שם), לוחצים על השם של התמונה הרגילה. יוצג הדף Snapshot details של תמונת המצב שנבחרה, עם המאפיינים שלה.

gcloud

  • כדי להציג מידע על תמונת מצב רגילה בהיקף גלובלי, משתמשים בפקודה gcloud compute snapshots describe.

    gcloud compute snapshots describe SNAPSHOT_NAME
    
  • (תצוגה מקדימה) כדי לראות מידע על תמונת מצב סטנדרטית בהיקף אזורי, משתמשים בפקודה gcloud compute snapshots describe ומציינים את האזור.

    gcloud compute snapshots describe SNAPSHOT_NAME --regions=REGION_NAME
    

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

  • SNAPSHOT_NAME: השם של קובץ ה-snapshot הרגיל.
  • REGION_NAME: השם של האזור שהתמונה שלכם מוגבלת אליו.

REST

  • כדי לראות מידע על תמונת מצב רגילה בהיקף גלובלי, שולחים בקשת GET אל ה-method‏ snapshots.get.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME
    
  • (תצוגה מקדימה) כדי לראות מידע על תמונת מצב סטנדרטית בהיקף אזורי, שולחים בקשת GET לשיטה snapshots.get ומציינים את האזור.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/snapshots/SNAPSHOT_NAME
    

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

  • PROJECT_ID: שם הפרויקט שמכיל את קובץ ה-snapshot הרגיל.
  • SNAPSHOT_NAME: השם של התמונה הרגילה.
  • REGION_NAME: השם של האזור שהתמונה שלכם מוגבלת אליו.

מחיקת תמונות מצב

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

מחיקת תמונת מצב

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

מידע נוסף על מחיקת תמונות מצב זמין במאמר בנושא מחיקת תמונות מצב.

המסוף

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

    לדף Snapshots

  2. בוחרים תמונה אחת או יותר שרוצים למחוק.

  3. בחלק העליון של הדף תמונות מצב, לוחצים על מחיקה.

gcloud

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

  • SNAPSHOT_NAME: השם של קובץ ה-snapshot שרוצים למחוק.
  • REGION_NAME: האזור שקובץ ה-snapshot מוגבל אליו.

המשך

import (
	"context"
	"fmt"
	"io"

	compute "cloud.google.com/go/compute/apiv1"
	computepb "cloud.google.com/go/compute/apiv1/computepb"
)

// deleteSnapshot deletes a snapshot of a disk.
func deleteSnapshot(w io.Writer, projectID, snapshotName string) error {
	// projectID := "your_project_id"
	// snapshotName := "your_snapshot_name"

	ctx := context.Background()
	snapshotsClient, err := compute.NewSnapshotsRESTClient(ctx)
	if err != nil {
		return fmt.Errorf("NewSnapshotsRESTClient: %w", err)
	}
	defer snapshotsClient.Close()

	req := &computepb.DeleteSnapshotRequest{
		Project:  projectID,
		Snapshot: snapshotName,
	}

	op, err := snapshotsClient.Delete(ctx, req)
	if err != nil {
		return fmt.Errorf("unable to delete snapshot: %w", err)
	}

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

	fmt.Fprintf(w, "Snapshot deleted\n")

	return nil
}

Java


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

public class DeleteSnapshot {

  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 Cloud project you want to use.
    String projectId = "YOUR_PROJECT_ID";

    // Name of the snapshot to be deleted.
    String snapshotName = "YOUR_SNAPSHOT_NAME";

    deleteSnapshot(projectId, snapshotName);
  }

  // Delete a snapshot of a disk.
  public static void deleteSnapshot(String projectId, String snapshotName)
      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. After completing all of your requests, call
    // the `snapshotsClient.close()` method on the client to safely
    // clean up any remaining background resources.
    try (SnapshotsClient snapshotsClient = SnapshotsClient.create()) {

      Operation operation = snapshotsClient.deleteAsync(projectId, snapshotName)
          .get(3, TimeUnit.MINUTES);

      if (operation.hasError()) {
        System.out.println("Snapshot deletion failed!" + operation);
        return;
      }

      System.out.println("Snapshot deleted!");
    }
  }
}

Node.js

/**
 * TODO(developer): Uncomment and replace these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const snapshotName = 'YOUR_SNAPSHOT_NAME';

const compute = require('@google-cloud/compute');

async function deleteSnapshot() {
  const snapshotsClient = new compute.SnapshotsClient();

  const [response] = await snapshotsClient.delete({
    project: projectId,
    snapshot: snapshotName,
  });
  let operation = response.latestResponse;
  const operationsClient = new compute.GlobalOperationsClient();

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

  console.log('Snapshot deleted.');
}

deleteSnapshot();

Python

from __future__ import annotations

import sys
from typing import Any

from google.api_core.extended_operation import ExtendedOperation
from google.cloud import compute_v1


def wait_for_extended_operation(
    operation: ExtendedOperation, verbose_name: str = "operation", timeout: int = 300
) -> Any:
    """
    Waits for the extended (long-running) operation to complete.

    If the operation is successful, it will return its result.
    If the operation ends with an error, an exception will be raised.
    If there were any warnings during the execution of the operation
    they will be printed to sys.stderr.

    Args:
        operation: a long-running operation you want to wait on.
        verbose_name: (optional) a more verbose name of the operation,
            used only during error and warning reporting.
        timeout: how long (in seconds) to wait for operation to finish.
            If None, wait indefinitely.

    Returns:
        Whatever the operation.result() returns.

    Raises:
        This method will raise the exception received from `operation.exception()`
        or RuntimeError if there is no exception set, but there is an `error_code`
        set for the `operation`.

        In case of an operation taking longer than `timeout` seconds to complete,
        a `concurrent.futures.TimeoutError` will be raised.
    """
    result = operation.result(timeout=timeout)

    if operation.error_code:
        print(
            f"Error during {verbose_name}: [Code: {operation.error_code}]: {operation.error_message}",
            file=sys.stderr,
            flush=True,
        )
        print(f"Operation ID: {operation.name}", file=sys.stderr, flush=True)
        raise operation.exception() or RuntimeError(operation.error_message)

    if operation.warnings:
        print(f"Warnings during {verbose_name}:\n", file=sys.stderr, flush=True)
        for warning in operation.warnings:
            print(f" - {warning.code}: {warning.message}", file=sys.stderr, flush=True)

    return result


def delete_snapshot(project_id: str, snapshot_name: str) -> None:
    """
    Delete a snapshot of a disk.

    Args:
        project_id: project ID or project number of the Cloud project you want to use.
        snapshot_name: name of the snapshot to delete.
    """

    snapshot_client = compute_v1.SnapshotsClient()
    operation = snapshot_client.delete(project=project_id, snapshot=snapshot_name)

    wait_for_extended_operation(operation, "snapshot deletion")

REST

  • כדי למחוק תמונת מצב בהיקף גלובלי, שולחים בקשת DELETE ל-method‏ snapshots.delete.

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME
    
  • (תצוגה מקדימה) כדי למחוק תמונת מצב בהיקף אזורי, שולחים בקשת DELETE לשיטה snapshots.delete ומציינים את האזור.

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/snapshots/SNAPSHOT_NAME
    

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

  • PROJECT_ID: שם הפרויקט.
  • SNAPSHOT_NAME: השם של קובץ ה-snapshot שרוצים למחוק.
  • REGION_NAME: האזור שקובץ ה-snapshot מוגבל אליו.

מחיקה של כמה תמונות מצב על סמך מסנן

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

מידע נוסף על מחיקת תמונות מצב זמין במאמר בנושא מחיקת תמונות מצב.

אפשר למחוק מספר תמונות מצב על סמך מסנן מסוים. למידע נוסף על השימוש במסננים ב-CLI של gcloud, אפשר לעיין במאמר בנושא מסנני נושאים ב-CLI של gcloud.

כדי למחוק את התמונות, משתמשים בשילוב של הפקודה gcloud compute snapshots list עם מסנן נתון, והפקודה gcloud compute snapshots delete עם xargs.

  gcloud compute snapshots list --filter="EXPRESSION" --uri |
  xargs gcloud compute snapshots delete
  

מחליפים את EXPRESSION במסנן של נושא ב-CLI של gcloud.

לדוגמה, --filter="creationTimestamp<'2023-12-31'" מוחק את כל התמונות של מצב המערכת שנוצרו לפני 31 בדצמבר 2023.

שיתוף נתוני תמונת מצב בין פרויקטים באותו ארגון

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

gcloud

  1. יוצרים תמונת מצב רגילה בפרויקט היעד באמצעות הפקודה gcloud compute snapshots create. לדוגמה, כדי ליצור snapshot של דיסק אחסון מתמיד (Persistent Disk) או Hyperdisk אזורי, משתמשים בפקודה הבאה:

    gcloud compute snapshots create SNAPSHOT_NAME \
     --source-disk https://www.googleapis.com/compute/v1/projects/SOURCE_PROJECT_ID/zones/ZONE/disks/SOURCE_DISK_NAME \
     --project DESTINATION_PROJECT_ID
    

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

    • SNAPSHOT_NAME: שם לקובץ ה-snapshot החדש.
    • SOURCE_PROJECT_ID: מזהה הפרויקט של דיסק המקור.
    • ZONE: האזור של דיסק המקור.
    • SOURCE_DISK_NAME: שם דיסק המקור.
    • DESTINATION_PROJECT_ID: המזהה של פרויקט היעד של ה-snapshot החדש.
  2. בפרויקט היעד, יוצרים דיסק אזורי או אזורי על סמך ה-snapshot באמצעות הפקודה gcloud compute disks create:

    gcloud compute disks create DISK_NAME \
     --source-snapshot SNAPSHOT_NAME \
     --project DESTINATION_PROJECT_ID
    

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

    • DISK_NAME: שם לדיסק החדש.
    • SNAPSHOT_NAME: השם של קובץ ה-snapshot.
    • DESTINATION_PROJECT_ID: המזהה של פרויקט היעד של הדיסק החדש.

REST

  1. יוצרים קובץ snapshot רגיל בפרויקט היעד על ידי קריאה ל-method‏ snapshots.insert. לדוגמה, כדי לצלם snapshot של דיסק אחסון מתמיד (persistent disk) או של Hyperdisk אזורי, שולחים את הבקשה הבאה:

    POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
     "name": SNAPSHOT_NAME
     "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME
    }
    

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

    • DESTINATION_PROJECT_ID: מזהה פרויקט היעד של קובץ ה-snapshot החדש.
    • SNAPSHOT_NAME: שם לקובץ ה-snapshot.
    • SOURCE_PROJECT_ID: מזהה הפרויקט של דיסק המקור.
    • SOURCE_ZONE: האזור של דיסק המקור.
    • SOURCE_DISK_NAME: השם של דיסק המקור.
  2. בפרויקט היעד, יוצרים דיסק אזורי או דיסק אזורי על סמך התמונה באמצעות השיטה disks.insert של אזור או השיטה regionDisks.insert של אזור.

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

    POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/zones/DESTINATION_ZONE/disks
    {
     "name": DISK_NAME
     "sourceSnapshot": SNAPSHOT_NAME
    }
    

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

    • DESTINATION_PROJECT_ID: המזהה של פרויקט היעד של הדיסק החדש.
    • DESTINATION_ZONE: האזור בפרויקט היעד של הדיסק החדש.
    • DISK_NAME: שם לדיסק החדש.
    • SNAPSHOT_NAME: השם של קובץ ה-snapshot.

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

שיתוף תמונת מצב בין פרויקטים בארגונים שונים

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

gcloud

  1. בפרויקט המקור, יוצרים דיסק שמבוסס על ה-Snapshot באמצעות הפקודה gcloud compute disks create.

    gcloud compute disks create DISK_NAME \
     --source-snapshot SNAPSHOT_NAME \
     --project SOURCE_PROJECT_ID \
     --zone ZONE
    

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

    • DISK_NAME: שם לדיסק החדש.
    • SNAPSHOT_NAME: השם של קובץ ה-snapshot.
    • SOURCE_PROJECT_ID: מזהה פרויקט המקור.
    • ZONE: האזור שבו ייצור הדיסק החדש.

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

  2. בפרויקט היעד, יוצרים snapshot באמצעות הפקודה gcloud compute snapshots create.

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

    gcloud compute snapshots create SNAPSHOT_NAME \
     --source-disk https://www.googleapis.com/compute/v1/projects/SOURCE_PROJECT_ID/zones/ZONE/disks/DISK_NAME \
     --project DESTINATION_PROJECT_ID
    

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

    • SNAPSHOT_NAME: שם לקובץ ה-snapshot.
    • SOURCE_PROJECT_ID: מזהה הפרויקט שמכיל את דיסק המקור.
    • ZONE: האזור של דיסק המקור.
    • DISK_NAME: השם של הדיסק שנוצר בשלב 1.
    • DESTINATION_PROJECT_ID: המזהה של פרויקט היעד של ה-snapshot החדש.

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

  3. מוחקים את הדיסק הזמני שנוצר בשלב הראשון באמצעות הפקודה gcloud compute disks delete.

    gcloud compute disks delete DISK_NAME \
     --project SOURCE_PROJECT_ID --zone ZONE
    

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

    • DISK_NAME: השם של הדיסק שנוצר בשלב 1.
    • SOURCE_PROJECT_ID: מזהה הפרויקט שמכיל את דיסק המקור.
    • ZONE: האזור של הדיסק.

REST

  1. בפרויקט המקור, יוצרים דיסק אזורי או דיסק אזורי שמבוסס על ה-snapshot באמצעות השיטה disks.insert.

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

    POST https://compute.googleapis.com/compute/v1/projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks
    {
     "name": DISK_NAME
     "sourceSnapshot": SNAPSHOT_NAME
    }
    

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

    • SOURCE_PROJECT_ID: המזהה של פרויקט המקור של הדיסק החדש.
    • SOURCE_ZONE: האזור של הדיסק החדש.
    • DISK_NAME: שם לדיסק החדש.
    • SNAPSHOT_NAME: השם של קובץ ה-snapshot.

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

  2. יוצרים קובץ snapshot בפרויקט היעד באמצעות קריאה ל-method‏ snapshots.insert.

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

    POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
       "name": SNAPSHOT_NAME
       "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/DISK_NAME
    }
    

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

    • DESTINATION_PROJECT_ID: המזהה של פרויקט היעד של ה-snapshot החדש.
    • SNAPSHOT_NAME: שם לקובץ ה-snapshot.
    • SOURCE_PROJECT_ID: מזהה הפרויקט שמכיל את דיסק המקור.
    • SOURCE_ZONE: האזור של דיסק המקור.
    • DISK_NAME: שם דיסק המקור.
  3. מוחקים את הדיסק הזמני שנוצר בשלב הראשון באמצעות השיטה disks.delete.

    DELETE https://compute.googleapis.com/compute/v1/projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/DISK_NAME
    

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

    • SOURCE_PROJECT_ID: מזהה הפרויקט שמכיל את הדיסק הזמני.
    • SOURCE_ZONE: האזור של הדיסק.
    • DISK_NAME: השם של הדיסק הזמני שנוצר בשלב 1.

המאמרים הבאים