גיבוי ושחזור נתונים באמצעות תמונת מצב

במאמר הזה נסביר איך להשתמש בתמונת מצב כדי לגבות ולשחזר את הנתונים במופע שלכם ב-Gemini Enterprise Agent Platform Workbench.

גיבוי הנתונים

כדי לגבות נתונים במופע של Agent Platform Workbench, אפשר לצלם תמונת מצב של דיסק הנתונים של המכונה הווירטואלית (VM) הבסיסית של Compute Engine.

אפשר ליצור תמונת מצב של דיסק הנתונים של המכונה באמצעות מסוף Cloud de Confiance , Google Cloud CLI או ה-API בארכיטקטורת REST:

המסוף

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

    כניסה לדף Instances

  2. לוחצים על שם המכונה.

  3. בדף Instance details (פרטי המכונה), לוחצים על View in Compute Engine (הצגה ב-Compute Engine) כדי לפתוח את VM details (פרטי המכונה הווירטואלית).

  4. בקטע Additional disks (דיסקים נוספים), לוחצים על השם של דיסק הנתונים. השם של דיסק הנתונים הוא בפורמט הבא: INSTANCE_NAME-data-workspace.

  5. לוחצים על יצירת תמונת מצב.

  6. בתיבת הדו-שיח יצירת תמונת מצב, לוחצים על יצירה.

‫Compute Engine יוצר קובץ snapshot של דיסק הנתונים.

gcloud

כדי ליצור snapshot של דיסק הנתונים של המכונה, משתמשים בפקודה gcloud compute snapshots create.

לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:

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

‫Linux,‏ macOS או Cloud Shell

gcloud compute snapshots create SNAPSHOT_NAME \
    --source-disk-zone=SOURCE_ZONE \
    --source-disk=INSTANCE_NAME-data-workspace \
    --storage-location=STORAGE_LOCATION

‏Windows (PowerShell)

