Google Virtual NIC (gVNIC) הוא ממשק רשת וירטואלי שתוכנן במיוחד ל-Compute Engine. הוא משמש כחלופה למנהל התקן אתרנט שמבוסס על virtIO.
ממשק הרשת gVNIC הוא הדור הבא של ממשקי הרשת, והוא מחליף את VirtIO-Net כממשק הרשת הנתמך היחיד ב-Compute Engine לכל סוגי המכונות החדשים (דור 3 ואילך). בסדרות חדשות יותר של מכונות ובפיצ'רים חדשים יותר של רשתות, צריך להשתמש ב-gVNIC במקום ב-VirtIO. שימוש ב-gVNIC כממשק קלט/פלט מודרני עם מכונות וירטואליות ב-Compute Engine מציע את היתרונות הבאים:
- משפר את הביצועים.
- משפר את העקביות על ידי הפחתת בעיות של שכנים רועשים.
- הוא מציג יכולות רשת חדשות מעבר ליכולות של VirtIO.
לפני שמתחילים
- אם אתם משתמשים ב-gVNIC עם תמונות של Windows Server או של לקוח Windows, ודאו שמנהל ההתקן של gVNIC משתמש בגרסה
1.0.0@45ואילך של חבילת GooGet. -
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, מאתחלים את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
מתי כדאי להשתמש ב-gVNIC
gVNIC נתמך ומומלץ לכל משפחות המכונות והדורות. בחלק מהדורות יש תמיכה רק ב-gVNIC. באחרים נדרש שימוש ב-gVNIC בתנאים מיוחדים. כדי לזהות את הדור של סדרת המכונות, אפשר לעיין בטרמינולוגיה של Compute Engine.
השימוש ב-gVNIC לפי דורות של סדרות מכונות הוא כדלקמן:
- סדרות מכונות מהדור השלישי ואילך, לא כולל מכונות Bare Metal, תומכות רק ב-gVNIC לממשק הרשת הווירטואלית.
במכונות מהדור הראשון או השני, צריך להשתמש ב-gVNIC כממשק הרשת הווירטואלית של המכונות אם מתקיים אחד מהתנאים הבאים:
- המופע פועל בפלטפורמת מעבד Arm.
- המכונה היא Confidential VM.
המופע צריך להשיג מהירויות רשת של 50 עד 100 Gbps. ההגדרה הזו חלה על מקרים שעומדים בקריטריונים הבאים:
- מקרים שתומכים בביצועי רשת ברמה 1 לכל מכונה וירטואלית
- מכונות מסוג A2, G2 ו-N1 שתומכות ברוחבי פס גדולים יותר ברשת
תמחור
בדף התמחור של מכונות וירטואליות תוכלו לראות את המחירים העדכניים של רשתות Tier_1.
במאמר תמחור של Compute Engine מפורטות שיטות נוספות שבהן אפשר להשתמש כדי למצוא מידע על תמחור.
תמיכה במערכת הפעלה
ב-Compute Engine, אתם יכולים להשתמש ב-gVNIC בכל תמונות מערכת ההפעלה הציבוריות הנתמכות. במקרים הבאים, אפשר להתקין ידנית את מנהל ההתקן gVNIC:
- קובץ האימג' של מערכת ההפעלה לא כולל את מנהל ההתקן gVNIC
- קובץ אימג' של מערכת ההפעלה לא כולל את הגרסה העדכנית ביותר של דרייבר gVNIC
כדי לראות את מערכות ההפעלה הנתמכות, עיינו בכרטיסייה Interfaces של מערכת ההפעלה. אפשר גם לבדוק את הכרטיסייה Networking features כדי לראות אם יש תמיכה בתכונות של רשתות.
שימוש במערכות הפעלה שלא נתמכות
עבור קובצי אימג' של מערכת ההפעלה שתומכים ב-gVNIC אבל לא כוללים את הגרסה העדכנית של דרייבר gVNIC, אתם יכולים להוריד את הגרסה העדכנית של הדרייבר מ-GitHub.
אתם יכולים להגדיר ולהתקין באופן ידני את הגרסה העדכנית של מנהל ההתקן gVNIC במכונות וירטואליות של Linux או Windows.
אחרי שמעדכנים את מערכת ההפעלה במכונה הווירטואלית כדי להשתמש ב-gVNIC, צריך ליצור קובץ אימג' של מערכת הפעלה בהתאמה אישית על סמך קובץ האימג' של מערכת ההפעלה. אחר כך תוכלו להשתמש באימג' המותאם אישית של מערכת ההפעלה כדי ליצור מכונות וירטואליות נוספות שמשתמשות ב-gVNIC במערכת ההפעלה הזו. מידע נוסף על יצירת מכונות וירטואליות באמצעות קובץ אימג' של מערכת ההפעלה בהתאמה אישית זמין במאמר יצירת קובץ אימג' של מערכת ההפעלה בהתאמה אישית שתומך ב-gVNIC בדף הזה.
כדי להגדיר ולהתקין באופן ידני את הגרסה האחרונה של מנהל ההתקן של gVNIC, צריך לבצע את הפעולות הבאות.
- למכונות וירטואליות של Linux, אפשר לעיין במאמר בנושא מנהל התקן של ליבת Linux Compute Engine Virtual Ethernet.
- למכונות וירטואליות שפועלות ב-FreeBSD, ראו מנהל התקן של FreeBSD ל-Virtual Ethernet ב-Compute Engine.
- במכונות וירטואליות של Windows, קראו את המאמר התקנה או עדכון של מנהל ההתקן של gVNIC ב-Windows.
התקנה או עדכון של מנהל ההתקן של gVNIC ב-Windows
במכונות וירטואליות של Windows, מנהל ההתקן gVNIC נארז ומופץ באמצעות GooGet. כל קובצי האימג' של Windows ש-Google מספקת מוגדרים מראש עם מנהל החבילות GooGet.
כדי להתקין או לעדכן את מנהל ההתקן gVNIC במכונת Windows וירטואלית, מבצעים את השלבים הבאים:
מתחברים למכונה הווירטואלית של Windows.
פותחים את PowerShell או את שורת הפקודה כאדמין.
בודקים אם חבילת מנהל ההתקן של gVNIC כבר מותקנת:
googet installed
בודקים בפלט שהחבילה
google-compute-engine-driver-gvnicמופיעה.בהתאם לפלט, מבצעים את אחת מהפעולות הבאות:
אם החבילה לא מופיעה, מתקינים את מנהל ההתקן:
googet install google-compute-engine-driver-gvnic
אם החבילה מופיעה ברשימה, מעדכנים את הדרייבר לגרסה העדכנית:
googet update google-compute-engine-driver-gvnic
לחלופין, אפשר להריץ את
googet updateכדי לעדכן את כל החבילות המותקנות במכונה של Windows.
מוודאים שמנהל ההתקן של gVNIC מותקן ופעיל ב-VM. למידע נוסף, קראו את המאמר אימות ש-gVNIC מופעל.
מידע נוסף על מנהל ההתקן gVNIC של Windows או על בניית מנהל ההתקן מקובצי המקור זמין במאמר מנהל ההתקן של Windows עבור Ethernet וירטואלי ב-Compute Engine ב-GitHub.
סקירה כללית על שימוש ב-gVNIC עם מכונות וירטואליות של Compute Engine
כדי ליצור מכונה וירטואלית שמשתמשת ב-gVNIC, מבצעים את השלבים הבאים:
- בוחרים אימג' ציבורי של מערכת הפעלה שתומך ב-gVNIC, או יוצרים אימג' מותאם אישית של מערכת הפעלה שתויג לשימוש ב-gVNIC.
- יוצרים מכונה וירטואלית באמצעות קובץ אימג' של מערכת ההפעלה ציבורי או בהתאמה אישית. במהלך יצירת המכונה הווירטואלית, מגדירים את ממשק הרשת לשימוש ב-gVNIC.
- מוודאים ש-gVNIC מופעל.
אם נתקלים בבעיות, אפשר לעיין במאמר בנושא פתרון בעיות ב-Google Virtual NIC.
יצירת קובץ אימג' של מערכת ההפעלה בהתאמה אישית שתומך ב-gVNIC
אפשר ליצור את קובץ האימג' של מערכת ההפעלה באמצעות Google Cloud CLI או REST. מידע מפורט ושיטות מומלצות ליצירת קובצי אימג' של מערכת ההפעלה בהתאמה אישית זמינים במאמר יצירת קובצי אימג' של מערכת ההפעלה בהתאמה אישית.
gcloud
בוחרים קובץ אימג' של מערכת ההפעלה או משפחת תמונות שתומכת ב-gVNIC. מידע נוסף על מערכות הפעלה
באמצעות קובץ אימג' של מערכת ההפעלה או משפחת התמונות של מערכת ההפעלה שנבחרו בשלב הקודם, יוצרים קובץ אימג' של מערכת הפעלה בהתאמה אישית ומתייגים אותו באמצעות
GVNIC. כדי ליצור את קובץ אימג' של מערכת ההפעלה בהתאמה אישית, משתמשים בפקודהgcloud compute images create. לדוגמה, הפקודה הבאה יוצרת קובץ אימג' בהתאמה אישית של מערכת ההפעלה שתומך ב-gVNIC, ומבוסס על קובץ אימג' ספציפי של מערכת ההפעלה.gcloud compute images create IMAGE_NAME \ --source-image=SOURCE_IMAGE \ --source-image-project=SOURCE_IMAGE_PROJECT \ --guest-os-features=GVNICמחליפים את מה שכתוב בשדות הבאים:
-
IMAGE_NAME: השם של קובץ האימג' שרוצים ליצור
SOURCE_IMAGE: קובץ אימג' ספציפי של מערכת ההפעלה שתומך ב-gVNIC, לדוגמה:rocky-linux-8-optimized-gcp-v20220719אם רוצים להשתמש ב קובץ אימג' של מערכת ההפעלה העדכני ביותר במשפחת תמונות, מחליפים את הדגל
--source-imageבדגל--source-image-familyומגדירים את הערך שלו למשפחת תמונות שתומכת ב-gVNIC. לדוגמה:--source-image-family=rocky-linux-8-optimized-gcp.
SOURCE_IMAGE_PROJECT: שם הפרויקט שמכיל את קובץ האימג' של מערכת ההפעלה או את משפחת קובצי האימג' של המקור
דוגמה
כדי ליצור קובץ אימג' של מערכת ההפעלה Rocky Linux 8 Optimized for Google Cloud OS באמצעות קובץ האימג' העדכני ביותר של מערכת ההפעלה ממאגר התמונות
rocky-linux-8-optimized-gcpשל Compute Engine, מריצים את הפקודה הבאה:gcloud compute images create IMAGE_NAME \ --source-image-family=rocky-linux-8-optimized-gcp \ --source-image-project=rocky-linux-cloud \ --guest-os-features=GVNICלמידע נוסף על המקרים שבהם כדאי להשתמש במשפחות של קובצי אימג', קראו את המאמר שיטות מומלצות למשפחות של קובצי אימג'.
-
REST
בוחרים קובץ אימג' של מערכת ההפעלה או משפחת קובצי אימג' שתומכת ב-gVNIC. מידע נוסף זמין במאמר פרטים על מערכת ההפעלה.
משתמשים בקובץ האימג' של מערכת ההפעלה או במשפחת קובצי האימג' שנבחרו בשלב הקודם, יוצרים קובץ אימג' של מערכת ההפעלה ומתייגים אותו בתג
GVNIC. כדי ליצור את קובץ האימג' של מערכת ההפעלה, משתמשים ב-images.insertmethod.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "name":"IMAGE_NAME", "sourceImage":"SOURCE_IMAGE_URI", "guestOsFeatures":[ { "type":"GVNIC" } ] }מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את קובץ האימג' החדש -
IMAGE_NAME: שם לתמונה המותאמת אישית
SOURCE_IMAGE_URI: ה-URI של קובץ אימג' של מערכת ההפעלה הספציפי או של משפחת קובצי האימג' שבהם רוצים להשתמשלדוגמה:
- קובץ אימג' ספציפי של מערכת ההפעלה:
"sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719" - סדרת תמונות:
"sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp"
כשמציינים משפחת קובצי אימג', Compute Engine יוצרת מכונה וירטואלית מקובץ אימג' של מערכת ההפעלה העדכני ביותר במשפחה הזו, שלא הוצא משימוש. למידע נוסף על המקרים שבהם כדאי להשתמש במשפחות של תמונות, אפשר לעיין במאמר בנושא שיטות מומלצות לשימוש במשפחות של תמונות.
- קובץ אימג' ספציפי של מערכת ההפעלה:
-
יצירת מכונה וירטואלית עם תמיכה ב-gVNIC
אתם יכולים ליצור מכונה וירטואלית באמצעות אחד מקובצי האימג' הציבוריים הנתמכים של מערכת ההפעלה, או באמצעות קובץ אימג' בהתאמה אישית של מערכת ההפעלה שיצרתם לפי השלבים שמפורטים במאמר יצירת קובץ אימג' בהתאמה אישית של מערכת ההפעלה שתומך ב-gVNIC.
אפשר גם להפעיל DPDK במכונה הווירטואלית כדי לעבד חבילות רשת מהר יותר, עם זמן אחזור נמוך וביצועים עקביים.
במכונות וירטואליות שתומכות בכמה ממשקי רשת (NIC), אפשר לצרף למכונה הווירטואלית ממשקי רשת מסוגים שונים, כי התמיכה בממשק מוגדרת לכל ממשק רשת בנפרד. ההגדרה הזו נתמכת, אבל לא מומלצת. במכונות וירטואליות שתומכות בכמה כרטיסי רשת, חשוב לציין את הערך nic-type=GVNIC לכל ממשק רשת כשיוצרים את המכונה הווירטואלית.
יצירת מכונה וירטואלית באמצעות קובץ אימג' ציבורי של מערכת ההפעלה
כדי ליצור מכונה וירטואלית באמצעות קובץ אימג' של מערכת ההפעלה ציבורית שתומכת ב-gVNIC, פועלים לפי ההוראות במאמר יצירת מכונות וירטואליות וקונטיינרים עם הגדרת רוחב פס גבוה.
יצירת מכונה וירטואלית באמצעות קובץ אימג' של מערכת ההפעלה בהתאמה אישית
אם אתם לא משתמשים בקובץ אימג' ציבורי של מערכת ההפעלה שתומך ב-gVNIC, קודם אתם צריכים ליצור קובץ אימג' בהתאמה אישית של מערכת ההפעלה שתומך ב-gVNIC. לאחר מכן משתמשים בקובץ אימג' של מערכת ההפעלה המותאמת אישית כדי ליצור מכונה וירטואלית באמצעות Google Cloud המסוף, Google Cloud CLI או REST.
המסוף
נכנסים לדף Create an instance במסוף Google Cloud .
מזינים את השם של המכונה הווירטואלית.
בוחרים את האזור (Zone) שבו רוצים ליצור את המכונה הווירטואלית.
בקטע דיסק אתחול לוחצים על Change.
בחלונית דיסק אתחול, בכרטיסייה Custom images, מבצעים את הפעולות הבאות:
- בוחרים את פרויקט המקור שמכיל את קובץ האימג' של מערכת ההפעלה שיצרתם קודם.
- בוחרים את התמונה מהתפריט הנפתח תמונה.
- לוחצים על בחירה.
כדי להגדיר את gVNIC כממשק הרשת, מרחיבים את הקטע אפשרויות מתקדמות ומבצעים את הפעולות הבאות:
- מרחיבים את הקטע Networking.
- בשדה Network interface card, בוחרים באפשרות
gVNIC.
מבצעים התאמות אישיות נוספות ב-VM לפי הצורך.
לוחצים על Create כדי ליצור את המכונה הווירטואלית.
gcloud
יוצרים את המכונה הווירטואלית באמצעות הפקודה
gcloud compute instances create. בדיסק האתחול, מציינים את קובץ אימג' של מערכת ההפעלה בהתאמה אישית שיצרתם קודם. בממשק הרשת, מגדירים את הערך של הדגלnic-typeלערךGVNIC.gcloud compute instances create VM_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --image=IMAGE_NAME \ --image-project=YOUR_IMAGE_PROJECT \ --network-interface=nic-type=GVNICמחליפים את מה שכתוב בשדות הבאים:
-
VM_NAME: השם של ה-VM החדש. -
ZONE: האזור שבו רוצים ליצור את המכונה הווירטואלית. -
MACHINE_TYPE: סוג המכונה שמשמש ליצירת המכונה הווירטואלית. אם לא מציינים סוג מכונה, ברירת המחדל היאn1-standard-1. -
IMAGE_NAME: קובץ האימג' של מערכת ההפעלה שנוצר בשלב הקודם. -
YOUR_IMAGE_PROJECT: שם הפרויקט שמכיל את קובץ האימג' של מערכת ההפעלה.
-
אופציונלי: מוודאים ש-Compute Engine יצר את המכונה הווירטואלית וש-
nicTypeמוגדר ל-GVNIC.gcloud compute instances describe VM_NAME \ --zone=ZONE
מחליפים את מה שכתוב בשדות הבאים:
-
VM_NAME: שם ה-VM. -
ZONE: האזור שבו יצרתם את המכונה הווירטואלית.
דוגמה
כדי ליצור מכונה וירטואלית של Rocky Linux 8 עם סוג מכונה
n1-standard-1באזורus-west1-bבאמצעות קובץ אימג' של מערכת ההפעלה בשםmy-gvnic-rocky8שנמצא בפרויקטmy-project-12345, מריצים את הפקודה הבאה:gcloud compute instances create my-rocky-linux-vm \ --zone=us-west1-b \ --image=my-gvnic-rocky8 \ --image-project=my-project-12345 \ --network-interface=nic-type=GVNICמה כדאי לקחת בחשבון
הדגל
--network-interfaceכולל דגלים ברמת משנה, כמו הדגלים הבאים:-
--address: הקצאת כתובת IP למכונה הווירטואלית -
--network: הרשת שהממשק יהיה חלק ממנה -
--network-tier: רמת הרשת של הממשק -
--subnet: רשת המשנה שהממשק יהיה חלק ממנה. אם מציינים גם את--network, רשת המשנה חייבת להיות חלק מהרשת שצוינה. -
--private-network-ip: מציינים את כתובת ה-IP מסוג RFC 1918 שרוצים להקצות למכונה הווירטואלית.
רשימה מלאה זמינה במאמר בנושא הדגל
--network-interface.-
REST
יוצרים את המכונה הווירטואלית באמצעות ה-method instances.insert.
- בדיסק האתחול, מציינים את קובץ האימג' של מערכת ההפעלה בהתאמה אישית שיצרתם קודם.
- בממשק הרשת, מגדירים את הערך של השדה
nicTypeל-GVNIC.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"name":"VM_NAME",
"networkInterfaces":[
{
"network":"NETWORK",
"nicType":"GVNIC",
"subnetwork":"SUBNET_NAME"
}
],
"disks":[
{
"initializeParams":{
"sourceImage":"projects/YOUR_IMAGE_PROJECT/global/images/IMAGE_NAME"
},
"boot":true
}
]
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המכונה הווירטואלית. -
ZONE: האזור שבו רוצים ליצור את המכונה הווירטואלית. -
VM_NAME: השם של ה-VM החדש. -
NETWORK: כתובת ה-URL של משאב הרשת של המכונה הווירטואלית הזו. אם לא מציינים רשת ולא מציינים רשת משנה, נעשה שימוש ברשת ברירת המחדלglobal/networks/default. -
SUBNET_NAME: שם רשת המשנה. הרשת מוסקת מרשת המשנה שצוינה. השדה הזה אופציונלי. -
YOUR_IMAGE_PROJECT: השם של הפרויקט שמכיל את קובץ אימג' של מערכת ההפעלה. -
IMAGE_NAME: קובץ האימג' של מערכת ההפעלה שנוצר בשלב הקודם.
אימות שה-gVNIC מופעל
Linux
אתם יכולים להשתמש בכלי lshw כדי לחלץ מידע מפורט על הגדרת החומרה של המכונה הווירטואלית.
כדי להתקין את הכלי lshw במכונה הווירטואלית של Linux, פותחים חיבור SSH למכונה הווירטואלית ומריצים את הפקודה הבאה:
sudo apt-get install lshw -y
כדי לבדוק אם ה-VM משתמש בממשק הרשת gVNIC, מריצים את הפקודה הבאה:
sudo lshw -class network
הפלט אמור להיראות כך:
*-network
description: Ethernet interface
product: Compute Engine Virtual Ethernet [gVNIC]
vendor: Google, Inc.
physical id: 3
bus info: pci@0000:00:03.0
logical name: ens3
version: 00
serial: 42:01:0a:80:00:6f
width: 32 bits
clock: 33MHz
capabilities: msix bus_master cap_list ethernet physical
configuration: autonegotiation=off broadcast=yes driver=gve driverversion=1.0.0
duplex=full ip=10.128.0.111 latency=0 link=yes multicast=yes port=twisted pair
resources: irq:11 memory:c0203000-c0203fff memory:c0200000-c02000ff memory:c0100000-c01fffff
Windows
כדי לוודא שמנהל ההתקן של gVNIC מותקן ופועל ב-VM של Windows, משתמשים ב-PowerShell, בשורת הפקודה או במנהל ההתקנים:
PowerShell: בסשן PowerShell כאדמין, מריצים את הפקודה הבאה:
Get-WindowsDriver -Online -All | Where-Object {$_.ProviderName -eq 'Google' -and $_.OriginalFileName -like '*gvnic*'}שורת פקודה: בסשן של שורת פקודה כאדמין, מריצים את הפקודה הבאה:
dism /online /get-drivers | findstr gvnic
Device Manager:
- במופע של מכונה וירטואלית עם Windows, פותחים את Device Manager (ניהול מכשירים).
- בקטע Network adapters (מתאמי רשת), מוודאים שמופיע Google Ethernet Adapter (מתאם אתרנט של Google).
פתרון בעיות
מידע על פתרון בעיות ב-gVNIC זמין במאמר בנושא פתרון בעיות ב-Google Virtual NIC.
המאמרים הבאים
- מתחברים למכונה.
- מוסיפים דיסקים מתמידים למופע החדש.
- הגדרה של ביצועי רשת ברמה 1 לכל מכונה וירטואלית.
- שינוי הגדרת ה-MTU של רשת VPC
- מידע על מסגרות ג'מבו