استيراد وتصدير الآليات الظاهرية في Hyper-V: طرق مضمونة بالتأكيد

هل تحتاج إلى تصدير آلات الافتراض الخاصة بـ 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. ابحث عن الآلة الافتراضية التي تريد تصديرها، انقر بزر الماوس الأيمن فوقها وانقر على تصدير.

Exporting VM using Hyper-V Manager The VM can be offline or running prior to exporting.

3. بعد ذلك، اختر مجلدًا لحفظ الآلة الافتراضية والتكوين فيه وانقر على تصدير.

Export Virtual Machine Dialog.

يجب أن يكون الموقع الذي تختاره للحفظ يحتوي على مساحة تخزين كافية للآلة الظاهرية المصدرة. قد تختلف هذه المساحة. تذكر، يمكنك تخصيص 60 غيغابايت للقرص، ولكن ذلك لا يعني أن قرص الآلة الظاهرية قد نما إلى 60 غيغابايت.

عندما يبدأ Hyper-V عملية التصدير، سترى حالة التصدير في نافذة مدير Hyper-V.

Export Status in Hyper-V Manager

4. الآن، قم بتأكيد وجود جميع الملفات المطلوبة. يجب أن ترى ثلاثة مجلدات فرعية. هذه المجلدات الفرعية تحتوي على جميع الملفات اللازمة لبدء الآلة الظاهرية المصدرة؛ لقطات، أقراص صلبة افتراضية، وآلات ظاهرية.

Exported VM example
  • يحتوي مجلد اللقطات على معلومات اللقطة للآلة الظاهرية. قد يكون المجلد فارغًا إذا لم تكن هناك لقطات للآلة الظاهرية. في هذا المجلد، سترى ملحقات الملفات VMCX، VMRS، و VMGS. الملف الثنائي VMCX يحتوي على معلومات التكوين الخاصة بالآلة الظاهرية المصدرة. الملف الثنائي VMRS يحتوي على معلومات حالة تشغيل الآلة الظاهرية. بدون هذا الملف، لا يمكن للآلة الظاهرية البدء. وأخيرًا هناك ملف VMGS. لست متأكدًا من استخدام هذا الملف. إذا كنت تعرف، فضلاً اترك تعليقًا.

إذا كنت لديك تجربة سابقة مع Hyper-V، قد لاحظت شيئًا مختلفًا في امتدادات الملفات. ابتداءً من Windows Server 2016، لم يعد Hyper-V يستخدم ملفات XML لمعلومات التكوين وانتقل بدلاً من ذلك إلى ملفات ثنائية. اقرأ المزيد حول هذه الامتدادات الجديدة.

إذا كان لديك نقطة فحص أكثر من واحدة، فسترى ملفات VMCX و VMRS و VMGS متعددة لكل نقطة فحص للجهاز الظاهري.

Snapshots folder example
  • يحتوي مجلد أقراص الصلبة الظاهرية على جميع ملفات صور الأقراص الصلبة أو *.vhdx للجهاز الظاهري. ملف AVHDX أو القرص الصلب الظاهري التلقائي هو قرص فرق يُستخدم لنقاط فحص الجهاز الظاهري. إذا كان لديك جهاز ظاهري أكثر من نقطة فحص واحدة، فسترى ملفات AVHDX متعددة.
Virtual Hard Disks example
  • يحتوي مجلد الأجهزة الظاهرية على ملفات تكوين الجهاز الظاهري المستخدمة لتشغيل الجهاز الظاهري. بشكل مماثل لمجلد Snapshots، سترى ملفات ثنائية VMCX و VMRS و VMGS هنا أيضًا.
Virtual Machines configuration files example

إذا كانت الأجلة الثلاثة موجودة وتحتوي على ملفات، فقد تمت عملية التصدير بنجاح.

استخدام PowerShell لتصدير جهاز ظاهري

