استكشاف أخطاء محركات الأقراص الصلبة وSSD وHBA وإصلاحها

استكشاف أخطاء محركات الأقراص الصلبة وSSD وHBA وإصلاحها

استكشاف أخطاء محركات الأقراص الصلبة وSSD وHBA وإصلاحها

هذه المقالة مترجمة باستخدام الترجمة الآلية، الرجاء النقر هنا لعرض الإصدار الانجليزي الأصلي.

وصف

عندما يواجه محرك الأقراص أخطاء أو تحذيرات أو فشلًا كاملاً يمكن استرداده، تقوم خدمة Stargate بوضع علامة على القرص على أنه غير متصل. إذا تم اكتشاف أن القرص غير متصل بالإنترنت 3 مرات خلال ساعة، فسيتم إزالته من المجموعة تلقائيًا، ويتم إنشاء تنبيه ( KB-4158 أو KB-6287 ).

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

ملاحظة: إذا تمت مواجهة قرص فاشل في Nutanix Clusters على AWS، بمجرد التأكد من فشل القرص، تابع لإدانة العقدة المعنية. سيؤدي إدانة العقدة المتأثرة إلى استبدالها بمثيل معدني جديد من نفس النوع.

حل

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

قبل البدء في استكشاف الأخطاء وإصلاحها، تحقق من نوع وحدة تحكم HBA.

حذر:
قد يؤدي استخدام الأمر SAS3IRCU مقابل LSI 3408 أو HBA أعلى إلى حدوث أحداث NMI قد تؤدي إلى عدم توفر التخزين.
قم بتأكيد وحدة تحكم HBA قبل استخدام الأوامر التالية.

