בקר ממשק רשת וירטואלי של Google (gVNIC) הוא ממשק רשת וירטואלי שתוכנן במיוחד ל-Compute Engine. הוא משמש כחלופה למנהל התקן אתרנט שמבוסס על virtIO.
gVNIC הוא ממשק הרשת מהדור הבא שמחליף את VirtIO-Net כממשק הרשת היחיד שנתמך ב-Compute Engine לכל סוגי המכונות החדשים (דור 3 ואילך). בסדרות חדשות יותר של מכונות ובפיצ'רים חדשים יותר של רשתות, צריך להשתמש ב-gVNIC במקום ב-VirtIO. שימוש ב-gVNIC כממשק קלט/פלט מודרני עם מכונות וירטואליות של Compute Engine מציע את היתרונות הבאים:
- משפר את הביצועים.
- משפר את העקביות על ידי הפחתת בעיות של שכנים רועשים.
- מציג יכולות רשת חדשות מעבר ליכולות של VirtIO.
לפני שמתחילים
- אם אתם משתמשים ב-gVNIC עם קובצי אימג' של Windows Server או Windows Client, ודאו שמנהל ההתקן של 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 לממשק הרשת הווירטואלית של המכונות אם הן עומדות באחד מהתנאים הבאים:
- המכונה פועלת בפלטפורמת המעבד (CPU) של Arm.
- המכונה היא Confidential VM.
המכונה צריכה להגיע למהירויות רשת של בין 50 ל-100Gbps. ההגדרה הזו חלה על מקרים שעומדים בקריטריונים הבאים:
- מכונות שתומכות בביצועי רשת Tier_1 לכל מכונה וירטואלית
- מכונות מסוג A2, G2 ו-N1 שתומכות ברוחבי פס גדולים יותר ברשת
תמחור
בדף התמחור של מכונות וירטואליות תוכלו לראות את המחירים העדכניים של רשתות Tier_1.
במאמר תמחור ב-Compute Engine מפורטות שיטות נוספות שבהן אפשר להשתמש כדי למצוא מידע על תמחור.
תמיכה במערכות הפעלה
ב-Compute Engine, אתם יכולים להשתמש ב-gVNIC בכל קובץ אימג' ציבורי נתמך של מערכת הפעלה (OS). במקרים הבאים אפשר להתקין ידנית את מנהל ההתקן של gVNIC:
- קובץ האימג' של מערכת ההפעלה לא כולל את מנהל ההתקן של gVNIC
- בקובץ האימג' של מערכת ההפעלה אין את הגרסה העדכנית של מנהל ההתקן של gVNIC
כדי לראות את מערכות ההפעלה הנתמכות, עיינו בכרטיסייה Interfaces של מערכת ההפעלה. בכרטיסייה תכונות רשת אפשר לבדוק אם יש תמיכה בתכונות רשת.
שימוש במערכות הפעלה לא נתמכות
אם קובץ האימג' של מערכת ההפעלה תומך ב-gVNIC אבל לא כולל את הגרסה העדכנית של מנהל ההתקן של gVNIC, אתם יכולים להוריד את הגרסה העדכנית של מנהל ההתקן מ-GitHub.
אפשר להגדיר ולהתקין באופן ידני את הגרסה העדכנית של מנהל ההתקן של gVNIC במכונות וירטואליות של Linux או של Windows.
אחרי שמעדכנים את מערכת ההפעלה במכונה הווירטואלית לשימוש ב-gVNIC, יוצרים קובץ אימג' בהתאמה אישית של מערכת ההפעלה על סמך קובץ האימג' של מערכת ההפעלה הזו. אחר כך תוכלו להשתמש בקובץ האימג' של מערכת ההפעלה בהתאמה אישית כדי ליצור מכונות וירטואליות נוספות שמשתמשות ב-gVNIC במערכת ההפעלה הזו. מידע נוסף על יצירת מכונות וירטואליות באמצעות קובץ אימג' בהתאמה אישית של מערכת ההפעלה זמין בקטע יצירת קובץ אימג' בהתאמה אישית של מערכת ההפעלה שתומך ב-gVNIC שבדף הזה.
כדי להגדיר ולהתקין באופן ידני את הגרסה האחרונה של מנהל ההתקן של gVNIC, צריך לבצע את הפעולות הבאות.
- במכונות וירטואליות של Linux, עיינו במאמר מנהל התקן של ליבת Linux ל-Compute Engine Virtual Ethernet.
- במכונות וירטואליות שפועלות ב-FreeBSD, ראו מנהל ההתקן של Compute Engine Virtual Ethernet FreeBSD.
- במכונות וירטואליות של Windows, קראו את המאמר התקנה או עדכון של מנהל ההתקן של gVNIC ב-Windows.
התקנה או עדכון של מנהל ההתקן של gVNIC ב-Windows
במכונות וירטואליות של Windows, מנהל ההתקן של gVNIC נארז ומופץ באמצעות GooGet. כל קובצי האימג' של Windows ש-Google מספקת מוגדרים מראש עם מנהל החבילות GooGet.
כדי להתקין או לעדכן את מנהל ההתקן של gVNIC ב-VM של Windows:
מתחברים ל-VM של 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 מופעל.
מידע נוסף על מנהל ההתקן של Windows gVNIC, או על בניית מנהל ההתקן מקובצי המקור, זמין במאמר מנהל ההתקן של Windows ל-Compute Engine Virtual Ethernet ב-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 באמצעות קובץ האימג' העדכני של מערכת ההפעלה ממשפחת קובצי האימג' של
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. כדי ליצור את קובץ האימג' של מערכת ההפעלה, משתמשים ב-methodimages.insert.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 מסוגים שונים, כי התמיכה בממשק מוגדרת לכל NIC. למרות שההגדרה הזו נתמכת, אנחנו לא ממליצים עליה. במכונות וירטואליות שתומכות בכמה כרטיסי רשת, חשוב לציין את הערך nic-type=GVNIC לכל ממשק רשת כשיוצרים את המכונה הווירטואלית.
יצירת מכונה וירטואלית באמצעות קובץ אימג' ציבורי של מערכת ההפעלה
כדי ליצור מכונה וירטואלית באמצעות קובץ אימג' של מערכת ההפעלה ציבורי שתומכת ב-gVNIC, פועלים לפי ההוראות במאמר יצירת מכונות וירטואליות ומאגרים עם הגדרת רוחב פס גבוה.
יצירת מכונה וירטואלית באמצעות קובץ אימג' של מערכת ההפעלה בהתאמה אישית
אם אתם לא משתמשים בקובץ אימג' ציבורי של מערכת ההפעלה שתומך ב-gVNIC, קודם אתם צריכים ליצור קובץ אימג' בהתאמה אישית של מערכת ההפעלה שתומך ב-gVNIC. אחר כך משתמשים בקובץ האימג' של מערכת ההפעלה בהתאמה אישית כדי ליצור מכונה וירטואלית באמצעות Google Cloud מסוף, Google Cloud CLI או REST.
המסוף
נכנסים לדף Create an instance במסוף Google Cloud .
מזינים את השם (Name) של המכונה הווירטואלית.
בוחרים את האזור (Zone) שבו רוצים ליצור את המכונה הווירטואלית.
בקטע דיסק אתחול לוחצים על Change.
בחלונית דיסק אתחול, בכרטיסייה Custom images, מבצעים את הפעולות הבאות:
- בוחרים את פרויקט המקור שמכיל את קובץ האימג' של מערכת ההפעלה שיצרתם קודם.
- בוחרים את התמונה מהתפריט הנפתח תמונה.
- לוחצים על בחירה.
כדי להגדיר את gVNIC כממשק הרשת, מרחיבים את הקטע Advanced options ומבצעים את הפעולות הבאות:
- מרחיבים את הקטע Networking.
- בשדה Network interface card, בוחרים באפשרות
gVNIC.
מבצעים התאמות אישיות נוספות למכונה הווירטואלית לפי הצורך.
לוחצים על 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: השם של המכונה הווירטואלית החדשה. -
ZONE: האזור שבו יוצרים את המכונה הווירטואלית. -
MACHINE_TYPE: סוג המכונה שבה משתמשים כשיוצרים את המכונה הווירטואלית. אם לא מציינים סוג מכונה, ברירת המחדל היאn1-standard-1. -
IMAGE_NAME: קובץ האימג' של מערכת ההפעלה שנוצר בשלב הקודם. -
YOUR_IMAGE_PROJECT: שם הפרויקט שמכיל את קובץ האימג' של מערכת ההפעלה.
-
אופציונלי: מוודאים ש-Compute Engine יצר את ה-VM ושהערך של
nicTypeמוגדר כ-GVNIC.gcloud compute instances describe VM_NAME \ --zone=ZONE
מחליפים את מה שכתוב בשדות הבאים:
-
VM_NAME: שם המכונה הווירטואלית. -
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: השם של המכונה הווירטואלית החדשה. -
NETWORK: כתובת ה-URL של משאב הרשת של המכונה הווירטואלית הזו. אם לא מציינים את הרשת או את רשת המשנה, המערכת משתמשת ברשת ברירת המחדלglobal/networks/default. -
SUBNET_NAME: שם רשת המשנה. הרשת מוסקת מרשת המשנה שצוינה. השדה הזה אופציונלי. -
YOUR_IMAGE_PROJECT: שם הפרויקט שמכיל את קובץ האימג' של מערכת ההפעלה. -
IMAGE_NAME: קובץ האימג' של מערכת ההפעלה שנוצר בשלב הקודם.
איך מוודאים ש-gVNIC מופעל
כדי לוודא שמנהל ההתקן של gVNIC מותקן ופעיל במכונה הווירטואלית, צריך להשתמש באחד מהתהליכים הבאים למכונות של Linux או של Windows.
אימות מנהל ההתקן של 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
אימות מנהל ההתקן של gVNIC במכונות וירטואליות של Windows
כדי לוודא שמנהל ההתקן של gVNIC מותקן ופועל ב-VM של Windows, אפשר להשתמש ב-PowerShell, בשורת הפקודה או ב-Device Manager:
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.
- בקטע מתאמי רשת, מוודאים שמופיע מתאם אתרנט של Google.
פתרון בעיות
כדי לפתור בעיות ב-gVNIC, קראו את המאמר פתרון בעיות ב-Google Virtual NIC.
המאמרים הבאים
- מתחברים למכונה.
- מוסיפים דיסקים קבועים למכונה החדשה.
- הגדרת ביצועי רשת Tier_1 לכל מכונה וירטואלית.
- שינוי הגדרת ה-MTU של רשת VPC
- מידע על מסגרות ענק