התחברות מ-Compute Engine

במדריך הזה מוסבר איך ליצור לקוח יחיד של Compute Engine ולקשר אותו למכונה מנוהלת של Lustre ב-Google Cloud. ‫Managed Lustre תומך בחיבורים של עד 20,000 לקוחות.

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

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

צריכות להיות לכם ההרשאות הבאות ב-IAM:

  • מנהל מכונות של Compute ‏ (v1) (roles/compute.instanceAdmin.v1) כדי ליצור מכונה וירטואלית ב-Compute Engine.

  • אדמין Compute‏ (roles/compute.admin) או אדמין אבטחת Compute‏ (roles/compute.securityAdmin) כדי ליצור כלל חומת אש.

  • משתמש מנהרה באבטחת IAP (roles/iap.tunnelResourceAccessor) כדי להתחבר באמצעות SSH למכונה וירטואלית ב-Compute Engine באמצעות שרת proxy לאימות זהויות (IAP).

רשימה מלאה של ההרשאות שניתנות לכל תפקיד מופיעה במאמר חומר עזר בנושא תפקידי IAM.

מגבלות

אי אפשר לבצע מונטינג של Managed Lustre ב-Shielded VMs.

יצירת מכונה וירטואלית ב-Compute Engine

פועלים לפי ההוראות כדי ליצור מכונה וירטואלית ב-Compute Engine באמצעות אחת מ Google Cloud משפחות התמונות הבאות:

אם אתם מריצים ליבת Ubuntu 22.04 או 24.04 בהתאמה אישית, יש תמיכה ב-DKMS.

סוגי מכונות ורישות

אתם יכולים לבחור כל סוג מכונה ודיסק אתחול. מומלץ לבחור לפחות סוג מכונה c2-standard-4.

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

  • להגדיל את מספר יחידות ה-vCPU. רוחב הפס המקסימלי לתעבורת נתונים יוצאת לכל מכונה הוא בדרך כלל 2Gbps לכל vCPU, עד למקסימום של סוג המכונה.
  • בוחרים סדרת מכונות שתומכת במגבלות גבוהות יותר של תעבורת נתונים נכנסת ויוצאת. לדוגמה, מופעי C2 עם רשת Tier_1 תומכים ברוחב פס של עד 100Gbps לתעבורת נתונים יוצאת. מופעי C3 עם רשת Tier_1 תומכים ברוחב פס של עד 200Gbps.
  • הפעלה של ביצועי רשת ברמה 1 לכל מכונה וירטואלית עם סוגי מכונות גדולים יותר.
  • כדי לצבור רוחב פס ברשת, בוחרים סדרת מכונות עם כמה כרטיסי ממשק רשת פיזיים (NIC). כדי להגדיל את רוחב הפס, צריך לצרף כרטיסי NIC פיזיים ל-VPC רגילים, ולא ל-VPC עם פרופילי רשת RDMA. פרטים נוספים זמינים במאמר בנושא מכונות רשת ו-GPU.

מידע מפורט זמין במאמר בנושא רוחב פס ברשת.

יצירת המכונה הווירטואלית

