مرة أخرى حول الترحيل المباشر: كيفية ترحيل أجهزة Hyper-V الافتراضية بشكل أسرع

     " إذا كنت تحب Hyper-V - love and PowerShell"

     القاعدة الأولى لمجتمع Hyper-V في Telegram  



     "وإذا كنت تحب VMware ESXi ، فأحب PowerShell مع ESXi CLI و REST API"

     التي أضيفت بواسطتي ،



يُعد الترحيل المباشر ميزة شائعة في Hyper -الخامس. يسمح لك بترحيل الأجهزة الافتراضية قيد التشغيل دون توقف مرئي. هناك العديد من الإرشادات حول كيفية ترحيل الأجهزة الافتراضية عبر الإنترنت ، ولكن العديد منها قديم. بالإضافة إلى ذلك ، لا ينظر الجميع إلى الإعدادات المتقدمة ويستخدمون ميزات Live Migration بشكل جيد. 



لقد جمعت الفروق الدقيقة والمعلمات غير الواضحة للنقل السريع لأجهزة VM داخل مجموعة وبين المجموعات. في نفس الوقت سوف أشارك بعض الأسرار في الإعداد والتصميم. آمل أن تكون هذه المقالة مفيدة للمسؤولين المبتدئين.  



إخلاء المسؤولية : يُنصح بتنفيذ جميع الخطوات الموضحة قبل بدء تشغيل خادم Hyper-V. Hyper-V لا يغفر أخطاء التصميم أبدًا وسيخذلك في أول فرصة. هذا هو اليوم التالي.


تذكر العتاد



كالعادة ، يتم ترحيل VM من عقدة إلى أخرى داخل مجموعة Hyper-V:



  1. يتم نسخ تكوين الجهاز الظاهري من عقدة نظام مجموعة إلى أخرى. 
  2. يتم تمييز صفحات ذاكرة الجهاز الظاهري للنسخ إلى المضيف الهدف وتبدأ عملية نقلها عبر الإنترنت.
  3. , . Hyper-V . , .





    .
  4. , , . . , .


هذا يسمى الهجرة الحية. المخطط صالح لأي برنامج Hypervisor.



كلما زاد عدد ذاكرة الوصول العشوائي (RAM) في جهاز VM وكلما تغيرت بشكل مكثف ، كلما استغرق وقتًا أطول للتحرك. لذلك ، تتطلب حركة الترحيل المباشر قناة جيدة وتكوينًا دقيقًا.

هذه هي الطريقة التي تعمل بها الترحيل المباشر الكلاسيكي داخل مجموعة تجاوز الفشل. يتطلب وحدة تخزين CSV مشتركة يتم تقديمها لجميع المضيفين في المجموعة.

 

بالإضافة إلى ذلك ، هناك نوع ثاني من الترحيل المباشر ، الهجرة الحية في "لا شيء" (الترحيل المباشر المشترك من أجل لا شيء). يستخدم هذا السيناريو عادةً لترحيل الأجهزة الظاهرية دون توقف بين المجموعات. بالإضافة إلى صفحات الذاكرة من مضيف Hyper-V إلى آخر ، يتم نسخ قرص VHD (X) مع نقل ومزامنة دلتا البيانات المكتوبة إليه. 


دعنا نحلل الفروق الدقيقة لتكوين الواجهات.



ضبط إعدادات البروتوكول



  1. أولاً ، دعنا ننتقل إلى مدير Hyper-V وانقر بزر الماوس الأيمن فوق إعدادات Hyper-V. في إعدادات Live Migration ، سنحدد عناوين واجهات الشبكة التي سيصل إليها برنامج Hypervisor: 





  2. دعنا نلقي نظرة على الميزات المتقدمة. نحن مهتمون بكلتا النقطتين: بروتوكول المصادقة والنقل الذي تستخدمه أجهزة VM الخاصة بنا.

    • بروتوكول المصادقة : CredSSP - يتم تثبيت بروتوكول موفر دعم أمان بيانات الاعتماد بشكل افتراضي. إنه سهل الاستخدام ، ولكن إذا كانت هناك مجموعات متعددة في البنية التحتية ، فلن نتمكن من نقل الأجهزة الافتراضية بين المجموعات. 



      سنختار Kerberos باعتباره أكثر أمانًا ومناسبًا لنقل أجهزة VM بين مجموعات مختلفة.

    • Performance options: . Switch Embedded Team SMB (Server Message Block). 



      Windows Server 2016. SMB (SMB Multi-channel). RDMA – . . 







  3. Kerberos , (Kerberos Constrained Delegation) Computer Active Directory. 



    Windows Server 2016, NETWORK SERVICE, AD. (Unconstrained Delegation), , :







    System Center Virtual Machine Manager (SC VMM), . SC VMM Shared-Nothing Live Migration.
  4. SMB . , Live Migration SMB:



    Set-SmbServerConfiguration -EncryptData $false -RejectUnencryptedAccess $false


    . . 



    Windows Admin Center:







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



