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

במאמר הזה מוסבר איך להפעיל או להשבית תצוגות וירטואליות במכונה וירטואלית (VM).

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

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

התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות להפעלה או להשבתה של תצוגות וירטואליות במכונה וירטואלית, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין מכונות של Compute ‏ (v1) (roles/compute.instanceAdmin.v1) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

ההרשאות הנדרשות

כדי להפעיל או להשבית תצוגות וירטואליות במכונה וירטואלית, צריך את ההרשאות הבאות:

  • כדי להפעיל או להשבית מסכים וירטואליים במכונה וירטואלית קיימת: ‫compute.instances.updateDisplayDevice במכונה הווירטואלית
  • כדי ליצור מכונה וירטואלית עם תצוגות וירטואליות מופעלות:
    • compute.instances.create בפרויקט
    • כדי להשתמש באימג' בהתאמה אישית ליצירת המכונה הווירטואלית (VM): compute.images.useReadOnly בקובץ אימג'
    • כדי להשתמש ב-snapshot ליצירת המכונה הווירטואלית: compute.snapshots.useReadOnly בקובץ ה-snapshot
    • כדי להשתמש בתבנית של הגדרות מכונה ליצירת המכונה הווירטואלית: compute.instanceTemplates.useReadOnly בתבנית של הגדרות המכונה
    • כדי להקצות רשת מדור קודם למכונה הווירטואלית: compute.networks.use בפרויקט
    • כדי לציין כתובת IP סטטית למכונה הווירטואלית: compute.addresses.use בפרויקט
    • כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת מדור קודם: compute.networks.useExternalIp בפרויקט
    • כדי לציין רשת משנה למכונה הווירטואלית: compute.subnetworks.use בפרויקט או ברשת המשנה שנבחרה
    • כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת VPC: compute.subnetworks.useExternalIp בפרויקט או ברשת המשנה שנבחרה
    • כדי להגדיר מטא-נתונים של המכונה הווירטואלית: compute.instances.setMetadata בפרויקט
    • כדי להגדיר תגים למכונה הווירטואלית: compute.instances.setTags במכונה הווירטואלית
    • כדי להגדיר תוויות למכונה הווירטואלית: compute.instances.setLabels במכונה הווירטואלית
    • כדי להגדיר חשבון שירות לשימוש של המכונה הווירטואלית: compute.instances.setServiceAccount במכונה הווירטואלית
    • כדי ליצור דיסק חדש למכונה הווירטואלית: compute.disks.create בפרויקט
    • כדי לצרף דיסק קיים במצב קריאה-בלבד או במצב קריאה וכתיבה: compute.disks.use בדיסק
    • כדי לצרף דיסק קיים במצב קריאה-בלבד: compute.disks.useReadOnly בדיסק

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

תמחור

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

הגבלות

במכונות וירטואליות שמופעל בהן מסך וירטואלי, חלות המגבלות הבאות:

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

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

  • אי אפשר להשתמש במכשירים של צגים וירטואליים במכונות וירטואליות שמריצות את פלטפורמת המעבד Sandy Bridge.

  • אי אפשר להשתמש במכשירי תצוגה וירטואלית ב-T2A Arm VMs.

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

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

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

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

כדי ליצור מכונה וירטואלית עם תצוגות וירטואליות מופעלות, בוחרים באחת מהאפשרויות הבאות:

המסוף

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

    כניסה לדף Create an instance

  2. מציינים את המאפיינים של המכונה הווירטואלית, כולל השם, האזור וסוג המכונה.

  3. בקטע הצגת המכשיר, מסמנים את התיבה הפעלת הצגת המכשיר.

  4. כדי ליצור את המכונה הווירטואלית (VM), לוחצים על האפשרות Create.

gcloud

כדי ליצור מכונה וירטואלית עם תצוגות וירטואליות מופעלות, משתמשים בפקודה gcloud compute instances create עם הדגל --enable-display-device.

gcloud compute instances create VM_NAME \
    --enable-display-device \
    --machine-type=MACHINE_TYPE \
    --zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • VM_NAME: שם ה-VM.

  • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור המכונה הווירטואלית.

  • ZONE: האזור שבו רוצים ליצור את המכונה הווירטואלית.

Terraform

כדי ליצור מכונה וירטואלית עם תצוגות וירטואליות מופעלות, משתמשים במשאב Terraform עם הארגומנט enable_display שמוגדר לערך true.

לדוגמה, כדי ליצור מכונה וירטואלית באזור us-central1-c עם הפעלת תצוגות וירטואליות, ולציין את f1-micro כסוג המכונה, משתמשים במשאב הבא:


resource "google_compute_instance" "instance_virtual_display" {
  name         = "instance-virtual-display"
  machine_type = "f1-micro"
  zone         = "us-central1-c"

  # Set the below to true to enable virtual display
  enable_display = true

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }
  network_interface {
    # A default network is created for all GCP projects
    network = "default"
    access_config {
    }
  }
}

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

REST