מסוף Google Cloud

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. בוחרים פרויקט ולוחצים על המשך.

  3. לוחצים על Create instance.

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

  5. בתפריטים הנפתחים, בוחרים את האזור והתחום של מכונת ה-VM. המכונה הווירטואלית צריכה להיות באותו אזור שבו נמצא מופע Managed Lustre.

  6. בוחרים תצורת מכונה למכונה הווירטואלית מהרשימה.

  7. בתפריט הניווט הימני, לוחצים על מערכת הפעלה ואחסון.

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

  9. בתפריט הנפתח Operating system, בוחרים באחת מהאפשרויות הבאות:

    • קובץ אימג' של מכונה וירטואלית ל-HPC ל-Rocky 8
    • Rocky Linux ל-Rocky 9
    • Red Hat Enterprise Linux ל-RHEL 9
    • Ubuntu ל-Ubuntu 22.04 LTS או ל-24.04 LTS
  10. בתפריט הנפתח Version (גרסה), בוחרים באחת מהאפשרויות הבאות:

    • HPC Rocky Linux 8
    • Rocky Linux 9
    • Red Hat Enterprise Linux 9
    • Ubuntu 22.04 LTS
    • Ubuntu 24.04 LTS

    בוחרים בגרסת x86/64 או בגרסת Arm64 בהתאם לסוג המחשב. ‫Ubuntu 24.04 LTS נתמכת רק במכונות וירטואליות של Arm.

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

  12. בתפריט הניווט הימני, לוחצים על Networking (רשת).

  13. בוחרים את רשת ה-VPC שיצרתם בקטע הגדרת רשת VPC ואת תת-הרשת הראשית (SUBNET_NAME) כממשק הראשי.

  14. (אופציונלי) כדי להשתמש בכמה כרטיסי רשת, לוחצים על הוספת כרטיס רשת ובוחרים את אותה רשת VPC ותת-רשת אחרת (למשל, SUBNET_NAME_2).

  15. (אופציונלי) כדי להפעיל רשת ברמה 1, בקטע Network performance configurations (הגדרות ביצועים של הרשת), מגדירים את Network bandwidth tier (רמת רוחב הפס של הרשת) ל-Tier 1 (רמה 1).

  16. בתפריט הניווט הימני, לוחצים על אבטחה.

  17. בקטע Access scopes, בוחרים באפשרות Allow full access to all Cloud APIs.

  18. בחלונית הניווט שמימין, לוחצים על מתקדם.

  19. בקטע Automation, מזינים את הטקסט הבא בשדה סקריפט לטעינה בזמן ההפעלה:

    #!/bin/bash
    sudo apt-get update
    sudo apt-get install -y lustre-client-modules-$(uname -r)
    

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

  20. כדי ליצור את המכונה הווירטואלית ולהפעיל אותה, לוחצים על Create.

gcloud

משתמשים בכלי שורת הפקודה gcloud כדי ליצור מכונה וירטואלית:

HPC Rocky Linux 8

יוצרים מכונה וירטואלית באמצעות הפקודה gcloud compute instances create. אפשר לעדכן את סוג המכונה ואת מפרטי הדיסק לפני שמריצים את הפקודה.

gcloud compute instances create VM_NAME \
  --project=PROJECT_ID \
  --zone=LOCATION \
  --machine-type=c2d-standard-112 \
  --scopes="https://www.googleapis.com/auth/cloud-platform" \
  --network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \
  --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
  --create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image-project=cloud-hpc-image-public,image-family=hpc-rocky-linux-8,\
mode=rw,size=100,type=pd-balanced

אם סוג המכונה שלכם ב-Compute Engine כולל כמה כרטיסי ממשק רשת (NIC) פיזיים, צריך להקצות כל כרטיס NIC לרשת משנה. כך תוכלו לצבור רוחב פס בכמה ממשקי רשת.

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

...
--network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \
--network-interface=subnet=SUBNET_NAME_2,no-address,nic-type=GVNIC \
...

Rocky Linux 9

יוצרים מכונה וירטואלית באמצעות הפקודה gcloud compute instances create. אפשר לעדכן את סוג המכונה ואת מפרטי הדיסק לפני שמריצים את הפקודה.

gcloud compute instances create VM_NAME \
  --project=PROJECT_ID \
  --zone=LOCATION \
  --machine-type=c2d-standard-112 \
  --scopes="https://www.googleapis.com/auth/cloud-platform" \
  --network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \
  --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
  --create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image-project=rocky-linux-cloud,image-family=rocky-linux-9,\
mode=rw,size=100,type=pd-balanced

אם סוג המכונה שלכם ב-Compute Engine כולל כמה כרטיסי ממשק רשת (NIC) פיזיים, צריך להקצות כל כרטיס NIC לרשת משנה. כך תוכלו לצבור רוחב פס בכמה ממשקי רשת.

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

...
--network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \
--network-interface=subnet=SUBNET_NAME_2,no-address,nic-type=GVNIC \
...

RHEL 9

יוצרים מכונה וירטואלית באמצעות הפקודה gcloud compute instances create. אפשר לעדכן את סוג המכונה ואת מפרטי הדיסק לפני שמריצים את הפקודה.

gcloud compute instances create VM_NAME \
  --project=PROJECT_ID \
  --zone=LOCATION \
  --machine-type=c2d-standard-112 \
  --scopes="https://www.googleapis.com/auth/cloud-platform" \
  --network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \
  --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
  --create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image-project=rhel-cloud,image-family=rhel-9,\
