إصلاحات المثيل التلقائية لمجموعات تغيير السعة لجهاز Azure الظاهري

ينطبق على: ✔️ أجهزة Linux الظاهرية ✔️ أجهزة Windows الظاهرية ✔️ مجموعات القياس المنتظمة ✔️ مجموعات القياس المرنة

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

متطلبات استخدام إصلاحات المثيل التلقائية

تمكين مراقبة صحة التطبيق لمجموعة تغيير السعة

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

تكوين نقطة النهاية لتوفير حالة الصحة

قبل تمكين نهج إصلاح المثيلات التلقائية، تأكد من أن مثيلات مجموعة تغيير السعة تحتوي على نقطة نهاية تطبيق تم تكوينها لإصدار حالة صحة التطبيق. عندما يقوم مثيل بإرجاع الحالة 200 (موافق) على نقطة نهاية التطبيق هذه، يتم وضع علامة على المثيل باعتباره "صحياً". في كل الحالات الأخرى، يتم وضع علامة على المثيل باعتباره "غير صحي"، بما في ذلك السيناريوهات التالية:

  • عند عدم وجود نقطة نهاية تطبيق تم تكوينها داخل مثيلات الجهاز الظاهري لتوفير حالة صحة التطبيق
  • عند تكوين نقطة نهاية التطبيق بشكل غير صحيح
  • عندما لا يمكن الوصول إلى نقطة نهاية التطبيق

بالنسبة للمثيلات التي تم وضع علامة عليها باعتبارها "غير صحية"، يتم تشغيل الإصلاحات التلقائية بواسطة مجموعة تغيير السعة. تأكد من تكوين نقطة نهاية التطبيق بشكل صحيح قبل تمكين نهج الإصلاحات التلقائية لتجنب إصلاحات المثيل غير المقصودة، أثناء تكوين نقطة النهاية.

الحد الأقصى لعدد المثيلات في مجموعة تغيير السعة

لا تتوفر هذه الميزة حالياً إلا لمجموعات تغيير السعة التي تحتوي على 500 مثيل كحد أقصى. يمكن نشر مجموعة تغيير السعة إما كمجموعة مواضع واحدة أو كمجموعة متعددة المواضع، ومع ذلك لا يمكن أن يكون عدد المثيلات أعلى من 500 إذا تم تمكين إصلاحات المثيلات التلقائية لمجموعة تغيير السعة.

إصدار API

يتم دعم نهج الإصلاحات التلقائية لإصدار واجهة برمجة تطبيقات الحوسبة 2018-10-01 أو أعلى.

القيود المفروضة على تحركات الموارد أو الاشتراكات

لا يتم حالياً دعم عمليات نقل الموارد أو الاشتراك لمجموعات تغيير السعة عند تمكين ميزة الإصلاحات التلقائية.

تقييد مجموعات تغيير سعة fabric للخدمة

هذه الميزة غير مدعومة حالياً لمجموعات تغيير سعة fabric للخدمة.

كيف تعمل إصلاحات المثيل التلقائية؟

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

الإرسال في دفعات

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

فترة السماح

عندما يمر مثيل بعملية تغيير حالة بسبب إجراء PUT أو PATCH أو POST تم تنفيذه على مجموعة تغيير السعة (على سبيل المثال إعادة الصورة أو إعادة التوزيع أو التحديث، إلخ)، يتم تنفيذ أي إجراء إصلاح على ذلك المثيل فقط بعد انتظار فترة السماح. فترة السماح هي مقدار الوقت اللازم للسماح للمثيل بالعودة إلى الحالة الصحية. تبدأ فترة السماح بعد أن يكتمل تغيير الحالة. يساعد هذا على تجنب أي عمليات إصلاح سابقة لأوانها أو عرضية. يتم الالتزام بفترة السماح لأي مثيل تم إنشاؤه حديثاً في مجموعة تغيير السعة (بما في ذلك المثيل الذي تم إنشاؤه نتيجة لعملية الإصلاح). يتم تحديد فترة السماح بالدقائق بتنسيق ISO 8601 ويمكن تعيينها باستخدام الخاصية automaticRepairsPolicy.gracePeriod. يمكن أن تتراوح فترة السماح بين 10 دقائق و90 دقيقة، ولها قيمة افتراضية تبلغ 30 دقيقة.