لتحديد نوع HBA المستخدم، ابحث عن اسم وحدة التحكم الموجود في /etc/nutanix/ hardware_config.json على CVM.

  • مثال على الإخراج عند استخدام SAS3008:

    في هذه الحالة، الأمر SAS3IRCU هو الأمر الصحيح الذي يجب استخدامه.

    لاحظ السطر "led_address": "sas3ircu:0,1:0" :

     "node": { "storage_controllers": [ { "subsystem": "15d9:0808", "name": "LSI Logic / Symbios Logic SAS3008 PCI-Express Fusion-MPT SAS-3", "mapping": [ { "slot_designation": "1", "hba_address": "0", "slot_id": null, "location": { "access_plane": 1, "cell_x": 6, "width": 6, "cell_y": 2, "height": 1 }, "led_address": "sas3ircu:0,1:0"          },
  • مثال على الإخراج عند استخدام SAS3400/3800 (أو الأحدث):

    في هذه الحالة، سيكون استخدام SAS3IRCU أمرًا غير مستحسن. استخدم الأمر storcli بدلاً من ذلك. للحصول على معلومات حول StorCLI، راجع KB-10951 .

    لاحظ سطر "led_address": "storcli:0" .

     "storage_controllers_v2": [      {        "subsystem": "15d9:1b64",        "name": "Broadcom / LSI Fusion-MPT 12GSAS/PCIe Secure SAS38xx",        "hba_hints": {          "sas_address": "0x50030480208d9939"        },        "mapping": [          {            "slot_designation": "1",            "hba_address": "0",            "slot_id": 1,            "location": {              "access_plane": 1,              "height": 3,              "width": 4,              "cell_y": 0,              "cell_x": 78            }, "led_address": "storcli:0"          },
    "storage_controllers_v2": [      {        "subsystem": "15d9:1b64",        "name": "Broadcom / LSI Fusion-MPT 12GSAS/PCIe Secure SAS38xx",        "hba_hints": {          "sas_address": "0x50030480208d9939"        },        "mapping": [          {            "slot_designation": "1",            "hba_address": "0",            "slot_id": 1,            "location": {              "access_plane": 1,              "height": 3,              "width": 4,              "cell_y": 0,              "cell_x": 78            }, "led_address": "storcli:0"          },
  1. التعرف على الأقراص التي بها مشاكل

    1. تحقق من وحدة تحكم Prism Web بحثًا عن القرص الفاشل. في طريقة عرض الرسم التخطيطي، يمكنك رؤية اللون الأحمر أو الرمادي للقرص المفقود.
    2. تحقق من وحدة تحكم Prism Web بحثًا عن تنبيهات القرص، أو استخدم الأمر التالي للتحقق من الأقراص التي تنشئ رسائل الفشل.
       nutanix@cvm$ ncli alert ls
    3. تحقق مما إذا كانت هناك أي عقد تفتقد الأقراص المثبتة. يجب أن يتطابق المخرجان عدديا.
      1. تحقق من الأقراص المثبتة على CVM (جهاز التحكم VM).
         nutanix@cvm$ allssh "df -h | grep -i stargate-storage | wc -l"
      2. تحقق من الأقراص الفعلية في CVM.
         nutanix@cvm$ allssh "lsscsi | grep -v DVD-ROM | wc -l"
      3. تحقق مما إذا كانت حالة الأقراص كلها متصلة بالإنترنت ويشار إليها على أنها عادية .
         nutanix@cvm$ ncli disk ls | egrep -i -E 'Online|Status'
    4. التحقق من صحة العدد المتوقع من الأقراص في الكتلة.
       nutanix@cvm$ ncli disk ls | grep -i 'Status' | wc -l

      يجب أن يكون ناتج الأمر أعلاه هو مجموع مخرجات الخطوتين 1c.i و1c.ii.

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

    5. ابحث عن الأقراص الإضافية أو المفقودة.
       nutanix@cvm$ ncli disk ls
    6. تأكد من الإشارة إلى كافة الأقراص على أنها rw (للقراءة والكتابة) وليس ro (للقراءة فقط).
       nutanix@cvm$ sudo mount | grep -E 'stargate-storage.*rw' nutanix@cvm$ sudo mount | grep -E 'stargate-storage.*ro'
  2. تحديد المشاكل مع العقد الأقراص

    1. معرف القرص المعزول

      هذا هو معرف القرص الذي لم تعد الأنظمة تستخدمه ولكن لم تتم إزالته بشكل صحيح. تتضمن الأعراض رؤية معرف قرص إضافي مدرج في إخراج ncli disk ls .

      لإصلاح معرف القرص المعزول:

       nutanix@cvm$ ncli disk rm-start id= force=true 
            nutanix@cvm$ ncli disk rm-start id= force=true
           

      تأكد من التحقق من صحة الرقم التسلسلي للقرص وأن الجهاز غير موجود في النظام. تأكد أيضًا من تعبئة جميع الأقراص باستخدام lsscsi و mount و df -h وحساب عدد الأقراص الموجودة على القرص بالكامل.

    2. قرص فاشل و/أو قرص مفقود

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

      1. lspci - يعرض أجهزة PCI التي يراها CVM.
        • جهاز NVME - وحدة التحكم بالذاكرة غير المتطايرة: Intel Corporation PCIe Data Center SSD (rev 01).
        • وحدة تحكم SAS3008 - وحدة تحكم SCSI التسلسلية المرفقة: LSI Logic / Symbios Logic SAS3008 PCI-Express Fusion-MPT SAS-3 (rev 02) - LSI.
        • وحدة التحكم SAS2308 (Dell) - وحدة تحكم SCSI التسلسلية المرفقة: LSI Logic / Symbios Logic SAS2308 PCI-Express Fusion-MPT SAS-2 (rev 05).
        • MegaRaid LSI 3108 (Dell) - وحدة تحكم ناقل RAID: LSI Logic / Symbios Logic MegaRAID SAS-3 3108 [Invader] (rev 02).
        • LSI SAS3108 (UCS) - وحدة تحكم SCSI التسلسلية المرفقة: LSI Logic / Symbios Logic SAS3108 PCI-Express Fusion-MPT SAS-3 (rev 02).
      2. lsiutil - يعرض منظور بطاقات HBA (محول الناقل المضيف) للمنافذ وما إذا كانت المنافذ في حالة UP. إذا لم يكن المنفذ قيد التشغيل، فإما أن الجهاز لم يستجب، أو أن المنفذ أو الاتصال بالجهاز سيئ. المشكلة الأكثر احتمالا هي الجهاز (القرص).
         nutanix@cvm$ sudo /home/nutanix/cluster/lib/lsi-sas/lsiutil -a 12,0,0 20
      3. lsscsi - يسرد أجهزة ناقل SCSI التي تمت مشاهدتها والتي تتضمن أي محرك أقراص ثابتة (HDD) أو SSD (باستثناء NVME، الذي لا يمر عبر وحدة تحكم SATA).
      4. sas3ircu - يُبلغ عن موضع الفتحة وحالة القرص. وهو مفيد في حالة فقدان الأقراص أو التحقق من وجود الأقراص في الفتحة الصحيحة. (لا تقم بتشغيل الأمر التالي على أجهزة Lenovo HX لأنه قد يؤدي إلى عمليات قفل وإعادة تعيين HBA)
         nutanix@cvm$ sudo /home/nutanix/cluster/lib/lsi-sas/sas3ircu 0 display
      5. storcli - تقارير عن أخطاء مشابهة لـ lsiutil. يُبلغ أيضًا عن موضع الفتحة وحالة القرص.
         sudo ~/cluster/lib/storcli/storcli64 /call/pall show phyerrorcounters|tail -n+6 - Show phy error counts in concise output sudo ~/cluster/lib/storcli/storcli64 /call/pall show |tail -n+6 - Show detected speeds and interfaces sudo ~/cluster/lib/storcli/storcli64 /call show all - Show everything
      6. تحقق من dmesg الخاص بـ CVM بحثًا عن رسائل LSI mpt3sas. يجب أن نرى عادةً إدخالاً واحدًا لكل فتحة فعلية. ( يوضح المثال أدناه أن عنوان SAS "0x5000c5007286a3f5" قد تم فحصه بشكل متكرر بسبب وجود قرص تالف/فشل. لاحظ كيف تم اكتشاف العناوين الأخرى مرة واحدة، ويتم استقصاء المشتبه به بشكل متكرر. )
         nutanix@cvm$ sudo dmesg | grep "detecting\: handle" [ 3.693032] mpt3sas_cm0: detecting: handle(0x0009), sas_address(0x5000c40074c6d56d), phy(0) [ 3.702423] mpt3sas_cm0: detecting: handle(0x000a), sas_address(0x4431221107000000), phy(7) [ 3.941624] mpt3sas_cm0: detecting: handle(0x000b), sas_address(0x4431221106000000), phy(6) [ 4.191170] mpt3sas_cm0: detecting: handle(0x000c), sas_address(0x5000c500856f9e51), phy(1) [ 4.211879] mpt3sas_cm0: detecting: handle(0x000d), sas_address(0x5000c5006286a3f5), phy(2) [ 4.213080] mpt3sas_cm0: detecting: handle(0x000e), sas_address(0x5000c500856fa075), phy(3) [ 4.231194] mpt3sas_cm0: detecting: handle(0x000f), sas_address(0x5000c500856f9735), phy(4) [ 4.245974] mpt3sas_cm0: detecting: handle(0x0010), sas_address(0x5000c50084e02b31), phy(5) [ 4.942347] mpt3sas_cm0: detecting: handle(0x000a), sas_address(0x4431221107000000), phy(7) [ 5.214032] mpt3sas_cm0: detecting: handle(0x000d), sas_address(0x5000c5007286a3f5), phy(2) [ 6.215092] mpt3sas_cm0: detecting: handle(0x000d), sas_address(0x5000c5007286a3f5), phy(2) . . [ 12.233236] mpt3sas_cm0: detecting: handle(0x000d), sas_address(0x5000c5007286a3f5), phy(2)
      7. Smartctl - إذا أشار Hades إلى أن القرص قد تم فحصه بواسطة Smartctl 3 مرات في الساعة، فسيتم فشل ذلك تلقائيًا.
         nutanix@cvm$ sudo smartctl -x /dev/sdX -T permissive
        • راجع KB-8094 لاستكشاف الأخطاء وإصلاحها باستخدام Smartctl .
      8. تحقق من وجود أقراص غير متصلة بالإنترنت باستخدام NCC check disk_online_check .
         nutanix@cvm$ ncc health_checks hardware_checks disk_checks disk_online_check
        • راجع KB 1536 لمزيد من استكشاف أخطاء الأقراص غير المتصلة بالإنترنت وإصلاحها.
      9. تأكد من رؤية الأقراص من LSI Config Utility. يمكن أن يكون هذا مفيدًا لاستبعاد مشكلات driver المحتملة أو مشكلات تكوين CVM/Hypervisor التي قد تمنعك من اكتشاف محركات أقراص معينة. تمنحك LSI Config Utility واجهة مباشرة لبرنامج HBA الثابت دون الاعتماد على نظام تشغيل برمجي. يمكن استخدامه للقيام بالعديد من الأشياء نفسها التي يمكنك القيام بها باستخدام "lsiutil": (أ) التحقق من اكتشاف قرص في فتحة معينة، (ب) التحقق من سرعة ارتباط القرص، (ج) تنشيط إشارة LED على محرك أقراص معين. على الأنظمة الأساسية G6 وG7، يتم تعطيل قائمة تكوين LSI افتراضيًا لذا يتعين عليك تمكينها في BIOS قبل أن تتمكن من استخدامها. على منصات G8، يجب عليك عرض محركات الأقراص المرفقة مباشرة من خلال قائمة BIOS .
        • G8: عرض محركات الأقراص المرفقة مباشرة من خلال BIOS
          • أدخل قائمة BIOS عن طريق الضغط على مفتاح DEL في شاشة البداية "Nutanix" أثناء تشغيل العقدة.
          • انتقل إلى علامة التبويب " خيارات متقدمة " وحدد " SCC-B8SB80-B1 (PCISlot=0x8) التكوين ". هذا هو ما يسمى خيار القائمة على 3060-G8. قد يتم تسميته بشكل مختلف قليلاً في الطرز الأخرى.
            1

            2
  • إذا كان خيار "خصائص الجهاز" باللون الرمادي، فحدد "تحديث الهيكل".
  • حدد "خصائص محرك الأقراص" لرؤية قائمة محركات أقراص SATA المرئية للمضيف.
    3
  • G6 وG7: كيفية تمكين LSI HBA OPROM والوصول إليه
    • أدخل قائمة BIOS عن طريق الضغط على مفتاح DEL في شاشة البداية "Nutanix" أثناء تشغيل العقدة.
    • انتقل إلى علامة التبويب "خيارات متقدمة" وابحث عن "LSI HBA OPROM". اضبط هذا على "ممكّن". ثم اضغط على "F4" للحفظ والخروج من قائمة BIOS . سيؤدي هذا إلى إعادة تشغيل العقدة.
    • ملاحظة: بعد حصولك على المعلومات التي تحتاجها، تأكد من العودة إلى BIOS وتعطيل OPROM. يمكنك أيضًا الضغط على F3 لتحميل الإعدادات الافتراضية المحسنة، مما سيعيد BIOS إلى إعدادات المصنع الأصلية حيث تم تعطيل OPROM.
      4
  • في عملية التمهيد التالية، ابحث عن الشاشة التي تحمل عنوان "Avago Technologies MPT SAS3 BIOS " واضغط على CRTL+C للدخول إلى "SAS Configuration Utility".
    5
  • بمجرد الدخول إلى أداة التكوين المساعدة، حدد بطاقة HBA التي تهتم بها. ستحتوي النماذج متعددة العقد (2U4N، 2U2N) على بطاقة HBA واحدة فقط كحد أقصى، بينما قد تحتوي الأنظمة الأساسية أحادية العقد (2U1N) على ما يصل إلى ثلاث بطاقات. في أنظمة HBA المتعددة، سيخدم كل HBA مجموعة فرعية مختلفة من محركات الأقراص على كل عقدة.
    6
  • في الشاشة التالية، حدد "SAS Topology" ثم "Direct Attach Devices" لرؤية معلومات حول محركات الأقراص المرتبطة بـ HBA.
    7

    8

    9

    10

    11

    12
  • إذا لم يكتشف HBA الذي حددته أي محركات أقراص على الإطلاق، فسيقوم بالإبلاغ عن "لا توجد أجهزة لعرضها".
    13
  1. يمكن أن تكون هناك حالة يكون فيها القرص معطلاً في lsiutil ، عادةً بعد استبدال الأقراص أو ترقيتها. عندما يتم تنفيذ جميع الاختبارات المذكورة أعلاه، ولا يزال القرص غير مرئي، قم بمقارنة القرص القديم والجديد "علبة القرص أو الدرج". تأكد من أن النوع هو نفسه. يمكن أن تكون هناك حالات يتم فيها إرسال نوع قرص غير صحيح، ولا يتم تثبيته بشكل صحيح في حاوية القرص وبالتالي لا يتم اكتشافه بواسطة وحدة التحكم.
    14
  1. تحديد نوع العقدة أو العقدة المشكلة.
    قم بتشغيل ncli host ls وابحث عن معرف العقدة المطابق. يعد موقع فتحة العقدة المحدد وتسلسل العقدة ونوع العقدة من المعلومات المهمة التي يجب توثيقها في حالة حدوث مشكلات متكررة. كما أنه يساعد على تتبع المشكلات الميدانية المتعلقة بمواقع HBA ومواقع العقد وأنواع العقد.
  2. تحديد حدوث الفشل.
    1. تحقق من سجل ستارغيت. يشير سجل stargate.INFO للفترة المقابلة إلى ما إذا كانت Stargate قد رأت مشكلة في القرص وأرسلتها إلى Disk Manager (Hades) للتحقق منها أو كانت هناك أخطاء أخرى في الوصول إلى القرص. استخدم رقم معرف القرص والرقم التسلسلي للبحث عنه في سجل Stargate على العقدة المقابلة التي يوجد بها القرص.
    2. يحتوي سجل Hades على معلومات حول الأقراص التي يراها وحالة الأقراص. كما أنه يتحقق أيضًا من القرص الذي يمثل بيانات تعريف أو قرص Curator ويحدد واحدًا إذا لم يكن موجودًا بالفعل في النظام أو تمت إزالته/اختفائه من النظام. تحقق من سجل حادس.
    3. تحقق من df -h في /home/nutanix/data/logs/sysstats/df.INFO لمعرفة متى شوهد القرص آخر مرة وهو مثبت.
    4. تحقق من /home/nutanix/data/logs/sysstats/iostat.INFO لمعرفة متى تمت رؤية الجهاز آخر مرة.
    5. تحقق من /home/log/messages بحثًا عن أخطاء على الجهاز، وتحديدًا باستخدام اسم الجهاز، على سبيل المثال، sda أو sdc.
    6. تحقق من dmesg بحثًا عن أخطاء في وحدة التحكم أو الجهاز. تشغيل dmesg | أقل للرسائل الحالية في الحلقة، أو انظر إلى إخراج dmesg المسجل في /var/log .
  3. تحديد سبب فشل القرص.
    • تحقق من تاريخ بدء تشغيل CVM آخر مرة إذا لم تكن بيانات الاستخدام الأخيرة للقرص متوفرة. مرة أخرى، راجع سجلات Stargate وHades.
    • تحقق من سجل Stargate في وقت فشل القرص. يرسل Stargate قرصًا إلى Hades للتحقق مما إذا كان لا يستجيب في وقت معين وتنتهي مهلة العمليات ضد هذا القرص. تمثل الأخطاء والإصدارات المختلفة القرص بشكل مختلف، لذا ابحث دائمًا عن طريق معرف القرص والتسلسل التسلسلي للقرص.
  4. التحقق من عدد فشل القرص.
    إذا فشل محرك الأقراص أكثر من مرة في هذه الفتحة وتم استبدال القرص، فهذا يشير إلى وجود مشكلة محتملة في الهيكل في تلك المرحلة.

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

  6. تحقق من وجود مشكلات معروفة في محرك الأقراص FW بحثًا عن أخطاء القرص.

  7. إذا كان هذا هو G8 فإن إصدار MCU هو 1.1A أو أعلى وتمت ترقية اللوحات الخلفية أيضًا:
    راجع هذا المستند: NX-G8: دليل الترقية اليدوية للبرنامج الثابت Nutanix Backplane CPLD وMotherboard CPLD وMultinode EC .

  8. إذا كان هذا أحد مجموعة الثماني، فتأكد من أن وحدة التحكم LSI FW هي 25.00.00 أو أعلى:
    توجد إصلاحات تتعلق باستقرار SSD عند استخدام القطع، مما يؤدي إلى تصحيح المثيل الذي يتسبب في ظهور أخطاء PHY على محركات الأقراص وعدم الاستقرار. ومن المهم أيضًا من وجهة نظر استكشاف الأخطاء وإصلاحها أن تكون على FW 25.00.00 أو أعلى.

ملاحظة: معرف الحدث: 191 ، يمكن تجاهل G-Sense_Error_Rate في إخراج " smartctl " لمحركات الأقراص الصلبة Seagate بأمان ما لم يكن هناك تدهور في الأداء. تشير قيمة G-Sense_Error_Rate فقط إلى تكيف محرك الأقراص الثابتة مع اكتشاف الصدمات أو الاهتزازات. توصي Seagate بعدم الثقة في هذه القيم حيث يقوم هذا العداد بتغيير الحد ديناميكيًا أثناء وقت التشغيل.

مقالات ذات صلة

معرف المستند:HT516504
تاريخ النشر الأصلي:05/16/2024
تاريخ آخر تعديل:06/03/2024