استخدام تقارير النظام الصحية لا استكشاف الأخطاء وإصلاحها

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

ملاحظة

لفهم المفاهيم المتعلقة بالصحة، اقرأ المزيد في نموذج صحة «تصميم الخدمة».

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

ملاحظة

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

يتم تحديد تقارير مكونات النظام بواسطة المصدر، والذي يبدأ ببادئة «النظام». لا يمكن لهيئات المراقبة استخدام البادئة نفسها لمصادرها، حيث يتم رفض التقارير ذات المعلمات غير الصالحة.

دعونا نلقي نظرة على بعض تقارير النظام لفهم ما الذي يثيرها ومعرفة كيفية تصحيح المشكلات المحتملة التي تمثلها.

ملاحظة

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

التقارير الصحية لنظام المجموعات

يتم إنشاء كيان حماية نظام المجموعة تلقائيًا في مخزن الحماية. إذا كان كل شيء يعمل بشكل صحيح، فلن يحتوي على تقرير نظام.

فقدان الحي

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

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

  • المصدر: System.Federation
  • الخاصية: يبدأ بالحي ويتضمن معلومات العقدة.
  • الخطوات التالية: تحقق من سبب فقدان الحي. على سبيل المثال، تحقق من الاتصال بين عقد نظام المجموعة.

إعادة البناء

تقوم خدمة إدارة تجاوز الفشل (FM) بإدارة معلومات حول عقد نظام المجموعة. عندما تفقد FM بياناتها وتذهب إلى فقدان البيانات، لا يمكنها ضمان أن لديها أحدث المعلومات حول عقد الكتلة. في هذه الحالة، يمر النظام بإعادة بناء، ويجمع System.FM البيانات من جميع العقد في المجموعة من أجل إعادة بناء حالته. في بعض الأحيان، بسبب مشكلات الشبكات أو العقدة، يمكن أن تتعثر إعادة البناء أو تتوقف. يمكن أن يحدث الشيء نفسه مع خدمة مدير تجاوز الفشل الرئيسي (FMM). FMM هي خدمة نظام عديم الجنسية تتعقب مكان وجود جميع FMs في المجموعة. الأساسي لـFMM هو دائما العقدة ذات المعرف الأقرب إلى 0. إذا تم إسقاط هذه العقدة، تشغيل إعادة بناء. عند حدوث أحد الشروط السابقة، System.FM أو System.FMM بوضع علامة عليه من خلال تقرير خطأ. قد تكون إعادة البناء عالقة في إحدى المرحلتين:

  • انتظار البث: ينتظر FM/FMM رد رسالة البث من العقد الأخرى.

    • الخطوات التالية: تحقق مما إذا كانت هناك مشكلة في اتصال الشبكة بين العقد.
  • انتظار العقد: تلقت FM/FMM بالفعل ردًا إذاعيًا من العقد الأخرى وتنتظر ردًا من عقد محددة. يسرد التقرير الصحي العقد التي تنتظر FM/FMM ردًا عليها.

    • الخطوات التالية: تحقق من اتصال الشبكة بين FM/FMM والعقد المدرجة. تحقق من كل عقدة مدرجة بحثًا عن مشكلات محتملة أخرى.
  • SourceID: System.FM أو System.FMM

  • الخاصية: إعادة البناء.

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

حالة عقدة البذور

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

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

  • المصدر: System.FM
  • الخاصية: SeedNodeStatus
  • الخطوات التالية: إذا ظهر هذا التحذير في نظام المجموعة، فاتبع الإرشادات التالية لإصلاحه: بالنسبة إلى نظام المجموعة الذي يقوم بتشغيل «تصميم الخدمة» الإصدار 6.5 أو أعلى: بالنسبة إلى مجموعة «تصميم الخدمة» على Azure، بعد انخفاض عقدة البذور، سيحاول «تصميم الخدمة» تغييرها إلى عقدة غير أساسية تلقائيا. لتحقيق ذلك، تأكد من أن عدد العقد غير البذرية في نوع العقدة الأساسية أكبر أو يساوي عدد العقد البذرية السفلية. إذا لزم الأمر، أضف المزيد من العقد إلى نوع العقدة الأساسي لتحقيق ذلك. استنادًا إلى حالة نظام المجموعة، قد يستغرق إصلاح المشكلة بعض الوقت. بمجرد الانتهاء من ذلك، يتم مسح تقرير التحذير تلقائيًا.

بالنسبة لمجموعة «تصميم الخدمة» المستقلة، لمسح تقرير التحذير، يجب أن تصبح جميع عقد البذور صحية. اعتمادًا على سبب كون عقد البذور غير صحية، يجب اتخاذ إجراءات مختلفة: إذا كانت عقدة البذور منخفضة، فيجب على المستخدمين رفع عقدة البذور هذه. إذا تمت إزالة عقدة البذور أو غير معروفة، فيجب إزالة عقدة البذور هذه من المجموعة. يتم مسح تقرير التحذير تلقائيًا عندما تصبح جميع عقد البذور صحية.

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

PS C:\> Send-ServiceFabricClusterHealthReport -SourceId "System.FM" -HealthProperty "SeedNodeStatus" -HealthState OK

تقارير سلامة نظام العقدة

System.FM، الذي يمثل خدمة «إدارة تجاوز الفشل»، هو المرجع الذي يدير المعلومات حول عقد نظام المجموعة. يجب أن تحتوي كل عقدة على تقرير واحد من System.FM يظهر حالتها. تتم إزالة كيانات العقدة عند إزالة حالة العقدة. لمزيد من المعلومات، راجع RemoveNodeStateAsync.

عقدة لأعلى/لأسفل

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

  • المصدر: System.FM
  • الخاصية: الحالة.
  • الخطوات التالية: إذا كانت العقدة معطلة للترقية، فيجب أن تعود مرة أخرى بعد ترقيتها. في هذه الحالة، يجب أن تعود الحالة الصحية إلى «موافق». إذا لم تعد العقدة أو فشلت، فإن المشكلة تحتاج إلى مزيد من التحقيق.

يوضح المثال التالي الحدث System.FM مع حالة صحية موافق للعقدة:

PS C:\> Get-ServiceFabricNodeHealth  _Node_0

NodeName              : _Node_0
AggregatedHealthState : Ok
HealthEvents          : 
                        SourceId              : System.FM
                        Property              : State
                        HealthState           : Ok
                        SequenceNumber        : 8
                        SentAt                : 7/14/2017 4:54:51 PM
                        ReceivedAt            : 7/14/2017 4:55:14 PM
                        TTL                   : Infinite
                        Description           : Fabric node is up.
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM

انتهاء صلاحية الشهادة

System.FabricNode تقارير تحذير عندما تكون الشهادات المستخدمة من قبل العقدة على وشك الانتهاء. هناك ثلاث شهادات لكل عقدة: Certificate_cluster،Certificate_server،Certificate_default_client. عندما يكون انتهاء الصلاحية على بعد أسبوعين على الأقل، تكون الحالة الصحية للتقرير على ما يرام. عندما يكون انتهاء الصلاحية في غضون أسبوعين، يكون نوع التقرير تحذيرًا. TTL لهذه الأحداث لا حصر لها، ويتم إزالتها عندما تغادر عقدة المجموعة.

  • المصدر: System.FabricNode
  • الخاصية: تبدأ بالشهادة وتحتوي على مزيد من المعلومات حول نوع الشهادة.
  • الخطوات التالية: تحديث الشهادات إذا كانت على وشك الانتهاء.

انتهاك سعة الحمولة

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

  • المصدر: System.PLB
  • الخاصية: تبدأ بالسعة.
  • الخطوات التالية: تحقق من المقاييس المقدمة واعرض السعة الحالية على العقدة.

عدم تطابق سعة العقدة لمقاييس إدارة الموارد

تقدم «System.Hosting» تحذيرًا إذا كانت سعات العقدة المحددة في بيان الكتلة أكبر من سعات العقدة الحقيقية لمقاييس إدارة الموارد (الذاكرة ونواة وحدة المعالجة المركزية). يظهر تقرير الحماية عند تسجيل حزمة الخدمة الأولى التي تستخدم إدارة الموارد على عقدة محددة.

  • المصدر: System.Hosting
  • الخاصية: حوكمة الموارد.
  • الخطوات التالية: يمكن أن تمثل هذه المشكلة مشكلة لأن إدارة حزم الخدمات لا يتم فرضها كما هو متوقع ولا تعمل إدارة الموارد بشكل صحيح. قم بتحديث بيان المجموعة باستخدام سعات العقدة الصحيحة لهذه المقاييس، أو لا تحددها واسمح لـ «تصميم الخدمة» باكتشاف الموارد المتاحة تلقائيًا.

تقارير سلامة نظام التطبيق

System.CM، الذي يمثل خدمة إدارة نظام المجموعة، هو المرجع الذي يدير المعلومات حول أحد التطبيقات.

الحالة

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

  • المصدر: System.CM
  • الخاصية: الحالة.
  • الخطوات التالية: إذا تم إنشاء التطبيق أو تحديثه، فيجب أن يتضمن تقرير حماية «إدارة نظام المجموعة». خلاف ذلك، تحقق من حالة التطبيق عن طريق إصدار استعلام. على سبيل المثال، استخدم PowerShell cmdlet الحصول على الخدمةFabricApplication -ApplicationNameapplicationNameName.

يوضح المثال التالي حدث الحالة على تطبيق fabric:/WordCount:

PS C:\> Get-ServiceFabricApplicationHealth fabric:/WordCount -ServicesFilter None -DeployedApplicationsFilter None -ExcludeHealthStatistics

ApplicationName                 : fabric:/WordCount
AggregatedHealthState           : Ok
ServiceHealthStates             : None
DeployedApplicationHealthStates : None
HealthEvents                    : 
                                  SourceId              : System.CM
                                  Property              : State
                                  HealthState           : Ok
                                  SequenceNumber        : 282
                                  SentAt                : 7/13/2017 5:57:05 PM
                                  ReceivedAt            : 7/14/2017 4:55:10 PM
                                  TTL                   : Infinite
                                  Description           : Application has been created.
                                  RemoveWhenExpired     : False
                                  IsExpired             : False
                                  Transitions           : Error->Ok = 7/13/2017 5:57:05 PM, LastWarning = 1/1/0001 12:00:00 AM

التقارير الصحية لنظام الخدمة

System.FM، التي تمثل خدمة إدارة تجاوز الفشل، هي السلطة التي تدير المعلومات حول الخدمات.

الحالة

System.FM التقارير على أنها موافق عند إنشاء الخدمة. يقوم بحذف الكيان من مخزن الحماية عند حذف الخدمة.

  • المصدر: System.FM
  • الخاصية: الحالة.

يوضح المثال التالي حدث الحالة على الخدمة:/fabric:/WordCount/WordCountWebService::

PS C:\> Get-ServiceFabricServiceHealth fabric:/WordCount/WordCountWebService -ExcludeHealthStatistics

ServiceName           : fabric:/WordCount/WordCountWebService
AggregatedHealthState : Ok
PartitionHealthStates : 
                        PartitionId           : 8bbcd03a-3a53-47ec-a5f1-9b77f73c53b2
                        AggregatedHealthState : Ok

HealthEvents          : 
                        SourceId              : System.FM
                        Property              : State
                        HealthState           : Ok
                        SequenceNumber        : 14
                        SentAt                : 7/13/2017 5:57:05 PM
                        ReceivedAt            : 7/14/2017 4:55:10 PM
                        TTL                   : Infinite
                        Description           : Service has been created.
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Ok = 7/13/2017 5:57:18 PM, LastWarning = 1/1/0001 12:00:00 AM

خطأ في ارتباط الخدمة

يقوم System.PLB بالإبلاغ عن خطأ عندما يكتشف أن تحديث خدمة مرتبط بخدمة أخرى تقوم بإنشاء سلسلة تقارب. يتم مسح التقرير عند حدوث تحديث ناجح.

  • المصدر: System.PLB
  • الخاصية: وصف الخدمة.
  • الخطوات التالية: تحقق من أوصاف الخدمة المرتبطة.

تقارير سلامة نظام التقسيم

