העברת קטגוריות

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

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

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

  1. הגדרת Storage Intelligence

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

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

  4. בודקים את המכסות והמגבלות כדי לוודא שיש מספיק מכסות במיקום החדש כדי להכיל את הנתונים בדלי.

  5. מעיינים בהגבלות על העברת דליים.

  6. מסירים את כל התגים הקיימים של הקטגוריה.

  7. אם אתם משתמשים בדוחות מלאי, שמרו את ההגדרות שלכם.

  8. מקבלים את התפקידים הנדרשים, שמתוארים בקטע הבא.

קבלת התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות להעברת קטגוריות, צריך לבקש מהאדמין להקצות לכם את התפקיד אדמין של Storage (roles/storage.admin) ב-IAM בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

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

כדי להעביר קטגוריות, צריך את ההרשאות הבאות:

  • כדי להעביר מאגר: storage.buckets.relocate
  • כדי לראות את הסטטוס של פעולת העברת קטגוריה למיקום גיאוגרפי אחר: storage.bucketOperations.get
  • כדי לראות את רשימת הפעולות של העברת קטגוריות למיקום גיאוגרפי אחר בפרויקט: storage.bucketOperations.list
  • כדי לבטל פעולה של העברת קטגוריה למיקום גיאוגרפי אחר: storage.bucketOperations.cancel
  • כדי לראות את המטא-נתונים של קטגוריה במהלך השלבים של הרצת ניסיון והעברת קטגוריה: storage.buckets.get
  • כדי לקבל אובייקט בקטגוריה שרוצים להעביר: storage.objects.get
  • כדי להציג את רשימת האובייקטים בקטגוריה שרוצים להעביר: storage.objects.list

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

העברת קטגוריות למיקום גיאוגרפי אחר

בקטע הזה מוסבר איך מעבירים קטגוריות של Cloud Storage ממיקום אחד לאחר.

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

  1. בדיקת העברת הקטגוריה למיקום גיאוגרפי אחר באמצעות הרצה (אופציונלי)

  2. איך מתחילים את תהליך העברת קטגוריות למיקום גיאוגרפי אחר

  3. התחלת שלב הסנכרון הסופי

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

בדיקת העברת הקטגוריה למיקום גיאוגרפי אחר באמצעות הרצה (dry run) (אופציונלי)

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

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

המסוף

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על שם הקטגוריה שרוצים להעביר.
  3. בדף Bucket details, לוחצים על הכרטיסייה Configuration.
  4. בקטע סקירה כללית, לוחצים על עריכה לצד השדה מיקום.
  5. בדף Relocate bucket (העברת קטגוריה), מזינים את המיקום החדש של הקטגוריה. אחרי כל אחד מהשלבים הבאים, לוחצים על המשך כדי לעבור לשלב הבא:
    1. בקטע Confirm the bucket you plan to relocate, בודקים את הקטגוריה ואת המיקום שלה.
    2. בקטע לפני שממשיכים, בודקים את ההגדרות שמונעות את ההעברה. אם חלה הגבלה על הקטגוריה, אפשר להשתמש ב-Storage Transfer Service כפתרון חלופי.
    3. בקטע Choose where to relocate your bucket:

      1. בוחרים סוג מיקום.
      2. בוחרים מיקום שבו יישמרו נתוני האובייקטים בקטגוריה.

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

    4. בקטע Choose how you'd like to proceed (בחירת אופן ההמשך), לוחצים על Start with a dry run (recommended) (התחלה עם הרצה יבשה (מומלץ)). הרצה לניסיון מדמה את הרילוקיישן כדי לזהות בעיות פוטנציאליות בלי להעביר נתונים.
    5. לוחצים על Continue.
  6. לוחצים על התחלה.
  7. בתיבת הדו-שיח לאישור Start with a dry run (התחלה עם הרצה יבשה), קוראים את ההודעה שמופיעה ולוחצים על Start dry run (התחלת הרצה יבשה).

אחרי שמפעילים הרצת בדיקה, מתחילה פעולה ממושכת. אפשר לעקוב אחרי ההתקדמות בכרטיסייה Operations בדף bucket details.