تعليق الإصلاحات

توفر مجموعات تغيير سعة الجهاز الظاهري القدرة على تعليق إصلاحات المثيل التلقائية مؤقتاً إذا لزم الأمر. تبين ServiceState للإصلاحات التلقائية ضمن orchestrationServices في عرض مثيل مجموعة تغيير سعة الجهاز الظاهري الحالة الحالية للإصلاحات التلقائية. عند اختيار مجموعة تغيير السعة في الإصلاحات التلقائية، يتم تعيين قيمة المعلمة serviceState إلى قيد التشغيل. عند تعليق الإصلاحات التلقائية لمجموعة تغيير سعة، يتم تعيين المعلمة serviceState إلى متوقفة مؤقتاً. إذا تم تعريف automaticRepairsPolicy على مجموعة تغيير سعة ولكن لم يتم تمكين ميزة الإصلاحات التلقائية، يتم تعيين المعلمة serviceState إلى ليست قيد التشغيل.

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

تعمل عملية إصلاحات المثيل التلقائية كما يلي:

  1. يقوم ملحق صحة التطبيق أو فحوصات صحة موازن التحميل باختبار اتصال نقطة نهاية التطبيق داخل كل جهاز ظاهري في مجموعة تغيير السعة للحصول على حالة صحة التطبيق لكل مثيل.
  2. إذا استجابت نقطة النهاية بحالة 200 (موافق)، توضع علامة على المثيل على أنه "صحي". في كل الحالات الأخرى (بما في ذلك إذا كان لا يمكن الوصول إلى نقطة النهاية)، يتم وضع علامة على المثيل بأنه "غير صحي".
  3. عندما يتبين أن المثيل غير صحي، فإن مجموعة تغيير السعة تبدأ تشغيل إجراء إصلاح عن طريق حذف المثيل غير الصحي وإنشاء مثيل جديد ليحل محله.
  4. يتم إجراء إصلاحات المثيل على دفعات. لا يتم في أي وقت إصلاح أكثر من 5٪ من إجمالي المثيلات في مجموعة تغيير السعة. إذا كانت مجموعة تغيير السعة تحتوي على أقل من 20 مثيلاً، يتم إجراء الإصلاحات لمثيل واحد غير صحي في المرة الواحدة.
  5. تستمر العملية المذكورة أعلاه حتى يتم إصلاح كل المثيلات غير الصحية في مجموعة تغيير السعة.

حماية المثيل والإصلاحات التلقائية

إذا كان مثيل ما في مجموعة تغيير السعة محمياً بتطبيق إحدى سياسات الحماية، فلن يتم إجراء إصلاحات تلقائية على ذلك المثيل. ينطبق هذا على كل من سياسات الحماية: إجراءي الحماية من التوسع والحماية من الإجراءات المحددة لمجموعة تغيير السعة.

إخطار الإنهاء والإصلاحات التلقائية

إذا تم تمكين ميزة إخطار الإنهاء على مجموعة تغيير سعة، فأثناء عملية الإصلاح التلقائي، يتبع حذف مثيل غير صحي تكوين إخطار الإنهاء. يتم إرسال إخطار إنهاء من خلال خدمة بيانات تعريف Azure - الأحداث المجدولة - ويتم تأخير حذف المثيل طوال مدة مهلة التأخير التي تم تكوينها. لكن إنشاء مثيل جديد ليحل محل المثيل غير الصحي لا ينتظر اكتمال مهلة التأخير.

تمكين نهج الإصلاحات التلقائية عند إنشاء مجموعة تغيير سعة جديدة