System.FM، الذي يمثل خدمة إدارة تجاوز الفشل، هو المرجع الذي يدير المعلومات حول أقسام الخدمة.

الحالة

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

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

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

  • المصدر: System.FM
  • الخاصية: الحالة.
  • الخطوات التالية: إذا لم تكن الحالة الصحية على ما يرام، فمن المحتمل أن بعض النسخ المتماثلة لم يتم إنشاؤها أو فتحها أو ترقيتها إلى أساسي أو ثانوي بشكل صحيح.

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

إذا كان الوصف يصف قسمًا عالقًا في إعادة التكوين، فإن تقرير الحماية على النسخة المتماثلة الأساسية يوفر معلومات إضافية.

بالنسبة لتقارير حماية System.FM الأخرى، ستكون هناك تقارير عن النسخ المتماثلة أو القسم أو الخدمة من مكونات النظام الأخرى.

وتصف الأمثلة التالية بعض هذه التقارير.

يوضح المثال التالي قسمًا سليمًا:

PS C:\> Get-ServiceFabricPartition fabric:/WordCount/WordCountWebService | Get-ServiceFabricPartitionHealth -ExcludeHealthStatistics -ReplicasFilter None

PartitionId           : 8bbcd03a-3a53-47ec-a5f1-9b77f73c53b2
AggregatedHealthState : Ok
ReplicaHealthStates   : None
HealthEvents          : 
                        SourceId              : System.FM
                        Property              : State
                        HealthState           : Ok
                        SequenceNumber        : 70
                        SentAt                : 7/13/2017 5:57:05 PM
                        ReceivedAt            : 7/14/2017 4:55:10 PM
                        TTL                   : Infinite
                        Description           : Partition is healthy.
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Ok = 7/13/2017 5:57:18 PM, LastWarning = 1/1/0001 12:00:00 AM

يوضح المثال التالي سلامة قسم أقل من عدد النسخ المتماثلة المستهدفة. الخطوة التالية هي الحصول على وصف القسم، والذي يوضح كيفية تكوينه: MinReplicaSetSize هو ثلاثة و TargetReplicaSetSize هو سبعة. ثم احصل على عدد العقد في المجموعة، والتي في هذه الحالة هي خمسة. لذلك في هذه الحالة، لا يمكن وضع نسختين متماثلتين، لأن العدد المستهدف من النسخ المتماثلة أعلى من عدد العقد المتاحة.

PS C:\> Get-ServiceFabricPartition fabric:/WordCount/WordCountService | Get-ServiceFabricPartitionHealth -ReplicasFilter None -ExcludeHealthStatistics

PartitionId           : af2e3e44-a8f8-45ac-9f31-4093eb897600
AggregatedHealthState : Warning
UnhealthyEvaluations  : 
                        Unhealthy event: SourceId='System.FM', Property='State', HealthState='Warning', ConsiderWarningAsError=false.

ReplicaHealthStates   : None
HealthEvents          : 
                        SourceId              : System.FM
                        Property              : State
                        HealthState           : Warning
                        SequenceNumber        : 123
                        SentAt                : 7/14/2017 4:55:39 PM
                        ReceivedAt            : 7/14/2017 4:55:44 PM
                        TTL                   : Infinite
                        Description           : Partition is below target replica or instance count.
                        fabric:/WordCount/WordCountService 7 2 af2e3e44-a8f8-45ac-9f31-4093eb897600
                          N/S Ready _Node_2 131444422260002646
                          N/S Ready _Node_4 131444422293113678
                          N/S Ready _Node_3 131444422293113679
                          N/S Ready _Node_1 131444422293118720
                          N/P Ready _Node_0 131444422293118721
                          (Showing 5 out of 5 replicas. Total available replicas: 5)

                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Warning = 7/14/2017 4:55:44 PM, LastOk = 1/1/0001 12:00:00 AM

                        SourceId              : System.PLB
                        Property              : ServiceReplicaUnplacedHealth_Secondary_af2e3e44-a8f8-45ac-9f31-4093eb897600
                        HealthState           : Warning
                        SequenceNumber        : 131445250939703027
                        SentAt                : 7/14/2017 4:58:13 PM
                        ReceivedAt            : 7/14/2017 4:58:14 PM
                        TTL                   : 00:01:05
                        Description           : The Load Balancer was unable to find a placement for one or more of the Service's Replicas:
                        Secondary replica could not be placed due to the following constraints and properties:  
                        TargetReplicaSetSize: 7
                        Placement Constraint: N/A
                        Parent Service: N/A

                        Constraint Elimination Sequence:
                        Existing Secondary Replicas eliminated 4 possible node(s) for placement -- 1/5 node(s) remain.
                        Existing Primary Replica eliminated 1 possible node(s) for placement -- 0/5 node(s) remain.

                        Nodes Eliminated By Constraints:

                        Existing Secondary Replicas -- Nodes with Partition's Existing Secondary Replicas/Instances:
                        --
                        FaultDomain:fd:/4 NodeName:_Node_4 NodeType:NodeType4 UpgradeDomain:4 UpgradeDomain: ud:/4 Deactivation Intent/Status: None/None
                        FaultDomain:fd:/3 NodeName:_Node_3 NodeType:NodeType3 UpgradeDomain:3 UpgradeDomain: ud:/3 Deactivation Intent/Status: None/None
                        FaultDomain:fd:/2 NodeName:_Node_2 NodeType:NodeType2 UpgradeDomain:2 UpgradeDomain: ud:/2 Deactivation Intent/Status: None/None
                        FaultDomain:fd:/1 NodeName:_Node_1 NodeType:NodeType1 UpgradeDomain:1 UpgradeDomain: ud:/1 Deactivation Intent/Status: None/None

                        Existing Primary Replica -- Nodes with Partition's Existing Primary Replica or Secondary Replicas:
                        --
                        FaultDomain:fd:/0 NodeName:_Node_0 NodeType:NodeType0 UpgradeDomain:0 UpgradeDomain: ud:/0 Deactivation Intent/Status: None/None

                        RemoveWhenExpired     : True
                        IsExpired             : False
                        Transitions           : Error->Warning = 7/14/2017 4:56:14 PM, LastOk = 1/1/0001 12:00:00 AM

