יצירת קובץ snapshot של דיסק עם נתונים עקביים של אפליקציות Windows


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

קובצי snapshot עקביים לאפליקציה מתעדים את מצב נתוני האפליקציה בזמן הגיבוי, אחרי שכל העסקאות באפליקציה הושלמו וכל פעולות הכתיבה בהמתנה נמחקו מהדיסק. במכונות וירטואליות של Windows, משתמשים ב-Volume Shadow Copy Service‏ (VSS) כדי ליצור קובצי snapshot עקביים לאפליקציות בלי לעצור קודם את המכונה או לנתק את הדיסק מהמכונה הווירטואלית.

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

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

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

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

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

מגבלות

לתמונות המצב של דיסקים ב-Windows יש את המגבלות הבאות:

  • קובצי snapshot של VSS פועלים רק במכונות Windows עם גרסת תמונה v20160810 ואילך. למכונות עם קובצי אימג' ישנים יותר, צריך ליצור קובץ snapshot בלי להשתמש ב-VSS.
  • בכונן המחובר צריכה להיות מערכת קבצים מסוג NTFS,‏ exFAT או ReFS.
  • קובצי snapshot של VSS עוזרים לשמור על הנתונים רק אם אתם מריצים אפליקציות שתומכות ב-VSS ויכולות לתאם יצירת גיבוי עקבי של הנתונים.
  • אם הפעולה של קובץ ה-snapshot של VSS לא מסתיימת תוך 300 שניות, קובץ ה-snapshot נכשל עם הודעת שגיאה מסוג זמן קצוב פג.

יצירת קובץ snapshot של VSS ב-Windows

אפשר ליצור קובצי snapshot של Volume Shadow Copy Service ‏ (VSS) בלי להפסיק את המכונה או לנתק את הדיסק מהמכונה הווירטואלית. קובצי snapshot של VSS מיועדים למטרות גיבוי ושחזור במערכות עם אפליקציות שתומכות ב-VSS.

התמונות הממוזערות של VSS מתומחרות באותו מחיר כמו תמונות ממוזערות רגילות של Persistent Disk או Hyperdisk, והחיוב הוא רק על הגודל הכולל של קובץ ה-snapshot.

יצירת קובץ ה-snapshot

המסוף

  1. נכנסים לדף Create a Snapshot במסוף Google Cloud .

    כניסה לדף Create a Snapshot
  2. מזינים שם ל-snapshot.
  3. בוחרים סוג קובץ snapshot. ברירת המחדל היא קובץ snapshot של STANDARD, שהיא האפשרות הטובה ביותר לגיבוי לטווח ארוך ולשחזור מאסון.

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

  4. אופציונלי: מזינים תיאור של קובץ ה-snapshot.
  5. בקטע Source disk (דיסק מקור), בוחרים את הדיסק הקיים שרוצים ליצור ממנו קובץ snapshot.
  6. בקטע Location, בוחרים את מיקום האחסון של קובצי ה-snapshot.

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

    1. בוחרים את סוג מיקום האחסון הרצוי ל-snapshot.

      • בוחרים באפשרות במספר אזורים כדי ליהנות מזמינות גבוהה יותר בעלות גבוהה יותר.
      • כדי לשלוט טוב יותר במיקום הפיזי של הנתונים בעלות נמוכה יותר, תוכלו להשתמש בקובצי snapshot אזוריים.
    2. בשדה Select location בוחרים את האזור הספציפי או את מספר האזורים שבהם רוצים להשתמש. כדי להשתמש באזור או במספר אזורים הקרובים ביותר לדיסק המקור, בוחרים באפשרות Based on disk's location.
  7. מסמנים את האפשרות Enable application consistent snapshot.
  8. לוחצים על Create כדי ליצור את קובץ ה-snapshot.

gcloud

כדי ליצור קובץ snapshot של VSS, משתמשים בפקודה gcloud compute snapshots create וכוללים את הדגל --guest-flush.

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

  • כדי ליצור קובץ snapshot במיקום ברירת המחדל המוגדר מראש או בהתאמה אישית בהגדרות של קובץ ה-snapshot, משתמשים בפקודה gcloud compute snapshots create.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk-zone=SOURCE_ZONE \
        --source-disk=SOURCE_DISK_NAME \
        --snapshot-type=SNAPSHOT_TYPE \
        --guest-flush
    
  • לחלופין, כדי לשנות את הגדרות ה-snapshot וליצור snapshot במיקום אחסון מותאם אישית, צריך לכלול את הדגל --storage-location כדי לציין איפה לשמור את ה-snapshot.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk-zone=SOURCE_ZONE \
        --source-disk=SOURCE_DISK_NAME \
        --snapshot-type=SNAPSHOT_TYPE \
        --storage-location=STORAGE_LOCATION \
        --guest-flush
    
  • (תצוגה מקדימה) כדי ליצור קובץ snapshot ברמת האזור באזור מורשה, צריך לכלול את הדגל --region כדי לציין איפה ליצור את קובץ ה-snapshot.

    gcloud beta compute snapshots create SNAPSHOT_NAME \
        --region=SNAPSHOT_SCOPE_REGION
        --source-disk=SOURCE_DISK_NAME \
        --source-disk-zone=SOURCE_ZONE \
        --snapshot-type=SNAPSHOT_TYPE
    

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

  • SNAPSHOT_NAME: שם לקובץ ה-snapshot.
  • SOURCE_ZONE: האזור של דיסק המקור.
  • SOURCE_DISK_NAME: השם של נפח הדיסק שרוצים ליצור ממנו קובץ snapshot.
  • SNAPSHOT_TYPE: סוג ה-snapshot, STANDARD או ARCHIVE. אם לא מציינים סוג של קובץ snapshot, נוצר קובץ snapshot מסוג STANDARD.
  • STORAGE_LOCATION: אופציונלי: ל-snapshots ברמת ה-global, Cloud Storage במספר אזורים או אזור Cloud Storage שבו רוצים לאחסן את ה-snapshot. אפשר לציין רק מיקום אחסון אחד.

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

  • SNAPSHOT_SCOPE_REGION: אופציונלי: בקובצי snapshot ברמת האזור, האזור שאליו מוגדר ה-snapshot. אם כוללים את הפרמטר הזה, אי אפשר להשתמש בפרמטר --storage-location. השדה STORAGE_LOCATION מוגדר באופן אוטומטי ל-SNAPSHOT_SCOPE_REGION.

