توزيع نظام مجموعة مدار بواسطة Service Fabric عبر مناطق التوفر

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

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

إشعار

يتوفر تمديد مناطق التوفر على أنظمة مجموعات وحدات حفظ المخزون (SKU) القياسية فقط.

تتوفر نماذج القوالب: قالب مناطق التوفر عبر Service Fabric

طوبولوجيا أنظمة المجموعات المدارة بواسطة Azure Service Fabric التي تتسم بمرونة المناطق

إشعار

تعد فائدة امتداد نوع العقدة الأساسي عبر مناطق الإتاحة يتم رؤيتها حقًا لثلاث مناطق وليس منطقتين فقط.

تضمن مجموعة Service Fabric الموزعة عبر مناطق التوفر (AZ) توفرا عاليا لحالة نظام المجموعة.

يتطلب المخطط الموصى به للمجموعة المدارة الموارد التالية:

  • يجب أن تكون وحدة SKU لنظام المجموعة قياسية
  • يجب أن يحتوي نوع العقدة الأساسية على تسع عقد على الأقل (3 في كل AZ) للحصول على أفضل مرونة، ولكنه يدعم الحد الأدنى لعدد ست عقد (2 في كل AZ).
  • يجب أن تحتوي أنواع العقد الثانوية على ست عقد على الأقل للحصول على أفضل مرونة، ولكنها تدعم الحد الأدنى لعدد ثلاث عقد.

إشعار

يتم دعم 3 عمليات توزيع فقط في مناطق التوفر.

إشعار

لا يمكن إجراء تغيير الحجم لمجموعات مقياس الجهاز الظاهري في نظام مجموعة مُدار من نظام مجموعة غير ممتد إلى منطقة.

رسم تخطيطي يوضح بنية منطقة توفر Azure Service Fabric بنية منطقة توفر Azure Service Fabric

عينة قائمة العُقد التي تصور تنسيقات FD/UD في مناطق تمديد مجموعة مقاييس جهاز ظاهري

نموذج قائمة عقدة تصور تنسيقات FD/UD في مجموعة مقياس جهاز ظاهري تمتد المناطق.

توزيع النسخ المتماثلة للخدمة عبر المناطق: عند توزيع خدمة على أنواع العقدة التي تمتد عبر المناطق، يتم وضع النسخ المتماثلة للتأكد من وصولها إلى مناطق منفصلة. يتم ضمان هذا الفصل حيث يتم تكوين مجال الخطأ على العقد الموجودة في كل نوع من أنواع العقد هذه بمعلومات المنطقة (أي FD = fd:/zone1/1 وما إلى ذلك). على سبيل المثال: بالنسبة إلى خمس نسخ متماثلة أو مثيلات لخدمة ما، يكون التوزيع 2-2-1 ويحاول وقت التشغيل ضمان التوزيع المتساوي عبر AZs.

User Service Replica Configuration: يجب تكوين خدمات المستخدم ذات الحالة التي يتم توزيعها على أنواع عقدة منطقة التوفر المشترك بهذا التكوين: عدد النسخ المتماثلة مع الهدف = 9، الحد الأدنى = 5. يساعد هذا التكوين الخدمة على العمل حتى عندما تتعطل منطقة واحدة نظرا لأن ست نسخ متماثلة ستظل في المنطقتين الأخريين. سيتم أيضاً ترقية التطبيق في مثل هذا السيناريو.

سيناريو تعطل المنطقة: عند تعطل المنطقة، تظهر جميع العقد في تلك المنطقة على أنها معطلة. سيتم أيضاً تعطيل النسخ المتماثلة للخدمة في هذه العُقد. نظرا لوجود نسخ متماثلة في المناطق الأخرى، تستمر الخدمة في الاستجابة مع فشل النسخ المتماثلة الأساسية في المناطق التي تعمل. ستظهر الخدمات في حالة تحذير حيث لم يتم استيفاء عدد النسخ المتماثلة الهدف ولا يزال عدد الجهاز الظاهري (VM) أكثر من الحد الأدنى المحدد لحجم النسخة المتماثلة الهدف. ونتيجة لذلك، يجلب موازن تحميل Service Fabric النسخ المتماثلة في مناطق العمل لمطابقة عدد النسخ المتماثلة الهدف المكون. عند هذه النقطة، يجب أن تبدو الخدمات سليمة. عندما تأتي المنطقة التي تم إيقافها احتياطيا، سينشر موازن التحميل مرة أخرى جميع النسخ المتماثلة للخدمة بالتساوي عبر جميع المناطق.

تكوين الشبكات

لمزيد من المعلومات، راجع تكوين إعدادات الشبكة للمجموعات المدارة بواسطة Service Fabric.

تمكين نظام مجموعة مدار بواسطة Azure Service Fabric ويتسم بمرونة المناطق

لتمكين مجموعة مدارة مرنة في منطقة Azure Service Fabric، يجب تضمين الخاصية ZonalResiliency التالية، والتي تحدد ما إذا كانت المجموعة مرنة أم لا.