كما كان من قبل . تصف أدلة ترحيل Hyper-V VM القديمة السيناريوهات باستخدام تقنية توقيت موازنة التحميل / تجاوز الفشل (LBFO). جعل LBFO من الممكن تجميع محولات الشبكة المادية وإنشاء واجهات فوقها. ولكن كانت هناك أيضًا عيوب ، على سبيل المثال: لم يكن هناك دعم RDMA ، كان من المستحيل معرفة منفذ Tim الذي ستذهب إليه حركة المرور من خلاله. ونظرًا لأن حركة الترحيل المباشر تتطلب قناة سمينًا إلى حد ما ، فقد تحول هذا إلى مشكلة عندما تنفجر جميع أحمال عمل الشبكة في منفذ مادي واحد. 



مثل الان... في Windows Server 2019 ، لا يمكنك حتى إنشاء مفتاح افتراضي أعلى فريق LBFO. الحل الوحيد المدعوم لتوصيل منافذ NIC في Hyper-V هو Switch Embedded Team (SET) .  



مجموعة محولات التجميع ، تمامًا مثل ESXi vSwitch. تصبح منافذ الشبكة المادية بمثابة سلك تصحيح لأنواع مختلفة من حركة المرور (بما في ذلك أجهزة VM) ، ويتم قطع الواجهات الافتراضية فوقها. 



, . , 2 , 3 ( ). - ESX (1+). Red Hat c . VMware vSphere 4.1 1 (bare-metal). 



Microsoft VMware Switch Embedded Team Windows Server 2016. .


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



كيف يؤثر ذلك على عملية الإعداد . في Hyper-V ، بالإضافة إلى واجهة الإدارة ، نقوم عادةً بإنشاء واجهات للترحيل المباشر وواجهات لحركة مرور CSV العنقودية. للقيام بذلك ، نحتاج إلى معرفة عدد منافذ الشبكة المضمنة في SET - هذا هو عدد الواجهات الافتراضية التي يجب إنشاؤها. نأخذ في الاعتبار أيضًا موقع منافذ الشبكة على ناقل PCI ، وعدد مآخذ التوصيل للتعيين اللاحق للواجهات إلى عقد NUMA وعدد النوى المادية على كل معالج.



