שיתוף דיסקים בין מופעים

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

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

במצב כתיבה מרובה, כמה מכונות יכולות לקרוא ולכתוב באותו דיסק. האפשרות הזו שימושית למערכות קבצים ולמסדי נתונים משותפים עם זמינות גבוהה (HA), כמו SQL Server Failover Cluster Infrastructure ‏ (FCI).

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

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

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

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

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

הפעלת שיתוף דיסקים

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

מצב הגישה של נפח Hyperdisk הוא מאפיין שקובע איך מכונות יכולות לגשת לדיסק.

אלה מצבי הגישה הזמינים:

  • מצב כתיבה יחיד (READ_WRITE_SINGLE): זהו מצב הגישה שמוגדר כברירת מחדל. מאפשר לחבר את הדיסק למופע אחד לכל היותר בכל זמן נתון. למכונה יש גישת קריאה וכתיבה לדיסק.
  • מצב קריאה בלבד (READ_ONLY_MANY): מאפשר צירוף בו-זמני למספר מכונות במצב קריאה בלבד. במצב הזה, אי אפשר לכתוב מופעים בדיסק. נדרש לשיתוף לקריאה בלבד.
  • מצב ריבוי כותבים (READ_WRITE_MANY): מאפשר לצרף בו-זמנית לכמה מופעים במצב קריאה וכתיבה. נדרש לשיתוף עם כמה כותבים.

התמיכה בכל מצב גישה משתנה בהתאם לסוג ה-Hyperdisk, כפי שמפורט בטבלה הבאה. אי אפשר להגדיר את מצב הגישה לנפחי Hyperdisk Throughput.

סוג Hyperdisk מצבי גישה נתמכים
‫Hyperdisk Balanced
Hyperdisk Balanced High Availability
  • מצב כותב יחיד
  • מצב כתיבה משותפת
Hyperdisk Extreme
  • מצב כותב יחיד
  • מצב כתיבה משותפת
Hyperdisk ML
  • מצב כותב יחיד
  • מצב קריאה בלבד
‫Hyperdisk Throughput
  • מצב כותב יחיד

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

מצב קריאה-בלבד ל-Hyperdisk ול-Persistent Disk

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

סוגי הדיסקים שנתמכים במצב קריאה בלבד

אפשר לצרף את סוגי הדיסקים האלה לכמה מופעים במצב קריאה-בלבד:

  • Hyperdisk ML
  • דיסק אחסון מתמיד מאוזן אזורי ושל תחום מוגדר
  • דיסק מתמיד שמבוסס על SSD
  • דיסק מתמיד סטנדרטי

ביצועים במצב קריאה בלבד

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

מגבלות על שיתוף דיסקים במצב קריאה-בלבד

  • דיסק אחסון מתמיד או נפח Hyperdisk ML אזוריים צריכים להיות באותו אזור כמו כל המכונות הווירטואליות שרוצים לחבר אליהם את הנפח. בנפח של Persistent Disk אזורי, כל המכונות צריכות להיות באותו אזור כמו אחת מהרפליקות של הדיסק.
  • אם משתפים נפח Hyperdisk ML במצב קריאה בלבד, אי אפשר להפעיל מחדש את גישת הכתיבה לדיסק.
  • אתם יכולים לצרף נפח Hyperdisk ML לעד 100 מופעים בכל מרווח של 30 שניות.
  • מספר המכונות המקסימלי שאפשר לצרף אליהן דיסק משתנה בהתאם לסוג הדיסק:

    • בנפחי Hyperdisk ML, מספר המכונות המקסימלי תלוי בגודל שהוקצה, באופן הבא:

      • נפחים עם קיבולת של עד ‎512 GiB: 2,500 instances
      • אמצעי אחסון בקיבולת של 513 GiB עד 1.5 TiB: ‏1,000 מכונות
      • נפחים עם קיבולת בין 1.501 TiB ל-2 TiB: ‫600 מופעים
      • נפחים עם קיבולת בין 2.001 TiB ל-4 TiB:‏ 300 מכונות
      • נפחים בקיבולת של 4.001 TiB ו-16 TiB: ‫128 מכונות
      • נפחי אחסון בקיבולת של 16,001 TiB ומעלה: 30 מכונות

    • נפחים של דיסק אחסון מתמיד מאוזן אזורי או מרובה-אזורים במצב קריאה בלבד תומכים ב-10 מכונות לכל היותר.
    • לדיסק מתמיד שמבוסס על SSD, ‏ Google ממליצה על 100 מכונות לכל היותר.
    • בנפחים של דיסק מתמיד סטנדרטי, המקסימום המומלץ הוא 10 מכונות.

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

