שימוש בכרטיס רשת וירטואלי של Google

בקר ממשק רשת וירטואלי של 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

    1. התקינו את ה-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 לממשק הרשת הווירטואלית של המכונות אם הן עומדות באחד מהתנאים הבאים:

תמחור

בדף התמחור של מכונות וירטואליות תוכלו לראות את המחירים העדכניים של רשתות Tier_1.

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

תמיכה במערכות הפעלה

ב-Compute Engine, אתם יכולים להשתמש ב-gVNIC בכל קובץ אימג' ציבורי נתמך של מערכת הפעלה (OS). במקרים הבאים אפשר להתקין ידנית את מנהל ההתקן של gVNIC:

  • קובץ האימג' של מערכת ההפעלה לא כולל את מנהל ההתקן של gVNIC
  • בקובץ האימג' של מערכת ההפעלה אין את הגרסה העדכנית של מנהל ההתקן של gVNIC

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

שימוש במערכות הפעלה לא נתמכות

אם קובץ האימג' של מערכת ההפעלה תומך ב-gVNIC אבל לא כולל את הגרסה העדכנית של מנהל ההתקן של gVNIC, אתם יכולים להוריד את הגרסה העדכנית של מנהל ההתקן מ-GitHub.

אפשר להגדיר ולהתקין באופן ידני את הגרסה העדכנית של מנהל ההתקן של gVNIC במכונות וירטואליות של Linux או של Windows.

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

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

התקנה או עדכון של מנהל ההתקן של gVNIC ב-Windows

במכונות וירטואליות של Windows, מנהל ההתקן של gVNIC נארז ומופץ באמצעות GooGet. כל קובצי האימג' של Windows ש-Google מספקת מוגדרים מראש עם מנהל החבילות GooGet.

כדי להתקין או לעדכן את מנהל ההתקן של gVNIC ב-VM של Windows:

  1. מתחברים ל-VM של Windows.

  2. פותחים את PowerShell או את שורת הפקודה כאדמין.

  3. בודקים אם חבילת מנהל ההתקן של gVNIC כבר מותקנת:

    googet installed
    

    בפלט, מוודאים שהחבילה google-compute-engine-driver-gvnic מופיעה ברשימה.

  4. בהתאם לפלט, מבצעים את אחת מהפעולות הבאות:

    • אם החבילה לא מופיעה ברשימה, מתקינים את מנהל ההתקן:

      googet install google-compute-engine-driver-gvnic
      
    • אם החבילה מופיעה ברשימה, מעדכנים את הדרייבר לגרסה העדכנית:

      googet update google-compute-engine-driver-gvnic
      

      לחלופין, אפשר להריץ את הפקודה googet update כדי לעדכן את כל החבילות שמותקנות במכונה של Windows.

  5. מוודאים שמנהל ההתקן של gVNIC מותקן ופעיל ב-VM. למידע נוסף, קראו את המאמר איך מוודאים ש-gVNIC מופעל.

מידע נוסף על מנהל ההתקן של Windows gVNIC, או על בניית מנהל ההתקן מקובצי המקור, זמין במאמר מנהל ההתקן של Windows ל-Compute Engine Virtual Ethernet ב-GitHub.

סקירה כללית על השימוש ב-gVNIC עם מכונות וירטואליות של Compute Engine

כדי ליצור מכונה וירטואלית שמשתמשת ב-gVNIC:

  1. בוחרים קובץ אימג' ציבורי של מערכת ההפעלה שתומך ב-gVNIC, או יוצרים קובץ אימג' בהתאמה אישית של מערכת ההפעלה שמתויג לשימוש ב-gVNIC.
  2. יוצרים מכונה וירטואלית באמצעות קובץ אימג' של מערכת ההפעלה, ציבורי או בהתאמה אישית. במהלך יצירת המכונה הווירטואלית, מגדירים את ממשק הרשת לשימוש ב-gVNIC.
  3. מוודאים ש-gVNIC מופעל.

אם נתקלתם בבעיות, תוכלו להיעזר במאמר פתרון בעיות ב-Google Virtual NIC.

יצירת קובץ אימג' של מערכת הפעלה מותאם אישית שתומך ב-gVNIC

אפשר ליצור את קובץ האימג' של מערכת ההפעלה באמצעות Google Cloud CLI או REST. במאמר יצירת קובצי אימג' של מערכת ההפעלה בהתאמה אישית מפורט מידע נוסף ושיטות מומלצות ליצירת קובצי אימג' של מערכת ההפעלה בהתאמה אישית.

gcloud

  1. בוחרים קובץ אימג' של מערכת ההפעלה או משפחת קובצי אימג' שתומכת ב-gVNIC. מידע נוסף על פרטי מערכת ההפעלה

  2. משתמשים בקובץ האימג' של מערכת ההפעלה או במשפחת קובצי האימג' שנבחרו בשלב הקודם, יוצרים קובץ אימג' בהתאמה אישית של מערכת ההפעלה ומתייגים אותו בתג 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

  1. בוחרים קובץ אימג' של מערכת ההפעלה או משפחת קובצי אימג' שתומכת ב-gVNIC. מידע נוסף זמין במאמר פרטים על מערכת ההפעלה.

  2. משתמשים בקובץ האימג' של מערכת ההפעלה או במשפחת קובצי האימג' שנבחרו בשלב הקודם, יוצרים קובץ אימג' של מערכת ההפעלה ומתייגים אותו בתג GVNIC. כדי ליצור את קובץ האימג' של מערכת ההפעלה, משתמשים ב-method‏ images.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.

המסוף

  1. נכנסים לדף Create an instance במסוף Google Cloud .

    כניסה לדף Create an instance

  2. מזינים את השם (Name) של המכונה הווירטואלית.

  3. בוחרים את האזור (Zone) שבו רוצים ליצור את המכונה הווירטואלית.

  4. בקטע דיסק אתחול לוחצים על Change.

  5. בחלונית דיסק אתחול, בכרטיסייה Custom images, מבצעים את הפעולות הבאות:

    1. בוחרים את פרויקט המקור שמכיל את קובץ האימג' של מערכת ההפעלה שיצרתם קודם.
    2. בוחרים את התמונה מהתפריט הנפתח תמונה.
    3. לוחצים על בחירה.
  6. כדי להגדיר את gVNIC כממשק הרשת, מרחיבים את הקטע Advanced options ומבצעים את הפעולות הבאות:

    1. מרחיבים את הקטע Networking.
    2. בשדה Network interface card, בוחרים באפשרות gVNIC.
  7. מבצעים התאמות אישיות נוספות למכונה הווירטואלית לפי הצורך.

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

gcloud

  1. יוצרים את המכונה הווירטואלית באמצעות הפקודה 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: שם הפרויקט שמכיל את קובץ האימג' של מערכת ההפעלה.
  2. אופציונלי: מוודאים ש-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:

    1. במכונה הווירטואלית של Windows, פותחים את Device Manager.
    2. בקטע מתאמי רשת, מוודאים שמופיע מתאם אתרנט של Google.

פתרון בעיות

כדי לפתור בעיות ב-gVNIC, קראו את המאמר פתרון בעיות ב-Google Virtual NIC.

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