שורת הפקודה

כדי להתחיל הרצה יבשה, מריצים את הפקודה gcloud storage buckets relocate עם הדגל --dry-run:

gcloud storage buckets relocate gs://BUCKET_NAME --location=LOCATION --dry-run

כאשר:

  • ‫BUCKET_NAME הוא שם הקטגוריה שרוצים להעביר.

  • ‫LOCATION הוא מיקום היעד של הקטגוריה.

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

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

‫API בפורמט JSON

  1. התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת Authorization.

  2. יוצרים קובץ JSON שבו מופיעות ההגדרות של הקטגוריה. הקובץ חייב להכיל את הפרמטרים destinationLocation ו-validateOnly. לרשימה מלאה של ההגדרות קראו את מסמכי העזרה של Buckets: relocate. ההגדרות הנפוצות שצריך לכלול בקובץ:

    {
      "destinationLocation": "DESTINATION_LOCATION",
      "destinationCustomPlacementConfig": {
        "dataLocations": [
          LOCATIONS,
            ...
            ]
        },
      "validateOnly": "true"
      }

    כאשר:

    • ‫DESTINATION_LOCATION הוא מיקום היעד של הקטגוריה.
    • ‫LOCATIONS היא רשימה של קודי מיקום שישמשו להגדרה של שני אזורים.
    • הערך של validateOnly מוגדר כ-true כדי לבצע הרצת בדיקה.
  3. משתמשים ב-cURL כדי לשלוח קריאה ל-API בפורמט JSON:

    curl -X POST --data-binary @JSON_FILE_NAME \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/relocate"

    כאשר:

    • ‫JSON_FILE_NAME הוא השם של קובץ ה-JSON שיצרתם.
    • ‫BUCKET_NAME הוא שם הקטגוריה שרוצים להעביר.

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

    • בדוחות של ההרצה היבשה לא מופיעות שגיאות.
    • המשאב operations מחזיר ערך של true בשדה done.

      {
      "kind": "storage#operation",
      "name": "projects/_/buckets/bucket/operations/operation_id",
      "metadata": {
        "@type": OperationMetadataType*,
        metadata OperationMetadata*
      },
      "done": "true",
      "response": {
            "@type": ResponseResourceType*,
            response ResponseResource*
          }
        }

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

התחלת העברת קטגוריות למיקום גיאוגרפי אחר

המסוף

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על שם הקטגוריה שרוצים להעביר.
  3. בדף Bucket details, לוחצים על הכרטיסייה Configuration.
  4. בקטע סקירה כללית, לוחצים על עריכה לצד השדה מיקום.
  5. בדף Relocate bucket (העברת קטגוריה), מזינים את המיקום החדש של הקטגוריה. אחרי כל אחד מהשלבים הבאים, לוחצים על המשך כדי לעבור לשלב הבא:
    1. בקטע Confirm the bucket you plan to relocate, בודקים את הקטגוריה ואת המיקום שלה.
    2. בקטע לפני שממשיכים, בודקים את ההגדרות שמונעות את ההעברה. אם יש הגבלה על הקטגוריה, אפשר להשתמש ב-Storage Transfer Service כפתרון חלופי.
    3. בקטע Choose where to relocate your bucket:

      1. בוחרים סוג מיקום.
      2. בוחרים מיקום שבו יישמרו נתוני האובייקטים בקטגוריה.

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

    4. בקטע איך היית רוצה להמשיך?, לוחצים על אני רוצה להעביר את המיקום עכשיו.
    5. לוחצים על Continue.
  6. כדי להתחיל בתהליך ההעברה, לוחצים על התחלה.
  7. בתיבת הדו-שיח לאישור Relocate now, קוראים את ההודעה שמופיעה ולוחצים על Start relocate.

אחרי שמתחילים את תהליך ההעברה, מתחילה פעולה ממושכת. אפשר לעקוב אחרי ההתקדמות בכרטיסייה Operations בדף bucket details.

שורת הפקודה

כדי להתחיל את העברת הקטגוריות למיקום גיאוגרפי אחר, מריצים את הפקודה gcloud storage buckets relocate:

gcloud storage buckets relocate gs://BUCKET_NAME --location=LOCATION

כאשר:

  • ‫BUCKET_NAME הוא שם הקטגוריה שרוצים להעביר.

  • ‫LOCATION הוא מיקום היעד של הקטגוריה.

‫API בפורמט JSON

  1. התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת Authorization.

  2. יוצרים קובץ JSON עם ההגדרות של הקטגוריה. רשימה מלאה של ההגדרות מופיעה במאמרי העזרה של Buckets: relocate. ההגדרות הנפוצות שצריך לכלול בקובץ:

    {
      "destinationLocation": "DESTINATION_LOCATION",
      "destinationCustomPlacementConfig": {
      "dataLocations": [
        LOCATIONS,
        ...
        ]
        },
      "validateOnly": "false"
      }

    כאשר:

    • ‫DESTINATION_LOCATION הוא מיקום היעד של הקטגוריה.
    • ‫LOCATIONS היא רשימה של קודי מיקום שישמשו להגדרה של שני אזורים.
    • הערך של validateOnly מוגדר ל-false כדי להתחיל את העברת הקטגוריות למיקום גיאוגרפי אחר.
  3. משתמשים ב-cURL כדי לשלוח קריאה ל-API בפורמט JSON:

    curl -X POST --data-binary @JSON_FILE_NAME \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/relocate"

    כאשר:

    • ‫JSON_FILE_NAME הוא השם של קובץ ה-JSON שיצרתם.
    • ‫BUCKET_NAME הוא שם הקטגוריה שרוצים להעביר.

מעקב אחרי תהליך הרילוקיישן

המסוף

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

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על שם הקטגוריה שרוצים להעביר.

  3. בדף Bucket details, לוחצים על הכרטיסייה Operations.

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

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

שורת הפקודה

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

‫API בפורמט JSON

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

בדוגמה הבאה מוצג הפלט שנוצר על ידי פעולת העברה:

  done: false
  kind: storage#operation
  metadata:
  '@type': type.googleapis.com/google.storage.control.v2.RelocateBucketMetadata
  commonMetadata:
    createTime: '2024-10-21T04:26:59.666Z
    endTime: '2024-12-29T23:39:53.340Z'
    progressPercent: 99
    requestedCancellation: false
    type: relocate-bucket
    updateTime: '2024-10-21T04:27:03.2892'
  destinationLocation: US-CENTRAL1
  finalizationState: 'READY'
  progress:
    byteProgressPercent: 100
    discoveredBytes: 200
    remainingBytes: 0
    discoveredObjectCount: 10
    remainingObjectCount: 8
    objectProgressPercent: 100
    discoveredSyncCount: 8
    remainingSyncCount: 0
    syncProgressPercent: 100
  relocationState: SYNCING
  sourceLocation: US
  validateOnly: false
  estimatedWriteDowntimeDuration: '7200s'
  writeDowntimeExpireTime: '2024-12-30T10:34:01.786Z'
  name: projects//buckets/my-bucket1/operations/Bar7-1b0khdew@nhenUQRTF_R-Kk4dQ5V1f8fzezkFcPh3XMvlTqJ6xhnqJ1h_QXFIeAirrEqkjgu4zPKSRD6WSSG5UGXil6w
  response:
    '@type': type.googleapis.com/google.storage.control.v2.RelocateBucketResponse
      selfLink: https://storage.googleusercontent.com/storage/v1_ds/b/my-bucket1/operations/Bar7-1b0khdew@nhenUQRTF_R-Kk4dQ5V1f8fzezkFcPh3XMvlTqJ6xhnqJ1h_QXFIeAirrEqkjgu4zPKSRD6WSSG5UGXil6w

בטבלה הבאה מפורט מידע על שדות המפתח בפלט שנוצר על ידי פעולת ההעברה:

שם השדה תיאור ערכים אפשריים
done מציין את סיום הפעולה של העברת הקטגוריה למיקום גיאוגרפי אחר. true, false
kind מציין שהמשאב הזה מייצג פעולת אחסון.
metadata מספק מידע על הפעולה.
metadata.@type מציין את סוג הפעולה כהעברת קטגוריות למיקום גיאוגרפי אחר.
metadata.commonMetadata מטא-נתונים שמשותפים לכל הפעולות.
metadata.commonMetadata.createTime השעה שבה נוצרה הפעולה הממושכת.
metadata.commonMetadata.endTime השעה שבה הסתיימה הפעולה הממושכת.
metadata.commonMetadata.progressPercent ההתקדמות המשוערת של הפעולה הממושכת, באחוזים. בין 0 ל-100%. ערך של -1 מציין שההתקדמות לא ידועה או לא רלוונטית.
metadata.commonMetadata.requestedCancellation מציין אם המשתמש ביקש לבטל את הפעולה ארוכת הטווח. true, false
metadata.commonMetadata.type מציין את סוג הפעולה הממושכת.
metadata.commonMetadata.updateTime המועד האחרון שבו עודכנה הפעולה הממושכת.
metadata.destinationLocation המיקום של קטגוריית היעד.
metadata.finalizationState מציין את המוכנות להתחלת שלב הסנכרון הסופי.
  • ‫READY: מציין שאפשר להתחיל את שלב הסנכרון הסופי. עם זאת, מומלץ לחכות עד שהערך בשדה progressPercent יגיע ל-99.
  • ‫WAITING_ON_SYNC: מציין שאי אפשר להתחיל את שלב הסנכרון הסופי.
  • ‫NOT_REQUIRED: מציין שאין צורך בשלב הסנכרון הסופי עבור הדלי הזה, ואפשר לדלג עליו.
  • ‫BLOCKED_ON_ERRORS: מציין ששלב הסיום מושהה באופן זמני בגלל שגיאות. כדי להמשיך לשלב הבא, צריך לפתור את השגיאות.
  • RUNNING: מציין שהשלב הסופי נמצא בתהליך.
  • ‫FINALIZED: מציין ששלב הסיום הושלם בהצלחה.
metadata.progress פרטי ההתקדמות של פעולת ההעברה.
metadata.progress.byteProgressPercent התקדמות העתקת הבייטים באחוזים. בין 0 ל-100%. ערך של -1 מציין שההתקדמות לא ידועה או לא רלוונטית.
metadata.progress.discoveredBytes מספר הבייטים שנמצאו בקטגוריית המקור.
metadata.progress.discoveredObjectCount מספר האובייקטים שנמצאו בקטגוריית המקור.
metadata.progress.discoveredSyncCount מספר עדכוני המטא-נתונים של האובייקט שנמצאו בקטגוריית המקור.
metadata.progress.objectProgressPercent התקדמות העתקת האובייקטים באחוזים. בין 0 ל-100%. ערך של -1 מציין שההתקדמות לא ידועה או לא רלוונטית.
metadata.progress.remainingBytes מספר הבייטים שנותרו להעתקה מקטגוריית המקור לקטגוריית היעד.
metadata.progress.remainingObjectCount מספר האובייקטים שנותרו להעתקה מקטגוריית המקור לקטגוריית היעד.
metadata.progress.remainingSyncCount מספר עדכוני המטא-נתונים של האובייקט שנותרו לסנכרון.
metadata.progress.syncProgressPercent התקדמות עדכוני המטא-נתונים של האובייקט שצריך לסנכרן באחוזים. בין 0 ל-100%. ערך של -1 מציין שההתקדמות לא ידועה או לא רלוונטית.
metadata.relocationState המצב הכללי של פעולת העברת קטגוריות למיקום גיאוגרפי אחר.
  • ‫SYNCING: מציין שבשלב העברת הקטגוריה למיקום גיאוגרפי אחר, מתבצעת העתקה של אובייקטים מקטגוריית המקור לקטגוריית היעד.
  • ‫FINALIZING: מציין שהשלב הסופי של התהליך התחיל.
  • ‫FAILED: מציין שבשלב העברת הקטגוריה למיקום גיאוגרפי אחר אירעה שגיאה והוא לא הושלם.
  • ‫SUCCEEDED: מציין ששלב העברת הקטגוריות למיקום גיאוגרפי אחר הושלם בהצלחה.
  • ‫CANCELLED: מציין ששלב ההעברה של הקטגוריה בוטל.