אם אתם לא משתמשים ב-Hyperdisk ML, אתם יכולים לצרף את הדיסק לכמה מכונות וירטואליות באמצעות ההוראות שבמאמר צירוף דיסק שאינו דיסק אתחול למכונה וירטואלית.

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

מצב ריבוי כותבים ב-Hyperdisk

דיסקים במצב ריבוי כותבים מתאימים לתרחישי שימוש כמו:

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

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

סדרות Hyperdisk וסדרות מכונות שתומכות במצב כתיבה מרובה

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

סוג Hyperdisk סוגי המכונות הנתמכים מספר המופעים המקסימלי
Hyperdisk Balanced 8
Hyperdisk Balanced High Availability 8
Hyperdisk Extreme 16

‫ 1 במכונות C4 שנוצרו לפני 1 במאי 2026 אי אפשר להשתמש במצב ריבוי כותבים.

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

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

  • הזמנות קבועות (PR), במיוחד למערכות HA כמו SQL Server FCI ו-NetApp ONTAP. ‫Google ממליצה להשתמש בפקודות PR כדי לספק גידור של קלט/פלט ולשמור על תקינות הנתונים. רשימה של פקודות ה-PR הנתמכות מופיעה במאמר גידור קלט/פלט עם הזמנות קבועות.
  • מערכות קבצים באשכולות שתומכות בכמה מופעים שכותבים לאותו נפח אחסון. דוגמאות למערכות קבצים כאלה: OCFS2, ‏ VMFS ו-GFS2.
  • מערכות תוכנה להרחבה אופקית כמו Lustre ו-IBM Spectrum Scale.
  • מנגנון סנכרון משלכם לתיאום של קריאות וכתיבות בו-זמניות.

ביצועי Hyperdisk במצב ריבוי כותבים

המידע בקטע הזה רלוונטי לסוגי הדיסקים הבאים:

  • כל הדיסקים מסוג Hyperdisk Extreme במצב multi-writer
  • דיסקים של Hyperdisk Balanced ו-Hyperdisk Balanced High Availability במצב multi-writer שנוצרו אחרי 26 בפברואר 2026.

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

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

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

ביצועים של נפחי Hyperdisk Balanced ו-Hyperdisk Balanced High Availability במצב כתיבה מרובה לפני 26 בפברואר 2026

אם אמצעי האחסון של Hyperdisk Balanced ו-Hyperdisk Balanced High Availability היו במצב multi-writer לפני 26 בפברואר 2026, Google ממליצה להפעיל ביצועים מבוססי-שימוש באמצעות אחת מהמשימות הבאות:

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

לדוגמה, נניח שאתם מצרפים נפח Hyperdisk Balanced שהוקצה עם 100,000 IOPS ל-2 מכונות. כל מכונה יכולה לצרוך עד 50,000 IOPS, בלי קשר לרמת הפעילות של המכונה השנייה. באופן דומה, אם תצרפו את אמצעי האחסון ל-8 מופעים, כל מופע יוכל לצרוך לכל היותר 12,500 פעולות קלט/פלט בשנייה.