{
  "apiVersion": "2021-05-01",
  "type": "Microsoft.ServiceFabric/managedclusters",
  "properties": {
  ...
  "zonalResiliency": "true",
  ...
  }
}

ترحيل مجموعة مرنة غيرzone موجودة إلى Zone Resilient

يمكن الآن ترحيل مجموعات Service Fabric المدارة الموجودة التي لا تمتد عبر مناطق التوفر في مكانها لتمتد إلى مناطق التوفر. تتضمن السيناريوهات المدعومة المجموعات التي تم إنشاؤها في المناطق التي تحتوي على ثلاث مناطق توفر ومجموعات في المناطق التي يتم فيها توفير ثلاث مناطق توفر بعد النشر.

المتطلبات:

إشعار

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

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

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/getazresiliencystatus?api-version=2022-02-01-preview
    

    أو يمكنك استخدام Az Module على النحو التالي:

    Select-AzSubscription -SubscriptionId {subscriptionId}
    Invoke-AzResourceAction -ResourceId /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName} -Action getazresiliencystatus -ApiVersion 2022-02-01-preview
    

    يجب أن يوفر الأمر استجابة مشابهة ل:

    {
    "baseResourceStatus" :[
      {
      "resourceName": "sfmccluster1"
      "resourceType": "Microsoft.Storage/storageAccounts"
      "isZoneResilient": false
      },
      {
      "resourceName": "PublicIP-sfmccluster1"
      "resourceType": "Microsoft.Network/publicIPAddresses"
      "isZoneResilient": false
      },
      {
      "resourceName": "primary"
      "resourceType": "Microsoft.Compute/virutalmachinescalesets"
      "isZoneResilient": false
      }
    ],
    "isClusterZoneResilient": false
    }
    

    إذا لم يكن مورد IP العام مرنا في المنطقة، فإن ترحيل نظام المجموعة سيؤدي إلى فقدان قصير للاتصال الخارجي. يرجع فقدان الاتصال هذا إلى ترحيل إعداد IP عام جديد وتحديث اسم المجال المؤهل بالكامل لنظام المجموعة (FQDN) إلى IP الجديد. إذا كان مورد IP العام مرنا للمنطقة، فلن يعدل الترحيل مورد IP العام ولا FQDN، ولن يكون هناك أي تأثير اتصال خارجي.

  2. بدء تحويل حساب التخزين الأساسي الذي تم إنشاؤه لنظام المجموعة المدارة من التخزين المتكرر محليا (LRS) إلى التخزين المتكرر للمنطقة (ZRS) باستخدام التحويل الذي بدأه العميل. ستكون مجموعة الموارد لحساب التخزين التي يجب ترحيلها من النموذج "SFC_ClusterId" (على سبيل المثال SFC_9240df2f-71ab-4733-a641-53a8464d992d) ضمن نفس الاشتراك مثل مورد نظام المجموعة المدار.

  3. إضافة خاصية المناطق إلى أنواع العقد الموجودة

    تقوم هذه الخطوة بتكوين مجموعة مقياس الجهاز الظاهري المدارة المقترنة بنوع العقدة كمرونة للمنطقة، مما يضمن توزيع أي أجهزة ظاهرية جديدة تمت إضافتها إليها عبر مناطق التوفر (الأجهزة الظاهرية النطاقية). إذا كان نوع العقدة المحدد أساسيا، فسيقوم موفر المورد بإجراء ترحيل IP العام جنبا إلى جنب مع تحديث نظام مجموعة FQDN DNS، إذا لزم الأمر، لتصبح مرنة في المنطقة. getazresiliencystatus استخدم واجهة برمجة التطبيقات لفهم الآثار المترتبة على هذه الخطوة.

  • استخدم إصدار أولي-apiVersion 2022-02-01 أو أعلى.

  • أضف المعلمة المعينة zones إلى ["1", "2", "3"] إلى أنواع العقد الموجودة:

    {
       "apiVersion": "2024-02-01-preview",
       "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
       "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
       "location": "[resourcegroup().location]",
       "dependsOn": [
         "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
       ],
       "properties": {
         ...
         "isPrimary": true,
         "zones": ["1", "2", "3"]
         ...
       }
    },
    {
       "apiVersion": "2024-02-01-preview",
       "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
       "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeNameSecondary'))]",
       "location": "[resourcegroup().location]",
       "dependsOn": [
         "[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
       ],
       "properties": {
         ...
         "isPrimary": false,
         "zones": ["1", "2", "3"]
         ...
       }
    }
    
  1. تغيير حجم أنواع العقد لإضافة عقد نطاقية وإزالة العقد الإقليمية

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

    على سبيل المثال، إذا تم تعيين vmInstanceCount الأولي إلى 6 (تشير إلى ست عقد إقليمية)، يمكنك تنفيذ عمليتي توزيع:

    • النشر الأول: قم بزيادة vmInstanceCount إلى 12 لإضافة 6 عقد نطاقية .
    • التوزيع الثاني: إنقاص vmInstanceCount إلى 6 لإزالة جميع العقد الإقليمية .

    خلال العملية، يمكنك التحقق من getazresiliencystatus واجهة برمجة التطبيقات لاسترداد حالة التقدم، كما هو موضح أدناه. تعتبر العملية كاملة بمجرد أن يحتوي كل نوع عقدة على ست عقد نطاقية كحد أدنى و0 عقد إقليمية.

    {
    "baseResourceStatus" :[
      {
      "resourceName": "sfmccluster1"
      "resourceType": "Microsoft.Storage/storageAccounts"
      "isZoneResilient": true
      },
      {
      "resourceName": "PublicIP-sfmccluster1"
      "resourceType": "Microsoft.Network/publicIPAddresses"
      "isZoneResilient": true
      },
      {
      "resourceName": "ntPrimary"
      "resourceType": "Microsoft.Compute/virutalmachinescalesets"
      "isZoneResilient": false
      "details": "Status: InProgress, ZonalNodes: 6, RegionalNodes: 6"
      },
      {
      "resourceName": "ntSecondary"
      "resourceType": "Microsoft.Compute/virutalmachinescalesets"
      "isZoneResilient": true
      "details": "Status: Done, ZonalNodes: 6, RegionalNodes: 0"
      }
    ],
    "isClusterZoneResilient": false
    }
    

    إشعار

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

  2. وضع علامة على نظام المجموعة المرنة في حالة فشل المنطقة

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

    {
      "apiVersion": "2022-02-01-preview",
      "type": "Microsoft.ServiceFabric/managedclusters",
      "zonalResiliency": "true"
    }
    

    يمكنك أيضاً مشاهدة الحالة المحدثة في المدخل ضمن نظرة عامة -> خصائص مشابهة لـ Zonal resiliency True، بمجرد اكتمالها.

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

    للتحقق من حالة مرونة منطقة التوفر لموارد نظام المجموعة المدارة، استخدم استدعاء GET API التالي:

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ServiceFabric/managedClusters/{clusterName}/getazresiliencystatus?api-version=2022-02-01-preview
    

    يجب أن يوفر استدعاء واجهة برمجة التطبيقات هذا استجابة مشابهة ل:

    {
     "baseResourceStatus" :[
       {
       "resourceName": "sfmccluster1"
       "resourceType": "Microsoft.Storage/storageAccounts"
       "isZoneResilient": true
       },
       {
       "resourceName": "PublicIP-sfmccluster1"
       "resourceType": "Microsoft.Network/publicIPAddresses"
       "isZoneResilient": true
       },
       {
         "resourceName": "ntPrimary"
         "resourceType": "Microsoft.Compute/virutalmachinescalesets"
         "isZoneResilient": true
         "details": "Status: Done, ZonalNodes: 6, RegionalNodes: 0"
       },
       {
         "resourceName": "ntSecondary"
         "resourceType": "Microsoft.Compute/virutalmachinescalesets"
         "isZoneResilient": true
         "details": "Status: Done, ZonalNodes: 6, RegionalNodes: 0"
       }
     ],
     "isClusterZoneResilient": true
    }
    

    إذا واجهت أي مشاكل، فتواصل مع الدعم للحصول على المساعدة.