metadata.sourceLocation מיקום המקור של הקטגוריה.
metadata.validateOnly מציין אם הופעלה הרצה לניסיון של העברת הקטגוריה למיקום גיאוגרפי אחר. true, false
metadata.estimatedWriteDowntimeDuration משך ההשבתה המשוער של פעולות הכתיבה. הערך הזה יאוכלס אחרי שהסטטוס של finalizationState יהיה READY. הערך המינימלי הוא 7200s.
metadata.writeDowntimeExpireTime השעה שבה מסתיים זמן ההשבתה של פעולת הכתיבה.
name המזהה הייחודי של פעולת ההעברה הזו.
פורמט: projects/_/buckets/bucket-name/operations/operation-id
response התגובה של הפעולה.
response.@type סוג התשובה.
selfLink קישור לפעולה הזו.

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

התחלת שלב הסנכרון הסופי

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

המסוף

כדי להתחיל את שלב הסנכרון הסופי:

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על שם הקטגוריה שרוצים להעביר.

  3. בדף Bucket details, לוחצים על הכרטיסייה Operations.

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

  5. אופציונלי: כדי להגדיר את זמן ההשבתה המקסימלי המותר לכתיבה, לוחצים על Set maximum allowed downtime (TTL) ומציינים את משך זמן ההשבתה המקסימלי.

  6. לוחצים על התחלת הסנכרון הסופי.

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

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

שורת הפקודה

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

כשהערך של finalizationState הוא READY, מריצים את הפקודה gcloud storage buckets relocate כדי להתחיל את הסנכרון הסופי:

gcloud storage buckets relocate --finalize --operation=projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID

כאשר:

  • ‫BUCKET_NAME הוא שם הקטגוריה שרוצים להעביר.
  • ‫OPERATION_ID הוא המזהה של הפעולה הממושכת להעברת הקטגוריה למיקום גיאוגרפי אחר, שמוחזר בתגובה לשיטות שאתם מפעילים. לדוגמה, התגובה הבאה מוחזרת מקריאה ל-gcloud storage operations list ומזהה הפעולה הממושכת הוא AbCJYd8jKT1n-Ciw1LCNXIcubwvij_TdqO-ZFjuF2YntK0r74.
 `name: projects/_/buckets/my-bucket/operations/AbCJYd8jKT1n-Ciw1LCNXIcubwvij_TdqO-ZFjuF2YntK0r74` 

מגדירים את הדגל ttl כדי לקבל שליטה טובה יותר בתהליך ההעברה. לדוגמה:

gcloud storage buckets relocate --finalize --ttl TTL_DURATION --operation=projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID

כאשר:

‫TTL_DURATION הוא אורך החיים (TTL) של שלב זמן ההשבתה של הכתיבה במהלך תהליך ההעברה. הוא מבוטא כמחרוזת, למשל 12h ל-12 שעות. הערך של TTL_DURATION קובע את משך הזמן המקסימלי המותר לשלב זמן ההשבתה של הכתיבה. אם זמן ההשבתה של פעולות הכתיבה חורג מהמגבלה הזו, תהליך ההעברה חוזר באופן אוטומטי לשלב העברת קטגוריות למיקום גיאוגרפי אחר, ופעולות הכתיבה לקטגוריה מופעלות מחדש. הערך צריך להיות בטווח שבין 6h (6 שעות) ל-48h (48 שעות). אם לא מציינים ערך, ערך ברירת המחדל הוא 12h (12 שעות).

‫API בפורמט JSON

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

אם תפעילו את שלב הסנכרון הסופי מוקדם מדי, הפקודה תחזיר הודעת שגיאה The relocate bucket operation isn't ready to advance to finalization running state אבל תהליך ההעברה יימשך.