mode=rw,size=100,type=pd-balanced

אם סוג המכונה שלכם ב-Compute Engine כולל כמה כרטיסי ממשק רשת (NIC) פיזיים, צריך להקצות כל כרטיס NIC לרשת משנה. כך תוכלו לצבור רוחב פס בכמה ממשקי רשת.

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

...
--network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \
--network-interface=subnet=SUBNET_NAME_2,no-address,nic-type=GVNIC \
...

‫Ubuntu 20.04 LTS

יוצרים מכונה וירטואלית באמצעות הפקודה gcloud compute instances create. אפשר לעדכן את סוג המכונה ואת מפרטי הדיסק לפני שמריצים את הפקודה.

gcloud compute instances create VM_NAME \
  --project=PROJECT_ID \
  --zone=LOCATION \
  --machine-type=c2d-standard-112 \
  --scopes="https://www.googleapis.com/auth/cloud-platform" \
  --network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \
  --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
  --create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image=projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20250606,\
mode=rw,size=100,type=pd-balanced \
  --metadata=startup-script='#!/bin/bash
    sudo apt-get update
    sudo apt-get install -y lustre-client-modules-$(uname -r)'

אם סוג המכונה שלכם ב-Compute Engine כולל כמה כרטיסי ממשק רשת (NIC) פיזיים, צריך להקצות כל כרטיס NIC לרשת משנה. כך תוכלו לצבור רוחב פס בכמה ממשקי רשת.

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

...
--network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \
--network-interface=subnet=SUBNET_NAME_2,no-address,nic-type=GVNIC \
...

‫Ubuntu 22.04 LTS

יוצרים מכונה וירטואלית באמצעות הפקודה gcloud compute instances create. אפשר לעדכן את סוג המכונה ואת מפרטי הדיסק לפני שמריצים את הפקודה.

gcloud compute instances create VM_NAME \
  --project=PROJECT_ID \
  --zone=LOCATION \
  --machine-type=c2d-standard-112 \
  --scopes="https://www.googleapis.com/auth/cloud-platform" \
  --network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \
  --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
  --create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image-project=ubuntu-os-cloud,image-family=ubuntu-2204-lts,\
mode=rw,size=100,type=pd-balanced \
  --metadata=startup-script='#!/bin/bash
    sudo apt-get update
    sudo apt-get install -y lustre-client-modules-$(uname -r)'

אם סוג המכונה שלכם ב-Compute Engine כולל כמה כרטיסי ממשק רשת (NIC) פיזיים, צריך להקצות כל כרטיס NIC לרשת משנה. כך תוכלו לצבור רוחב פס בכמה ממשקי רשת.

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

...
--network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \
--network-interface=subnet=SUBNET_NAME_2,no-address,nic-type=GVNIC \
...

Ubuntu 24.04 LTS

יוצרים מכונה וירטואלית באמצעות הפקודה gcloud compute instances create.

‫Managed Lustre תומך רק ב-Ubuntu 24.04 LTS במכונות וירטואליות של Arm.

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

gcloud compute instances create VM_NAME \
  --project=PROJECT_ID \
  --zone=LOCATION \
  --machine-type=c4a-standard-32 \
  --scopes="https://www.googleapis.com/auth/cloud-platform" \
  --network-interface=network-tier=PREMIUM,nic-type=GVNIC,stack-type=IPV4_ONLY,subnet=SUBNET_NAME \
  --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \
  --create-disk=auto-delete=yes,boot=yes,device-name=VM_NAME,\
image-project=ubuntu-os-cloud,image-family=ubuntu-2404-lts-arm64,mode=rw,size=100,type=hyperdisk-balanced

אם סוג המכונה שלכם ב-Compute Engine כולל כמה כרטיסי ממשק רשת (NIC) פיזיים, צריך להקצות כל כרטיס NIC לרשת משנה. כך תוכלו לצבור רוחב פס בכמה ממשקי רשת.

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

...
--network-interface=stack-type=IPV4_ONLY,subnet=SUBNET_NAME,nic-type=GVNIC \
--network-interface=subnet=SUBNET_NAME_2,no-address,nic-type=GVNIC \
...

