Storage

אם אתם מעוניינים באשכולות אימון של Gemini Enterprise Agent Platform, אתם יכולים לפנות לנציג המכירות שלכם כדי לקבל גישה.

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

  • ‫Filestore: שירות קבצים מנוהל שנדרש ומספק את ספריות /homeהשיתוף לכל הצמתים באשכול.
  • ‫Google Cloud Managed Lustre: מערכת קבצים מקבילה אופציונלית שנועדה לביצועי קלט/פלט קיצוניים, ומתאימה במיוחד לאימון על מערכי נתונים עצומים.

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

שילוב אחסון לאשכולות אימון

אשכולות האימון של Gemini Enterprise Agent Platform מסתמכים על פתרונות אחסון ספציפיים ברשת לצורך הפעולה שלהם. ‫Filestore נדרש כדי לספק את ספריות /home המשותפות לאשכול, ואילו Managed Lustre היא מערכת קבצים אופציונלית עם ביצועים גבוהים לעומסי עבודה תובעניים.

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

‫Filestore לספריות ביתיות

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

  1. יוצרים את רשת ה-VPC: קודם פורסים רשת VPC שמוגדרת עם ה-MTU המומלץ (לדוגמה, 8896).
  2. יוצרים את מופע Filestore: לאחר מכן, פורסים את מופע Filestore ברשת ה-VPC שיצרתם זה עתה.
  3. יוצרים את אשכול האימון: לבסוף, פורסים את האשכול, שיוכל להתחבר למופע Filestore באותה רשת.

‫Google Cloud Managed Lustre לעומסי עבודה עם ביצועים גבוהים

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

הגבלה קריטית ברשת: אין קישוריות טרנזיטיבית

מגבלה קריטית גם ב-Filestore וגם ב-Google Cloud Managed Lustre היא שהם לא תומכים בפירינג טרנזיטיבי. המשמעות היא שרק משאבים ב-VPC שמחובר ישירות יכולים לגשת לשירות האחסון. לדוגמה, אם ה-VPC של האשכול (N1) מקושר לשירות האחסון, ל-VPC אחר (N2) שמקושר ל-N1 לא תהיה גישה.

שילוב אחסון לאשכולות אימון

הפלטפורמה Gemini Enterprise Agent Platform מסתמכת על פתרונות אחסון ספציפיים ומקושרים כדי להפעיל את אשכולות האימון שלה. נדרש Filestore כדי לספק את ספריות /home המשותפות לאשכול, ואילו Google Cloud Managed Lustre היא מערכת קבצים אופציונלית עם ביצועים גבוהים לעומסי עבודה תובעניים. חשוב מאוד להגדיר את הרשת לשירותי האחסון האלה בצורה נכונה לפני שמבצעים פריסה של האשכול.

Filestore

שימושים עיקריים ב-Filestore עם אשכולות אימון

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

הדרישות של Filestore

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

  • מפעילים את ה-API: צריך להפעיל את Filestore API בפרויקט Google Cloud לפני שיוצרים את האשכול.
  • חובה /homeספרייה: כל אשכול אימון צריך מופע ייעודי של Filestore שישמש כ/homeספרייה משותפת. למופע הזה יש דרישות תצורה ספציפיות:
    • רשת: היא חייבת להיות באותה רשת VPC כמו צמתי החישוב והכניסה של האשכול.
    • מיקום: הוא צריך להיות באותו אזור או באותו אזור משנה כמו האשכול.
    • הגדרה: כשיוצרים את האשכול באמצעות ה-API, צריך לציין את שם המשאב המלא של המופע הזה בשדה orchestrator_spec.slurm_spec.home_directory_storage.

הגדרת אחסון ב-Filestore

יוצרים מכונת Filestore אזורית או אזורית ב-zone שבו רוצים ליצור את האשכול. כדי להשתמש ב-Agent Platform API, צריך לצרף ל-Filestore את האשכול כדי שישמש כספריית /home. מערכת Filestore הזו צריכה להיות באותו אזור או באותו אזור זמינות, ובאותה רשת כמו כל צמתי החישוב וצמתי הכניסה. בדוגמה שלמטה, הכתובת 172.16.10.0/24 משמשת לפריסת Filestore.

    SERVICE_TIER=ZONAL # Can use BASIC_SSD

    # Create reserved IP address range
    gcloud compute addresses create CLUSTER_IDfs-ip-range \
        --project=PROJECT_ID \
        --global \
        --purpose=VPC_PEERING \
        --addresses=172.16.10.0 \
        --prefix-length=24 \
        --description="Filestore instance reserved IP range" \
        --network=NETWORK

    # Get the CIDR range
    FS_IP_RANGE=$(
      gcloud compute addresses describe CLUSTER_IDfs-ip-range \
        --global  \
        --format="value[separator=/](address, prefixLength)"
    )

    # Create the Filestore instance
    gcloud filestore instances create FS_INSTANCE_ID \
        --project=PROJECT_ID \
        --location=ZONE \
        --tier=ZONAL \
        --file-share=name="nfsshare",capacity=1024 \
    --network=name=NETWORK,connect-mode=DIRECT_PEERING,reserved-ip-range="${FS_IP_RANGE}"
  

Lustre