כדי ליצור מכונה וירטואלית עם תצוגות וירטואליות מופעלות, שולחים בקשת POST אל ה-method‏ instances.insert. בגוף הבקשה, כוללים את השדה enableDisplay עם הערך true.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "project/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "displayDevice": {
    "enableDisplay": true
  },
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ]
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המכונה הווירטואלית.

  • ZONE: האזור שבו רוצים ליצור את המכונה הווירטואלית.

  • VM_NAME: שם ה-VM.

  • MACHINE_TYPE: סוג המכונה שבה רוצים להשתמש עבור המכונה הווירטואלית.

  • IMAGE_PROJECT: פרויקט התמונה שמכיל את תמונת מערכת ההפעלה, לדוגמה debian-cloud. מידע נוסף על פרויקטים של תמונות נתמכות זמין במאמר תמונות ציבוריות.

  • IMAGE: מציינים אחת מהאפשרויות הבאות:

    • גרסה ספציפית של תמונת מערכת ההפעלה – לדוגמה, debian-12-bookworm-v20240617.

    • משפחת תמונות, שצריכה להיות בפורמט family/IMAGE_FAMILY. המאפיין הזה מציין את תמונת מערכת ההפעלה העדכנית ביותר שלא הוצאה משימוש. לדוגמה, אם מציינים family/debian-12, נעשה שימוש בגרסה העדכנית ביותר במשפחת תמונות Debian 12. מידע נוסף על שימוש במשפחות של תמונות זמין במאמר בנושא שיטות מומלצות לשימוש במשפחות של תמונות.

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

הפעלת מסכים וירטואליים במכונה וירטואלית קיימת

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

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

המסוף

  1. נכנסים לדף VM instances במסוף Cloud de Confiance .

    לדף VM instances

  2. בעמודה Name (שם), לוחצים על שם המכונה הווירטואלית.

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

  3. לוחצים על עריכה.

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

  4. בקטע הצגת המכשיר, מסמנים את התיבה הפעלת הצגת המכשיר.

  5. לוחצים על Save.

gcloud

כדי להפעיל תצוגות וירטואליות במכונה וירטואלית קיימת, משתמשים בפקודה gcloud compute instances update עם הדגל --enable-display-device.

gcloud compute instances update VM_NAME \
    --enable-display-device \
    --zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • VM_NAME: שם ה-VM.

  • ZONE: האזור שבו נמצאת המכונה הווירטואלית.

REST

כדי להפעיל תצוגות וירטואליות במכונה וירטואלית קיימת, צריך לשלוח בקשת POST ל-method‏ instances.updateDisplayDevice. בגוף הבקשה, כוללים את השדה enableDisplay ומגדירים אותו לערך true.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/updateDisplayDevice

{
  "enableDisplay": true
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט שבו נמצאת המכונה הווירטואלית.

  • ZONE: האזור שבו נמצאת המכונה הווירטואלית.

  • VM_NAME: שם ה-VM.

השבתה של מסכים וירטואליים במכונת VM קיימת

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

כדי להשבית תצוגות וירטואליות במכונה וירטואלית קיימת, בוחרים באחת מהאפשרויות הבאות:

המסוף

  1. נכנסים לדף VM instances במסוף Cloud de Confiance .

    לדף VM instances

  2. בעמודה Name (שם), לוחצים על שם המכונה הווירטואלית.

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

  3. לוחצים על עריכה.

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

  4. בקטע הצגת מכשיר, מבטלים את הסימון בתיבה הפעלת הצגת מכשיר.

  5. לוחצים על Save.

gcloud

כדי להשבית צגים וירטואליים במכונה וירטואלית קיימת, משתמשים בפקודה gcloud compute instances update עם הדגל --no-enable-display-device.

gcloud compute instances update VM_NAME \
    --no-enable-display-device \
    --zone=ZONE

מחליפים את מה שכתוב בשדות הבאים:

  • VM_NAME: שם ה-VM.

  • ZONE: האזור שבו נמצאת המכונה הווירטואלית.

REST

כדי להשבית מסכים וירטואליים במכונה וירטואלית קיימת, צריך לשלוח בקשת POST ל-method‏ instances.updateDisplayDevice. בגוף הבקשה, כוללים את השדה enableDisplay ומגדירים אותו לערך false.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/updateDisplayDevice

{
  "enableDisplay": false
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט שבו נמצאת המכונה הווירטואלית.

  • ZONE: האזור שבו נמצאת המכונה הווירטואלית.

  • VM_NAME: שם ה-VM.

התקנה של מנהל ההתקן של התצוגה הווירטואלית

אם הפעלתם מסכים וירטואליים במכונת Windows וירטואלית שמופעל בה דיסק של מערכת הפעלה של Windows בגרסה מוקדמת יותר מגרסה v20190312, כדי להשתמש במכשיר מסך וירטואלי במכונה הווירטואלית, אתם צריכים להתקין את מנהל ההתקן של המסך הווירטואלי שסופק על ידי Cloud de Confiance by S3NS. אם במכונה הווירטואלית פועלת גרסה עדכנית יותר של קובץ אימג' של מערכת ההפעלה, מנהל ההתקן כבר מותקן ואפשר לדלג על הקטע הזה.

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

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

  2. פותחים טרמינל ב-PowerShell כאדמין.

  3. מתקינים את הרכיב google-compute-engine-driver-gga:

    googet install google-compute-engine-driver-gga
    
  4. מפעילים מחדש את ה-VM.

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

אימות ההתקנה של מנהל ההתקן של המסך הווירטואלי

אם הייתם צריכים להתקין באופן ידני את מנהל ההתקן של התצוגה הווירטואלית במכונה וירטואלית של Windows, כמו שמתואר בקטע הקודם, אתם יכולים לוודא שההתקנה בוצעה בהצלחה באופן הבא:

  1. אם עדיין לא עשיתם זאת, מתחברים למכונה הווירטואלית של Windows.

  2. פותחים את 'ניהול המכשירים'.

  3. ברשימה Device Manager (ניהול מכשירים), ברשימה Display adapters (מתאמי תצוגה), מוודאים שמנהל ההתקן של Google Graphics Array ‏(GGA) מופיע.

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

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