למידע נוסף על האפשרויות הזמינות, אפשר לעיין במאמרי העזרה של Compute Engine.

יצירת כלל לחומת האש שמאפשר SSH

כדי להתחבר ל-VM ב-Compute Engine באמצעות SSH, צריך קודם ליצור כלל חומת אש שמאפשר גישה ליציאת TCP מספר 22 ב-VM.

מכונות וירטואליות ללא כתובות IP ציבוריות

כשמתחברים למכונות וירטואליות באמצעות SSH ללא כתובות IP חיצוניות, גם Google Cloud לחצן ה-SSH במסוף וגם gcloud compute ssh משתמשים בשרת proxy לאימות זהויות (IAP) כדי להתחבר.

כדי ליצור כלל חומת אש שמאפשר תעבורת נתונים נכנסת רק מטווח המקור של IAP, שהוא תמיד 35.235.240.0/20, צריך לפעול לפי ההוראות שבמאמר יצירת כלל חומת אש. כך משפרים את האבטחה כי יציאה 22 לא חשופה לאינטרנט הרחב.

מכונות וירטואליות עם כתובות IP גלויות

אם הקציתם כתובת IP ציבורית למכונה הווירטואלית של Compute Engine, יכול להיות שלחיצה על הלחצןGoogle Cloud SSH במסוף תנסה ליצור חיבור ישיר, תוך עקיפת ה-IAP.

כתובת ה-IP של המקור של החיבור הישיר הזה היא לא הטווח של IAP, אלא אחת מתוך מאגר גדול של כתובות IP של Google. כדי לאפשר את החיבור הזה, צריך טווח כתובות מקור רחב יותר, למשל 0.0.0.0/0 (כל מקור).

אם למכונה הווירטואלית יש כתובת IP ציבורית, מומלץ להגדיר את כלל חומת האש כך שיתאפשר שימוש ב-SSH רק מטווח ה-IAP ‏ (35.235.240.0/20). לאחר מכן משתמשים ב-gcloud compute ssh כדי להתחבר, ומציינים את הדגל --tunnel-through-iap.

אם אתם חייבים להקצות כתובת IP ציבורית וגם להתחבר ממסוף Google Cloud , צריך לציין את הערך 0.0.0.0/0 כטווח כתובות IPv4 של המקור.

יצירת הכלל לחומת האש

מסוף Google Cloud

יוצרים כלל חומת אש שמאפשר SSH.

  1. נכנסים לדף Firewall policies במסוף Google Cloud .

    מעבר אל Firewall policies

  2. לוחצים על יצירת כלל לחומת האש.

  3. מזינים שם לכלל.

  4. בשדה Network (רשת), בוחרים את רשת ה-VPC שיצרתם קודם.

  5. בוחרים באפשרות תעבורת נתונים נכנסת (ingress) בתור כיוון התנועה, ובאפשרות אישור בתור פעולה במקרה של התאמה.

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

  7. בשדה Source IPv4 ranges (טווחי כתובות IPv4 של המקור), מזינים 35.235.240.0/20.

  8. בקטע Protocols and ports (פרוטוקולים ויציאות), בוחרים באפשרות Specified protocols and ports (פרוטוקולים ויציאות שצוינו).

  9. בוחרים באפשרות TCP ומזינים 22 בשדה Ports.

  10. לוחצים על יצירה.

gcloud

יוצרים כלל חומת אש שמאפשר SSH.

gcloud compute firewall-rules create FIREWALL_RULE_NAME \
  --allow=tcp:22 \
  --network=NETWORK_NAME \
  --source-ranges=35.235.240.0/20 \
  --project=PROJECT_ID

חיבור SSH למכונה וירטואלית ב-Compute Engine

אחרי שיוצרים את כלל חומת האש, אפשר להתחבר למכונה הווירטואלית באמצעות SSH:

מסוף Google Cloud

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. בטבלת המופעים, מאתרים את השורה של המופע ולוחצים על SSH בעמודה Connect.

  3. אם מתבקשים לאשר את החיבור, לוחצים על Authorize (אישור).

gcloud

gcloud compute ssh VM_NAME \
  --zone=LOCATION \
  --project=PROJECT_ID \
  --tunnel-through-iap

התקנת חבילות הלקוח של Lustre

