האם יש לך צורך לייצא מכונות וירטואליות של Hyper-V ולהעביר אותן ממארח אחד לאחר? מה לגבי ייצוא מכונת וירטואלית מתחנת הפיתוח שלך למארח של Hyper-V בייצור? אם כן, אתה במקום הנכון!
במאמר זה, תלמד כיצד לייצא ולייבא מכונה וירטואלית באמצעות מנהל ה-Hyper-V וכוח PowerShell. מוכן? בוא נתחיל!
דרישות מוקדמות
מאמר זה יהיה מדריך. אם אתה מתכנן לעקוב אחרי השלבים בדיוק, יהיה עליך להשתמש במספר התוכניות הבא:
- PowerShell 7 או Windows PowerShell 5.1 – המדריך יתמקד ב-PowerShell 7, אך הפקודות יעבדו גם עם Windows PowerShell 5.1.
- A Windows Server with Hyper-V enabled – This tutorial is based on the insider preview released March 2021, but any Windows Server from 2012R2 onward will suffice.
- A virtual machine guest – This tutorial is using an Alpine Linux guest because it’s light on resources. You can use any guest Operating System you like.
- A local Windows user account in the local administrators group on the Hyper-V host.
שלבים לייצוא של מכונות Hyper-V
אם אתה לא אוהב ממש לעבוד עם שורת פקודה או שיש לך רק מכונה וירטואלית אחת שתרצה לשמור על הדיסק, מנהל ה-Hyper-V הוא בחירה מצוינת. בהנחה שאתה על המארח שלך של Hyper-V ויש לך מכונה וירטואלית רצינית:
1. בתפריט החיפוש של Windows שלך, הקלד "hyper". יש להופיע לך קונסולת מנהל ה-Hyper-V. אם כן, לחץ עליה כדי לפתוח.
2. מצא את המכונה הוירטואלית לייצוא, לחץ עליה ימינה ולחץ על ייצוא.

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

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

4. כעת, אשר כי כל הקבצים הנדרשים נמצאים. תראה שלוש תת-תיקיות. תת-תיקיות אלו מכילות את כל הקבצים הנדרשים כדי שהמכונה הווירטואלית שנייצאת תוכל להתחיל; צילומי מסך, דיסקים קשיחים ומכונות וירטואליות.

- התיקייה Snapshots מכילה מידע על צילומי המסך של המכונה הווירטואלית. התיקייה עשויה להיות ריקה אם לא היו צילומי מסך למכונה הווירטואלית. בתוך התיקייה הזו, תראה את הסיומות של הקבצים VMCX, VMRS, ו־VMGS. הקובץ הבינארי VMCX מכיל מידע על התצורה המקורית של המכונה הווירטואלית שנייצאת. הקובץ הבינארי VMRS מכיל מידע על מצב הריצה של המכונה הווירטואלית. בלעדיו, המכונה הווירטואלית לא יכולה להתחיל. ואחרון אך לא פחות חשוב, קובץ VMGS. אין לי מושג מהו הקובץ הזה. אם אתה יודע, השאר הערה.
אם יש לך ניסיון קודם עם Hyper-V, ייתכן ששמת לב למשהו שונה בסיומות הקבצים. החל מ-Windows Server 2016, Hyper-V לא משתמש יותר בקבצי XML עבור מידע תצורה ובמקום זאת העביר לקבצים בינאריים. קרא עוד על סיומות אלו.
אם יש ל-VM שלך יותר מדגם אחד, תראה קבצים מרובים VMCX, VMRS ו-VMGS עבור כל נקודת בדיקה שיש ל-VM.

- תיקיית דיסקים קשיחים וירטואליים מכילה את כל קבצי התמונה של הדיסק הקשיח או *.vhdx עבור ה-VM. הקובץ AVHDX או דיסק קשה וירטואלי אוטומטי הוא קובץ שוניות המשמש לנקודות בדיקה של מכונה וירטואלית. אם יש למכונה הווירטואלית שלך יותר מדגם אחד, תראה קבצים מרובים של AVHDX.

- תיקיית מכונות וירטואליות מכילה קבצי הגדרות ה-VM המשמשים להפעלת ה-VM. כמו בתיקיית Snapshots, תראה כאן גם קבצים בינאריים של VMCX, VMRS ו-VMGS.