إذا كنت من محبي سطر الأوامر أو لديك العديد من الأجهزة الظاهرية لتصديرها، فإن استخدام PowerShell لتصدير جهاز ظاهري هو خيار رائع أيضًا. لتصدير Hyper-V باستخدام PowerShell، استخدم Export-VM cmdlet. للقيام بذلك، وافترض أنك على مضيف Hyper-V الخاص بك وأن الجهاز الظاهري الخاص بك هو غير متصل:

1. افتح نافذة PowerShell.

2. استعلم عن مضيف Hyper-V للحصول على جرد لأجهزتك الظاهرية واسم الجهاز الظاهري الذي تريد تصديره. سيتم تصدير جهاز ظاهري يسمى Alpine Linux 01 في هذا البرنامج التعليمي.

Get-VM
Virtual machine name to be used in Export-VM command

3. أنشئ مجلدًا لتصدير الجهاز الظاهري إليه. سيتم تصدير الجهاز الظاهري إلى C:\Export_VM.

New-Item -ItemType Directory -Name 'Exported_VM\' -Path 'C:\'

4. الآن قم بتصدير الآلة الظاهرية باستخدام الأمر Export-VM عن طريق تقديم اسم الآلة الظاهرية للمعلمة Name، و

Path إلى المجلد لحفظه فيه، ومعلمة PassThru. المعلمة PassThru اختيارية لإرجاع كائن VM الذي يتم تصديره. وإلا، Export-VM لن يعيد أي مخرجات.

Export-VM -Name 'Alpine Linux 01' -Path 'C:\Exported_VM\' -Passthru
Successful export of an offline virtual machine.

عندما تكون الآلة الظاهرية قيد التشغيل، فإن Export-VM لن يقوم تلقائيًا بحفظ الذاكرة. إذا كنت ترغب في حفظ محتويات الذاكرة التي تعمل في الآلة الظاهرية، استخدم المعلمة -CaptureLiveState CaptureSavedState مع Export-VM. تعرف أكثر على التقنية المستخدمة لالتقاط الذاكرة.

5. الآن احذف الآلة الظاهرية من Hyper-V. لا تقلق! لقد تم حفظها!

Remove-VM -Name 'Alpine Linux 01'

باستخدام Hyper-V Manager لاستيراد آلة ظاهرية

بمجرد أن قمت بتصدير الآلة الظاهرية، وقع الكارثة واختفت الآلة الظاهرية. لا تقلق! لقد قمت بتصديرها بالفعل إلى القرص. دعنا نعيدها. للقيام بذلك، نفترض أنك على جهاز الخادم الظاهري الخاص بك مرة أخرى:

1. افتح مدير Hyper-V.

2. انقر فوق عنصر القائمة استيراد آلة ظاهرية الموجود على الجانب الأيمن من نافذة مدير Hyper-V. ستظهر لك معالم معالم استيراد آلة ظاهرية . انقر فوق التالي.

Import Virtual Machine Wizard

3. بعد ذلك، أدخل المسار إلى الجهاز الظاهري المصدر الذي ترغب في استيراده وانقر فوق التالي. لهذا البرنامج التعليمي، يتم حفظ الجهاز الظاهري في C:\Export_VM\Alpine Linux 01.

على عكس عملية الاستيراد باستخدام PowerShell، سيقوم المعالج بتحديد ملف VMCX للجهاز الظاهري تلقائيًا لك.

Import Virtual Machine Wizard

4. بمجرد اكتشاف Hyper-V لملفات تكوين الجهاز الظاهري داخل المجلد (في هذا المثال، C:\Exported_VM\Alpine Linux 01\Virtual Machines\), سيطلب Hyper-V منك تحديد جهاز ظاهري لاستيراده. اختر الجهاز الظاهري الذي تريد استيراده وانقر فوق التالي.

Import Virtual Machine Wizard

5. بعد ذلك، اختر نوع الاستيراد الذي ترغب في تنفيذه. أولاً، دعنا نستكشف الخيارات بتفصيل أكبر.

