פריסת מערכת קבצים מקבילית של Lustre ב-GCP

1. סקירה כללית

ברוכים הבאים ל-Codelab של Google להפעלת אשכול של מערכת קבצים מקבילה של Lustre ב-Google Cloud Platform!

d51beef5f729cbe9.png

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

מרכזי HPC עונים על הצורך הזה כבר הרבה זמן באמצעות טכנולוגיות כמו מערכת הקבצים המקבילית Lustre. ‫Lustre הוא אחד מפתרונות האחסון הפופולריים ביותר בקוד פתוח שזמינים היום, ומיוני 2005 הוא נמצא בשימוש באופן עקבי לפחות בחצי מעשרת המחשבים, ויותר מ-60 מתוך 100 המחשבים המהירים ביותר בעולם. ל-Lustre יש יכולת להתרחב עד לקיבולת של מאות פטה-בייט, ולספק את הביצועים המקסימליים האפשריים למשימות HPC, עם מערכות שמספקות תפוקה של טרה-בייט לשנייה במרחב שמות יחיד.

כדי לענות על הביקוש לאחסון, Google Cloud נוקטת בשתי גישות. קודם כל, GCP שיתפה פעולה עם DDN כדי להוסיף את תוכנת DDN EXAScaler Lustre הנתמכת שלה ברמה שמתאימה לארגונים ל-GCP Marketplace. שנית, המהנדסים שלנו ב-Google Cloud פיתחו והפכו לקוד פתוח קבוצה של סקריפטים להגדרה ולפריסה קלות של אשכול אחסון Lustre ב-Google Compute Engine באמצעות Google Cloud Deployment Manager.

‫Lustre ב-Google Cloud Platform מסוגל באותה מידה לספק את הביצועים המקסימליים של התשתית שבה הוא פועל. הביצועים שלו ב-GCP כל כך טובים, שהוא דורג במקום השמיני במדד IO-500 של מערכות אחסון בשנת 2019, בשיתוף עם השותף שלנו DDN. הוא מייצג את מערכת הקבצים מבוססת-הענן שדורגה במקום הכי גבוה ב-IO-500. היום נסביר איך פורסים את סקריפטים של Open Source Deployment Manager ל-Lustre. אם אתם מעוניינים בחוויית Lustre ברמת הארגון, עם תמיכה ממומחי Lustre באשכול Lustre שלכם, וגם בתכונות כמו GUI לניהול ולמעקב או כוונונים של Lustre, מומלץ לבדוק את המוצר DDN EXAScaler Marketplace.

מה תלמדו

  • איך משתמשים בשירות GCP Deployment Manager
  • איך מגדירים ופורסים מערכת קבצים של Lustre ב-GCP.
  • איך מגדירים פספוס ובודקים קלט/פלט פשוט במערכת הקבצים Lustre.

דרישות מוקדמות

  • חשבון ב-Google Cloud Platform ופרויקט עם חיוב
  • חוויית Linux בסיסית

2. הגדרה

הגדרת סביבה בקצב אישי

איך יוצרים פרויקט

אם עדיין אין לכם חשבון Google (Gmail או G Suite), אתם צריכים ליצור חשבון. נכנסים אל Google Cloud Platform Console ( console.cloud.google.com) ופותחים את הדף Manage resources (ניהול משאבים):

359c06e07e6d699f.png

לוחצים על Create Project.

25c23d651abb837b.png

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

בשלב הבא צריך להפעיל את החיוב ב-Developers Console כדי להשתמש במשאבים של Google Cloud.

העלות של ה-Codelab הזה לא אמורה להיות גבוהה, אבל היא יכולה להיות גבוהה יותר אם תחליטו להשתמש ביותר משאבים או אם תשאירו אותם פועלים (ראו את הקטע 'מסקנה' בסוף המסמך הזה). מחשבון התמחור של Google Cloud Platform זמין כאן.

משתמשים חדשים ב-Google Cloud Platform זכאים לתקופת ניסיון בחינם בשווי 300$.

Google Cloud Shell

אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-codelab הזה נשתמש ב-Google Cloud Shell, סביבת שורת פקודה שפועלת בענן.

הפעלת Google Cloud Shell