لتمكين نهج الإصلاحات التلقائية أثناء إنشاء مجموعة تغيير سعة جديدة، تأكد من استيفاء كل متطلبات الاشتراك في هذه الميزة. يجب تكوين نقطة نهاية التطبيق بشكل صحيح لمثيلات مجموعة تغيير السعة لتجنب تشغيل إصلاحات غير مقصودة أثناء تكوين نقطة النهاية. بالنسبة لمجموعات تغيير السعة التي تم إنشاؤها حديثاً، لا يتم إجراء أي إصلاحات مثيل إلا بعد الانتظار لمدة فترة السماح. لتمكين الإصلاح التلقائي للمثيل في مجموعة تغيير سعة، استخدم عنصر automaticRepairsPolicy في نموذج مجموعة تغيير سعة الجهاز الظاهري.

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

مدخل Azure

الخطوات التالية لتمكين نهج الإصلاحات التلقائية عند إنشاء مجموعة تغيير سعة جديدة.

  1. انتقل إلى مجموعات مقياس الجهاز الظاهري.
  2. حدد + Add لإنشاء مجموعة مقاييس جديدة.
  3. انتقل إلى علامة تبويب الصحة.
  4. حدد موقع قسم الصحة.
  5. قم بتمكين خيار مراقبة صحة التطبيق.
  6. حدد موقع قسم نهج الإصلاح التلقائي.
  7. قم بتشغيل خيار الإصلاحات التلقائية.
  8. في فترة السماح (بالدقيقة)، حدد فترة السماح بالدقائق، وتتراوح القيم المسموح بها بين 30 و90 دقيقة.
  9. عند الانتهاء من إنشاء مجموعة المقاييس الجديدة، حدد الزر Review + create.

REST API

يوضح المثال التالي كيفية تمكين الإصلاح التلقائي للمثيل في نموذج مجموعة تغيير سعة. استخدم إصدار واجهة برمجة التطبيقات 2018-10-01 أو إصدار أحدث.

PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2019-07-01'
{
  "properties": {
    "automaticRepairsPolicy": {
            "enabled": "true",
            "gracePeriod": "PT30M"
        }
    }
}

Azure PowerShell

يمكن تمكين ميزة الإصلاح التلقائي للمثيل أثناء إنشاء مجموعة تغيير سعة جديدة باستخدام cmdlet New-AzVmssConfig. يستعرض نموذج البرنامج النصي هذا عملية إنشاء مجموعة المقاييس والموارد المرتبطة بها باستخدام ملف التكوين: إنشاء مجموعة مقياس جهاز ظاهري كاملة. يمكنك تكوين نهج إصلاحات المثيل التلقائية عن طريق إضافة المعلمتين EnableAutomaticRepair وAutomaticRepairGracePeriod إلى كائن التكوين لإنشاء مجموعة تغيير السعة. يتيح المثال التالي الميزة مع فترة سماح مدتها 30 دقيقة.

New-AzVmssConfig `
 -Location "EastUS" `
 -SkuCapacity 2 `
 -SkuName "Standard_DS2" `
 -UpgradePolicyMode "Automatic" `
 -EnableAutomaticRepair $true `
 -AutomaticRepairGracePeriod "PT30M"

Azure CLI 2.0

يُمكّن المثال التالي نهج الإصلاحات التلقائية أثناء إنشاء مجموعة تغيير سعة جديدة باستخدام az vmss create. قم أولاً بإنشاء مجموعة موارد، ثم قم بإنشاء مجموعة تغيير سعة جديدة مع تعيين فترة سماح نهج الإصلاحات التلقائية إلى 30 دقيقة.

az group create --name <myResourceGroup> --location <VMSSLocation>
az vmss create \
  --resource-group <myResourceGroup> \
  --name <myVMScaleSet> \
  --image UbuntuLTS \
  --admin-username <azureuser> \
  --generate-ssh-keys \
  --load-balancer <existingLoadBalancer> \
  --health-probe <existingHealthProbeUnderLoaderBalancer> \
  --automatic-repairs-grace-period 30