מגבלות על שיתוף נפחי Hyperdisk במצב ריבוי כותבים

  • אי אפשר לצרף אמצעי אחסון במצב של כמה כותבים למכונות Bare Metal, למעט אמצעי אחסון מסוג Hyperdisk Balanced שמצורפים למכונות C3.
  • מופעי C4 שנוצרו לפני 1 במאי 2026 לא תומכים במצב ריבוי כותבים. כדי לצרף נפח Hyperdisk במצב כתיבה מרובה למכונה מסוג C4, המכונה צריכה להיות נוצרה אחרי 1 במאי 2026.
  • בנפחי Hyperdisk אזוריים, כל המכונות שמחוברות לנפח צריכות להיות באותו אזור. בנפחי Hyperdisk אזוריים, המופעים צריכים להיות באותו אזור כמו אחת מהרפליקות של נפח האחסון.
  • אפשר לצרף נפח אחד של Hyperdisk Balanced או Hyperdisk Balanced High Availability במצב multi-writer ל-8 מופעים לכל היותר. אפשר לצרף נפח Hyperdisk Extreme אחד במצב כתיבה מרובה ל-16 מכונות לכל היותר.
  • אי אפשר ליצור קובצי אימג' של מכונות או קובצי אימג' של דיסקים מנפחי Hyperdisk במצב multi-writer.
  • אי אפשר ליצור נפח Hyperdisk במצב של כמה כותבים כשיוצרים או עורכים מכונה. קודם צריך ליצור את נפח האחסון של Hyperdisk בנפרד, ואז לצרף אותו למופע.
  • אתם יכולים לבצע את השינויים הבאים בנפח אחסון מסוג Hyperdisk שנמצא במצב ריבוי כתיבה, גם אם נפח האחסון מצורף לכמה מופעים:

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

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

  • אי אפשר ליצור קובץ אימג' מנפח Hyperdisk במצב של כמה כותבים.

  • אי אפשר להפעיל מחיקה אוטומטית של אמצעי אחסון ב-Hyperdisk במצב של כמה כותבים.

  • אי אפשר להשתמש בנפח Hyperdisk במצב ריבוי כתיבה בתור דיסק האתחול של מכונה.

  • אי אפשר להשתמש בנפחי Hyperdisk במצב ריבוי כתיבה עם מופעים בצמתים של דיירות בלעדית.

  • צריך להשתמש באותו סוג ממשק כמו של דיסק האתחול של המכונה.

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

  • מאגרי אחסון תומכים רק בנפחי Hyperdisk Balanced במצב של כמה כותבים. מאגרי אחסון לא תומכים בנפחים של Hyperdisk Balanced High Availability ו-Hyperdisk Extreme.

  • אתם יכולים להשתמש באשכולות למעבר אוטומטי לגיבוי (Failover) של Windows Server עם נפחי Hyperdisk במצב ריבוי כתיבה בסוגי מכונות שמשתמשים בממשקי אחסון SCSI או NVMe. עם זאת, כשמשתמשים בסוגי מכונות עם ממשק אחסון NVMe, חלות המגבלות הבאות:

    • צריך להשתמש ב-Windows Server מגרסה 2022 ואילך.
    • צריך ליצור כל דיסק מקובץ ישירות בווליום של Hyperdisk שנמצא במצב multi-writer. אי אפשר לבצע חלוקה לפסים (striping) או איגוד (pooling) של נפחי Hyperdisk שנמצאים במצב של כמה כותבים.

גידור קלט/פלט עם מקומות שמורים קבועים

‫Google ממליצה להשתמש ב-PR עם דיסקים במצב multi-writer כדי לספק גידור קלט/פלט. הזמנות קבועות מנהלות את הגישה לדיסק בין המכונות. כך נמנע מצב של השחתת נתונים כתוצאה ממקרים שבהם מתבצעת כתיבה בו-זמנית לאותו חלק בדיסק.

כרכים של Hyperdisk במצב ריבוי כתיבה תומכים בהזמנות של NVMe (spec 1.2.1).

מצבי ההזמנה הנתמכים

המערכת תומכת במצבי ההזמנה הבאים:

  1. כתיבה בלעדית: יהיה בעל הזמנה אחד וכותב אחד. לכל שאר הנרשמים ולכל מי שלא נרשם תהיה גישת קריאה בלבד.
  2. גישה בלעדית: יהיה בעל הזמנה אחד, שהוא גם הקורא וגם הכותב. לכל שאר הנרשמים והמשתתפים שלא נרשמו לא תהיה גישת קריאה או כתיבה.
  3. Write Exclusive - Registrants Only: יהיה בעל הזמנה אחד. לכל הנרשמים תהיה הרשאת קריאה וכתיבה בדיסק. למי שלא רשום תהיה רק גישת קריאה.
  4. גישה בלעדית – רושם הדומיין בלבד: יהיה בעל הזמנה אחד. לכל הנרשמים תהיה הרשאת קריאה וכתיבה בדיסק. למי שלא רשום לא תהיה גישת קריאה או כתיבה.
  5. בלעדיות לכתיבה – כל הנרשמים: כל הנרשמים יהיו בעלי הזמנה ותהיה להם גישת קריאה וכתיבה לדיסק. מי שלא נרשם יוכל רק לקרוא את התוכן.
  6. גישה בלעדית – כל הנרשמים: כל הנרשמים יקבלו הרשאה להזמנה וגישת קריאה וכתיבה לדיסק. למי שלא רשום לא תהיה גישת קריאה או כתיבה.