PS C:\> Get-ServiceFabricPartition fabric:/WordCount/WordCountService | select MinReplicaSetSize,TargetReplicaSetSize

MinReplicaSetSize TargetReplicaSetSize
----------------- --------------------
                2                    7

PS C:\> @(Get-ServiceFabricNode).Count
5

يوضح المثال التالي سلامة قسم عالق في إعادة التكوين بسبب عدم احترام المستخدم للرمز المميز للإلغاء في طريقة RunAsync. يمكن أن يساعد التحقيق في التقرير الصحي لأي نسخة طبق الأصل تم وضع علامة عليها على أنها أولية (P) في التعمق أكثر في المشكلة.

PS C:\utilities\ServiceFabricExplorer\ClientPackage\lib> Get-ServiceFabricPartitionHealth 0e40fd81-284d-4be4-a665-13bc5a6607ec -ExcludeHealthStatistics

PartitionId           : 0e40fd81-284d-4be4-a665-13bc5a6607ec
AggregatedHealthState : Warning
UnhealthyEvaluations  : 
                        Unhealthy event: SourceId='System.FM', Property='State', HealthState='Warning', 
                        ConsiderWarningAsError=false.

HealthEvents          : 
                        SourceId              : System.FM
                        Property              : State
                        HealthState           : Warning
                        SequenceNumber        : 7
                        SentAt                : 8/27/2017 3:43:09 AM
                        ReceivedAt            : 8/27/2017 3:43:32 AM
                        TTL                   : Infinite
                        Description           : Partition reconfiguration is taking longer than expected.
                        fabric:/app/test1 3 1 0e40fd81-284d-4be4-a665-13bc5a6607ec
                          P/S Ready Node1 131482789658160654
                          S/P Ready Node2 131482789688598467
                          S/S Ready Node3 131482789688598468
                          (Showing 3 out of 3 replicas. Total available replicas: 3)

                        For more information see: https://aka.ms/sfhealth
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Ok->Warning = 8/27/2017 3:43:32 AM, LastError = 1/1/0001 12:00:00 AM

يعرض تقرير الحماية هذا حالة النسخ المتماثلة للقسم الذي يخضع لإعادة التكوين:

  P/S Ready Node1 131482789658160654
  S/P Ready Node2 131482789688598467
  S/S Ready Node3 131482789688598468

لكل نسخة طبق الأصل، يحتوي التقرير الصحي على:

  • دور التكوين السابق
  • دور التكوين الحالي
  • حالة النسخ المتماثل
  • العقدة التي تعمل عليها النسخة المتماثلة
  • معرف النسخة المتماثلة

في حالة مثل المثال، هناك حاجة إلى مزيد من التحقيق. تحقق من صحة كل نسخة متماثلة فردية بدءًا من النسخ المتماثلة التي تم وضع علامة عليها ك Primary و Secondary (131482789658160654 و 131482789688598467) في المثال السابق.

انتهاك قيود النسخ المتماثلة

يقومSystem.PLB بالإبلاغ عن تحذير إذا اكتشف انتهاكا لقيود النسخ المتماثلة ولم يتمكن من وضع كافة النسخ المتماثلة للقسم. توضح تفاصيل التقرير القيود والخصائص التي تمنع موضع النسخة المتماثلة.

  • المصدر: System.PLB
  • الخاصية: تبدأ بـ ReplicaConstraintIncidolation.

تقارير سلامة النظام المتماثل

System.RA، الذي يمثل مكون عامل إعادة التكوين، هو المرجع لحالة النسخة المتماثلة.

الحالة

تقارير System.RA موافق عند إنشاء النسخة المتماثلة.

  • المصدر: System.RA
  • الخاصية: الحالة.

يوضح المثال التالي نسخة طبق الأصل صحية:

PS C:\> Get-ServiceFabricPartition fabric:/WordCount/WordCountService | Get-ServiceFabricReplica | where {$_.ReplicaRole -eq "Primary"} | Get-ServiceFabricReplicaHealth

PartitionId           : af2e3e44-a8f8-45ac-9f31-4093eb897600
ReplicaId             : 131444422293118721
AggregatedHealthState : Ok
HealthEvents          : 
                        SourceId              : System.RA
                        Property              : State
                        HealthState           : Ok
                        SequenceNumber        : 131445248920273536
                        SentAt                : 7/14/2017 4:54:52 PM
                        ReceivedAt            : 7/14/2017 4:55:13 PM
                        TTL                   : Infinite
                        Description           : Replica has been created._Node_0
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Ok = 7/14/2017 4:55:13 PM, LastWarning = 1/1/0001 12:00:00 AM

ReplicaOpenStatus, ReplicaCloseStatus, ReplicaChangeRoleStatus

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

يتم رفع هذه التحذيرات الصحية بعد إعادة محاولة الإجراء محليا بعض المرات (اعتمادا على السياسة). يعيد «تصميم الخدمة» محاولة الإجراء حتى الحد الأقصى. بعد الوصول إلى الحد الأقصى، قد يحاول العمل على تصحيح الموقف. يمكن أن تتسبب هذه المحاولة في مسح هذه التحذيرات لأنها تتخلى عن الإجراء على هذه العقدة. على سبيل المثال، إذا فشلت نسخة متماثلة في الفتح على عقدة، فإن «تصميم الخدمة» يثير تحذيرًا صحيًا. إذا استمر فشل فتح النسخة المتماثلة، فستعمل «تصميم الخدمة» على الإصلاح الذاتي. قد يتضمن هذا الإجراء تجربة نفس العملية على عقدة أخرى. تؤدي هذه المحاولة إلى مسح التحذير الذي تم رفعه لهذه النسخة المتماثلة.

  • المصدر: System.RA
  • الخاصية: ReplicaOpenStatus و ReplicaCloseStatus و ReplicaChangeRoleStatus.
  • الخطوات التالية: تحقق من رمز الخدمة أو مقالب الأعطال لتحديد سبب فشل العملية.