חבילות הלקוח של Lustre מתארחות בפרויקט lustre-client-binaries ב-Artifact Registry.

הגדרת גישה למאגר

כדי להגדיר את המכונה הווירטואלית להתקנה מ-Artifact Registry, פועלים לפי ההוראות האלה.

HPC Rocky Linux 8

מריצים את הפקודה gcloud beta artifacts print-settings ומעבירים את הפלט ל-Bash כדי להריץ את הפקודות הנדרשות:

gcloud beta artifacts print-settings yum \
  --repository=lustre-client-rocky-8 \
  --location=us --project=lustre-client-binaries | sudo bash

Rocky Linux 9

מריצים את הפקודה gcloud beta artifacts print-settings ומעבירים את הפלט ל-Bash כדי להריץ את הפקודות הנדרשות:

gcloud beta artifacts print-settings yum \
  --repository=lustre-client-rocky-9 \
  --location=us --project=lustre-client-binaries | sudo bash

RHEL 9

מריצים את הפקודה gcloud beta artifacts print-settings ומעבירים את הפלט ל-Bash כדי להריץ את הפקודות הנדרשות:

gcloud beta artifacts print-settings yum \
  --repository=lustre-client-rocky-9 \
  --location=us --project=lustre-client-binaries | sudo bash

‫RHEL 9 משתמש באותו מאגר lustre-client-rocky-9 כמו Rocky Linux 9.

‫Ubuntu 20.04 LTS

  1. מתקינים את מפתחות החתימה של מאגר Apt:

    curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg \
      | sudo gpg --dearmor -o /usr/share/keyrings/google-cloud.gpg
    curl -fsSL https://us-apt.pkg.dev/doc/repo-signing-key.gpg \
      | sudo gpg --dearmor -o /usr/share/keyrings/lustre-client.gpg
    
  2. מגדירים את המכונה הווירטואלית לגישה לחבילות ב-Artifact Registry:

    echo 'deb [signed-by=/usr/share/keyrings/google-cloud.gpg] http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' \
      | sudo tee /etc/apt/sources.list.d/artifact-registry.list
    
  3. מעדכנים את Apt ומתקינים את חבילת apt-transport-artifact-registry:

    sudo apt update && sudo apt install apt-transport-artifact-registry
    
  4. מגדירים את Apt לאחזור חבילות מהמאגר:

    echo "deb [signed-by=/usr/share/keyrings/lustre-client.gpg] ar+https://us-apt.pkg.dev/projects/lustre-client-binaries lustre-client-ubuntu-focal main" \
      | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
  5. מעדכנים את מקורות המאגר:

    sudo apt update
    

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

מידע נוסף על הפקודות האלה זמין במסמכי Artifact Registry: הגדרת מכונות וירטואליות להתקנת חבילות Debian

‫Ubuntu 22.04 LTS

  1. מתקינים את מפתחות החתימה של מאגר Apt:

    curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg \
      | sudo gpg --dearmor -o /usr/share/keyrings/google-cloud.gpg
    curl -fsSL https://us-apt.pkg.dev/doc/repo-signing-key.gpg \
      | sudo gpg --dearmor -o /usr/share/keyrings/lustre-client.gpg
    
  2. מגדירים את המכונה הווירטואלית לגישה לחבילות ב-Artifact Registry:

    echo 'deb [signed-by=/usr/share/keyrings/google-cloud.gpg] http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' \
      | sudo tee /etc/apt/sources.list.d/artifact-registry.list
    
  3. מעדכנים את Apt ומתקינים את חבילת apt-transport-artifact-registry:

    sudo apt update && sudo apt install apt-transport-artifact-registry
    
  4. מגדירים את Apt לאחזור חבילות מהמאגר:

    echo "deb [signed-by=/usr/share/keyrings/lustre-client.gpg] ar+https://us-apt.pkg.dev/projects/lustre-client-binaries lustre-client-ubuntu-jammy main" \
      | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
  5. מעדכנים את מקורות המאגר:

    sudo apt update
    

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

מידע נוסף על הפקודות האלה זמין במסמכי Artifact Registry: הגדרת מכונות וירטואליות להתקנת חבילות Debian