יש תמיכה ב-NVMe Get Features - Host Identifier. מספר המכונה משמש כמזהה המארח שמוגדר כברירת מחדל.

אין תמיכה בתכונות הבאות של הקצאת NVMe:

  • הגדרת תכונות – מזהה מארח
  • התראות על הזמנות:
    • קבלת דף יומן
    • מסכת התראות על הזמנות

פקודות נתמכות

הפקודות הבאות נתמכות בהזמנות NVMe:

  • פעולה של רישום הזמנה (RREGA) – החלפה/רישום/ביטול רישום – IEKEY
  • פעולת רכישה של הזמנה (RACQA) – רכישה/הקדמה – IEKEY
  • פעולת שחרור של הזמנה (RRELA) – שחרור/ניקוי – IEKEY
  • דוח הזמנות
  • השדה Reservation capabilities (RESCAP) במבנה הנתונים של מרחב השמות identify.

הפקודות הבאות לא נתמכות בהקצאות NVMe:

  • הפקעה וביטול
  • השבתת התכונה "שמירה במקרה של הפסקת חשמל" (PTPL). התכונה PTPL תמיד מופעלת.

איך משתפים דיסק במצב ריבוי כותבים

לפני שמצרפים דיסק במצב multi-writer למספר מכונות, צריך להגדיר את מצב הגישה של הדיסק ל-multi-writer. אפשר להגדיר את מצב הגישה לדיסק כשיוצרים אותו.

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

כדי ליצור דיסק חדש ולהשתמש בו במצב ריבוי כותבים:

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

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

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

מצב כתיבה מרובה לנפחים של Persistent Disk

אתם יכולים לחבר נפח של דיסק מתמיד שמבוסס על SSD במצב ריבוי כתיבה לעד שתי מכונות וירטואליות (VM) מסוג N2 בו-זמנית, כך ששתי המכונות הווירטואליות יוכלו לקרוא ולכתוב לדיסק.

אם יש לכם יותר מ-2 מכונות וירטואליות מסוג N2 או שאתם משתמשים בסדרת מכונות אחרת, אתם יכולים להשתמש באחת מהאפשרויות הבאות:

כדי להפעיל מצב של כמה כותבים לנפחי Persistent Disk חדשים, צריך ליצור נפח Persistent Disk חדש ולציין את הדגל --multi-writer ב-ה-CLI של gcloud או את המאפיין multiWriter ב-Compute Engine API.

כרכים של דיסקים לאחסון מתמיד במצב 'מספר בעלי הרשאות כתיבה' מספקים יכולת אחסון בלוקים משותפת, ומהווים בסיס תשתיתי לבניית מערכות אחסון מבוזרות ושירותים דומים עם זמינות גבוהה. כשמשתמשים בנפחי דיסקים לאחסון מתמיד במצב של מספר בעלי הרשאות כתיבה, צריך להשתמש במערכת תוכנה לאחסון עם יכולת הרחבה אופקית שיכולה לתאם גישה למכשירים של דיסקים לאחסון מתמיד בכמה מכונות וירטואליות. דוגמאות למערכות אחסון כאלה: Lustre ו-IBM Spectrum Scale. רוב מערכות הקבצים של מכונות וירטואליות יחידות, כמו EXT4,‏ XFS ו-NTFS, לא מיועדות לשימוש עם אחסון בלוקים משותף.

למידע נוסף, ראו שיטות מומלצות במאמר הזה. אם אתם צריכים אחסון קבצים בניהול מלא, אתם יכולים לטעון קובץ משותף של Filestore במכונות של Compute Engine.

אמצעי אחסון מסוג Persistent Disk במצב של מספר בעלי הרשאות כתיבה תומכים בקבוצת משנה של פקודות SCSI-3 Persistent Reservations‏ (SCSI PR). אפליקציות עם זמינות גבוהה יכולות להשתמש בפקודות האלה להגדרות של גידור קלט/פלט ויתירות כשל.