يوضح المثال التالي صحة نسخة طبق الأصل يتم رميها TargetInvocationException من طريقتها المفتوحة. يحتوي الوصف على نقطة الفشل IStatefulServiceReplica.Open ونوع الاستثناء TargetInvocationException وتتبع المكدس.

PS C:\> Get-ServiceFabricReplicaHealth -PartitionId 337cf1df-6cab-4825-99a9-7595090c0b1b -ReplicaOrInstanceId 131483509874784794

PartitionId           : 337cf1df-6cab-4825-99a9-7595090c0b1b
ReplicaId             : 131483509874784794
AggregatedHealthState : Warning
UnhealthyEvaluations  : 
                        Unhealthy event: SourceId='System.RA', Property='ReplicaOpenStatus', HealthState='Warning', 
                        ConsiderWarningAsError=false.

HealthEvents          : 
                        SourceId              : System.RA
                        Property              : ReplicaOpenStatus
                        HealthState           : Warning
                        SequenceNumber        : 131483510001453159
                        SentAt                : 8/27/2017 11:43:20 PM
                        ReceivedAt            : 8/27/2017 11:43:21 PM
                        TTL                   : Infinite
                        Description           : Replica had multiple failures during open on _Node_0 API call: IStatefulServiceReplica.Open(); Error = System.Reflection.TargetInvocationException (-2146232828)
Exception has been thrown by the target of an invocation.
   at Microsoft.ServiceFabric.Replicator.RecoveryManager.d__31.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.ServiceFabric.Replicator.LoggingReplicator.d__137.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.ServiceFabric.Replicator.DynamicStateManager.d__109.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.ServiceFabric.Replicator.TransactionalReplicator.d__79.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.ServiceFabric.Replicator.StatefulServiceReplica.d__21.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.ServiceFabric.Services.Runtime.StatefulServiceReplicaAdapter.d__0.MoveNext()

    For more information see: https://aka.ms/sfhealth
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Warning = 8/27/2017 11:43:21 PM, LastOk = 1/1/0001 12:00:00 AM

يوضح المثال التالي نسخة متماثلة تتعطل باستمرار أثناء الإغلاق:

C:>Get-ServiceFabricReplicaHealth -PartitionId dcafb6b7-9446-425c-8b90-b3fdf3859e64 -ReplicaOrInstanceId 131483565548493142

PartitionId           : dcafb6b7-9446-425c-8b90-b3fdf3859e64
ReplicaId             : 131483565548493142
AggregatedHealthState : Warning
UnhealthyEvaluations  : 
                        Unhealthy event: SourceId='System.RA', Property='ReplicaCloseStatus', HealthState='Warning', 
                        ConsiderWarningAsError=false.

HealthEvents          : 
                        SourceId              : System.RA
                        Property              : ReplicaCloseStatus
                        HealthState           : Warning
                        SequenceNumber        : 131483565611258984
                        SentAt                : 8/28/2017 1:16:01 AM
                        ReceivedAt            : 8/28/2017 1:16:03 AM
                        TTL                   : Infinite
                        Description           : Replica had multiple failures during close on _Node_1. The application 
                        host has crashed.

                        For more information see: https://aka.ms/sfhealth
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Warning = 8/28/2017 1:16:03 AM, LastOk = 1/1/0001 12:00:00 AM

إعادة التكوين

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

يمكن تعليق إعادة التكوين لأحد الأسباب التالية:

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

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

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

  • المصدر: System.RA
  • الخاصية: إعادة التكوين.
  • الخطوات التالية: تحقق من النسخ المتماثلة المحلية أو البعيدة بناء على وصف التقرير الصحي.

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

PS C:\> Get-ServiceFabricReplicaHealth -PartitionId 9a0cedee-464c-4603-abbc-1cf57c4454f3 -ReplicaOrInstanceId 131483600074836703

PartitionId           : 9a0cedee-464c-4603-abbc-1cf57c4454f3
ReplicaId             : 131483600074836703
AggregatedHealthState : Warning
UnhealthyEvaluations  : 
                        Unhealthy event: SourceId='System.RA', Property='Reconfiguration', HealthState='Warning', 
                        ConsiderWarningAsError=false.

HealthEvents          : 
                        SourceId              : System.RA
                        Property              : Reconfiguration
                        HealthState           : Warning
                        SequenceNumber        : 131483600309264482
                        SentAt                : 8/28/2017 2:13:50 AM
                        ReceivedAt            : 8/28/2017 2:13:57 AM
                        TTL                   : Infinite
                        Description           : Reconfiguration is stuck. Waiting for response from the local replica

                        For more information see: https://aka.ms/sfhealth
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Warning = 8/28/2017 2:13:57 AM, LastOk = 1/1/0001 12:00:00 AM

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

PS C:\> Get-ServiceFabricReplicaHealth -PartitionId  579d50c6-d670-4d25-af70-d706e4bc19a2 -ReplicaOrInstanceId 131483956274977415

PartitionId           : 579d50c6-d670-4d25-af70-d706e4bc19a2
ReplicaId             : 131483956274977415
AggregatedHealthState : Warning
UnhealthyEvaluations  : 
                        Unhealthy event: SourceId='System.RA', Property='Reconfiguration', HealthState='Warning', ConsiderWarningAsError=false.

HealthEvents          : 
                        SourceId              : System.RA
                        Property              : Reconfiguration
                        HealthState           : Warning
                        SequenceNumber        : 131483960376212469
                        SentAt                : 8/28/2017 12:13:57 PM
                        ReceivedAt            : 8/28/2017 12:14:07 PM
                        TTL                   : Infinite
                        Description           : Reconfiguration is stuck. Waiting for response from 2 replicas

                        Pending Replicas: 
                        P/I Down 40 131483956244554282
                        S/S Down 20 131483956274972403

                        For more information see: https://aka.ms/sfhealth
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Warning = 8/28/2017 12:07:37 PM, LastOk = 1/1/0001 12:00:00 AM

يوضح تقرير الحماية هذا أن إعادة التكوين عالقة في انتظار استجابة من نسختين متماثلتين:

    P/I Down 40 131483956244554282
    S/S Down 20 131483956274972403

لكل نسخة طبق الأصل، يتم إعطاء المعلومات التالية:

لإلغاء حظر إعادة التكوين:

  • يجب إحضار النسخ المتماثلة السفلية.
  • يجب أن تكمل النسخ المتماثلة المضمنة البنية والانتقال إلى جاهزية.

مكالمة واجهة برمجة تطبيقات الخدمة البطيئة

System.RAP و System.Replicator الإبلاغ عن تحذير إذا كان استدعاء إلى رمز خدمة المستخدم يستغرق وقتا أطول من الوقت الذي تم تكوينه. يتم مسح التحذير عند اكتمال المكالمة.

  • المصدر: System.RAP أو System.Replicator
  • الخاصية: اسم واجهة برمجة التطبيقات البطيئة. يوفر الوصف مزيدًا من التفاصيل حول الوقت الذي كانت فيه واجهة برمجة التطبيقات معلقة.
  • الخطوات التالية: تحقق من سبب استغراق المكالمة وقتا أطول من المتوقع.

يوضح المثال التالي الحدث الصحي من System.RAP لخدمة موثوقة لا تحترم الرمز المميز للإلغاء في RunAsync:

PS C:\> Get-ServiceFabricReplicaHealth -PartitionId 5f6060fb-096f-45e4-8c3d-c26444d8dd10 -ReplicaOrInstanceId 131483966141404693

PartitionId           : 5f6060fb-096f-45e4-8c3d-c26444d8dd10
ReplicaId             : 131483966141404693
AggregatedHealthState : Warning
UnhealthyEvaluations  : 
                        Unhealthy event: SourceId='System.RA', Property='Reconfiguration', HealthState='Warning', ConsiderWarningAsError=false.

HealthEvents          :                         
                        SourceId              : System.RAP
                        Property              : IStatefulServiceReplica.ChangeRole(S)Duration
                        HealthState           : Warning
                        SequenceNumber        : 131483966663476570
                        SentAt                : 8/28/2017 12:24:26 PM
                        ReceivedAt            : 8/28/2017 12:24:56 PM
                        TTL                   : Infinite
                        Description           : The api IStatefulServiceReplica.ChangeRole(S) on _Node_1 is stuck. Start Time (UTC): 2017-08-28 12:23:56.347.
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Warning = 8/28/2017 12:24:56 PM, LastOk = 1/1/0001 12:00:00 AM

تشير الخاصية والنص إلى واجهة برمجة التطبيقات التي تعثرت فيها. تختلف الخطوات التالية التي يجب اتخاذها لواجهات برمجة التطبيقات العالقة المختلفة. عادة ما تكون أي واجهة برمجة تطبيقات على IStatefulServiceReplica أو IStatelessServiceInstance خطأ في رمز الخدمة. يصف القسم التالي كيفية ترجمتها إلى نموذج الخدمات الموثوقة:

  • IStatefulServiceReplica.Open: يشير هذا التحذير إلى أن مكالمة إلى CreateServiceInstanceListeners، أو إذا تم تجاوزها، ICommunicationListener.OpenAsyncOnOpenAsync عالقة.

  • IStatefulServiceReplica.Close و IStatefulServiceReplica.Abort: الحالة الأكثر شيوعا هي خدمة لا تحترم رمز الإلغاء الذي تم تمريره إلى RunAsync. قد يكون أيضًا ذلك ICommunicationListener.CloseAsync، أو إذا تم تجاوزه، OnCloseAsync عالقًا.

  • IStatefulServiceReplica.ChangeRole(S ) و IStatefulServiceReplica.ChangeRole(N): الحالة الأكثر شيوعا هي خدمة لا تحترم رمز الإلغاء المميز الذي تم تمريره إلى RunAsync. في هذا السيناريو، الحل الأفضل هو إعادة تشغيل النسخة المتماثلة.

  • IStatefulServiceReplica.ChangeRole(P): الحالة الأكثر شيوعًا هي أن الخدمة لم تقم بإرجاع مهمة من RunAsync.

توجد مكالمات واجهة برمجة التطبيقات الأخرى التي يمكن أن تتعثر على واجهة IReplicator. على سبيل المثال:

  • IReplicator.CatchupReplicaSet: يشير هذا التحذير إلى أحد أمرين. لا توجد نسخ متماثلة كافية. لمعرفة ما إذا كانت هذه هي الحالة، انظر إلى حالة النسخ المتماثلة للنسخ المتماثلة في القسم أو تقرير حماية System.FM لإعادة تكوين عالقة. أو أن النسخ المتماثلة لا تعترف بالعمليات. يمكن استخدام PowerShell cmdlet Get-ServiceFabricDeployedReplicaDetail لتحديد تقدم جميع النسخ المتماثلة. تكمن المشكلة في النسخ المتماثلة التي LastAppliedReplicationSequenceNumber تكون قيمتها وراء قيمة الأساسي CommittedSequenceNumber.

  • IReplicator.BuildReplica(<Remote ReplicaId>): يشير هذا التحذير إلى وجود مشكلة في عملية الإنشاء. لمزيد من المعلومات، راجع دورة حياة النسخ المتماثل. قد يكون ذلك بسبب سوء تكوين عنوان المكرر. لمزيد من المعلومات، راجع تكوين خدمات موثوقة ذات حالة وتحديد موارد في بيان خدمة. قد يكون أيضًا مشكلة في العقدة البعيدة.

تقارير سلامة نظام النسخ المتماثل

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

  • المصدر: System.Replicator
  • الخاصية: PrimaryReplicationQueueStatus أو SecondaryReplicationQueueStatus، اعتمادا على دور النسخة المتماثلة.
  • الخطوات التالية: إذا كان التقرير في الفئة الأساسية، فتحقق من الاتصال بين العقد في المجموعة. إذا كانت جميع الاتصالات سليمة، فقد يكون هناك ثانوي بطيء واحد على الأقل مع زمن انتقال قرص مرتفع لتطبيق العمليات. إذا كان التقرير على المستوى الثانوي، فتحقق من استخدام القرص والأداء على العقدة أولًا. ثم تحقق من الاتصال الصادر من العقدة البطيئة إلى الأساسية.

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

  • المصدر: System.Replicator
  • الخاصية: RemoteReplicatorConnectionStatus.
  • الخطوات التالية: تحقق من رسالة الخطأ وتأكد من تكوين عنوان النسخ المتماثل البعيد بشكل صحيح. على سبيل المثال، إذا تم فتح جهاز النسخ المتماثل البعيد باستخدام عنوان الاستماع «المضيف المحلي»، فلن يمكن الوصول إليه من الخارج. إذا كان العنوان يبدو صحيحًا، فتحقق من الاتصال بين العقدة الأساسية والعنوان البعيد للعثور على أي مشكلات محتملة في الشبكة.