دعونا نلقي نظرة على العملية خطوة بخطوة



  1. , . , on-board .









    VLAN ID



    Management



    192.168.1.0/24

    192.168.1.1

    0 (Native)

    1

    LiveMigration



    192.168.2.0/24

    2

    2

    CSV

    CSV-

    192.168.3.0/24

    3

    2

  2. SET Virtual Switch VMM (Virtual Machine Manager). VMM ,   PowerShell Hyper-V: 



    New-VMSwitch -Name "SET" –NetAdapterName "NIC1","NIC2" -EnableEmbeddedTeaming $True -AllowManagementOS $true -MinimumBandwidthMode Weight


    -. MinimumBandwidthMode weight, SET . . Network QoS Policies ( ). 



    SET RDMA-, MinimumBandwidthMode . , Network QoS Policies RDMA .

  3. Dynamic Hyper-V Port ( Windows Server 2019). Dynamic Address Hash Hyper-V Port , : 



    Set-VMSwitchTeam "SET" -LoadBalancingAlgorithm Dynamic


    , SET SC VM Host Default. Windows Server 2016 Dynamic. Windows Server 2019 Hyper-V Port, .

  4. , IP- . 



    «» CSV- : 



    #     Live Migration
    Add-VMNetworkAdapter –ManagementOS –Name "LiveMigration01" –SwitchName MGMT-Switch -NumaAwarePlacement $true
    Add-VMNetworkAdapter –ManagementOS –Name "LiveMigration02" –SwitchName MGMT-Switch -NumaAwarePlacement $true
    
    #  VLAN
    Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName "LiveMigration*" -VlanId 2 -Access
    
    # IP-  
    New-NetIPAddress –InterfaceAlias "vEthernet (LiveMigration01)" -IPAddress 192.168.2.2 -PrefixLength 24 -Confirm:$false
    New-NetIPAddress –InterfaceAlias "vEthernet (LiveMigration02)" -IPAddress 192.168.2.3 -PrefixLength 24 -Confirm:$false
    
    #     CSV-
    Add-VMNetworkAdapter –ManagementOS –Name "CSV01" –SwitchName MGMT-Switch -NumaAwarePlacement $true
    Add-VMNetworkAdapter –ManagementOS –Name "CSV02" –SwitchName MGMT-Switch -NumaAwarePlacement $true
    
    #  VLAN
    Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName "CSV*" -VlanId 3 -Access
    
    #  IP-  
    New-NetIPAddress –InterfaceAlias "vEthernet (CSV01)" -IPAddress 192.168.3.2 -PrefixLength 24 -Confirm:$false
    New-NetIPAddress –InterfaceAlias "vEthernet (CSV02)" -IPAddress 192.168.3.3 -PrefixLength 24 -Confirm:$false
  5. . , Jumbo Frames 9K , Management. 



    : .  



    Set-NetAdapterAdvancedProperty -Name "NIC1" -DisplayName "Jumbo Packet" -DisplayValue 9014
    Set-NetAdapterAdvancedProperty -Name "NIC2" -DisplayName "Jumbo Packet" -DisplayValue 9014
    Set-NetAdapterAdvancedProperty -Name "vEthernet (CSV01)" -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes"
    Set-NetAdapterAdvancedProperty -Name "vEthernet (CSV02)" -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes"
    Set-NetAdapterAdvancedProperty -Name "vEthernet (LiveMigration01)" -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes"
    Set-NetAdapterAdvancedProperty -Name "vEthernet (LiveMigration02)" -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes"


    , Windows Server, . , Windows. SET Management’. Get-NetAdapterAdvancedProperties.

  6. , :







    CSV-. :



    Set-NetIPInterface -InterfaceIndex 16 -InterfaceMetric 10000
    Set-NetIPInterface -InterfaceIndex 3 -InterfaceMetric 10000
    Set-NetIPInterface -InterfaceIndex 9 -InterfaceMetric 10500
    Set-NetIPInterface -InterfaceIndex 6 -InterfaceMetric 10500
    


    , .
  7. RDMA, . RDMA CPU. RDMA Get-NetAdapterRdma.





    : . statemigration.com.



    RDMA (, , ).
  8. PCI-. Virtual Machine Queues (VMQ). 



    , , .  



    Set-VMNetworkAdapterTeamMapping -ManagementOS -PhysicalNetAdapterName "NIC1" -VMNetworkAdapterName "LiveMigration01"
    Set-VMNetworkAdapterTeamMapping -ManagementOS -PhysicalNetAdapterName "NIC2" -VMNetworkAdapterName "LiveMigration02"
    Set-VMNetworkAdapterTeamMapping -ManagementOS -PhysicalNetAdapterName "NIC1" -VMNetworkAdapterName "CSV01"
    Set-VMNetworkAdapterTeamMapping -ManagementOS -PhysicalNetAdapterName "NIC2" -VMNetworkAdapterName "CSV02"
  9. VMQ PCI-. , . : -, , -, 3 . . (SMB)! , RSS. 



    Windows Server 2019 VMQ , dVMMQ. , 90%. Windows Server 2019 VMQ . 



    :



    Set-NetAdapterRss -Name "NIC1" -BaseProcessorGroup 0 -BaseProcessorNumber 2 -MaxProcessors 8 -MaxProcessorNumber 16
    Set-NetAdapterRss -Name "NIC2" -BaseProcessorGroup 0 -BaseProcessorNumber 16 -MaxProcessors 8 -MaxProcessorNumber 30


    , . , 2 16 . 32 . Excel 0 31:







    Base Processor Number 2. . 16 – MaxProcessorNumber.



    BaseProcessor 16 ( ). . , Live Migration. 



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


إعداد الترحيل لسيناريو مجمعة 



من جانب مجموعة تجاوز الفشل ، سنقوم أيضًا بفك إعدادات مهلة الكتلة:



(Get-Cluster).SameSubnetDelay = 2000
(Get-Cluster).SameSubnetThreshold = 30


  • يشير SameSubnetDelay إلى عدد المرات التي نرسل فيها قلبك. بشكل افتراضي ، يتم ضبطه على ثانية واحدة. 



    إذا كانت العقد العنقودية موجودة على نفس الشبكة ، فهذا يكفي. إذا كانوا على شبكات مختلفة ، فأنت بحاجة إلى تكوين CrossSubnetDelay بنفس القيم.
  • يوضح SameSubnetThreshold عدد عادات القلب التي يمكننا تخطيها قدر الإمكان. بشكل افتراضي ، هذا هو 5 قلب ، والحد الأقصى هو 120. سنقوم بتعيين القيمة المثلى - 30 قلب.



بالنسبة للآلات عالية التحميل ، من المهم فك كلا المعلمتين. إذا لم نلتقي ، فمن المحتمل ألا يتم تشغيل مثل هذه الآلة. 



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











الواقع ، هذا هو الحد الأدنى من إعدادات السادة للترحيل المباشر للعمل بشكل صحيح في Hyper-V. 



All Articles