‫Google Cloud Managed Lustre מספק מערכת קבצים מקבילה מנוהלת עם ביצועים גבוהים שעברה אופטימיזציה לאפליקציות AI ו-HPC. עם קיבולת של כמה פטה-בייט וקצב העברה של עד 1TBps, ‏ Managed Lustre מאפשר להעביר עומסי עבודה כבדים לענן.

מכונות Managed Lustre נמצאות בתחומים (zones) בתוך אזורים. אזור הוא מיקום גיאוגרפי ספציפי שבו אפשר להשתמש במשאבים. כל אזור מחולק לכמה תחומים. לדוגמה, האזור us-central1 במרכז ארצות הברית כולל את האזורים us-central1-a,‏ us-central1-b,‏ us-central1-c ו-us-central1-f. מידע נוסף זמין במאמר מיקום גיאוגרפי ואזורים.

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

כשיוצרים מופע Managed Lustre, צריך להגדיר את המאפיינים הבאים:

  • השם של המופע שבו נעשה שימוש ב-Google Cloud.
  • השם של מערכת הקבצים שבה נעשה שימוש בכלים מצד הלקוח, לדוגמה lfs.
  • קיבולת האחסון בגיביבייט (GiB). הקיבולת יכולה להיות בין 9,000GiB לבין ‎~8PiB‏ (7,632,000GiB). הגודל המקסימלי של מופע תלוי ברמת הביצועים שלו.
  • ‫Managed Lustre מציע רמות ביצועים שנעות בין 125MBps לכל TiB לבין 1,000MBps לכל TiB.
  • כדי לקבל את הביצועים הטובים ביותר, כדאי ליצור את ה-instance באותו אזור שבו נמצא אשכול האימון.
  • רשת ה-VPC של המופע הזה צריכה להיות אותה רשת שבה נעשה שימוש באשכול האימון.

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

פריסת Managed Lustre מחייבת גישה לשירותים פרטיים, שיוצרת קישור בין רשתות VPC שכנות בין ה-VPC של אשכול האימון לבין ה-VPC שמארח את Managed Lustre, באמצעות רשת משנה ייעודית מסוג ‎ /20.

הגדרת מכונה של Managed Lustre (אופציונלי)

מומלץ להשתמש ב-Google Cloud Managed Lustre רק אם רוצים להשתמש ב-Managed Lustre בשירות פיתוח המודלים.

‫Google Cloud Managed Lustre הוא שירות מנוהל של מערכת קבצים מקבילה עם רמת ביצועים גבוהה ב-Google Cloud. הוא תוכנן במיוחד כדי להאיץ עומסי עבודה תובעניים בתחומי ה-AI/למידת מכונה ומחשוב עתיר ביצועים (HPC).

כדי להשיג ביצועים אופטימליים כשמשתמשים באשכולות אימון, צריך לפרוס את Google Cloud Managed Lustre מאותו VPC ואזור כמו אשכול האימון באמצעות קישור בין רשתות שכנות (VPC peering) לרשת השירותים.

יצירת מופע Lustre

    gcloud lustre instances create LUSTRE_INSTANCE_ID \
    --project=PROJECT_ID \
    --location=ZONE \
    --filesystem=lustrefs \
    --per-unit-storage-throughput=500 \
    --capacity-gib=36000 \
    --network=NETWORK_NAME

  

התקנת Cloud Storage

כדרישה מוקדמת, צריך לוודא שלחשבון השירות של המכונה הווירטואלית יש את התפקיד 'Storage Object User'.

ברירת מחדל של טעינה

אשכולות האימון של פלטפורמת הסוכנים של Gemini Enterprise משתמשים ב-Cloud Storage FUSE כדי לטעון באופן דינמי את הקטגוריות של Cloud Storage בכל הצמתים של הכניסה והחישוב, וכך מאפשרים גישה אליהן בספרייה /gcs. אי אפשר להציג רשימה של קטגוריות שנטענו באופן דינמי מנקודת הטעינה של הרמה הבסיסית (root) /gcs. אפשר לגשת לקטגוריות שנטענו באופן דינמי כספריות משנה:

user@testcluster:$ ls /gcs/your-bucket-name
user@testcluster:$ cd /gcs/your-bucket-name

מעמד בהתאמה אישית

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

sudo mkdir -p $MOUNT_DIR
echo "$GCS_BUCKET $MOUNT_DIR gcsfuse $OPTION_1,$OPTION_2,..." | sudo tee -a /etc/fstab
sudo mount -a

לדוגמה, כדי לטעון את הקטגוריה mtdata לספרייה /data, משתמשים בפקודה הבאה:

sudo mkdir -p /data
echo "mtdata /data gcsfuse defaults,_netdev,implicit_dirs,allow_other,dir_mode=777,file-mode=777,metadata_cache_negative_ttl_secs=0,metadata_cache_ttl_secs=-1,stat_cache_max_size_mb=-1,type_cache_max_size_mb=-1,enable_streaming_writes=true" | sudo tee -a /etc/fstab
sudo mount -a

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

המלצות נוספות להגדרות שמותאמות לעומסי עבודה של AI/ML מופיעות במדריך לשיטות מומלצות לשיפור הביצועים. במדריך הזה מפורטות הנחיות ספציפיות לאופטימיזציה של Cloud Storage FUSE לאימון, להסקת מסקנות ולנקודות ביקורת.

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

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