אם שלושת התיקיות נמצאות ומכילות קבצים, ייצאת בהצלחה.
שימוש בכח עוזר כדי ליצוא VM
אם אתה אוהב שורת פקודה או יש לך הרבה VMs לייצא, שימוש ב-PowerShell לייצוא VM הוא אפשרות נהדרת גם. כדי לייצא Hyper-V באמצעות PowerShell, השתמש ב-Export-VM
. לעשות זאת, בהנחה שאתה נמצא על מחשב ה-Hyper-V שלך וה-VM שלך מנותקת:
1. פתח חלון פקודה של PowerShell.
2. שאל את מארח ה-Hyper-V כדי לקבל מלאי של ה-VMs שלך ושם ה-VM שברצונך לייצא. המדריך יייצא VM בשם Alpine Linux 01
.

Export-VM
command3. צור תיקייה לייצוא ה-VM אליה. המדריך יייצא את ה-VM ל-C:\Export_VM.
4. ייצא את ה-VM עם פקודת ה-cmdlet Export-VM
, כאשר אתה מספק את שם המכונה הווירטואלית כפרמטר ל-Name
, את הנתיב לתיקייה לשמירת הקובץ בפרמטר Path
, וגם את הפרמטר PassThru
.
הפרמטר
PassThru
אופציונלי ומשמש להחזיר את אובייקט ה-VM שנייצא. אחרת,Export-VM
אינו מחזיר תוצאה.

כאשר VM רצה,
Export-VM
לא ישמור אוטומטית על הזכרון. אם תרצה לשמור את תוכן הזכרון שרץ ב-VM, השתמש בפרמטר-CaptureLiveState CaptureSavedState
עםExport-VM
. למד עוד על הטכנולוגיה המשמשת ללכידת הזכרון.
5. כעת הסר את ה-VM מ-Hyper-V. אל תדאג! יש לך אותו נשמר!
שימוש ב-Hyper-V Manager לייבוא של VM
כאשר יש לך כבר את ה-VM מיוצא, אם יש תקלה וה-VM נמחק, אין צורך לדאוג! כבר יש לך אותו מיוצא לדיסק. בוא נחזיר אותו. לעשות זאת, בהנחה שאתה שוב נמצא על המארח שלך של Hyper-V:
1. פתח את Hyper-V Manager.
2. לחץ על פריט התפריט ייבא מכונה וירטואלית הממוקם בצד ימין של חלון Hyper-V Manager. יופיע לך אשף ייבא מכונה וירטואלית. לחץ על הבא.

3. לְבָרֵר את הנתיב אל המכונה הווירטואלית שייצאת ואז לחץ על הבא. במדריך זה, המכונה הווירטואלית נשמרת ב- C:\Export_VM\Alpine Linux 01.
בניגוד לייבוא עם PowerShell, האשף ימצא את קובץ ה-VMCX של המכונה הווירטואלית עבורך.

4. לאחר ש- Hyper-V מזהה את קבצי התצורה של המכונה הווירטואלית בתוך התיקייה (בדוגמה זו, C:\Exported_VM\Alpine Linux 01\Virtual Machines\), Hyper-V יבקש ממך לבחור מכונה וירטואלית לייבוא. בחר את ה-VM שברצונך לייבא ולחץ על הבא.

5. לאחר מכן, בחר את סוג הייבוא שברצונך לבצע. נתחיל תחילה בחקירת האפשרויות בפרטיות יותר.
כאשר בוחרים באפשרות 'לרשום את המכונה הווירטואלית במקום (להשתמש במזהה ייחודי קיים)', אתה מניח שקבצי ה-VM שיוצאים נמצאים במיקום הסופי שלהם, כלומר שאינך מעביר את ה-VM לתיקייה חדשה. קבצי ה-VM שיוצאים מהפעלת המכונה הווירטואלית. ה-UID אינו משתנה.
ה-UID הוא מה ש- Hyper-V משתמשת בו כדי לזהות מכונה ווירטואלית. אם Hyper-V זוהה כי ה-UID זהה כרגע מורשם, תקבל שגיאה.
כאשר אתה משחזר את המכונה הווירטואלית, תוכל לבחור מיקום או להשתמש במיקום ברירת המחדל של Hyper-V עבור קבצי המכונה הווירטואלית שייצאו.
כאשר אתה מעתיק את המכונה הווירטואלית, זה דומה לשחזור של VM שייצאה, אך עם מזהה ייחודי חדש (UID). מזהה ייחודי חדש מאפשר לך להפעיל מחדש את אותה מכונה ווירטואלית פעמים רבות לאותה מערכת או למערכת Hyper-V שונה.
למצגת, בוחרים את סוג היבוא העתקת המכונה הווירטואלית. העתקת ה-VM תיצור מזהה ייחודי חדש (UID). כל VM של Hyper-V מזוהה על ידי UID. אפשרות זו אפשרית כרגע אז לחץ הבא.

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