Ubuntu 24.04 LTS

  1. מתקינים את מפתחות החתימה של מאגר Apt:

    curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg \
      | sudo gpg --dearmor -o /usr/share/keyrings/google-cloud.gpg
    curl -fsSL https://us-apt.pkg.dev/doc/repo-signing-key.gpg \
      | sudo gpg --dearmor -o /usr/share/keyrings/lustre-client.gpg
    
  2. מגדירים את המכונה הווירטואלית לגישה לחבילות ב-Artifact Registry:

    echo 'deb [signed-by=/usr/share/keyrings/google-cloud.gpg] http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' \
      | sudo tee /etc/apt/sources.list.d/artifact-registry.list
    
  3. מעדכנים את Apt ומתקינים את חבילת apt-transport-artifact-registry:

    sudo apt update && sudo apt install apt-transport-artifact-registry
    
  4. מגדירים את Apt לאחזור חבילות מהמאגר:

    echo "deb [signed-by=/usr/share/keyrings/lustre-client.gpg] ar+https://us-apt.pkg.dev/projects/lustre-client-binaries lustre-client-ubuntu-noble main" \
      | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
  5. מעדכנים את מקורות המאגר:

    sudo apt update
    

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

מידע נוסף על הפקודות האלה זמין במסמכי Artifact Registry: הגדרת מכונות וירטואליות להתקנת חבילות Debian

התקנת חבילות הלקוח של Lustre

פועלים לפי ההוראות כדי להתקין את חבילות הלקוח של Lustre.

HPC Rocky Linux 8

sudo yum -y --enablerepo=lustre-client-rocky-8 install kmod-lustre-client
sudo yum -y --enablerepo=lustre-client-rocky-8 install lustre-client

Rocky Linux 9

sudo yum -y --enablerepo=lustre-client-rocky-9 install kmod-lustre-client
sudo yum -y --enablerepo=lustre-client-rocky-9 install lustre-client

RHEL 9

sudo yum -y --enablerepo=lustre-client-rocky-9 install kmod-lustre-client
sudo yum -y --enablerepo=lustre-client-rocky-9 install lustre-client

‫Ubuntu 20.04 LTS

מריצים את הפקודות הבאות.

sudo apt install lustre-client-modules-$(uname -r)/lustre-client-ubuntu-focal
sudo apt install lustre-client-utils/lustre-client-ubuntu-focal

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

‫Ubuntu 22.04 LTS

מריצים את הפקודות הבאות.

sudo apt install lustre-client-modules-$(uname -r)/lustre-client-ubuntu-jammy
sudo apt install lustre-client-utils/lustre-client-ubuntu-jammy

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

Ubuntu 24.04 LTS

מריצים את הפקודות הבאות.

sudo apt install lustre-client-modules-$(uname -r)/lustre-client-ubuntu-noble
sudo apt install lustre-client-utils/lustre-client-ubuntu-noble

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

טעינת מודול הליבה של Lustre

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

הגדרות רגילות

מריצים את הפקודה הבאה:

sudo modprobe lustre

הגדרה של כמה מתאמי NIC

אם למכונה הווירטואלית יש כמה כרטיסי NIC, שכל אחד מהם מחובר לרשת משנה אחרת, צריך להגדיר את LNet לשימוש בהם לפני טעינת המודול.

  1. יוצרים או משנים את הקובץ /etc/modprobe.d/lustre.conf:

    options lnet networks="tcp0(eth0, eth1)"
    

    בדוגמה הזו, ההנחה היא שהממשקים במכונה הווירטואלית נקראים eth0 ו-eth1. מחליפים אותם בשמות הממשקים התואמים הנכונים. אפשר לראות את שמות הממשקים על ידי הפעלת הפקודה ip address.

  2. טוענים את המודול:

    sudo modprobe lustre
    
  3. (אופציונלי) מאמתים את ההתאמה של TCP. מריצים את הפקודה הבאה:

    sudo lctl list_nids
    

    הפלט מציג את שני כרטיסי ה-NIC.

(אופציונלי) הגדרת LNet עבור מופעי gke-support-enabled

הקטע הזה רלוונטי רק ללקוחות Compute Engine שמתחברים למכונות Managed Lustre עם הדגל --gke-support-enabled שהוצא משימוש.

אם מופע Managed Lustre שלכם לא נוצר עם האפשרות GKE support, דלגו על הקטע הזה.