כדי ליצור קובץ snapshot של VSS של דיסק אחסון מתמיד אזורי, מחליפים את --source-disk-zone= ב---source-disk-region= בדוגמאות הקודמות ומציינים את האזור שבו נמצא הדיסק האזורי.

ה-CLI של Google Cloud ממתין עד שהפעולה מחזירה סטטוס READY או FAILED, או עד שהזמן הקצוב לתפוגה פג, ומחזיר את הפרטים האחרונים הידועים של קובץ ה-snapshot.

REST

כשיוצרים קובץ snapshot, כדי לציין שרוצים ליצור קובץ snapshot של VSS, צריך לכלול את המאפיין guestFlush בגוף הבקשה של הבקשה POST לשיטת compute.snapshots.insert.

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

  • כדי ליצור קובץ snapshot במיקום ברירת המחדל המוגדר מראש או בהתאמה אישית בהגדרות של קובץ ה-snapshot, שולחים בקשה מסוג POST לשיטה snapshots.insert:

    POST https://compute.googleapis.com/compute/beta/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
      "name": "SNAPSHOT_NAME",
      "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
      "snapshotType": "SNAPSHOT_TYPE",
      "guestFlush": true,
    }
    
  • לחלופין, כדי לשנות את הגדרות קובץ ה-snapshot וליצור קובץ snapshot במיקום אחסון מותאם אישית, שולחים בקשה מסוג POST לשיטה snapshots.insert וכוללים את המאפיין storageLocations בבקשה:

    POST https://compute.googleapis.com/compute/beta/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
      "name": "SNAPSHOT_NAME",
      "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
      "snapshotType": "SNAPSHOT_TYPE",
      "storageLocations": [
          "STORAGE_LOCATION"
      ],
      "guestFlush": true,
    }
    
  • (תצוגה מקדימה) כדי ליצור קובץ snapshot ברמת האזור באזור מורשה, שולחים בקשה מסוג POST לשיטה snapshots.insert ומגדירים את אזור היצירה:

    POST https://compute.googleapis.com/compute/beta/projects/DESTINATION_PROJECT_ID/regions/SNAPSHOT_SCOPE_REGION/snapshots
    {
        "name": "SNAPSHOT_NAME",
        "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
        "snapshotType": "SNAPSHOT_TYPE"
    }
    

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

  • DESTINATION_PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את קובץ ה-snapshot.
  • SNAPSHOT_NAME: שם לקובץ ה-snapshot.
  • SOURCE_PROJECT_ID: המזהה של פרויקט הדיסק המקור.
  • SOURCE_ZONE: האזור של דיסק המקור.
  • SOURCE_DISK_NAME: השם של הדיסק שממנו רוצים ליצור קובץ snapshot.
  • SNAPSHOT_TYPE: סוג ה-snapshot, STANDARD או ARCHIVE. אם לא מציינים סוג של קובץ snapshot, נוצר קובץ snapshot מסוג STANDARD.
  • STORAGE_LOCATION: אופציונלי: ל-snapshots ברמת ה-global, Cloud Storage במספר אזורים או אזור Cloud Storage שבו רוצים לאחסן את ה-snapshot. אפשר לציין רק מיקום אחסון אחד.

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

  • SNAPSHOT_SCOPE_REGION: אופציונלי: בקובצי snapshot ברמת האזור, האזור שאליו מוגדר ה-snapshot. אם כוללים את הפרמטר הזה, אי אפשר להשתמש בפרמטר storageLocations. השדה STORAGE_LOCATION מוגדר באופן אוטומטי ל-SNAPSHOT_SCOPE_REGION.

כדי ליצור קובץ snapshot של VSS של דיסק אחסון מתמיד (persistent disk) אזורי, בבקשות POST שצוינו למעלה, מחליפים את השורה הבאה:

"sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
כדי ליצור קובץ snapshot של דיסק אחסון מתמיד (persistent disk) אזורי, צריך להשתמש בשורה הבאה במקום זאת:
"sourceDisk": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME",

יצירת דיסק לכתיבה מקובץ snapshot של VSS

כשיוצרים קובץ snapshot של VSS, Windows Server מסמנים את האחסון בקובץ ה-snapshot בתור לקריאה בלבד. כשיוצרים דיסק חדש מקובץ ה-snapshot של VSS, גם הדיסק הזה מוגדר למצב קריאה בלבד.

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

כדי לעקוף את הבעיה הזו, צריך להסיר את הדגל 'לקריאה בלבד' מכל דיסק חדש שיוצרים מקובץ snapshot של VSS, באמצעות השלבים הבאים:

  1. מוודאים שהדיסק מחובר למכונה וירטואלית:

    • אם הדיסק שיצרתם מקובץ ה-snapshot של VSS הוא דיסק נתונים שאינו לאתחול, תוכלו לצרף את הדיסק לכל מכונה וירטואלית חדשה או קיימת.
    • אם הדיסק שיצרתם מקובץ ה-snapshot של VSS הוא דיסק אתחול ואתם רוצים להשתמש בו כדי לאתחל מכונה וירטואלית, עליכם לחבר את הדיסק באופן זמני למכונה וירטואלית נפרדת קיימת. אחרי שתשלימו את השלבים הבאים, תוכלו לנתק את הדיסק מהמכונה הווירטואלית הזו ולהשתמש בו כדי לאתחל מכונה וירטואלית חדשה.
  2. נכנסים ל-VM של Windows שהדיסק מצורף אליו.

  3. פותחים שורת פקודה של PowerShell ומריצים את הכלי diskpart.

    PS C:\> diskpart
    
  4. מזהים את הדיסק שרוצים לטעון.

    DISKPART> list disk
    
  5. משתמשים בפקודה select disk כדי לבחור את הדיסק.

    DISKPART> select disk DISK_NUMBER
    

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

  6. מחברים את הדיסק.

    DISKPART> online disk
    
  7. הצגת רשימה של כל האחסונים בדיסק.

    DISKPART> list volume
    
  8. בוחרים את האחסון החדש.

    DISKPART> select volume VOLUME_NUMBER
    

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

  9. מנקים את הדגל 'קריאה בלבד'.

    DISKPART> attr volume clear readonly hidden nodefaultdriveletter shadowcopy
    
  10. יוצאים מהכלי diskpart.

    DISKPART> exit
    
  11. אם הדיסק הוא דיסק אתחול של מכונה וירטואלית אחרת, מסנכרנים את הקבצים של דיסק האתחול עם חתימה הדיסק החדשה.

    PS C:\> bcdboot DRIVE_LETTERWindows /s DRIVE_LETTER
    

    מחליפים את DRIVE_LETTER באות של הכונן של נפח האחסון שרוצים לסנכרן. לדוגמה, F עבור F:\.

יצירת קובץ snapshot בלי להשתמש ב-VSS

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

כדי ליצור קובץ snapshot של דיסק במכונה וירטואלית של Windows בלי להשתמש ב-VSS:

  1. הכנת המערכת ליצירת קובץ snapshot נקי
  2. יצירת קובץ ה-snapshot
  3. הרכבת מחדש של הדיסק

הכנת המערכת ליצירת קובץ snapshot נקי

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

סנכרון מערכת הקבצים

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

  1. נכנסים ל-VM של Windows.
  2. מורידים ומתקינים את הכלי Sync של Microsoft.
  3. מונעים מהאפליקציות לכתוב בדיסק.
  4. פותחים חלון של שורת פקודה עם הרשאות אדמין.
  5. בחלון שורת הפקודה, מריצים את הפקודה:

    PS C:\> sync DRIVE_LETTER
    

    מחליפים את DRIVE_LETTER באות של הכונן של נפח האחסון שרוצים לסנכרן. לדוגמה, F עבור F:\.

ניתוק הדיסק

  1. נכנסים ל-VM של Windows.

  2. פותחים שורת פקודה של PowerShell ומריצים את הכלי diskpart.

    PS C:\> diskpart
    
  3. מאתרים את הדיסק שרוצים לנתק ולבצע לו צילום.

    DISKPART> list disk
    
  4. לאחר מכן בוחרים את הדיסק לפי מספר הדיסק שמצאתם.

    DISKPART> select disk DISK_NUMBER
    

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

  5. מנתקים את הדיסק.

    DISKPART> offline disk
    

יצירת קובץ snapshot

הרכבה מחדש של הדיסק

  1. נכנסים ל-VM של Windows.

  2. פותחים שורת פקודה של PowerShell ומריצים את הכלי diskpart.

    PS C:\> diskpart
    
  3. מזהים את הדיסק שרוצים לטעון.

    DISKPART> list disk
    
  4. משתמשים בפקודה select disk כדי לבחור את הדיסק.

    DISKPART> select disk DISK_NUMBER
    

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

  5. מחברים את הדיסק.

    DISKPART> online disk
    

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