ב-GCP Console, לוחצים על סמל Cloud Shell בסרגל הכלים שבפינה הימנית העליונה:

dbad104cef962719.png

לאחר מכן לוחצים על הפעלת Cloud Shell:

4e50db320508ac88.png

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

20b0aa80492144d.png

המכונה הווירטואלית הזו כוללת את כל הכלים שדרושים למפתחים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר מאוד את ביצועי הרשת ומפשט את האימות. את רוב העבודה במעבדה הזו, אם לא את כולה, אפשר לבצע באמצעות דפדפן אינטרנט או Google Chromebook.

אחרי שמתחברים ל-Cloud Shell, אמור להופיע אימות שכבר בוצע ושהפרויקט כבר הוגדר לפי PROJECT_ID:

$ gcloud auth list

פלט הפקודה:

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
$ gcloud config list project

פלט הפקודה:

[core]
project = <PROJECT_ID>

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

$ gcloud config set project <PROJECT_ID>

פלט הפקודה:

Updated property [core/project].

3. הכנה ובדיקה של הגדרות הפריסה של Lustre

הורדת סקריפטים של Lustre Deployment Manager

בסשן של Cloud Shell, מריצים את הפקודה הבאה כדי לשכפל (להוריד) את מאגר Git שמכיל את קובצי Lustre for Google Cloud Platform deployment-manager:

git clone https://github.com/GoogleCloudPlatform/deploymentmanager-samples.git

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

cd deploymentmanager-samples/community/lustre/

הגדרת קובץ YAML לפריסת Lustre

‫Deployment Manager משתמש בקובץ YAML כדי לספק את הגדרות הפריסה. קובץ ה-YAML הזה מפרט את ההגדרות של הפריסה, כמו גרסת Lustre לפריסה וסוגי המכונות הווירטואליות לפריסה. קובץ ההגדרה מוגדר כברירת מחדל לפריסה בפרויקט חדש ללא הגדלת מכסת השימוש, אבל אפשר לשנות את סוג המכונה או הקיבולת לפי הצורך ב-Codelab הזה. ה-codelab הזה נכתב כך שישתמש בערכי ברירת המחדל האלה, ולכן אם מבצעים שינויים כלשהם, צריך להחיל אותם על כל ה-codelab כדי להימנע משגיאות. בסביבת ייצור, מומלץ להשתמש במכונה עם לפחות 32 vCPU לצומת MDS, ובמכונה עם לפחות 8 או 16 vCPU לצומתי OSS, בהתאם לקיבולת ולאופן האחסון.

