Windows Server 2019 مقابل لقطات VMware مع الهدوء: حل أنيق للمشكلة



مرحبا يا هابر! تواجه

الأجهزة الظاهرية لـ Windows Server 2019 المزودة بمحاكاة EFI على VMware مشكلة في لقطات التطبيق- Aware. يبدو أن هذا: تم عمل لقطة ، وتصل إلى 100٪ ، وتعلق لمدة 5 دقائق ، ثم تقع في الخطأ فشل في إنهاء الجهاز الظاهري. أظهر
 


التحقيق أن سبب هذا الخطأ كان تعارضًا بين خدمة Windows Server 2019 VSS وموفر VMware Snapshot ، وهو المسؤول عن إيقاف التطبيق. يعد هذا الشيء الجهاز الظاهري للقطات: فهو يوقف التطبيقات ويكتب العمليات بحيث تكون جميع البيانات متناسقة بعد الاسترداد من اللقطات.

زعمت Microsoft وتدعي أن لقطات التطبيق الواعية مدعومة بشكل مثالي من قبل نظام التشغيل. في الواقع ، لا تحدث مثل هذه المشكلة في Hyper-V. دعا VMware بشكل متواضع مستخدميه لإيقاف تشغيل quiescing (لذا ، لن تكون هذه اللقطة متسقة على مستوى التطبيق). أو رفض أقراص النظام باستخدام علامات GPT ومحاكاة EFI (في 2020!). 

اليوم سأوضح لك كيفية التغلب على هذه المشكلة بشكل جميل والحصول على لقطات متسقة تدرك التطبيقات من الأجهزة الظاهرية لـ Windows Server 2019 ، وفي الوقت نفسه سأذكرك بالطريقة المدعومة من Microsoft لتثبيت Windows Server على جهاز ظاهري.

من المذنب؟


ابدأ من جديد. عند إنشاء جهاز افتراضي على VMware ESXi في خيارات VM ، فإن المحاكاة الافتراضية هي محاكاة BIOS. وعلى الرغم من عدم وجود متطلبات خاصة للأمان أو حجم قرص النظام ، فإن مثل هذا السيناريو مناسب تمامًا. ولكن بمجرد أن نحتاج إلى تكوين التمهيد الآمن أو يتجاوز عدد وحدات vCPU 128 ، سنحتاج إلى إنشاء VM بمحاكاة UEFI. إذا فقط لأنه يوجد:

  • التمهيد الآمن - الحماية من التمهيد من وسائط غريبة.
  • دعم التشفير (يتطلب دعم TPM ، ولكن في ESXi 6.7 نفس المشكلة).
  • دعم محركات الأقراص التي تزيد عن 2 تيرابايت (أمر مشكوك فيه ، ولكنه يحدث).
  • دعم عدد كبير من المعالجات.

إذا قمت بتثبيت Windows على VMware VMs ، كما اعتدنا القيام به (إنشاء VMs ، وإزالة ISO ، وتحميلها بالمقابض ، ثم التالي ، ثم التالي ...) ، ثم عند تقسيم GPT على قرص النظام ، يظهر قسم الاسترداد بجوار قسم EFI والقسم مع النظام.

نذكر العتاد:

قسم الاسترداد - قسم محمي على القرص الصلب للنظام ، والذي يستخدم لاستعادة إعدادات المصنع للنظام في حالة حدوث مشاكل. عند تثبيت Windows Server على قرص GPT ، يكتب الاسترداد بيئة استرداد Windows (WinRE). كقاعدة عامة ، يقوم مصنعو أجهزة الكمبيوتر بتكملة هذا القسم بإعداداتهم المخصصة وبرامج التشغيل المخصصة لجهاز معين.

قف! 

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

قسم الاسترداد محمي من التعديل والحذف العرضي: "لا يتجمد". ونتيجة لذلك ، ينشأ تعارض بين موفر VSS VMware Snapshot و Microsoft Windows VSS: يحاول موفر VMware التقاط جميع أقسام القرص ، ولا يسمح Windows Server له بذلك. يتم إبلاغنا بهذه الأخبار الجيدة من خلال السجلات:



ماذا أفعل؟


يتم التعامل معها ببساطة. يمكنك تثبيت Windows على جهاز افتراضي باستخدام الأمر cmdlet الخاص بتحويل صورة Windows. في الواقع ، توصي Microsoft نفسها بدعم هذا البرنامج النصي للتثبيت فقط (هذا النص البرمجي موجود على صورة Windows Server 2016 RTM في الدليل مع صورة Nano Server ، لكن هذه قصة أخرى وليست أقل إثارة للاهتمام ؛)).

سيقوم البرنامج النصي تلقائيًا بإنشاء قالب باستخدام Windows Server المحدث sysprepped ، وبرامج التشغيل اللازمة ، وحتى الأدوار. هذا الأسلوب مثير للاهتمام لأنه يمكن أتمتة تثبيت نظام التشغيل وتكوينه ، لأن البرنامج النصي يدعم unattend.xml. بالإضافة إلى ذلك ، يوفر هذا الخيار الحرية للهندسة: من بدء تشغيل VM مسبقًا على Hyper-V مع التثبيت من خلال Invoke-Command إلى إنشاء خدمة مخصصة من خلال تحرير التسجيل. 