عندما تختار الخيار “تسجيل الجهاز الظاهري في المكان (استخدام معرف فريد موجود مسبقًا)”، فأنت تفترض أن ملفات الجهاز الظاهري المصدر تقع في موقعها النهائي، مما يعني أنك لا تقوم بنقل الجهاز الظاهري إلى مجلد جديد. تصبح ملفات الجهاز الظاهري المصدر حالة التشغيل للجهاز الظاهري. لا يتغير معرف الجهاز الظاهري.

معرف الجهاز الظاهري هو ما يستخدمه Hyper-V لتحديد جهاز ظاهري. إذا كشف Hyper-V أن نفس معرف الجهاز الظاهري مُسجَّل حاليًا، ستتلقى رسالة خطأ.

عند استعادة الجهاز الظاهري، يمكنك اختيار موقعًا أو استخدام موقع Hyper-V الافتراضي لنسخ ملفات الجهاز الظاهري المصدر إليه.

عند نسخ الجهاز الظاهري، يشبه ذلك استعادة جهاز ظاهري مصدر، ولكن مع معرف فريد جديد (UID). يجعل معرف جديد من الممكن إعادة نشر نفس الجهاز الظاهري عدة مرات إلى مضيفات Hyper-V نفسها أو مختلفة.

للعرض، دعنا نختار نوع الاستيراد نوع الاستيراد انسخ الجهاز الظاهري. سيؤدي نسخ الجهاز الظاهري إلى إنشاء معرف فريد جديد (UID). يتم تعريف كل جهاز ظاهري Hyper-V بواسطة معرف فريد. هذا الخيار مقبول في الوقت الحالي لذا انقر على التالي.

Import Virtual Machine Wizard

6. نظرًا لاختيارك الخيار النسخ, يمكنك تغيير الموقع الذي يتم فيه تخزين ملفات الجهاز الظاهري. انقر التالي لقبول القيم الافتراضية لهذا البرنامج التعليمي.

Import Virtual Machine Wizard

7. في النهاية، اختر موقعًا للجهاز الظاهري المعروف باسم مجلد التخزين. مجلد التخزين هو المكان الذي ستتواجد فيه ملفات VHDX و AVHDX. لهذا البرنامج التعليمي، قبل الموقع الافتراضي وانقر التالي.

Import Virtual Machine Wizard

8. قم بمراجعة صفحة الملخص وعندما تكون جاهزًا، انقر إنهاء لبدء الاستيراد.

Completing Import Virtual Machine Wizard

عندما يكتمل استيراد Hyper-V، يعود إلى نافذة مدير Hyper-V، والآن سترى الجهاز الظاهري المستورد، كما هو موضح أدناه.

Imported VM

استخدام PowerShell لاستيراد جهاز ظاهري

إذا لم يكن استيراد جهاز ظاهري عبر مدير Hyper-V هو ما تفضله، فلا مشكلة. استخدم PowerShell! لاستيراد جهاز ظاهري باستخدام PowerShell، ستستخدم الأمر Import-VM. انظر إلى السيناريو التالي:

لقد قمت بتصدير جهاز افتراضي، وهو موجود في C:\Exported_VM\ ، ولنفترض أنه تم حذفه عن طريق الخطأ، أو ربما يكون مطلوبًا على مضيف Hyper-V مختلف؟ نظرًا لأنه تم بالفعل تصديره، فإنه يتمتع في الأساس بنسخة احتياطية ويمكن استيراده بسهولة، وبالتالي استعادة الجهاز الافتراضي.

إذا كانت الأمر Export-VM يحفظ جهاز افتراضي على القرص، فإن الأمر Import-VM يقوم بالعمل المعاكس؛ حيث يقرأ جهاز افتراضي من القرص ويقوم بتوريده إلى Hyper-V.