gcloud compute snapshots create SNAPSHOT_NAME `
    --source-disk-zone=SOURCE_ZONE `
    --source-disk=INSTANCE_NAME-data-workspace `
    --storage-location=STORAGE_LOCATION

Windows‏ (cmd.exe)

gcloud compute snapshots create SNAPSHOT_NAME ^
    --source-disk-zone=SOURCE_ZONE ^
    --source-disk=INSTANCE_NAME-data-workspace ^
    --storage-location=STORAGE_LOCATION

REST

כדי ליצור snapshot של דיסק הנתונים של המכונה, שולחים בקשה אל ה-method‏ POST snapshots.insert של Compute Engine.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫DESTINATION_PROJECT_ID: המזהה של הפרויקט שבו רוצים ליצור את התמונה
  • ‫SNAPSHOT_NAME: שם לקובץ ה-snapshot
  • ‫SOURCE_PROJECT_ID: מזהה הפרויקט שבו נמצאת המכונה
  • ‫SOURCE_ZONE: האזור שבו נמצאת המכונה
  • ‫INSTANCE_NAME: השם של המכונה
  • ‫STORAGE_LOCATION: האזור הרב-אזורי של Cloud Storage או האזור של Cloud Storage שבו רוצים לאחסן את התמונה. אפשר לציין רק מיקום אחסון אחד.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots

גוף בקשת JSON:

{
  "name": "SNAPSHOT_NAME",
  "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/INSTANCE_NAME-data-workspace",
  "storageLocations": [
      "STORAGE_LOCATION"
  ],
}

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

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots" | Select-Object -Expand Content

קביעת מועד לגיבוי

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

אפשר ליצור מכונה עם תזמוני קובצי snapshot שמצורפים אליה באמצעות Google Cloud CLI או ה-API בארכיטקטורת REST:

gcloud

כדי ליצור מכונה עם תזמון ליצירת תמונת מצב, משתמשים בפקודה gcloud workbench instances create ומציינים את מדיניות המשאבים באמצעות הדגל --data-disk-resource-policies.

לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:

  • ‫INSTANCE_NAME: השם של מופע Agent Platform Workbench. השם צריך להתחיל באות, ואחריה יכולים להיות עד 62 אותיות קטנות, מספרים או מקפים (-). השם לא יכול להסתיים במקף.
  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫LOCATION: האזור שבו רוצים למקם את המכונה
  • ‫MACHINE_TYPE: ‏סוג המכונה של מכונת ה-VM של המופע, לדוגמה: n2d-standard-2
  • ‫REGION: האזור שבו נמצאת מדיניות המשאבים
  • ‫RESOURCE_POLICY: מדיניות המשאבים שרוצים להחיל על דיסק הנתונים.

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

‫Linux,‏ macOS או Cloud Shell

gcloud workbench instances create INSTANCE_NAME \
    --project=PROJECT_ID \
    --location=LOCATION \
    --machine-type=MACHINE_TYPE \
    --data-disk-resource-policies=projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY

‏Windows (PowerShell)

gcloud workbench instances create INSTANCE_NAME `
    --project=PROJECT_ID `
    --location=LOCATION `
    --machine-type=MACHINE_TYPE `
    --data-disk-resource-policies=projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY

Windows‏ (cmd.exe)

gcloud workbench instances create INSTANCE_NAME ^
    --project=PROJECT_ID ^
    --location=LOCATION ^
    --machine-type=MACHINE_TYPE ^
    --data-disk-resource-policies=projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY

REST

כדי ליצור מכונה עם לוח זמנים ליצירת snapshot, משתמשים ב-method‏ projects.locations.instances.create ומגדירים את resourcePolicies ב-DataDisk.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫LOCATION: האזור שבו רוצים למקם את המכונה
  • ‫MACHINE_TYPE: ‏סוג המכונה של מכונת ה-VM של המופע, לדוגמה: n2d-standard-2
  • ‫REGION: האזור שבו נמצאת מדיניות המשאבים
  • ‫RESOURCE_POLICY: מדיניות המשאבים שרוצים להחיל על דיסק הנתונים.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances

גוף בקשת JSON:

{
  "gce_setup": {
    "machine_type": "MACHINE_TYPE",
    "data_disks": [
      {
        "resource_policies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY"
        ]
      }
    ]
  }
}

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

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances" | Select-Object -Expand Content

עדכון לוחות הזמנים של הגיבוי

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

gcloud

כדי לעדכן את לוחות הזמנים של הגיבוי במכונה קיימת, משתמשים בפקודה gcloud workbench instances update ומציינים את מדיניות המשאבים באמצעות הדגל --data-disk-resource-policies. רשימת מדיניות המשאבים שצוינה מחליפה לחלוטין את הרשימה הקיימת.

לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:

  • ‫INSTANCE_NAME: השם של מופע Agent Platform Workbench
  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫LOCATION: האזור שבו נמצאת המכונה
  • ‫INSTANCE_ID: המזהה של המכונה
  • ‫REGION: האזור שבו נמצאת מדיניות המשאבים
  • ‫RESOURCE_POLICY: מדיניות המשאבים שרוצים להחיל על דיסק הנתונים.

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

‫Linux,‏ macOS או Cloud Shell

gcloud workbench instances update INSTANCE_NAME \
    --project=PROJECT_ID \
    --location=LOCATION \
    --data-disk-resource-policies=projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY

‏Windows (PowerShell)

gcloud workbench instances update INSTANCE_NAME `
    --project=PROJECT_ID `
    --location=LOCATION `
    --data-disk-resource-policies=projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY

Windows‏ (cmd.exe)

gcloud workbench instances update INSTANCE_NAME ^
    --project=PROJECT_ID ^
    --location=LOCATION ^
    --data-disk-resource-policies=projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY

REST

כדי לעדכן את לוחות הזמנים של הגיבויים במכונה קיימת, שולחים בקשת PATCH אל ה-method‏ projects.locations.instances.patch עם הערך gceSetup.dataDisks.resourcePolicies של הפרמטר updateMask. רשימת מדיניות המשאבים שצוינה מחליפה לחלוטין את הרשימה הקיימת.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫LOCATION: האזור שבו נמצאת המכונה
  • ‫INSTANCE_ID: המזהה של המכונה
  • ‫REGION: האזור שבו נמצאת מדיניות המשאבים
  • ‫RESOURCE_POLICY: מדיניות המשאבים שרוצים להחיל על דיסק הנתונים.

ה-method של ה-HTTP וכתובת ה-URL:

PATCH https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID?updateMask=gceSetup.dataDisks.resourcePolicies

גוף בקשת JSON:

{
  "gce_setup": {
    "data_disks": [
      {
        "resource_policies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY"
        ]
      }
    ]
  }
}

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

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID?updateMask=gceSetup.dataDisks.resourcePolicies"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID?updateMask=gceSetup.dataDisks.resourcePolicies" | Select-Object -Expand Content

הסרת כל לוחות הזמנים של הגיבוי