מגדירים את LNet לשימוש ב-accept_port 6988

אם המכונה שלכם ב-Managed Lustre כוללת את ההגדרה --gke-support-enabled שהוצאה משימוש ומוגדרת כ-true, ואתם מתחברים ממכונה וירטואלית ב-Compute Engine:

  1. יוצרים או עורכים את /etc/modprobe.d/lnet.conf.
  2. מוסיפים את השורה הבאה:
    options lnet accept_port=6988
    
  3. מפעילים מחדש את ה-VM:
    sudo reboot
    

צירוף של מכונה ב-Managed Lustre

מבצעים Mount למכונה של Managed Lustre.

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

  • כדי שהכונן יותקן אוטומטית בכל הפעלה של מכונת ה-VM, משתמשים באפשרות /etc/fstab.

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

כדי לאחזר את כתובת ה-IP ואת שם מערכת הקבצים של המכונה, משתמשים בפקודה gcloud lustre instances describe או עוברים לדף Instances במסוף Google Cloud .

gcloud lustre instances describe INSTANCE_NAME \
  --location=ZONE

mount

משורת הפקודה של המכונה הווירטואלית ב-Compute Engine, משתמשים בפקודה mount כדי לטעון באופן ידני את מופע Managed Lustre:

sudo mkdir -p ~/MOUNT_DIR
sudo mount -t lustre IP_ADDRESS:/FILESYSTEM_NAME ~/MOUNT_DIR

כאשר:

  • IP_ADDRESS היא כתובת ה-IP של מכונת Managed Lustre.

  • FILESYSTEM_NAME הוא שם מערכת הקבצים של המופע.

  • ~/MOUNT_DIR היא הספרייה המקומית של נקודת הטעינה שיצרתם.

/etc/fstab

משורת הפקודה של המכונה הווירטואלית ב-Compute Engine:

  1. יוצרים ספרייה מקומית לנקודת הטעינה:

    sudo mkdir -p ~/MOUNT_DIR
    
  2. פותחים את הקובץ /etc/fstab לעריכה ומוסיפים את השורה הבאה:

    IP_ADDRESS@tcp:/FILESYSTEM_NAME ~/MOUNT_DIR lustre defaults,_netdev 0 0
    

    כאשר:

    • IP_ADDRESS היא כתובת ה-IP של מכונת Managed Lustre.

    • FILESYSTEM_NAME הוא שם מערכת הקבצים של המופע.

    • ~/MOUNT_DIR היא הספרייה המקומית של נקודת הטעינה שיצרתם.

    • lustre defaults,_netdev 0 0 הן אפשרויות הטעינה המומלצות:

      • ההגדרה lustre מציינת את סוג מערכת הקבצים כ-Lustre.
      • defaults משתמש בקבוצת ברירת המחדל של אפשרויות ההרכבה.
      • _netdev מכוון את המערכת להמתין לקישוריות לרשת לפני הניסיון להרכיב את מערכת הקבצים.
      • 0 0 שולט בסדר של יצירת עותק של הזיכרון והבדיקה של מערכת הקבצים.
  3. שומרים את קובץ ה-/etc/fstab ויוצאים ממנו.

  4. מריצים את הפקודה הבאה כדי לטעון את כל מערכות הקבצים שמופיעות ב-/etc/fstab:

    sudo mount -a
    

המכונה שלכם ב-Managed Lustre מותקנת עכשיו. הוא יותקן אוטומטית בכל פעם שהמכונה הווירטואלית ב-Compute Engine תופעל.

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

הגדרות רשת מתקדמות

בקטעים הבאים מפורטות הגדרות רשת מתקדמות.

שימוש בכרטיס רשת משני

אם אתם טוענים את מכונת Managed Lustre באמצעות NIC משני של מכונת Compute Engine שיש לה מספר NICs, אתם צריכים לפעול לפי ההוראות הבאות.

