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

ממשק רשת וירטואלי (gVNIC) של Google הוא ממשק רשת וירטואלי שנועד במיוחד ל-Compute Engine. ‏gVNIC הוא חלופה למנהל התקן של Ethernet שמבוסס על virtIO.

ממשק הרשת gVNIC הוא הדור הבא של ממשקי הרשת, והוא מחליף את VirtIO-Net בתור ממשק הרשת היחיד שנתמך ב-Compute Engine לכל סוגי המכונות החדשים (דור 3 ואילך). בסדרות מכונות חדשות יותר ובתכונות רישות חדשות יותר נדרש gVNIC במקום VirtIO. שימוש ב-gVNIC כממשק קלט/פלט מודרני עם מכונות וירטואליות ב-Compute Engine מציע את היתרונות הבאים:

  • משפרים את הביצועים.
  • משפר את העקביות על ידי הפחתת בעיות של שכנים רועשים.
  • הוא מציג יכולות רשת חדשות מעבר ליכולות של VirtIO.

לפני שמתחילים

  • אם אתם משתמשים ב-gVNIC עם תמונות של Windows Server או של לקוח Windows, אתם צריכים לוודא שמנהל ההתקנים של gVNIC משתמש בגרסה 1.0.0@45 או בגרסה מתקדמת יותר של חבילת GooGet.
  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS

    gcloud

    1. התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init
  • הגדרת אזור ותחום כברירת מחדל
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .

מתי כדאי להשתמש ב-gVNIC

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

השימוש ב-gVNIC לפי דורות של סדרות מכונות הוא כדלקמן:

  • סדרות מכונות מהדור השלישי ואילך, לא כולל מופעי Bare Metal, תומכות רק ב-gVNIC לממשק הרשת הווירטואלי.
  • אם סדרת המכונות מהדור הראשון או השני עומדת באחד מהתנאים הבאים, היא חייבת להשתמש ב-gVNIC עבור ממשק הרשת הווירטואלי של המכונות:

תמחור

כדי לראות את המחירים העדכניים של רשתות Tier_1, אפשר לעיין בדף התמחור של מכונות VM.

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

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

ב-Compute Engine, אתם יכולים להשתמש ב-gVNIC בכל תמונות מערכת ההפעלה הציבוריות הנתמכות. במקרים הבאים, אפשר להתקין את מנהל ההתקן gVNIC באופן ידני:

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

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

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

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

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

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

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

סקירה כללית על שימוש ב-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 Cloud de Confiance by S3NS OS באמצעות תמונת מערכת ההפעלה העדכנית ביותר ממשפחת התמונות של Compute Engine rocky-linux-8-optimized-gcp, מריצים את הפקודה הבאה:

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

    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 יוצר מכונת VM מתמונת מערכת ההפעלה העדכנית ביותר שלא הוצאה משימוש באותה משפחה. מידע נוסף על המקרים שבהם כדאי להשתמש במשפחות תמונות זמין במאמר שיטות מומלצות לשימוש במשפחות תמונות.

יצירת מכונה וירטואלית עם תמיכה ב-gVNIC

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

אפשר גם להפעיל DPDK במכונה הווירטואלית כדי לעבד חבילות רשת מהר יותר, עם זמן אחזור נמוך וביצועים עקביים.

במכונות וירטואליות שתומכות בכמה ממשקי רשת (NIC), אפשר לצרף ממשקי NIC מסוגים שונים למכונה הווירטואלית, כי התמיכה בממשק מוגדרת לכל NIC. ההגדרה הזו נתמכת, אבל אנחנו לא ממליצים עליה. במכונות וירטואליות שתומכות בכמה כרטיסי ממשק רשת (NIC), צריך לוודא שמציינים nic-type=GVNIC לכל ממשק רשת כשיוצרים את המכונה הווירטואלית.

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

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

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

אם אתם לא משתמשים בתמונת מערכת הפעלה ציבורית שתומכת ב-gVNIC, אתם צריכים קודם ליצור תמונת מערכת הפעלה בהתאמה אישית שתומכת ב-gVNIC. לאחר מכן משתמשים בתמונת מערכת ההפעלה המותאמת אישית כדי ליצור מכונה וירטואלית באמצעות Cloud de Confiance המסוף, Google Cloud CLI או REST.

המסוף

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

    כניסה לדף Create an instance

  2. מזינים את השם של מכונת ה-VM.

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

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

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

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

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

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

gcloud

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

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

  1. במופע של מכונת Windows וירטואלית, פותחים את 'ניהול המכשירים'.
  2. בקטע Network Adapters (מתאמי רשת), אמורים להופיע: "Google Ethernet Adapter"

פתרון בעיות

מידע על פתרון בעיות ב-gVNIC זמין במאמר בנושא פתרון בעיות ב-Google Virtual NIC.

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