במדריך הזה מוסבר איך ליצור לקוח יחיד של Compute Engine ולחבר אותו למופע Parallelstore.
כדי ליצור חיבור מכמה לקוחות של Compute Engine, אפשר לפעול לפי ההוראות במאמר חיבור מ-Compute Engine: כמה לקוחות.
כדי לשפר את הביצועים, כדאי ליצור מכונות וירטואליות של Compute Engine ללקוח באותו אזור שבו נמצא מופע Parallelstore.
ההרשאות הנדרשות
כדי ליצור מכונה וירטואלית (VM) ב-Compute Engine, צריך לקבל את תפקיד ה-IAM הבא:
- Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1). מידע נוסף זמין במסמכי התיעוד של Compute Engine.
יצירת מכונה וירטואלית ב-Compute Engine
פועלים לפי ההוראות כדי ליצור מכונה וירטואלית ב-Compute Engine באמצעות אחת מהתמונות הבאות:
- HPC Rocky Linux 8
- Rocky Linux 9 Optimized
- Red Hat Enterprise Linux (RHEL) 9
- Ubuntu 22.04
- Debian 12
אפשר לבחור כל סוג מכונה ודיסק אתחול. מומלץ להשתמש לפחות בסוג מכונה c2-standard-4. כדי לשפר את ביצועי הלקוח, צריך להגדיל את מספר ה-vCPU כדי להגדיל את קצב העברת הנתונים ברשת. לדוגמה, c3-standard-176 עם רישות ברמה 1 מספק רוחב פס של 200Gbps ליציאה.
מסוף Google Cloud
נכנסים לדף VM instances במסוף Google Cloud .
בוחרים פרויקט ולוחצים על המשך.
לוחצים על Create instance.
מזינים שם למכונה הווירטואלית בשדה שם. מידע נוסף זמין במאמר מוסכמות למתן שמות למשאבים.
בתפריטים הנפתחים, בוחרים את האזור והתחום של מכונת ה-VM. המכונה הווירטואלית צריכה להיות באותו אזור כמו מופע Parallelstore.
בוחרים תצורת מכונה למכונה הווירטואלית מהרשימה.
בקטע דיסק אתחול לוחצים על Change.
לוחצים על הכרטיסייה תמונות ציבוריות.
בתפריט הנפתח Operating system, בוחרים באחת מהאפשרויות הבאות: HPC VM image, Ubuntu או Debian.
בתפריט הנפתח Version, בוחרים באחת מהאפשרויות הבאות: HPC Rocky Linux 8, Ubuntu 22.04 LTS או Debian GNU/Linux 12 (bookworm). בוחרים בגרסת x86/64 או בגרסת Arm64 בהתאם לסוג המכונה.
כדי לאשר את האפשרויות של דיסק האתחול, לוחצים על בחירה.
מרחיבים את הקטע אפשרויות מתקדמות ואז מרחיבים את רשת.
בקטע Network interfaces, בוחרים את רשת ה-VPC שיצרתם במאמר הגדרת רשת VPC.
כדי ליצור את המכונה הווירטואלית ולהפעיל אותה, לוחצים על Create.
gcloud
משתמשים בכלי שורת הפקודה gcloud כדי ליצור מכונה וירטואלית:
HPC Rocky Linux 8
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=LOCATION \
--machine-type=c2d-standard-112 \
--network-interface=stack-type=IPV4_ONLY,subnet=NETWORK_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/cloud-hpc-image-public/global/images/hpc-rocky-linux-8-v20240126,\
mode=rw,size=100,type=pd-balanced
Rocky Linux 9 Optimized
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=LOCATION \
--machine-type=c2d-standard-112 \
--network-interface=stack-type=IPV4_ONLY,subnet=NETWORK_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/rocky-linux-cloud/global/images/rocky-linux-9-optimized-gcp-v20241112,\
mode=rw,size=100,type=pd-balanced
RHEL 9
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=LOCATION \
--machine-type=c2d-standard-112 \
--network-interface=stack-type=IPV4_ONLY,subnet=NETWORK_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/rhel-cloud/global/images/rhel-9-v20241112,\
mode=rw,size=100,type=pd-balanced
Ubuntu 22.04
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=LOCATION \
--machine-type=c2d-standard-112 \
--network-interface=stack-type=IPV4_ONLY,subnet=NETWORK_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-2204-jammy-v20240927,\
mode=rw,size=100,type=pd-balanced
Debian 12
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=LOCATION \
--machine-type=c2d-standard-112 \
--network-interface=stack-type=IPV4_ONLY,subnet=NETWORK_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/debian-cloud/global/images/debian-12-bookworm-v20240415,\
mode=rw,size=100,type=pd-balanced
למידע נוסף על האפשרויות הזמינות, אפשר לעיין במאמרי העזרה של Compute Engine.
חיבור SSH למכונה הווירטואלית של הלקוח
מסוף Google Cloud
כדי להשתמש ב-SSH כדי להתחבר למכונה וירטואלית של Compute Engine, צריך קודם ליצור כלל חומת אש שמאפשר SSH.
נכנסים לדף Firewall policies במסוף Google Cloud .
לוחצים על יצירת כלל לחומת האש.
מזינים שם לכלל.
בשדה Network (רשת), בוחרים את רשת ה-VPC שיצרתם קודם.
בוחרים באפשרות תעבורת נתונים נכנסת (ingress) בתור כיוון התנועה, ובאפשרות אישור בתור פעולה במקרה של התאמה.
בתפריט הנפתח יעדים, בוחרים באפשרות כל המופעים ברשת.
בשדה Source IPv4 ranges (טווחי כתובות IPv4 של המקור), מזינים
0.0.0.0/0.בקטע Protocols and ports (פרוטוקולים ויציאות), בוחרים באפשרות Specified protocols and ports (פרוטוקולים ויציאות שצוינו).
בוחרים באפשרות TCP ומזינים
22בשדה Ports.לוחצים על יצירה.
לאחר מכן, מתחברים למכונה הווירטואלית באמצעות SSH:
נכנסים לדף VM instances במסוף Google Cloud .
בטבלת המופעים, מאתרים את השורה של המופע ולוחצים על SSH בעמודה Connect.
אם מתבקשים לאשר את החיבור, לוחצים על Authorize (אישור).
gcloud
כדי להשתמש ב-SSH כדי להתחבר למכונה וירטואלית של Compute Engine, צריך קודם ליצור כלל חומת אש שמאפשר SSH.
gcloud compute firewall-rules create FIREWALL_RULE_NAME \
--allow=tcp:22 \
--network=NETWORK_NAME \
--source-ranges=0.0.0.0/0 \
--project=PROJECT_ID
לאחר מכן מתחברים באמצעות gcloud compute ssh:
gcloud compute ssh VM_NAME --zone=ZONE --project=PROJECT_ID
התקנה של ספריית הלקוח של DAOS
ספריית הלקוח של DAOS מספקת ממשק דמוי POSIX לשכבת הנתונים של Parallelstore. התוכנה פועלת כסוכן במכשירי הלקוח, וצריך להתקין ולהפעיל אותה כדי לקבל גישה לנתונים.
HPC Rocky Linux 8
צריך להריץ את הפקודות הבאות בכל מכונת VM של Compute Engine.
מוסיפים את מאגר החבילות Parallelstore:
sudo tee /etc/yum.repos.d/parallelstore-v2-6-el8.repo << EOF [parallelstore-v2-6-el8] name=Parallelstore EL8 v2.6 baseurl=https://us-central1-yum.pkg.dev/projects/parallelstore-packages/v2-6-el8 enabled=1 repo_gpgcheck=0 gpgcheck=0 EOFמעדכנים את מטמון המטא-נתונים המקומי:
sudo dnf makecacheהתקנה של
daos-client:sudo dnf install -y epel-release && \ sudo dnf install -y daos-clientשדרוג
libfabric:sudo dnf upgrade -y libfabric
Rocky Linux 9 Optimized
צריך להריץ את הפקודות הבאות בכל מכונת VM של Compute Engine.
מוסיפים את מאגר החבילות Parallelstore:
sudo tee /etc/yum.repos.d/parallelstore-v2-6-el9.repo << EOF [parallelstore-v2-6-el9] name=Parallelstore EL9 v2.6 baseurl=https://us-central1-yum.pkg.dev/projects/parallelstore-packages/v2-6-el9 enabled=1 repo_gpgcheck=0 gpgcheck=0 EOFמעדכנים את מטמון המטא-נתונים המקומי:
sudo dnf makecacheהתקנה של
daos-client:sudo dnf install -y epel-release && \ sudo dnf install -y daos-clientשדרוג
libfabric:sudo dnf upgrade -y libfabric
RHEL 9
צריך להריץ את הפקודות הבאות בכל מכונת VM של Compute Engine.
מוסיפים את מאגר החבילות Parallelstore:
sudo tee /etc/yum.repos.d/parallelstore-v2-6-el9.repo << EOF [parallelstore-v2-6-el9] name=Parallelstore EL9 v2.6 baseurl=https://us-central1-yum.pkg.dev/projects/parallelstore-packages/v2-6-el9 enabled=1 repo_gpgcheck=0 gpgcheck=0 EOFמעדכנים את מטמון המטא-נתונים המקומי:
sudo dnf makecacheהתקנה של
daos-client:sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm sudo dnf install -y epel-release && \ sudo dnf install -y daos-clientשדרוג
libfabric:sudo dnf upgrade -y libfabric
Ubuntu 22.04
צריך להריץ את הפקודות הבאות בכל מכונת VM של Compute Engine.
מוסיפים את מאגר החבילות Parallelstore:
curl https://us-central1-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add - echo "deb https://us-central1-apt.pkg.dev/projects/parallelstore-packages v2-6-deb main" | sudo tee -a /etc/apt/sources.list.d/artifact-registry.listמעדכנים את אינדקס החבילות:
sudo apt updateהתקנה של
daos-client:sudo apt install -y daos-client
Debian 12
צריך להריץ את הפקודות הבאות בכל מכונת VM של Compute Engine.
מוסיפים את מאגר החבילות Parallelstore:
curl https://us-central1-apt.pkg.dev/doc/repo-signing-key.gpg | sudo apt-key add - echo "deb https://us-central1-apt.pkg.dev/projects/parallelstore-packages v2-6-deb main" | sudo tee -a /etc/apt/sources.list.d/artifact-registry.listמעדכנים את אינדקס החבילות:
sudo apt updateהתקנה של
daos-client:sudo apt install -y daos-client
הגדלת מכסת הקבצים הפתוחים (Ubuntu בלבד)
במכונות וירטואליות שמופעלת בהן Ubuntu 22.04, צריך להגדיל את מכסת הקבצים הפתוחים ל-131072 כדי לתמוך ב-dfuse ובספריית היירוט.
אם אתם בוחרים שלא להשתמש בספריית היירוט, אתם יכולים להריץ את הפקודה ulimit -n 131072 מיד לפני הפעלת dfuse.
כדי להגדיל את מכסת הקבצים הפתוחים מ-1024, מריצים את הפקודות הבאות בכל מכונה וירטואלית.
sudo tee -a /etc/security/limits.conf <<EOF
* soft nofile 131072
* hard nofile 131072
EOF
לאחר מכן, מפעילים מחדש:
sudo reboot
אחרי שה-VM של הלקוח מופעל מחדש, מתחברים אליו שוב באמצעות SSH.
עדכון ההגדרה של סוכן DAOS
כך מעדכנים את /etc/daos/daos_agent.yml:
מבטלים את ההערה של
access_pointsומעדכנים אותו עם כתובות ה-IP שלaccessPointsממאפייני מופע Parallelstore. לדוגמה:access_points: ['172.21.95.2', '172.21.95.4', '172.21.95.5'].כדי להדפיס את נקודות הגישה בפורמט הנכון להעתקה ולהדבקה, מריצים את הפקודה הבאה:
echo access_points\: $(gcloud beta parallelstore instances describe \ INSTANCE_ID --location LOCATION --project PROJECT_ID \ --format "value[delimiter=', '](format("{0}", accessPoints))")מבטלים את ההערה בשתי השורות הבאות. ההזחה חשובה, לכן צריך להקפיד על הרווחים לפני
allow_insecure:# transport_config: # allow_insecure: falseצריך לשנות את הערך של
allow_insecureל-trueכי אין תמיכה באישורים.transport_config: allow_insecure: trueמציינים את ממשק הרשת שמספק קישוריות למופע Parallelstore. בדרך כלל הממשק הוא
eth0,ens4אוenp0s3, אבל יכול להיות שהוא יהיה שונה בהתאם להגדרות הרשת. אפשר להשתמש בפקודהrouteכדי להציג את שער ברירת המחדל של המכונה הווירטואלית. בדרך כלל, הממשק שצריך לציין הוא הממשק שמשתף רשת משנה עם השער.קודם כל, מציגים את כל ממשקי הרשת הזמינים:
ip aהפלט אמור להיראות כך:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: eth0@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc noqueue state UP group default link/ether e4:9x:3f:x7:dx:f7 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 10.88.0.3/16 brd 10.88.255.255 scope global eth0 valid_lft forever preferred_lft forever 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1460 qdisc noqueue state DOWN group default link/ether 02:4x:6y:1z:84:45 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft foreverמריצים את הפקודה
routeכדי להציג את טבלת הניתוב:routeהפלט אמור להיראות כך:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 10.88.0.1 0.0.0.0 UG 0 0 0 eth0 10.88.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0בדוגמה, שער ברירת המחדל הוא
10.88.0.1והוא משותף על ידיeth0, לכן צריך לציין אתeth0כממשק לשימוש.עריכה של
/etc/daos/daos_agent.yml. מבטלים את ההערהinclude_fabric_ifacesומעדכנים את הערך:include_fabric_ifaces: ["eth0"]שומרים את הקובץ וסוגרים אותו.
הפעלת סוכן DAOS
HPC Rocky Linux 8
sudo systemctl start daos_agent.service
כדי לוודא שהסוכן פועל, אפשר לבדוק את הסטטוס:
systemctl status daos_agent.service
Rocky Linux 9 Optimized
sudo systemctl start daos_agent.service
כדי לוודא שהסוכן פועל, אפשר לבדוק את הסטטוס:
systemctl status daos_agent.service
RHEL 9
sudo systemctl start daos_agent.service
כדי לוודא שהסוכן פועל, אפשר לבדוק את הסטטוס:
systemctl status daos_agent.service
Ubuntu 22.04
sudo mkdir /var/run/daos_agent && \
sudo daos_agent -o /etc/daos/daos_agent.yml &
Debian 12
sudo mkdir /var/run/daos_agent && \
sudo daos_agent -o /etc/daos/daos_agent.yml &
הגדרה של רישום ביומן
אם צריך, מגדירים רישום מקומי ביומן כדי לעזור בניפוי באגים בצד הלקוח:
export D_LOG_MASK=INFO
export D_LOG_FILE_APPEND_PID=1
rm -f /tmp/client.log.*
export D_LOG_FILE=/tmp/client.log
טעינת המכונה באמצעות dfuse
טוענים את מופע Parallelstore באמצעות dfuse (DAOS FUSE).
עורכים את
/etc/fuse.confכדי להוסיףuser_allow_other.מציינים את האפשרות
--multi-userעםdfuse:mkdir -p /tmp/parallelstore dfuse -m /tmp/parallelstore \ --pool default-pool \ --container default-container \ --disable-wb-cache \ --thread-count=20 \ --eq-count=10 \ --multi-user
כדי לקבל עזרה באופטימיזציה של הערכים של --thread-count ו---eq-count, אפשר לעיין בקטע ספירת השרשורים וספירת תורי האירועים בדף שיקולים לגבי ביצועים.
גישה למופע Parallelstore
המופע של Parallelstore מותקן עכשיו במכונת ה-VM של Compute Engine בנתיב שצוין באמצעות הדגל -m, ואפשר לקרוא ולכתוב בו באמצעות תחביר POSIX רגיל, עם כמה חריגים.
אם מריצים את הפקודה df במופע, הערך של SIZE הוא פי 1.5 מהערך שצוין באמצעות --capacity-gib. נפח האחסון שניתן לשימוש הוא עדיין --capacity-gib בגלל אופי קידוד המחיקה שמשמש את Parallelstore. כל 2 בייטים
שנכתבים משתמשים ב-3 בייטים מנקודת המבט של df.
ביטול הטעינה של המכונה
אפשר לבטל את הטעינה של מופע Parallelstore באמצעות הפקודה הבאה:
sudo umount /tmp/parallelstore/