قائمة انتظار النسخ المتماثل ممتلئة

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

  • المصدر: System.Replicator
  • الخاصية: PrimaryReplicationQueueStatus أو SecondaryReplicationQueueStatus، اعتمادا على دور النسخة المتماثلة.

عمليات التسمية البطيئة

System.NameingService تقارير السلامة على النسخة المتماثلة الأساسية عندما تستغرق عملية تسمية وقتًا أطول من المقبول. أمثلة على عمليات التسمية هي CreateServiceAsync أوDeleteServiceAsync. يمكن العثور على المزيد من الأساليب تحت «FabricClient». على سبيل المثال، يمكن العثور عليها ضمن أساليب إدارة الخدمة أو أساليب إدارة الخاصية.

ملاحظة

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

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

  • المصدر: System.NameingService
  • الخاصية: تبدأ بالبادئة «Duration_» وتحدد العملية البطيئة واسم «تصميم الخدمة» الذي يتم تطبيق العملية عليه. على سبيل المثال، إذا استغرق إنشاء خدمة باسم fabric:/MyApp/MyService وقتًا طويلًا جدًا، فستكون الخاصية Duration_AOCreateService.fabric:/MyApp/MyService. يشير «AO» إلى دور قسم التسمية لهذا الاسم والعملية.
  • الخطوات التالية: تحقق لمعرفة سبب فشل عملية التسمية. يمكن أن يكون لكل عملية أسباب جذرية مختلفة. على سبيل المثال، قد تكون خدمة الحذف عالقة. قد تكون الخدمة عالقة لأن مضيف التطبيق يستمر في التعطل على عقدة بسبب خطأ مستخدم في رمز الخدمة.

يوضح المثال التالي عملية إنشاء خدمة. استغرقت العملية وقتًا أطول من المدة التي تم تكوينها. يعيد «AO» محاولة العمل وإرساله إلى «لا». أكملت: «لا» العملية الأخيرة باستخدام TIMEOUT. في هذه الحالة، تكون نفس النسخة المتماثلة أساسية لكل من أدوار «AO» و«لا».

PartitionId           : 00000000-0000-0000-0000-000000001000
ReplicaId             : 131064359253133577
AggregatedHealthState : Warning
UnhealthyEvaluations  :
                        Unhealthy event: SourceId='System.NamingService', Property='Duration_AOCreateService.fabric:/MyApp/MyService', HealthState='Warning', ConsiderWarningAsError=false.

HealthEvents          :
                        SourceId              : System.RA
                        Property              : State
                        HealthState           : Ok
                        SequenceNumber        : 131064359308715535
                        SentAt                : 4/29/2016 8:38:50 PM
                        ReceivedAt            : 4/29/2016 8:39:08 PM
                        TTL                   : Infinite
                        Description           : Replica has been created.
                        RemoveWhenExpired     : False
                        IsExpired             : False
                        Transitions           : Error->Ok = 4/29/2016 8:39:08 PM, LastWarning = 1/1/0001 12:00:00 AM

                        SourceId              : System.NamingService
                        Property              : Duration_AOCreateService.fabric:/MyApp/MyService
                        HealthState           : Warning
                        SequenceNumber        : 131064359526778775
                        SentAt                : 4/29/2016 8:39:12 PM
                        ReceivedAt            : 4/29/2016 8:39:38 PM
                        TTL                   : 00:05:00
                        Description           : The AOCreateService started at 2016-04-29 20:39:08.677 is taking longer than 30.000.
                        RemoveWhenExpired     : True
                        IsExpired             : False
                        Transitions           : Error->Warning = 4/29/2016 8:39:38 PM, LastOk = 1/1/0001 12:00:00 AM

                        SourceId              : System.NamingService
                        Property              : Duration_NOCreateService.fabric:/MyApp/MyService
                        HealthState           : Warning
                        SequenceNumber        : 131064360657607311
                        SentAt                : 4/29/2016 8:41:05 PM
                        ReceivedAt            : 4/29/2016 8:41:08 PM
                        TTL                   : 00:00:15
                        Description           : The NOCreateService started at 2016-04-29 20:39:08.689 completed with FABRIC_E_TIMEOUT in more than 30.000.
                        RemoveWhenExpired     : True
                        IsExpired             : False
                        Transitions           : Error->Warning = 4/29/2016 8:39:38 PM, LastOk = 1/1/0001 12:00:00 AM

تقارير سلامة نظام التطبيقات المنشورة

System.Hosting هي السلطة على الكيانات المنشورة.

التنشيط

تقارير System.Hosting على أنها موافق عند تنشيط تطبيق بنجاح على العقدة. وبخلاف ذلك، يتم الإبلاغ عن خطأ.

  • المصدر: System.Hosting
  • الخاصية: التنشيط، بما في ذلك إصدار الطرح.
  • الخطوات التالية: إذا كان التطبيق غير صحي، فتحقق من سبب فشل التنشيط.

يوضح المثال التالي عملية تنشيط ناجحة:

PS C:\> Get-ServiceFabricDeployedApplicationHealth -NodeName _Node_1 -ApplicationName fabric:/WordCount -ExcludeHealthStatistics

ApplicationName                    : fabric:/WordCount
NodeName                           : _Node_1
AggregatedHealthState              : Ok
DeployedServicePackageHealthStates : 
                                     ServiceManifestName   : WordCountServicePkg
                                     ServicePackageActivationId : 
                                     NodeName              : _Node_1
                                     AggregatedHealthState : Ok