7. בחר את המיקום עבור ה-VM הידוע בשם תיקיית אחסון. תיקיית האחסון היא המקום בו ישובו קבצי ה-VHDX וה-AVHDX. להדרכה זו, קבל את המיקום המחדל ולחץ הבא.

8. בדוק את דף הסיכום וכאשר אתה מוכן, לחץ סיום כדי להתחיל ביבוא.

כאשר Hyper-V משלים את היבוא, הוא חוזר אל חלון מנהל Hyper-V, וכעת תראה את ה-VM שיבוא, כפי שמוצג למטה.

שימוש בכוח PowerShell ליבוא VM
אם יבוא VM דרך מנהל Hyper-V אינו הדבר שלך, אין בעיה. השתמש ב-PowerShell! כדי ליבא VM באמצעות PowerShell, תשתמש ב-Import-VM cmdlet. שקול את התרחיש הבא:
שואפים ייצאת ווירטואלית, והיא יושבת ב־C:\Exported_VM\, ונניח שנמחקה בטעות, או אולי היא נדרשת במארח Hyper-V שונה? מאחר שהיא כבר יוצאת, היא בעצם מגובהת וניתן לייבא אותה בקלות, ובכך לשחזר את הווירטואלית.
אם הפקודה Export-VM
שומרת מכונה וירטואלית לדיסק, פקודת ה־Import-VM
עושה את הפעולה ההפוכה; היא קוראת מכונה וירטואלית מהדיסק וייבאת אותה אל Hyper-V.
1. בהנחה שכבר יש לך חלון פוורשל פתוח ואתה בתיקייה שבה ייצאת מכונה וירטואלית (C:\Exported_VM). ראשית, הרץ את הפקודה Get-ChildItem
עם המתג Recurse
כדי לרשום את כל הקבצים ולרשום את שם הקובץ עם התוספת *.vmcx באמצעות הקוד שלמטה:
יתכן שתראה מספר .vmcx שונים תלוי בכך אם למכונה וירטואלית שייצאת היו צילומים. היחיד שצריך לך כדי להפעיל את המכונה וירטואלית הוא קובץ ה־VMCX השוכן בתיקיית Virtual Machines.
יתכן שתראה פלט דומה לדוגמה למטה:

2. לאחר מכן, השתמש בפקודת ה־Import-VM
עם פרמטר ה־Path
כדי לציין את קובץ ההגדרות של המכונה וירטואלית (הנבדק בשלב הקודם).
זהו! נרשמה את המכונה וירטואלית במקום, באמצעות ה־UID אותו הייתה יוצאת איתו.

3. עכשיו אמת אם ה־UID זהה לשם הקובץ .vmcx כאשר המכונה וירטואלית נוצרה. ניתן להשתמש בקוד שלמטה כדי לבצע זאת על ידי שאילתת WMI:

הדוגמה לעיל הייתה ייבוא ישיר מקובץ התצורה של מכונת הווירטואליות, ומכונת הווירטואליות שמרה על ה-UID המקורי. בסביבת הייצור, ייתכן שתרצה ליצור UID חדש כדי למנוע שמכונת הווירטואליות הישנה תתבלבל עם מכונת הווירטואליות החדשה. זה המקום שבו מתבצעת השימוש בפרמטר Copy
.
יבוא מכונת ווירטואליות בשימוש בפרמטר
Copy
יעתיק את הקבצים מהמיקום המקורי (C:\Exported_VM\) אל תוך הנתיבים המוגדרים של שרת Hyper-V. כאשר משתמשים ב-GenerateNewId
, ניתן לייבא את מכונת הווירטואליות פעמים רבות על אותו שרת Hyper-V עם מזהה ייחודי חדש (UID).
הפעם, מכונת הווירטואליות המיובאת אינה מכילה את ה-UID הזהה לזה שהוצא ממנה. אתה רואה את ה-UID הישן והחדש בתמונה מסך שמתחת:

Hyper-V כעת מעתיקה את מכונת הווירטואליות אל הנתיבים המוגדרים כברירת מחדל שראית קודם בייבוא מכונת הווירטואליות באמצעות Hyper-V Manager, אך נותנת למכונת הווירטואליות UID חדש.
שלבים הבאים
במדריך זה, למדת כיצד לייצא ולייבא מכונת ווירטואליות של Hyper-V באמצעות PowerShell ומנהל ה-Hyper-V המובנה.
עכשיו שאתה יודע כיצד לייצא ולייבא מכונות ווירטואליות של Hyper-V, נסה להגדיר את הפעלה אוטומטית של מכונת הווירטואליות (AVMA) כדי להפעיל מכונות שרת Windows המתארחות על Hyper-V.