מומלץ להמתין עד שהערך של progressPercent יהיה 99 לפני שמתחילים את שלב הסנכרון הסופי.

  1. להתקין ולהפעיל את ה-CLI של gcloud, כדי שתוכלו ליצור אסימון גישה לכותרת Authorization.

  2. יוצרים קובץ JSON שבו מופיעות ההגדרות להעברת קטגוריות למיקום גיאוגרפי אחר. לרשימה מלאה של ההגדרות קראו את מסמכי העזרה של Buckets: advanceRelocateBucket. ההגדרות הנפוצות שצריך לכלול בקובץ:

    {
    "expireTime": "EXPIRE_TIME",
    "ttl": "TTL_DURATION"
    }

    כאשר:

    • ‫EXPIRE_TIME הוא הזמן שבו מסתיים זמן ההשבתה של הכתיבה.
    • ‫TTL_DURATION הוא אורך החיים (TTL) של שלב זמן ההשבתה של הכתיבה במהלך תהליך ההעברה. הוא מבוטא כמחרוזת, למשל 12h ל-12 שעות. הערך של TTL_DURATION קובע את משך הזמן המקסימלי המותר לשלב זמן ההשבתה של הכתיבה. אם זמן ההשבתה של הכתיבה חורג מהמגבלה הזו, תהליך ההעברה חוזר אוטומטית לשלב של העברת הדלי, והפעולות של הכתיבה לדלי מופעלות מחדש. הערך צריך להיות בטווח שבין 6h (6 שעות) ל-48h (48 שעות). אם לא מציינים ערך, ערך ברירת המחדל הוא 12h (12 שעות).
  3. משתמשים ב-cURL כדי לשלוח קריאה ל-API בפורמט JSON:

    curl -X POST --data-binary @JSON_FILE_NAME \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
     "https://storage.googleapis.com/storage/v1/b/bucket/BUCKET_NAME/operations/OPERATION_ID/advanceRelocateBucket"

    כאשר:

    • ‫JSON_FILE_NAME הוא השם של קובץ ה-JSON שיצרתם.
    • ‫BUCKET_NAME הוא שם הקטגוריה שרוצים להעביר.
    • ‫OPERATION_ID הוא המזהה של הפעולה הממושכת שהתחילה את העברת הקטגוריה למיקום גיאוגרפי אחר. כדי לקבל את רשימת המזהים של פעולות ממושכות עבור דלי, אפשר לעיין במאמר בנושא פעולות: רשימה.

אימות תהליך העברת קטגוריות למיקום גיאוגרפי אחר

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

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

  • דגימה של פעולות ממושכות: העברת קטגוריות למיקום גיאוגרפי אחר היא פעולה ממושכת. כדי לעקוב אחרי התקדמות הפעולה, אתם יכולים לדגום את הפעולה הממושכת באמצעות operation id. כדי לוודא שהיא הסתיימה בהצלחה, אתם יכולים לבדוק את המצב של success. כדי לעשות את זה, צריך לשלוח שאילתות לגבי סטטוס הפעולה מדי פעם עד שהיא מגיעה למצב סופי. מידע על מעקב אחר פעולות ממושכות מופיע במאמר שימוש בפעולות ממושכות ב-Cloud Storage.

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

    רשומות היומן הבאות עוזרות לכם לקבוע אם ההעברה הצליחה או נכשלה:

    • העברה מוצלחת: Relocate bucket succeeded. All existing objects are now in the new placement configuration.

    • העברה שנכשלה: Relocate bucket has failed. Bucket location remains unchanged.

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

השלמת המשימות להעברת מאגרי הפוסטים

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

  1. אופציונלי: משחזרים את אמצעי בקרת הגישה מבוססי התגים בדלי.
  2. הגדרות קיימות של דוחות מלאי לא נשמרות במהלך תהליך ההעברה, ותצטרכו ליצור אותן מחדש באופן ידני. מידע על יצירת הגדרות של דוח מלאי זמין במאמר יצירת הגדרות של דוח מלאי.
  3. מעדכנים את ההגדרות של התשתית כקוד, כמו Terraform ו-Google Kubernetes Engine configuration connector, כדי לציין את המיקום החדש של מאגר הנתונים.
  4. נקודות קצה אזוריות קשורות למיקומים ספציפיים, ותצטרכו לשנות את קוד האפליקציה כדי לשקף את נקודת הקצה החדשה.

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

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

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

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

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