يستخدم المثال أعلاه موازن تحميل موجوداً وفحص صحة لمراقبة حالة صحة التطبيق للمثيلات. إذا كنت تفضل استخدام ملحق صحة التطبيق للمراقبة بدلاً من ذلك، يمكنك إنشاء مجموعة تغيير سعة، وتكوين ملحق صحة التطبيق، ثم تمكين نهج إصلاحات المثيل التلقائية باستخدام az vmss update، كما هو موضح في القسم التالي.

تمكين نهج الإصلاحات التلقائية عند تحديث مجموعة تغيير سعة موجودة

قبل نهج الإصلاحات التلقائية في مجموعة تغيير سعة موجودة، تأكد من استيفاء كل متطلبات الاشتراك في هذه الميزة. يجب تكوين نقطة نهاية التطبيق بشكل صحيح لمثيلات مجموعة تغيير السعة لتجنب تشغيل إصلاحات غير مقصودة أثناء تكوين نقطة النهاية. لتمكين الإصلاح التلقائي للمثيل في مجموعة تغيير سعة، استخدم عنصر automaticRepairsPolicy في نموذج مجموعة تغيير سعة الجهاز الظاهري.

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

مدخل Azure

يمكنك تعديل نهج الإصلاحات التلقائية لمجموعة تغيير سعة موجودة من خلال مدخل Microsoft Azure.

  1. انتقل إلى مجموعة تغيير سعة جهاز ظاهري موجودة.
  2. ضمن الإعدادات في القائمة على اليمين، حدد الصحة والإصلاح.
  3. قم بتمكين خيار مراقبة صحة التطبيق.
  4. حدد موقع قسم نهج الإصلاح التلقائي.
  5. قم بتشغيل خيار الإصلاحات التلقائية.
  6. في فترة السماح (بالدقيقة)، حدد فترة السماح بالدقائق، وتتراوح القيم المسموح بها بين 30 و90 دقيقة.
  7. عندما تنتهي، حدد حفظ.

REST API

يتيح المثال التالي للنهج فترة سماح مدتها 40 دقيقة. استخدم إصدار واجهة برمجة التطبيقات 2018-10-01 أو إصدار أحدث.

PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2019-07-01'
{
  "properties": {
    "automaticRepairsPolicy": {
            "enabled": "true",
            "gracePeriod": "PT40M"
        }
    }
}

Azure PowerShell

استخدم Update-AzVmss cmdlet لتعديل تكوين ميزة إصلاح المثيل التلقائي في مجموعة تغيير سعة موجودة. يقوم المثال التالي بتحديث فترة السماح إلى 40 دقيقة.

Update-AzVmss `
 -ResourceGroupName "myResourceGroup" `
 -VMScaleSetName "myScaleSet" `
 -EnableAutomaticRepair $true `
 -AutomaticRepairGracePeriod "PT40M"

Azure CLI 2.0

في ما يلي مثال لتحديث نهج إصلاحات المثيل التلقائية لمجموعة تغيير سعة موجودة، باستخدام az vmss update.

az vmss update \
  --resource-group <myResourceGroup> \
  --name <myVMScaleSet> \
  --enable-automatic-repairs true \
  --automatic-repairs-grace-period 30

عرض وتحديث حالة الخدمة الخاصة بنهج إصلاحات المثيل التلقائية

REST API

استخدم Get Instance View مع إصدار واجهة برمجة التطبيقات 2019-12-01 أو أعلى لمجموعة تغيير سعة الجهاز الظاهري لعرض serviceState للإصلاحات التلقائية ضمن خاصية orchestrationServices.

GET '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView?api-version=2019-12-01'
{
  "orchestrationServices": [
    {
      "serviceName": "AutomaticRepairs",
      "serviceState": "Running"
    }
  ]
}