יש תמיכה בפקודות הבאות של SCSI PR:

  • IN {REPORT CAPABILITIES, READ FULL STATUS, READ RESERVATION, READ KEYS}
  • OUT {REGISTER, REGISTER AND IGNORE EXISTING KEY, RESERVE, PREEMPT, CLEAR, RELEASE}

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

סוגי Persistent Disk שנתמכים במצב של כמה כותבים

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

שיטות מומלצות לשימוש במצב ריבוי כותבים

  • גידור קלט/פלט באמצעות פקודות SCSI PR גורם למצב עקבי של קריסה של נתוני Persistent Disk. בחלק ממערכות הקבצים אין עקביות במקרה של קריסה, ולכן הן עלולות להיפגם אם משתמשים בפקודות SCSI PR.
  • הרבה מערכות קבצים, כמו EXT4,‏ XFS ו-NTFS, לא מיועדות לשימוש עם אחסון בלוקים משותף, ואין להן מנגנונים לסנכרון או לביצוע פעולות שמקורן במספר מכונות וירטואליות.
  • לפני שמשתמשים בנפחי Persistent Disk במצב של כמה כותבים, חשוב להבין את מערכת הקבצים ואיך אפשר להשתמש בה בבטחה עם אחסון בלוקים משותף וגישה בו-זמנית מכמה מכונות.

ביצועים של Persistent Disk במצב ריבוי כותבים

לנפחים של Persistent Disk שנוצרו במצב של מספר כותבים יש מגבלות ספציפיות של IOPS וקצב העברת נתונים.

מצב כתיבה מרובה בדיסק מתמיד שמבוסס על SSD אזורי
‫IOPS מקסימלי מתמשך
פעולות קלט/פלט לשנייה (IOPS) של קריאה לכל GB 30
פעולות כתיבה של קלט/פלט לשנייה (IOPS) לכל GB 30
קריאת IOPS לכל מכונה ‫15,000 עד 100,000*
IOPS של כתיבה לכל מופע ‫15,000 עד 100,000*
התפוקה המקסימלית המתמשכת (MB לשנייה)
קצב העברת נתונים בקריאה לכל GB 0.48
קצב העברת נתונים בכתיבה לכל GB 0.48
קצב העברת נתונים בקריאה לכל מכונה ‫240–1,200*
קצב העברת נתונים לכתיבה לכל מופע 240–1,200*
* הביצועים של קצב הנתונים ופעולות הקלט/פלט לשנייה (IOPS) של Persistent Disk תלויים בגודל הדיסק, במספר ה-vCPU של המכונה ובגודל הבלוק של הקלט/פלט, בין גורמים אחרים.
חיבור של דיסק עם הרשאות כתיבה לכמה משתמשים למספר מכונות וירטואליות לא משפיע על הביצועים המצטברים או על העלות. כל מכונה מקבלת חלק ממגבלת הביצועים לכל דיסק.

במאמר שיתוף דיסקי אחסון מתמידים (persistent disk) בין מכונות וירטואליות מוסבר איך לשתף דיסקי אחסון מתמידים (persistent disk) בין כמה מכונות וירטואליות.

הגבלות על שיתוף דיסק במצב ריבוי כותבים

  • מצב כתיבה מרובה נתמך רק באמצעי אחסון מסוג SSD Persistent Disk.
  • אפשר ליצור נפח של דיסק אחסון מתמיד במצב מרובה כותבים בכל אזור, אבל אפשר לצרף את הדיסק הזה רק למכונות וירטואליות במיקומים הבאים:
    • australia-southeast1
    • europe-west1
    • ‫us-central1 (אזורים us-central1-a ו-us-central1-c בלבד)
    • ‫us-east1 (באזור us-east1-d בלבד)
    • ‫us-west1 (אזורים us-west1-b ו-us-west1-c בלבד)
  • המכונות הווירטואליות המצורפות צריכות להיות מסוג N2.
  • גודל הדיסק המינימלי הוא 10GiB.
  • בדיסקים במצב ריבוי כתיבה אי אפשר לצרף יותר מ-2 מכונות וירטואליות בכל פעם. כרכים של Persistent Disk במצב multi-writer לא תומכים במדדים של Persistent Disk.
  • אי אפשר לשנות דיסקים במצב ריבוי כותבים למצב קריאה בלבד.
  • אי אפשר ליצור תמונות מנפחי Persistent Disk במצב של כמה כותבים.
  • מגבלות IOPS נמוכות יותר. פרטים נוספים זמינים במאמר בנושא ביצועי הדיסק.
  • אי אפשר לשנות את הגודל של נפח Persistent Disk עם כמה כותבים.
  • כשיוצרים מכונה באמצעות Google Cloud CLI, אי אפשר ליצור אמצעי אחסון של Persistent Disk עם גישת קריאה/כתיבה מרובה באמצעות הדגל --create-disk.

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

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

