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

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

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

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

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

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

    המסוף

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

    gcloud

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

      gcloud init

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

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

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

      התקינו את ה-CLI של Google Cloud.

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

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

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

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

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

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

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

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

  • כדי להציג רשימה של קובצי snapshot בפרויקט או במיקום: ‫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 בדיסק המקור

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

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

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

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

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

המסוף

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

    לדף Snapshots

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

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

gcloud

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

    gcloud compute snapshots list --project=PROJECT_ID
    
  • (תצוגה מקדימה) כדי לראות רשימה של קובצי snapshot ברמת האזור שזמינים לכם בפרויקט מסוים, השתמשו בפקודה 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
    
  • כדי לראות רשימה של קובצי snapshot שזמינים לכם בפרויקט מסוים ברמה הגלובלית, שלחו בקשת GET ל-snapshots.list method וציינו "global".

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

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

  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫REGION_NAME: שם האזור שבו רוצים לראות את קובצי ה-snapshot.

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

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

המסוף

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

    לדף Snapshots

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

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

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

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

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

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

gcloud

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

  • הצגת רשימה של קובצי ה-snapshot הרגילים של דיסק אזורי:

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

    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

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

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

  • הצגת רשימה של קובצי ה-snapshot הרגילים של דיסק אזורי:

    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'
    
  • הצגת רשימה של קובצי ה-snapshot הרגילים של דיסק אזורי:

    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.

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

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

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

המסוף

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

    לדף Snapshots

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

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

gcloud

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

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

REST

  • כדי להציג מידע על קובץ snapshot רגיל ברמה הגלובלית, שולחים בקשת 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: השם של האזור שהתמונה שלכם מוגבלת אליו.

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

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

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

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

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

המסוף

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

    לדף Snapshots

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

  3. בחלק העליון של הדף Snapshots, לוחצים על Delete.

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
    
  • (גרסת טרום-השקה (Preview)) כדי למחוק קובץ snapshot ברמה האזורית, שולחים בקשת DELETE ל-snapshots.delete method ומציינים את האזור.

    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'" מוחקת את כל קובצי ה-snapshot שנוצרו לפני 31 בדצמבר 2023.

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

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

gcloud

  1. יוצרים קובץ snapshot רגיל בפרויקט היעד באמצעות הפקודה 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: שם לתמונת המצב החדשה.
    • ‫SOURCE_PROJECT_ID: מזהה הפרויקט של דיסק המקור.
    • ‫ZONE: האזור של דיסק המקור.
    • ‫SOURCE_DISK_NAME: השם של דיסק המקור.
    • ‫DESTINATION_PROJECT_ID: המזהה של פרויקט היעד של ה-snapshot החדש.
  2. בפרויקט היעד, יוצרים דיסק אזורי או דיסק של אזור באמצעות הפקודה gcloud compute disks create, על סמך קובץ ה-snapshot:

    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: שם לתמונת המצב.
    • ‫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: שם לתמונת המצב.
    • ‫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, באמצעות ה-method‏ 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: שם לתמונת המצב.
    • ‫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.

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