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

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

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

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

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

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

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

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

כדי ליצור snapshot של Windows VSS, צריך את ההרשאות הבאות:

  • compute.snapshots.create בפרויקט
  • compute.disks.createSnapshot בדיסק
  • כדי ליצור תמונת מצב של דיסק האתחול של מכונה שמצורף אליה חשבון שירות: iam.serviceAccounts.actAs בחשבון השירות של המכונה

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

מגבלות

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

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

יצירת snapshot של Windows VSS

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

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

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

המסוף

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

    כניסה לדף Create a Snapshot
  2. מזינים שם לתמונת המצב.
  3. בוחרים סוג תמונת מצב. ברירת המחדל היא תמונת מצב של STANDARD, שהיא האפשרות הטובה ביותר לגיבוי לטווח ארוך ולתוכנית התאוששות מאסון (DR).

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

  4. אופציונלי: מזינים תיאור של התמונה.
  5. בקטע דיסק מקור, בוחרים את הדיסק הקיים שרוצים ליצור ממנו תמונת מצב.
  6. בקטע מיקום, בוחרים את מיקום האחסון של התמונה.

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

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

      • בוחרים באפשרות Multi-regional (אזורים מרובים) כדי ליהנות מזמינות גבוהה יותר בעלות גבוהה יותר.
      • כדי לקבל יותר שליטה על המיקום הפיזי של הנתונים בעלות נמוכה יותר, בוחרים באפשרות תמונות מצב אזוריות.
    2. בשדה Select location (בחירת מיקום), בוחרים את האזור הספציפי או את מספר האזורים שרוצים להשתמש בהם. כדי להשתמש באזור או במספר אזורים שהכי קרובים לדיסק המקור, בוחרים באפשרות Based on disk's location (על סמך המיקום של הדיסק).
  7. מסמנים את האפשרות הפעלת תמונת מצב עקבית של האפליקציה.
  8. לוחצים על Create (יצירה) כדי ליצור את התמונה.

gcloud

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

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

  • כדי ליצור 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
    
  • לחלופין, כדי לבטל את הגדרות הצילום וליצור צילום במיקום אחסון מותאם אישית, צריך לכלול את הדגל --storage-location כדי לציין איפה לאחסן את הצילום.

    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
    
  • (תצוגה מקדימה) כדי ליצור תמונת מצב בהיקף אזורי באזור מותר, צריך לכלול את הדגל --region כדי לציין איפה ליצור את תמונת המצב.

    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, נוצר STANDARD snapshot.
  • STORAGE_LOCATION: אופציונלי: בשביל תמונות מצב בהיקף גלובלי, אזור Cloud Storage או אזור Cloud Storage שבו רוצים לאחסן את תמונת המצב. אפשר לציין רק מיקום אחסון אחד.

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

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

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

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

REST

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

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

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

    POST https://compute.s3nsapis.fr/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,
    }
    
  • לחלופין, כדי לשנות את הגדרות התמונה ולשמור אותה במיקום אחסון מותאם אישית, שולחים בקשת POST אל snapshots.insert וכוללים את המאפיין storageLocations בבקשה:

    POST https://compute.s3nsapis.fr/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 אל ה-method‏ snapshots.insert ומגדירים את אזור היצירה:

    POST https://compute.s3nsapis.fr/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_NAME: שם לקובץ ה-snapshot.
  • SOURCE_PROJECT_ID: מזהה הפרויקט של דיסק המקור.
  • SOURCE_ZONE: האזור של דיסק המקור.
  • SOURCE_DISK_NAME: השם של הדיסק שממנו רוצים ליצור קובץ snapshot.
  • SNAPSHOT_TYPE: סוג ה-snapshot, ‏ STANDARD או ARCHIVE. אם לא מציינים סוג של snapshot, נוצר STANDARD snapshot.
  • STORAGE_LOCATION: אופציונלי: בשביל תמונות מצב בהיקף גלובלי, אזור Cloud Storage או אזור Cloud Storage שבו רוצים לאחסן את תמונת המצב. אפשר לציין רק מיקום אחסון אחד.

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

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

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

"sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
במקום זאת, משתמשים בשורה הזו כשיוצרים snapshot של דיסק אחסון מתמיד אזורי:
"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

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

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

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

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

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

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

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

  1. נכנסים ל-VM של Windows.
  2. מורידים ומתקינים את הכלי Sync של מיקרוסופט.
  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
    

יצירת תמונת מצב

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

  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
    

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