במדריך הזה מוסבר איך ליצור לקוח יחיד של 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 משפחות התמונות הבאות:
- Rocky Linux 8
- Rocky Linux 9
- Red Hat Enterprise Linux (RHEL) 9
- Ubuntu 20.04 LTS, v20250213 ואילך. שימו לב ש-Ubuntu 20.04 הגיע לסוף התמיכה (EOS) ולא ניתן לבחור בו ממסוף Google Cloud .
- Ubuntu 22.04 LTS, גרסה v20250128 ואילך
- Ubuntu 24.04 LTS, למכונות וירטואליות של Arm בלבד.
אם אתם מריצים ליבת 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
נכנסים לדף VM instances במסוף Google Cloud .
בוחרים פרויקט ולוחצים על המשך.
לוחצים על Create instance.
מזינים שם למכונה הווירטואלית בשדה שם. מידע נוסף זמין במאמר מוסכמות למתן שמות למשאבים.
בתפריטים הנפתחים, בוחרים את האזור והתחום של מכונת ה-VM. המכונה הווירטואלית צריכה להיות באותו אזור שבו נמצא מופע Managed Lustre.
בוחרים תצורת מכונה למכונה הווירטואלית מהרשימה.
בתפריט הניווט הימני, לוחצים על מערכת הפעלה ואחסון.
בקטע מערכת הפעלה ואחסון, לוחצים על שינוי.
בתפריט הנפתח Operating system, בוחרים באחת מהאפשרויות הבאות:
- קובץ אימג' של מכונה וירטואלית ל-HPC ל-Rocky 8
- Rocky Linux ל-Rocky 9
- Red Hat Enterprise Linux ל-RHEL 9
- Ubuntu ל-Ubuntu 22.04 LTS או ל-24.04 LTS
בתפריט הנפתח 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.
כדי לאשר את האפשרויות של דיסק האתחול, לוחצים על בחירה.
בתפריט הניווט הימני, לוחצים על Networking (רשת).
בוחרים את רשת ה-VPC שיצרתם בקטע הגדרת רשת VPC ואת תת-הרשת הראשית (
SUBNET_NAME) כממשק הראשי.(אופציונלי) כדי להשתמש בכמה כרטיסי רשת, לוחצים על הוספת כרטיס רשת ובוחרים את אותה רשת VPC ותת-רשת אחרת (למשל,
SUBNET_NAME_2).(אופציונלי) כדי להפעיל רשת ברמה 1, בקטע Network performance configurations (הגדרות ביצועים של הרשת), מגדירים את Network bandwidth tier (רמת רוחב הפס של הרשת) ל-Tier 1 (רמה 1).
בתפריט הניווט הימני, לוחצים על אבטחה.
בקטע Access scopes, בוחרים באפשרות Allow full access to all Cloud APIs.
בחלונית הניווט שמימין, לוחצים על מתקדם.
בקטע Automation, מזינים את הטקסט הבא בשדה סקריפט לטעינה בזמן ההפעלה:
#!/bin/bash sudo apt-get update sudo apt-get install -y lustre-client-modules-$(uname -r)הסקריפט הזה מבטיח שחבילות הלקוח של Lustre יעודכנו אם ליבת Ubuntu תשודרג.
כדי ליצור את המכונה הווירטואלית ולהפעיל אותה, לוחצים על 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.
נכנסים לדף Firewall policies במסוף Google Cloud .
לוחצים על יצירת כלל לחומת האש.
מזינים שם לכלל.
בשדה Network (רשת), בוחרים את רשת ה-VPC שיצרתם קודם.
בוחרים באפשרות תעבורת נתונים נכנסת (ingress) בתור כיוון התנועה, ובאפשרות אישור בתור פעולה במקרה של התאמה.
בתפריט הנפתח יעדים, בוחרים באפשרות כל המופעים ברשת.
בשדה Source IPv4 ranges (טווחי כתובות IPv4 של המקור), מזינים
35.235.240.0/20.בקטע Protocols and ports (פרוטוקולים ויציאות), בוחרים באפשרות Specified protocols and ports (פרוטוקולים ויציאות שצוינו).
בוחרים באפשרות TCP ומזינים
22בשדה Ports.לוחצים על יצירה.
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
נכנסים לדף VM instances במסוף Google Cloud .
בטבלת המופעים, מאתרים את השורה של המופע ולוחצים על SSH בעמודה Connect.
אם מתבקשים לאשר את החיבור, לוחצים על 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
מתקינים את מפתחות החתימה של מאגר 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מגדירים את המכונה הווירטואלית לגישה לחבילות ב-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מעדכנים את Apt ומתקינים את חבילת
apt-transport-artifact-registry:sudo apt update && sudo apt install apt-transport-artifact-registryמגדירים את 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מעדכנים את מקורות המאגר:
sudo apt updateאם הפקודה מחזירה שגיאה, צריך לוודא שהמכונה הווירטואלית של Compute Engine נוצרה עם היקף הגישה שמאפשר גישה מלאה לכל Cloud APIs. פרטים נוספים זמינים במאמר בנושא הענקת גישה למופעים של Compute Engine.
מידע נוסף על הפקודות האלה זמין במסמכי Artifact Registry: הגדרת מכונות וירטואליות להתקנת חבילות Debian
Ubuntu 22.04 LTS
מתקינים את מפתחות החתימה של מאגר 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מגדירים את המכונה הווירטואלית לגישה לחבילות ב-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מעדכנים את Apt ומתקינים את חבילת
apt-transport-artifact-registry:sudo apt update && sudo apt install apt-transport-artifact-registryמגדירים את 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מעדכנים את מקורות המאגר:
sudo apt updateאם הפקודה מחזירה שגיאה, צריך לוודא שהמכונה הווירטואלית של Compute Engine נוצרה עם היקף הגישה שמאפשר גישה מלאה לכל Cloud APIs. פרטים נוספים זמינים במאמר בנושא הענקת גישה למופעים של Compute Engine.
מידע נוסף על הפקודות האלה זמין במסמכי Artifact Registry: הגדרת מכונות וירטואליות להתקנת חבילות Debian
Ubuntu 24.04 LTS
מתקינים את מפתחות החתימה של מאגר 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מגדירים את המכונה הווירטואלית לגישה לחבילות ב-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מעדכנים את Apt ומתקינים את חבילת
apt-transport-artifact-registry:sudo apt update && sudo apt install apt-transport-artifact-registryמגדירים את 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מעדכנים את מקורות המאגר:
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 לשימוש בהם לפני טעינת המודול.
יוצרים או משנים את הקובץ
/etc/modprobe.d/lustre.conf:options lnet networks="tcp0(eth0, eth1)"בדוגמה הזו, ההנחה היא שהממשקים במכונה הווירטואלית נקראים
eth0ו-eth1. מחליפים אותם בשמות הממשקים התואמים הנכונים. אפשר לראות את שמות הממשקים על ידי הפעלת הפקודהip address.טוענים את המודול:
sudo modprobe lustre(אופציונלי) מאמתים את ההתאמה של 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:
- יוצרים או עורכים את
/etc/modprobe.d/lnet.conf. - מוסיפים את השורה הבאה:
options lnet accept_port=6988
- מפעילים מחדש את ה-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:
יוצרים ספרייה מקומית לנקודת הטעינה:
sudo mkdir -p ~/MOUNT_DIRפותחים את הקובץ
/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שולט בסדר של יצירת עותק של הזיכרון והבדיקה של מערכת הקבצים.
- ההגדרה
שומרים את קובץ ה-
/etc/fstabויוצאים ממנו.מריצים את הפקודה הבאה כדי לטעון את כל מערכות הקבצים שמופיעות ב-
/etc/fstab:sudo mount -a
המכונה שלכם ב-Managed Lustre מותקנת עכשיו. הוא יותקן אוטומטית בכל פעם שהמכונה הווירטואלית ב-Compute Engine תופעל.
אם פקודת ההרכבה נכשלת, אפשר לעיין בהוראות לפתרון בעיות כדי לאבחן את הבעיה.
הגדרות רשת מתקדמות
בקטעים הבאים מפורטות הגדרות רשת מתקדמות.
שימוש בכרטיס רשת משני
אם אתם טוענים את מכונת Managed Lustre באמצעות NIC משני של מכונת Compute Engine שיש לה מספר NICs, אתם צריכים לפעול לפי ההוראות הבאות.
חשוב לשים לב: זה לא אותו דבר כמו multi-NIC.
מגדירים את 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מוסיפים נתיב סטטי לבלוק ה-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 וכו').
מגדירים את השם של ממשק הרשת, ואז מקבלים את כתובת ה-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"}')מקבלים את נקודת הטעינה של מכונת 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"יוצרים טבלת ניתוב ייחודית לממשק ומחילים את כללי התנועה. הערך של
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