חשוב לשים לב: זה לא אותו דבר כמו multi-NIC.

  1. מגדירים את LNET כך שישתמש בכרטיס ה-NIC הנכון.

    מעתיקים את התוכן של /etc/lnet.conf לקובץ בשם /etc/modprobe.d/lustre.conf במכונה הווירטואלית. מוסיפים את השורה הבאה לקובץ, ומחליפים את eth1 בשם של כרטיס ה-NIC המשני:

    options lnet networks="tcp0(eth1)"
    

    טוענים מחדש את מודול הליבה של Lustre:

    lustre_rmmod
    modprobe lustre
    

    מוודאים ש-LNET מוגדר לשימוש בכרטיס ה-NIC השני. הפלט של הפקודה הבאה צריך להיות כרטיס ה-NIC השני:

    lctl list_nids
    
  2. מוסיפים נתיב סטטי לבלוק ה-CIDR של מופע Managed Lustre דרך השער של כרטיס ה-NIC המשני.

    • כדי למצוא את שער הרשת של כרטיס ה-NIC המשני, מריצים את הפקודה route.

    • כדי למצוא את בלוק ה-CIDR של מכונת Managed Lustre:

      • מריצים את הפקודה gcloud lustre instances describe כדי לקבל את פרטי המופע.
      • מעתיקים את הכתובת שמופיעה בשדה mountPoint.
      • המרת כתובת ה-IP לבלוק CIDR שמכיל אותה, בגודל 23.

    לדוגמה, אם בלוק ה-CIDR של מופע Managed Lustre הוא 172.16.0.0/24, כרטיס ה-NIC המשני הוא eth1 ושער ברירת המחדל שלו הוא 10.130.0.1, מריצים את הפקודה הבאה:

    ip route add 172.16.0.0/24 via 10.130.0.1 dev eth1
    

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

ניתוב עם כמה מתאמי NIC

כדי לוודא שהתנועה משתמשת בממשקים הנוספים בצורה נכונה, צריך להגדיר ניתוב ידני למופעי Compute Engine עם כמה כרטיסי רשת (NIC).

בשלבים הבאים מוסבר איך להגדיר את הממשק eth1. חוזרים על השלבים האלה לכל כרטיס רשת נוסף במכונה הווירטואלית (למשל, eth2, eth3 וכו').

  1. מגדירים את השם של ממשק הרשת, ואז מקבלים את כתובת ה-IP הפנימית שלו ומחשבים את כתובת ה-IP של השער המתאים. השער הוא הכתובת .1 של תת-הרשת של הממשק.

    IFACE="eth1"
    IFACE_IP=$(ip -4 addr show ${IFACE} | gr<ep -oP '(?=inet\s)\d+(\.\d+){3}')
    GATEWAY_IP=$(echo ${IFACE_IP} | awk -F. '{print $1"."$2"."$3".1"}')
    
  2. מקבלים את נקודת הטעינה של מכונת Managed Lustre וממירים אותה לבלוק CIDR מסוג ‎ /23:

    LUSTRE_MOUNT_IP=$(gcloud lustre instances describe INSTANCE_NAME \
      --location=ZONE --format="value(mountPoint)")
    IFS=. read -r i1<<< i2 i3 i4  "${LUSTRE_MOUNT_IP}"
    LUSTRE_CIDR&="${i1}.${i2}.$((i3  254)).0/23"
    
  3. יוצרים טבלת ניתוב ייחודית לממשק ומחילים את כללי התנועה. הערך של TABLE_ID צריך להיות מספר ייחודי לכל ממשק. כשחוזרים על השלבים האלה כדי להוסיף עוד ממשקים, מגדילים את הערך של TABLE_ID ב-1. לדוגמה, משתמשים ב-102 עבור eth2, ב-103 עבור eth3.

    TABLE_ID=101
    sudo ip route add ${LUSTRE_CIDR} via ${GATEWAY_IP} dev ${IFACE} table ${TABLE_ID}
    sudo ip rule add from ${IFACE_IP} table ${TABLE_ID}
    

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

גישה למכונה ב-Managed Lustre

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

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

sudo lfs df -h ~/MOUNT_DIR

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

# sample file copy/file write
sudo dd if=/dev/zero of=~/MOUNT_DIR/bigfile1 bs=1M count=8000
sudo dd if=/dev/urandom of=~/MOUNT_DIR/bigfile1 bs=1M count=1000

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

sudo lfs df -h ~/MOUNT_DIR

ביטול הטעינה של המכונה

כדי לבטל את הניתוק של מכונת Managed Lustre, אפשר להשתמש בפקודה הבאה:

sudo umount ~/MOUNT_DIR

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