1. نفترض أنك قد فتحت بالفعل نافذة PowerShell وأنك في الدليل الذي قمت بتصدير فيه جهاز افتراضي ( C:\Exported_VM). قم أولاً بتشغيل الأمر Get-ChildItem مع التبديل Recurse ليتم عرض جميع الملفات وقم بتدوين اسم الملف الذي يحمل امتداد *.vmcx باستخدام الكود التالي:

Get-ChildItem -Recurse | Where-Object -Property Name -CLike *.vmcx

قد ترى عدة ملفات .vmcx تبعًا لما إذا كان لدى الجهاز الافتراضي المصدر لهذه اللحظات الساخنة. الوحيد الذي تحتاجه لتشغيل الجهاز الافتراضي هو ملف VMCX الذي يقع في مجلد Virtual Machines.

قد ترى ناتجًا مشابهًا للمثال أدناه:

Exported VM UID example – VM configuration file (vmcx)

2. بعد ذلك، استخدم الأمر Import-VM مع المعلمة Path لتحديد ملف تكوين الجهاز الافتراضي (الذي تم الحصول عليه في الخطوة السابقة).

Import-VM -Path '.\Alpine Linux 01\Virtual Machines\.vmcx'

هذا كل شيء! لقد سجلت الجهاز الافتراضي في المكان نفسه، باستخدام نفس UID الذي كان للجهاز الافتراضي عند التصدير.

Importing a VM in place

3. الآن قم بالتحقق من أن UID هو نفسه كما هو اسم الملف .vmcx عند تصدير الجهاز الافتراضي. يمكنك استخدام الكود أدناه للقيام بذلك عن طريق الاستعلام عن WMI:

(Get-CimInstance -Namespace Root\Virtualization\V2 -ClassName Msvm_VirtualSystemSettingData -Filter "ElementName = 'Alpine Linux 01'").InstanceID

يجب أن ترى نفس النتيجة المبينة في المثال أعلاه:

UID Retained

كان المثال أعلاه استيرادًا مباشرًا من ملف تكوين آلة افتراضية، وظلت الآلة الافتراضية تحتفظ بالمعرف الفريد الأصلي. في بيئة الإنتاج، قد ترغب في إنشاء معرف فريد جديد لمنع اعتبار الآلة الافتراضية القديمة على أنها آلة جديدة. هنا تأتي معلمة Copy.

استيراد آلة افتراضية باستخدام معلمة Copy سيقوم بنسخ الملفات من الموقع الأصلي (C:\Exported_VM\) إلى مسارات الملقم Hyper-V المكونة. عند استخدامها مع GenerateNewId، يمكن استيراد الآلة الافتراضية مرارًا وتكرارًا على نفس ملقم Hyper-V بمعرف فريد جديد (UID).

Import-VM -Path '.\Alpine Linux 01\Virtual Machines\.vmcx' -Copy -GenerateNewId

هذه المرة، لا يحتوي آلة الافتراضية المستوردة على نفس المعرف الفريد كما في حالة التصدير. يمكنك رؤية المعرفين القديم والجديد في اللقطة الشاشية أدناه:

Showing previous UID prior to import vs. new UID created with Copy and GenerateNewID parameters.

Hyper-V الآن يقوم بنسخ الآلة الافتراضية إلى المسارات الافتراضية التي رأيتها سابقًا عند استيراد آلة افتراضية باستخدام مدير Hyper-V ولكنها تعطي الآلة الافتراضية معرفًا فريدًا جديدًا.

الخطوات التالية

في هذا الدليل، تعلمت كيفية تصدير واستيراد آلة افتراضية Hyper-V باستخدام PowerShell ومدير Hyper-V المدمج.

الآن بعد أن تعرف كيفية تصدير واستيراد آلات Hyper-V الافتراضية، جرب إعداد تنشيط الآلة الافتراضية التلقائي (AVMA) لتنشيط آلات خوادم Windows المستضافة على Hyper-V.

Source:
https://adamtheautomator.com/export-hyper-v-vm/