כדי לבדוק או לערוך את קובץ ה-YAML בסשן של Cloud Shell, פותחים את קובץ ה-YAML של הגדרת הפריסה Lustre-cluster.yaml. אפשר להשתמש בעורך שורת הפקודה המועדף (vi,‏ nano,‏ emacs וכו') או בעורך הקוד של Cloud Console כדי לראות את תוכן הקובץ:

11efd5af658f1842.png

התוכן של הקובץ ייראה כך:

# [START cluster_yaml]
imports:
- path: lustre.jinja

resources:
- name: lustre
  type: lustre.jinja
  properties:
    ## Cluster Configuration
    cluster_name            : lustre
    zone                    : us-central1-f
    cidr                    : 10.20.0.0/16
    external_ips            : True
    ### Use these fields to deploy Lustre in an existing VPC, Subnet, and/or Shared VPC
    #vpc_net                 : < VPC Network Name >
    #vpc_subnet              : < VPC Subnet Name >
    #shared_vpc_host_proj    : < Shared VPC Host Project name >

    ## Filesystem Configuration
    fs_name                 : lustre
    ### Review https://downloads.whamcloud.com/public/ to determine version naming
    lustre_version          : latest-release
    e2fs_version            : latest

    ## Lustre MDS/MGS Node Configuration
    #mds_node_count          : 1
    mds_ip_address          : 10.20.0.2
    mds_machine_type        : n1-standard-8
    ### MDS/MGS Boot disk
    mds_boot_disk_type      : pd-standard
    mds_boot_disk_size_gb   : 10
    ### Lustre MetaData Target disk
    mdt_disk_type           : pd-ssd
    mdt_disk_size_gb        : 1000

    ## Lustre OSS Configuration
    oss_node_count          : 4
    oss_ip_range_start      : 10.20.0.5
    oss_machine_type        : n1-standard-4
    ### OSS Boot disk
    oss_boot_disk_type      : pd-standard
    oss_boot_disk_size_gb   : 10
    ### Lustre Object Storage Target disk
    ost_disk_type           : pd-standard
    ost_disk_size_gb        : 5000
#  [END cluster_yaml]

בקובץ ה-YAML הזה יש כמה שדות. חובה למלא את השדות הבאים שמסומנים בכוכבית (*). השדות האלה כוללים:

הגדרת אשכול

  • ‫cluster_name* – שם אשכול Lustre, מתווסף לפני כל המשאבים שנפרסו
  • ‫zone* – האזור שבו יופעל האשכול
  • ‫cidr* – טווח כתובות IP בפורמט CIDR
  • external_ips* – True/False, ‏ לצומתי Lustre יש כתובות IP חיצוניות. אם הערך הוא false, מוגדר Cloud NAT כשער NAT
  • ‫vpc_net – צריך להגדיר את השדה הזה ואת השדה vpc_subnet כדי לפרוס את אשכול Lustre ל-VPC קיים
  • vpc_subnet – תת-רשת VPC קיימת לפריסת אשכול Lustre
  • shared_vpc_host_proj – צריך להגדיר את השדה הזה, וגם את השדות vpc_net ו-vpc_subnet, כדי לפרוס את האשכול ל-VPC משותף

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

  • ‫fs_name – שם מערכת הקבצים של Lustre
  • ‫lustre_version – גרסת Lustre לפריסה. אפשר להשתמש ב-latest-release כדי לפרוס את הענף האחרון מ-https://downloads.whamcloud.com/public/lustre/ או ב-lustre-X.X.X כדי לפרוס גרסאות אחרות
  • ‫e2fs_version – גרסת E2fsprogs לפריסה. אפשר להשתמש בערך latest כדי לפרוס את ההסתעפות האחרונה מכתובת https://downloads.whamcloud.com/public/e2fsprogs/ או בערך X.XX.X.wcX כדי לפרוס גרסאות אחרות.

הגדרת MDS/MGS

  • ‫mds_ip_address – כתובת IP פנימית שצריך לציין עבור צומת MDS/MGS
  • ‫mds_machine_type – סוג המכונה לשימוש בצומת MDS/MGS (ראו https://cloud.google.com/compute/docs/machine-types)
  • ‫mds_boot_disk_type – סוג הדיסק שבו יש להשתמש עבור דיסק האתחול של MDS/MGS‏ (pd-standard, ‏ pd-ssd)
  • ‫mds_boot_disk_size_gb – הגודל של דיסק האתחול של MDS ב-GB
  • ‫mdt_disk_type* – סוג הדיסק לשימוש בדיסק של יעד המטא-נתונים (MDT) (pd-standard, ‏ pd-ssd, ‏ local-ssd)
  • ‫mdt_disk_size_gb* – גודל דיסק ה-MDT ב-GB

הגדרת OSS

  • ‫oss_node_count* – מספר הצמתים של שרת אחסון האובייקטים (OSS) שרוצים ליצור
  • ‫oss_ip_range_start – כתובת ה-IP הראשונה בטווח של צומתי ה-OSS. אם לא מציינים כתובת IP, המערכת מקצה כתובת IP באופן אוטומטי
  • ‫oss_machine_type – סוג המכונה לשימוש בצמתים של OSS
  • ‫oss_boot_disk_type – סוג הדיסק לשימוש בדיסק האתחול של ה-OSS (pd-standard, ‏ pd-ssd)
  • ‫oss_boot_disk_size_gb – גודל דיסק האתחול של MDS ב-GB
  • ost_disk_type* – סוג הדיסק לשימוש בדיסק של יעד Object Storage ‏ (OST) (pd-standard, ‏ pd-ssd, ‏ local-ssd)
  • ost_disk_size_gb* - גודל דיסק OST ב-GB

4. פריסה ואימות של ההגדרה

פריסת ההגדרות האישיות

בסשן של Cloud Shell, מריצים את הפקודה הבאה מהתיקייה Lustre-gcp:

gcloud deployment-manager deployments create lustre --config lustre.yaml

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

אחרי שהפריסה תושלם, יוצג פלט שדומה לזה:

Create operation operation-1572410719018-5961966591cad-e25384f6-d4c905f8 completed successfully.
NAME                                TYPE                   STATE      ERRORS  INTENT
lustre-all-internal-firewall-rule  compute.v1.firewall    COMPLETED  []
lustre-lustre-network              compute.v1.network     COMPLETED  []
lustre-lustre-subnet               compute.v1.subnetwork  COMPLETED  []
lustre-mds1                        compute.v1.instance    COMPLETED  []
lustre-oss1                        compute.v1.instance    COMPLETED  []
lustre-oss2                        compute.v1.instance    COMPLETED  []
lustre-oss3                        compute.v1.instance    COMPLETED  []
lustre-oss4                        compute.v1.instance    COMPLETED  []
lustre-ssh-firewall-rule           compute.v1.firewall    COMPLETED  []

אימות הפריסה

5f2a0557d3f2476f.png

כדי לראות את הפריסה ב-Google Cloud Platform Console:

  • ב-Cloud Platform Console, פותחים את התפריט Products & Services (מוצרים ושירותים) בפינה הימנית העליונה של המסוף (שלושה קווים אופקיים).
  • לוחצים על Deployment Manager.
  • לוחצים על Lustre כדי לראות את פרטי הפריסה.
  • לוחצים על סקירה כללית – Lustre. בחלונית Deployment properties מוצגת ההגדרה הכוללת של הפריסה.
  • לוחצים על View (תצוגה) בנכס Config (הגדרה). בחלונית Config מוצג התוכן של קובץ ה-YAML של הגדרת הפריסה ששיניתם קודם. לפני שממשיכים, חשוב לוודא שהתוכן נכון. אם אתם צריכים לשנות את הגדרות הפריסה, פשוט מוחקים את הפריסה לפי השלבים שבקטע 'ניקוי הפריסה', ומפעילים מחדש את הפריסה לפי השלבים שבקטע 'הגדרת קובץ ה-YAML של פריסת Lustre'.
  • (אופציונלי) בקטע Lustre-cluster, לוחצים על כל אחד מהמשאבים שנוצרו על ידי התבנית Lustre.jinja ובודקים את הפרטים.

אחרי שמוודאים את ההגדרה של הפריסה, צריך לוודא שהופעלו המכונות הווירטואליות של האשכול. במסוף Cloud Platform, בתפריט Products & Services (מוצרים ושירותים), לוחצים על Compute Engine > VM Instances (מכונות VM).

aec8498e04a3c334.png

בדף VM Instances (מכונות וירטואליות), בודקים את חמש המכונות הווירטואליות שנוצרו על ידי כלי הפריסה. הם כוללים את lustre-mds1,‏ lustre-oss1,‏ lustre-oss2, lustre-oss3 ו-lustre-oss4.

5. גישה לאשכול Lustre

מעקב אחרי ההתקנה

בדף VM Instances (מכונות וירטואליות), לוחצים על lustre-mds1 כדי לפתוח את הדף Instance details (פרטי המכונה).

ba0bea7acdbb9527.png

לוחצים על Serial port 1 (console) (יציאה טורית 1 (מסוף)) כדי לפתוח את דף הפלט של המסוף הטורי. נשתמש בפלט הסדרתי הזה כדי לעקוב אחרי תהליך ההתקנה של מופע MDS, ונמתין עד להשלמת startup-script. כדי לעדכן את הפלט הסדרתי, לוחצים על לחצן הרענון בחלק העליון של הדף. הצומת יופעל מחדש פעם אחת כדי לאתחל את ליבת Lustre, ויוצגו הודעות דומות לאלה שבהמשך:

Startup finished in 838ms (kernel) + 6.964s (initrd) + 49.302s (userspace) = 57.105s.
Lustre: lustre-MDT0000: Connection restored to 374e2d80-0b31-0cd7-b2bf-de35b8119534 (at 0@lo)

זה אומר ש-Lustre מותקן באשכול Lustre ומערכת הקבצים מוכנה לשימוש.

גישה לאשכול Lustre

בסשן של Cloud Shell, לוחצים על הלחצן SSH לצד המכונה lustre-mds1 במסוף Google Cloud. לחלופין, מריצים את הפקודה הבאה ב-Cloud Shell, ומחליפים את <ZONE> באזור של הצומת lustre-mds1:

gcloud compute ssh lustre-mds1 --zone=<ZONE>

הפקודה הזו מתחברת למכונה הווירטואלית lustre-mds1. זהו מופע של Lustre Metadata Server ‏ (MDS), שמשמש גם כ-Lustre Management Server ‏ (MGS). המופע הזה מטפל בכל בקשות האימות והמטא-נתונים של מערכת הקבצים.

כדאי לטעון את מערכת הקבצים במופע lustre-mds1 כדי שנוכל לבדוק אותה בהמשך. מריצים את הפקודות הבאות:

sudo mkdir /mnt/lustre
sudo mount -t lustre lustre-mds1:/lustre /mnt/lustre
cd /mnt/lustre

שלוש הפקודות האלה מבצעות שלוש פעולות. הפקודה הראשונה יוצרת ספרייה מקומית שנשתמש בה כנקודת הרכבה בנתיב ‎/mnt/lustre. הפקודה השנייה מריצה את הפקודה mount כדי לטעון את מערכת הקבצים מסוג lustre, שנמצאת בשרת lustre-mds1, ושם מערכת הקבצים היא lustre, שמוצגת כ-‎/lustre. הפקודה mount טוענת את מערכת הקבצים של Lustre בספרייה המקומית ‎/mnt/lustre. לבסוף, הפקודה השלישית משנה את הספרייה לספרייה ‎ /mnt/lustre, שבה Lustre מותקן.

מערכת הקבצים Lustre נטענה בנתיב ‎ /mnt/lustre. בואו נראה מה אפשר לעשות עם מערכת הקבצים הזו.

6. סיור בכלים של Lustre CLI

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

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

sudo lctl dl

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

  0 UP osd-ldiskfs lustre-MDT0000-osd lustre-MDT0000-osd_UUID 11
  1 UP mgs MGS MGS 12
  2 UP mgc MGC10.128.15.2@tcp 374e2d80-0b31-0cd7-b2bf-de35b8119534 4
  3 UP mds MDS MDS_uuid 2
  4 UP lod lustre-MDT0000-mdtlov lustre-MDT0000-mdtlov_UUID 3
  5 UP mdt lustre-MDT0000 lustre-MDT0000_UUID 12
  6 UP mdd lustre-MDD0000 lustre-MDD0000_UUID 3
  7 UP qmt lustre-QMT0000 lustre-QMT0000_UUID 3
  8 UP lwp lustre-MDT0000-lwp-MDT0000 lustre-MDT0000-lwp-MDT0000_UUID 4
  9 UP osp lustre-OST0000-osc-MDT0000 lustre-MDT0000-mdtlov_UUID 4
 10 UP osp lustre-OST0002-osc-MDT0000 lustre-MDT0000-mdtlov_UUID 4
 11 UP osp lustre-OST0001-osc-MDT0000 lustre-MDT0000-mdtlov_UUID 4
 12 UP osp lustre-OST0003-osc-MDT0000 lustre-MDT0000-mdtlov_UUID 4

אפשר לראות את Lustre Management Server ‏ (MGS) כפריט 1, את Lustre Metadata Server ‏ (MDS) כפריט 3, את Lustre Metadata Target ‏ (MDT) כפריט 5, ואת ארבעת Lustre Object Storage Servers ‏ (OSS) כפריטים 8 עד 12. כדי להבין מהם השירותים האחרים, אפשר לעיין במדריך Lustre.

כלי התצורה של מערכת הקבצים של Lustre הוא lfs. אנחנו יכולים להשתמש ב-lfs כדי לנהל את הפסיגה של קבצים בשרתי אחסון האובייקטים (OSS) של Lustre ובמטרות אחסון האובייקטים (OST) שלהם, וגם כדי להריץ פעולות נפוצות במערכת הקבצים כמו find,‏ df וניהול נפח האחסון.

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

כדי לבדוק את זה, נגדיר שתי ספריות. באחת מהן נגדיר את מספר הפסים של OSS אחד, ובשנייה נגדיר את מספר הפסים כ-‎-1. המשמעות היא שהקבצים שנכתבים בספרייה הזו יחולקו לפסים בכמה שיותר OSS. ספריות יכולות להכיל הגדרות של חלוקת נתונים שמועברות בירושה לקבצים שנוצרים בתוכן, אבל אפשר להגדיר חלוקת נתונים שונה לספריות משנה ולקבצים בודדים בתוך אותה ספרייה, אם רוצים. כדי ליצור את שתי הספריות האלה, מריצים את הפקודות הבאות כשנמצאים בספרייה ‎/mnt/lustre:

sudo mkdir stripe_one
sudo mkdir stripe_all
sudo lfs setstripe -c 1 stripe_one/
sudo lfs setstripe -c -1 stripe_all/

אפשר להציג את הגדרות הפסים של קובץ או ספרייה באמצעות הפקודה lfs getstripe:

sudo lfs getstripe stripe_all/

יוצג פלט שבו מספר הפסים מוגדר כ-1-:

stripe_all/
stripe_count:  -1 stripe_size:   1048576 pattern:    raid0 stripe_offset: -1

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

7. בדיקת קלט/פלט של Lustre

נפעיל שתי בדיקות פשוטות של Lustre IO כדי להדגים את היתרונות האפשריים בביצועים ואת יכולות ההתאמה של מערכת הקבצים Lustre. קודם נריץ בדיקה פשוטה באמצעות כלי השירות dd כדי לכתוב קובץ בגודל 5GB לספרייה stripe_one. מריצים את הפקודה הבאה:

sudo dd if=/dev/zero of=stripe_one/test bs=1M count=5000

התהליך של כתיבת נתונים בנפח 5GB למערכת הקבצים נמשך בממוצע כ-27 שניות, כתיבה ל-Persistent Disk (PD) יחיד ב-Object Storage Server (OSS) יחיד.

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

sudo dd if=/dev/zero of=stripe_all/test bs=1M count=5000

שימו לב ששינינו את הערך of=stripe_one/test ל-of=stripe_all/test. כך, פעולת הכתיבה של הזרם היחיד שלנו תתבצע על פני כל שרתי אחסון האובייקטים, ותושלם תוך 5.5 שניות בממוצע, כלומר מהר פי 4 בערך עם ארבעה שרתי OSS.

הביצועים האלה ממשיכים להשתפר ככל שמוסיפים שרתים של Object Storage, ואפשר להוסיף שרתים של OSS עם מערכת הקבצים אונליין ולהתחיל לפצל נתונים כדי להגדיל את הקיבולת ולשפר את הביצועים אונליין. האפשרויות הן אינסופיות כשמשתמשים ב-Lustre ב-Google Cloud Platform, ואנחנו מתרגשים לראות מה תבנו ואיזה בעיות תפתרו.

8. סיכום

זהו, יצרתם אשכול Lustre ב-Google Cloud Platform. אתם יכולים להשתמש בסקריפטים האלה כנקודת התחלה כדי ליצור אשכול Lustre משלכם ולשלב אותו עם אשכול המחשוב מבוסס-הענן שלכם.

ניקוי הפריסה

מתנתקים מהצומת של Lustre:

exit

אחרי שמסיימים, אפשר לנקות בקלות את הפריסה על ידי הרצת הפקודה הבאה מ-Google Cloud Shell, אחרי שמתנתקים מאשכול Lustre:

gcloud deployment-manager deployments delete lustre

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

מחיקת הפרויקט

כדי לנקות, פשוט מוחקים את הפרויקט.

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

מה נכלל

  • איך משתמשים בשירות GCP Deployment Manager.
  • איך מגדירים ופורסים מערכת קבצים של Lustre ב-GCP.
  • איך מגדירים פספוס ובודקים קלט/פלט פשוט במערכת הקבצים Lustre.

מקורות תמיכה

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

מידע נוסף

משוב

נשמח לקבל משוב על ה-Codelab הזה באמצעות הקישור הזה. מילוי טופס המשוב יימשך פחות מ-5 דקות. תודה!