عند الإخراج ، نحصل على قرص VHD سميك ، والذي يمكنك من تشغيل VMware ، وبدء تشغيل VM ، ووضع أدوات VMware وتحويله إلى قالب. ونتيجة لذلك ، سيحتوي VM على ترميز GPT بالداخل ، وهو مناسب للتشغيل على EFI VM وبدون قسم الاسترداد حسب التصميم. كمكافأة: في المثال الخاص بي ، سأقوم على الفور بإنشاء محول شبه مجاور لتوفير الأداء. والأهم من ذلك - بالنسبة لمثل هذه الآلة الافتراضية ، يمكن عمل لقطة مدركة للتطبيق دون مشاكل.

الآن كل شيء مفصل في الخطوات.

استخلاص السائق


  1. قم بتنزيل الصورة من المستودع .
  2. تحميل الصور.

  3. قم بتشغيل cmd.exe وانتقل إلى جذر الصورة المحملة
  4. قم بتشغيل المثبت باستخدام المفاتيح:
    setup64.exe /A /P <  >
  5. في الخطوة الثانية من المعالج ، نكرر مسار التفريغ:

  6. برامج التشغيل هنا: VMWToolsExtract \ VMware \ VMware Tools \ VMware \ Drivers

Windows Server 2019


  1. . , .
  2. : Servicing Stack Update. How to get this update , MS update catalog:

  3. Windows Server 2019 Cumulative Update Servicing Stack Update.



  4. CAB- :



  1. PowerShell .

  2. Install-Module -Name Convert-WindowsImage
  3. - Convert-WindowsImage:
    $ConvertWindowsImageParam = @{
    	#    Windows Server 2019
    	SourcePath = "C:\work\en_windows_server_2019.iso"
    	#   
    	VHDFormat = "VHD"
    	#   
    	SizeBytes = 40GB
    	#   - GPT
    	DiskLayout = "UEFI"
    	BCDinVHD = "VirtualMachine"
    	#   
    	DiskType = "Fixed"
    	#  - Windows Server 2019 Standard (Desktop Expirience)
    	<#
    	 :
    	1 - Windows Server 2019 Standard (Core)
    	2 - Windows Server 2019 Standard (Desktop Expirience)
    	3 - Windows Server 2019 Datacenter (Core)
    	4 - Windows Server 2019 Datacenter (Desktop Expirience)
    	#>
    	Edition = @("2")
    	#  Remote Desktop
    	RemoteDesktopEnable = $True
    	#   
    	Feature = @("TelnetClient","WindowsServerBackup","NetFx3")
    	#   (     CAB)
    	#       :  SSU,  
    	Package = @("C:\work\Windows10.0-KB4523204-x64.cab","C:\work\Windows10.0-KB4534321-x64_PSFX.cab")
    	#     
    	Driver = @("C:\work\VMWToolsExtract\VMware\VMware Tools\VMware\Drivers")
    	}
  4. Windows Server 2019 :
    Convert-WindowsImage @ConvertWindowsImageParam





يستغرق التثبيت ما يصل إلى 30 دقيقة.

في هذا المثال ، يكون الإخراج عبارة عن نظام تشغيل جاهز بالكامل في حالة Sysprepped ، ولكن لا شيء يمنعنا من استخدام Unattend.xml للتخصيص (تكون مواصفات التخصيص محيرة قليلاً عندما ترى قالب sysprep ولا يتوسع الجهاز الظاهري).

اقرأ المزيد عن مفاتيح هذا الكملت الرائع هنا وفي Get-Help من الكومليت نفسها.

بعد ذلك ، يمكنك تحميل القرص على ESXi وإنشاء VM وتثبيت أدوات VMware. ونشر أجهزة افتراضية دون القلق بشأن حل مشاكل اللقطات.

ولكن ماذا لو كان هناك بالفعل نموذج "معيب"؟


يكفي ببساطة حذف قسم الاسترداد عبر diskpart.exe ونقل أقسام النظام EFI والنظام لجمال الترميز (ولكن لا يمكنك القيام بذلك). هل هو مدعوم؟ على جهاز افتراضي - بالتأكيد!

  1. نبدأ cmd.exe.
  2. نبدأ Diskpart.
  3. احصل على قائمة محركات الأقراص:
    list disk
  4. حدد قرصًا:
    select disk n

    حيث n هو رقم القرص.
  5. نسرد الأقسام:
    list partition
  6. نحن ننظر إلى رقم قسم الاسترداد (ن) ونختاره:
    select partition n
  7. إزالة الحماية من القسم:
    gpt attributes=0x8000000000000000
  8. حذف:
    delete partition
  9. ربح!





VM جاهز للقطات Quescing!

بدلا من الاستنتاج


هذا النهج هو مجرد أحد الخيارات لنشر Windows Server وحل مشكلة KB60395 . بالطبع ، في هذه الحالة يمكننا أن نجعل VDH رفيعًا ثم نستخدم أداة quemu-img لتحويل قرص افتراضي إلى أرشيف OVF ، وهو ما تفهمه ESXi جيدًا. مثل هذا السيناريو مناسب تمامًا ، على سبيل المثال ، في حالة الحاجة إلى نقل القرص الظاهري عبر الشبكة. إن فهم تاريخ المشكلة والطبيعة الحقيقية للمشكلة يجعل من الممكن دائمًا إيجاد حل مناسب لبنية تحتية معينة. التنفيذ الفني هو مجال للتجارب والأوهام المثيرة للاهتمام ، وهو غير محدود.

All Articles