HealthEvents                       : 
                                     SourceId              : System.Hosting
                                     Property              : Activation
                                     HealthState           : Ok
                                     SequenceNumber        : 131445249083836329
                                     SentAt                : 7/14/2017 4:55:08 PM
                                     ReceivedAt            : 7/14/2017 4:55:14 PM
                                     TTL                   : Infinite
                                     Description           : The application was activated successfully.
                                     RemoveWhenExpired     : False
                                     IsExpired             : False
                                     Transitions           : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM

تنزيل

System.Hosting تقارير خطأ في حالة فشل تنزيل حزمة التطبيق.

  • المصدر: System.Hosting
  • الخاصية: قم بالتنزيل، بما في ذلك الإصدار المتداول.
  • الخطوات التالية: تحقق من سبب فشل التنزيل على العقدة.

تقارير حماية النظام DeployedServicePackage

System.Hosting هي السلطة على الكيانات المنشورة.

تفعيل باقة الخدمة

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

  • المصدر: System.Hosting
  • الخاصية: التنشيط.
  • الخطوات التالية: تحقق من سبب فشل التنشيط.

تفعيل باقة التعليمات البرمجية

تقارير System.Hosting على أنها موافق لكل حزمة تعليمات برمجية إذا كان التنشيط ناجحًا. في حالة فشل التنشيط، فإنه يبلغ عن تحذير كما تم تكوينه. إذا فشل CodePackage في التنشيط أو تم إنهاؤه بخطأ أكبر من CodePackageHealthErrorThreshold الذي تم تكوينه، فستقوم الاستضافة بالإبلاغ عن خطأ. إذا كانت حزمة الخدمة تحتوي على حزم تعليمات برمجية متعددة، إنشاء تقرير تنشيط لكل حزمة.

  • المصدر: System.Hosting
  • الخاصية: يستخدم البادئة CodePackageActivation ويحتوي على اسم حزمة التعليمات البرمجية ونقطة الإدخال كـ CodePackageActivation:CodePackageName:SetupEntryPoint/EntryPoint. على سبيل المثال، CodePackageActivation:Code:SetupEntryPoint.

تسجيل نوع الخدمة

تقارير System.Hosting على أنها موافق إذا تم تسجيل نوع الخدمة بنجاح. يبلغ عن خطأ إذا لم يتم التسجيل في الوقت المناسب، كما تم تكوينه باستخدام ServiceTypeRegistrationTimeout. إذا تم إغلاق وقت التشغيل، يكون نوع الخدمة غير مسجل من العقدة وتقوم الاستضافة بالإبلاغ عن تحذير.

  • المصدر: System.Hosting
  • الخاصية: يستخدم البادئة ServiceTypeRegistration ويحتوي على اسم نوع الخدمة. على سبيل المثال، ServiceTypeRegistration:FileStoreServiceType.

يوضح المثال التالي حزمة خدمة تم نشرها بشكل صحي:

PS C:\> Get-ServiceFabricDeployedServicePackageHealth -NodeName _Node_1 -ApplicationName fabric:/WordCount -ServiceManifestName WordCountServicePkg

ApplicationName            : fabric:/WordCount
ServiceManifestName        : WordCountServicePkg
ServicePackageActivationId : 
NodeName                   : _Node_1
AggregatedHealthState      : Ok
HealthEvents               : 
                             SourceId              : System.Hosting
                             Property              : Activation
                             HealthState           : Ok
                             SequenceNumber        : 131445249084026346
                             SentAt                : 7/14/2017 4:55:08 PM
                             ReceivedAt            : 7/14/2017 4:55:14 PM
                             TTL                   : Infinite
                             Description           : The ServicePackage was activated successfully.
                             RemoveWhenExpired     : False
                             IsExpired             : False
                             Transitions           : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM

                             SourceId              : System.Hosting
                             Property              : CodePackageActivation:Code:EntryPoint
                             HealthState           : Ok
                             SequenceNumber        : 131445249084306362
                             SentAt                : 7/14/2017 4:55:08 PM
                             ReceivedAt            : 7/14/2017 4:55:14 PM
                             TTL                   : Infinite
                             Description           : The CodePackage was activated successfully.
                             RemoveWhenExpired     : False
                             IsExpired             : False
                             Transitions           : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM

                             SourceId              : System.Hosting
                             Property              : ServiceTypeRegistration:WordCountServiceType
                             HealthState           : Ok
                             SequenceNumber        : 131445249088096842
                             SentAt                : 7/14/2017 4:55:08 PM
                             ReceivedAt            : 7/14/2017 4:55:14 PM
                             TTL                   : Infinite
                             Description           : The ServiceType was registered successfully.
                             RemoveWhenExpired     : False
                             IsExpired             : False
                             Transitions           : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM

تنزيل

System.Hosting تقارير خطأ في حالة فشل تنزيل حزمة الخدمة.

  • المصدر: System.Hosting
  • الخاصية: قم بالتنزيل، بما في ذلك الإصدار المتداول.
  • الخطوات التالية: تحقق من سبب فشل التنزيل على العقدة.

التحقق من صحة الترقية

System.Hosting تقارير خطأ في حالة فشل التحقق من الصحة أثناء الترقية أو في حالة فشل الترقية على العقدة.

  • المصدر: System.Hosting
  • الخاصية: يستخدم البادئة FabricUpgradeValidation ويحتوي على إصدار الترقية.
  • الوصف: يشير إلى الخطأ الذي تمت مواجهته.

سعة العقدة غير المحددة لمقاييس إدارة الموارد

يقوم System.Hosting بالإبلاغ عن تحذير إذا لم يتم تعريف سعات العقدة في بيان المجموعة وتم إيقاف تشغيل تكوين الكشف التلقائي. يقوم «تصميم الخدمة» برفع تحذير صحي كلما سجلت حزمة الخدمة التي تستخدم إدارة الموارد على عقدة محددة.

  • المصدر: System.Hosting
  • الخاصية: حوكمة الموارد.
  • الخطوات التالية: الطريقة المفضلة للتغلب على هذه المشكلة هي تغيير بيان المجموعة لتمكين الكشف التلقائي عن الموارد المتاحة. هناك طريقة أخرى تتمثل في تحديث بيان الكتلة بسعات عقدة محددة بشكل صحيح لهذه المقاييس.

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