gcloud

יוצרים ומצרפים נפח של Persistent Disk אזורי באמצעות ה-CLI של gcloud:

  1. משתמשים בפקודה gcloud beta compute disks create כדי ליצור נפח Persistent Disk אזורי. כוללים את הדגל --multi-writer כדי לציין שצריך לשתף את הדיסק בין המכונות הווירטואליות במצב multi-writer.

    gcloud beta compute disks create DISK_NAME \
       --size DISK_SIZE \
       --type pd-ssd \
       --multi-writer
    

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

    • ‫DISK_NAME: השם של הדיסק החדש
    • ‫DISK_SIZE: גודל הדיסק החדש ב-GB. הגדלים האפשריים נעים בין 1GB ל-65,536GB לנפחי דיסק מתמיד שמבוסס על SSD, או בין 200GB ל-65,536GB לנפחי דיסק מתמיד סטנדרטי במצב multi-writer.
  2. אחרי שיוצרים את הדיסק, מצרפים אותו לכל מכונה וירטואלית פועלת או מושבתת עם סוג מכונה N2. משתמשים בפקודה gcloud compute instances attach-disk:

    gcloud compute instances attach-disk INSTANCE_NAME \
       --disk DISK_NAME
    

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

    • ‫INSTANCE_NAME: השם של ה-VM מסוג N2 שבו מוסיפים את נפח ה-Persistent Disk החדש לאחסון מתמיד של תחום
    • ‫DISK_NAME: השם של הדיסק החדש שמצרפים ל-VM
  3. חוזרים על הפקודה gcloud compute instances attach-disk, אבל מחליפים את INSTANCE_NAME בשם של המכונה הווירטואלית השנייה.

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

REST

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

  1. ב-API, יוצרים בקשת POST כדי ליצור נפח Persistent Disk אזורי באמצעות ה-method‏ disks.insert. צריך לכלול את המאפיינים name,‏ sizeGb ו-type. כדי ליצור את הדיסק החדש כדיסק ריק ולא מאותחל שאינו דיסק אתחול, אל תציינו תמונת מקור או קובץ snapshot של מקור לדיסק הזה. כוללים את המאפיין multiWriter עם הערך True כדי לציין שצריך לשתף את הדיסק בין המכונות הווירטואליות במצב multi-writer.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/disks
    
    {
    "name": "DISK_NAME",
    "sizeGb": "DISK_SIZE",
    "type": "zones/ZONE/diskTypes/pd-ssd",
    "multiWriter": "True"
    }
    

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

    • ‫PROJECT_ID: מזהה הפרויקט
    • ‫ZONE: האזור שבו נמצאים ה-VM והדיסק החדש
    • ‫DISK_NAME: השם של הדיסק החדש
    • ‫DISK_SIZE: גודל הדיסק החדש ב-GB. הגדלים האפשריים נעים בין 1GB ל-65,536GB לנפחי דיסק מתמיד שמבוסס על SSD, או בין 200GB ל-65,536GB לנפחי דיסק מתמיד סטנדרטי במצב multi-writer.
  2. כדי לצרף את הדיסק למכונה, יוצרים בקשת POST ל-method‏ compute.instances.attachDisk. מוסיפים את כתובת ה-URL של נפח ה-Persistent Disk האזורי שיצרתם:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk
    
    {
    "source": "/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME"
    }
    

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

    • ‫PROJECT_ID: מזהה הפרויקט
    • ‫ZONE: האזור שבו נמצאים ה-VM והדיסק החדש
    • ‫INSTANCE_NAME: השם של ה-VM שבו מוסיפים את נפח האחסון החדש של Persistent Disk.
    • ‫DISK_NAME: השם של הדיסק החדש
  3. כדי לצרף את הדיסק למכונה וירטואלית שנייה, חוזרים על הפקודה instances.attachDisk מהשלב הקודם. מגדירים את INSTANCE_NAME לשם של המכונה הווירטואלית השנייה.

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

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