אפשר להסיר את כל לוחות הזמנים של הגיבוי ממופע קיים על ידי הגדרת מדיניות המשאבים לרשימה ריקה באמצעות Google Cloud CLI או API בארכיטקטורת REST:

gcloud

כדי להסיר את כל תזמוני הגיבוי ממופע קיים, משתמשים בפקודה gcloud workbench instances update ומעבירים ערך ריק לדגל --data-disk-resource-policies. הפעולה הזו מסירה את כל התזמונים הפעילים מהמופע.

לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:

  • ‫INSTANCE_NAME: השם של מופע Agent Platform Workbench
  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫LOCATION: האזור שבו נמצאת המכונה
  • ‫INSTANCE_ID: המזהה של המכונה

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

‫Linux,‏ macOS או Cloud Shell

gcloud workbench instances update INSTANCE_NAME \
    --project=PROJECT_ID \
    --location=LOCATION \
    --data-disk-resource-policies=

‏Windows (PowerShell)

gcloud workbench instances update INSTANCE_NAME `
    --project=PROJECT_ID `
    --location=LOCATION `
    --data-disk-resource-policies=

Windows‏ (cmd.exe)

gcloud workbench instances update INSTANCE_NAME ^
    --project=PROJECT_ID ^
    --location=LOCATION ^
    --data-disk-resource-policies=

REST

כדי להסיר את כל לוחות הזמנים של הגיבויים ממכונה קיימת, שולחים בקשת PATCH אל ה-method‏ projects.locations.instances.patch עם הערך gceSetup.dataDisks.resourcePolicies ברשימה resourcePolicies.updateMask כל התזמונים הפעילים יוסרו מהמופע.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫LOCATION: האזור שבו נמצאת המכונה
  • ‫INSTANCE_ID: המזהה של המכונה

ה-method של ה-HTTP וכתובת ה-URL:

PATCH https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID?updateMask=gceSetup.dataDisks.resourcePolicies

גוף בקשת JSON:

{
  "gce_setup": {
    "data_disks": [
      {
        "resource_policies": []
      }
    ]
  }
}

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

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID?updateMask=gceSetup.dataDisks.resourcePolicies"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID?updateMask=gceSetup.dataDisks.resourcePolicies" | Select-Object -Expand Content

שחזור נתונים מתמונת מצב

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

אפשר לשחזר נתונים במכונה באמצעות ה-CLI של gcloud או API בארכיטקטורת REST:

gcloud

כדי לשחזר נתונים במכונה, משתמשים בפקודה gcloud workbench instances restore.

לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:

  • ‫INSTANCE_NAME: השם של המכונה
  • ‫LOCATION: האזור שבו נמצאת המכונה
  • ‫SNAPSHOT_PROJECT_NAME: שם הפרויקט שבו נמצא קובץ ה-snapshot
  • ‫SNAPSHOT_NAME: השם של ה-snapshot לשחזור

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

‫Linux,‏ macOS או Cloud Shell

gcloud workbench instances restore INSTANCE_NAME \
    --location=LOCATION \
    --snapshot-project=SNAPSHOT_PROJECT_NAME \
    --snapshot=SNAPSHOT_NAME

‏Windows (PowerShell)

gcloud workbench instances restore INSTANCE_NAME `
    --location=LOCATION `
    --snapshot-project=SNAPSHOT_PROJECT_NAME `
    --snapshot=SNAPSHOT_NAME

Windows‏ (cmd.exe)

gcloud workbench instances restore INSTANCE_NAME ^
    --location=LOCATION ^
    --snapshot-project=SNAPSHOT_PROJECT_NAME ^
    --snapshot=SNAPSHOT_NAME

REST

כדי לשחזר נתונים במכונה, שולחים בקשת POST אל ה-method‏ projects.locations.instances.restore.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫LOCATION: האזור שבו נמצאת המכונה
  • ‫INSTANCE_ID: המזהה של המכונה
  • ‫SNAPSHOT_ID: מזהה ה-snapshot לשחזור. כדי לקבל את המזהה של קובץ snapshot, משתמשים בשיטה snapshots.get של Compute Engine.
  • ‫SNAPSHOT_PROJECT_ID: מזהה הפרויקט של התמונה

ה-method של ה-HTTP וכתובת ה-URL:

POST https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:restore

גוף בקשת JSON:

{
  "snapshot": {
    {
      "snapshotId": SNAPSHOT_ID,
      "projectId": SNAPSHOT_PROJECT_ID
    }
  }
}

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

curl

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:restore"

PowerShell

שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:restore" | Select-Object -Expand Content

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