استخدم واجهة برمجة التطبيقات setOrchestrationServiceState مع إصدار واجهة برمجة التطبيقات 2019-12-01 أو أعلى على مجموعة تغيير سعة جهاز ظاهري لتعيين حالة الإصلاحات التلقائية. بمجرد تمكين مجموعة المقاييس في ميزة الإصلاحات التلقائية، يمكنك استخدام واجهة برمجة التطبيقات هذه لتعليق الإصلاحات التلقائية لمجموعة المقاييس أو استئنافها.

POST '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/setOrchestrationServiceState?api-version=2019-12-01'
{
  "orchestrationServices": [
    {
      "serviceName": "AutomaticRepairs",
      "serviceState": "Suspend"
    }
  ]
}

Azure CLI

استخدم get-instance-view cmdlet لعرض serviceState لإجراء إصلاحات المثيل التلقائية.

az vmss get-instance-view \
    --name MyScaleSet \
    --resource-group MyResourceGroup

استخدم set-orchestration-service-state cmdlett لتحديث serviceState لإجراء إصلاحات المثيل التلقائية. بمجرد تمكين مجموعة تغيير السعة في ميزة الإصلاح التلقائي، يمكنك استخدام cmdlet هذا لتعليق الإصلاحات التلقائية أو استئنافها لمجموعة تغيير السعة الخاصة بك.

az vmss set-orchestration-service-state \
    --service-name AutomaticRepairs \
    --action Resume \
    --name MyScaleSet \
    --resource-group MyResourceGroup

Azure PowerShell

استخدم Get-AzVmss cmdlet مع المعلمة InstanceView لعرض ServiceState لإصلاحات المثيل التلقائية.

Get-AzVmss `
    -ResourceGroupName "myResourceGroup" `
    -VMScaleSetName "myScaleSet" `
    -InstanceView

استخدم Set-AzVmssOrchestrationServiceState cmdlet لتحديث serviceState لإجراء إصلاحات المثيل التلقائية. بمجرد تمكين مجموعة تغيير السعة في ميزة الإصلاح التلقائي، يمكنك استخدام cmdlet هذا لتعليق الإصلاحات التلقائية أو استئنافها لمجموعة تغيير السعة الخاصة بك.

Set-AzVmssOrchestrationServiceState `
    -ResourceGroupName "myResourceGroup" `
    -VMScaleSetName "myScaleSet" `
    -ServiceName "AutomaticRepairs" `
    -Action "Suspend"

استكشاف الأخطاء وإصلاحها

الفشل في تمكين نهج الإصلاحات التلقائية

إذا تلقيت خطأ ‘BadRequest‘ برسالة تنص على "تعذر العثور على 'automaticRepairsPolicy' في عنصر من النوع ‘خصائص‘"، ثم تحقق من إصدار API المستخدم لمجموعة مقياس الجهاز الظاهري. مطلوب إصدار API 2018-10-01 أو أعلى لهذه الميزة.

عدم إصلاح المثيل حتى عند تمكين النهج

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

عرض حالة صحة التطبيق لمثيلات مجموعة تغيير السعة

يمكنك استخدام Get Instance View API للمثيلات في مجموعة تغيير سعة جهاز ظاهري لعرض حالة صحة التطبيق. باستخدام Azure PowerShell، يمكنك استخدام cmdlet Get-AzVmssVM بعلامة -InstanceView. يتم توفير حالة صحة التطبيق تحت خاصية vmHealth.

في مدخل Microsoft Azure، يمكنك الاطلاع على حالة الصحة أيضاً. انتقل إلى مجموعة تغيير السعة الموجودة، وحدد المثيلات من القائمة الموجودة على اليمين، وانظر إلى عمود حالة الصحة لمعرفة حالة الصحة لكل مثيل مجموعة تغيير سعة.

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

تعرّف على كيفية تكوين ملحق صحة التطبيق أو فحوصات صحة موازن التحميل لمجموعات تغيير السعة الخاصة بك.