تمكين FastZonalUpdate على أنظمة المجموعات المدارة بواسطة Service Fabric

تدعم المجموعات المدارة من Service Fabric ترقيات أسرع للمجموعة والتطبيق عن طريق تقليل مجالات الترقية القصوى لكل منطقة توفر. يمكن أن يحتوي التكوين الافتراضي الآن على 15 مجال ترقية على الأكثر (UDs) في نوع عقدة AZ المتعددة. هذا العدد الهائل من UDs خفض سرعة الترقية. يقلل التكوين الجديد من الحد الأقصى لل UDs، ما يؤدي إلى تحديثات أسرع، مع الحفاظ على سلامة الترقيات كما هي.

يجب إجراء التحديث عبر قالب ARM عن طريق تعيين الخاصية zonalUpdateMode إلى "سريع" ثم تعديل سمة نوع العقدة، مثل إضافة عقدة ثم إزالة العقدة إلى كل نوع عقدة (راجع الخطوات المطلوبة 2 و3). يجب أن يكون apiVersion لمورد نظام المجموعة المدار من Service Fabric هو 2022-10-01-preview أو أحدث.

  1. تعديل قالب ARM باستخدام الخاصية الجديدة zonalUpdateMode.
   "resources": [
        {
            "type": "Microsoft.ServiceFabric/managedClusters",
            "apiVersion": "2022-10-01-preview",
            '''
            "properties": {
                '''
                "zonalResiliency": true,
                "zonalUpdateMode": "fast",
                ...
            }
        }]
  1. إضافة عقدة إلى نظام مجموعة باستخدام عقدة نظام مجموعة az sf إضافة أمر PowerShell.

  2. قم بإزالة عقدة من مجموعة باستخدام الأمر az sf cluster remove.