سؤال لماذا تجمد محركات الأقراص الصلبة التالفة النظام بأكمله؟


لماذا يتجمد محرك الأقراص الثابت الذي يعرف أنه يحتوي على كتل رديئة (تم التحقق منه في HDTune و HDDScan) ، إلى أسفل النظام بأكمله؟

انها ليست محرك OS. يتم إرفاقه بمنفذ SATA آخر ، وأنا أحاول نسخ الملفات منه إلى محرك أقراص آخر صحي.

لقد واجهت هذه المشكلة مع كل قرص صلب تقريبًا وكل جهاز كمبيوتر يعمل بنظام التشغيل Windows.

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

القصة الطويلة.

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

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

على أي حال ، من الآن فصاعدا سأستخدم بعض البرامج المخصصة (مثل Roadkil's Unstoppable Copier) بدلاً من Windows Explorer ، على الرغم من أنني لست متأكداً مما إذا كان هذا سيعمل بشكل مختلف ، دون تجميد جهاز الكمبيوتر بالكامل.

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


125
2017-08-09 12:35


الأصل


يجب أن يساعدك استخدام حاوية USB خارجية ، لأنك لم تعد تربط القرص المعطوب بجهاز تحكم SATA الخاص بالنظام (أيضًا ، فإن إضافة طبقة إضافية من الأجهزة القابلة للتضحية بين اللوحة الأم والقرص الخاطئ تكون دائمًا فكرة جيدة). - Matteo Italia
انها ليست محددة ل SATA ، فعلت محركات IDE هذا كذلك. أيضا فقط لأن تلف القرص لا يعني أن وحدة التحكم ليست كذلك ، خاصة إذا كان خطأ كهربائي قد أضر بالقرص. - Chris H
الجواب المقبول رائع ، ويحتوي على ما كنت سأقوله وأكثر من ذلك بكثير. في الأساس ، أنت تشعر بالذعر في وحدة تحكم SATA ، وهو جهاز نظام بالغ الأهمية ، مما يؤدي بدوره إلى تحطم النوافذ. لا أتساءل إذا كان تمكين AHCI / "مبادلة الساخنة" في BIOS من شأنه تحسين الوضع على الرغم من. - Arthur Kay


الأجوبة:


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

هناك بعض النقاط المهمة هنا:

  1. مع SATA ، إذا توقف محرك الأقراص عن الاستجابة ، هذا يمكن ربط نظام التخزين بأكمله ، ليس فقط محرك الأقراص الذي يواجه مشاكل. من المؤكد أن لديها القدرة على ربط وحدة التحكم بأكملها ، وبما أن معظم الأنظمة الاستهلاكية لا تحتوي إلا على وحدة تحكم واحدة في القرص (واحدة مدمجة على اللوحة الأم) ، فإن هذا يعني كل التخزين. إنه أسوأ حتى إذا فشل محرك الأقراص بطريقة غير قياسية و / أو غير متوقعة ، والتي يمكن أن تحدث بالتأكيد إذا كان المحرك هامشيا. قد تكون مهتمًا كيف يمكن لقرص واحد في مجموعة أجهزة SATA RAID-10 أن يجلب المصفوفة بأكملها إلى التوقف؟ على خطأ الخادم.
  2. معظم محركات الأقراص SATA الاستهلاكية لها فترات المهلة الافتراضية (على ترتيب دقائق) والعديد من محركات الأقراص SATA المستهلك تفتقر شكلي السيطرة على استعادة الخطأ. غالباً ما تحتوي محركات الأقراص المسماة "NAS" على ERC قابلة للتكوين ، ودائماً ما تقوم محركات الأقراص المتطورة دائمًا ؛ قد يكون لمحركات الأقراص هذه أيضاً مهلات افتراضية أقصر (7 ثوانٍ هي قيمة مشتركة). تكون فترات المهلة الطويلة مفيدة إذا احتفظ محرك الأقراص بنسخة فقط من البيانات ، والتي للأسف شائعة على أنظمة المستهلك ؛ هم عيب في تكوين مكرر أو حيث تريد ببساطة الحصول على أكبر قدر ممكن من محرك الأقراص قبل أن تتدهور أكثر.
  3. سوف محرك الأقراص استمر في محاولة قراءة قطاع سيء حتى تصل إلى عتبة انتهاء المهلة أو حتى يتم الإشارة إلى إحباط من قبل المضيف. نظرًا لأنه يمكن ربط ناقل SATA بالانتظار حتى انتهاء القراءة ، فقد لا يكون من الممكن أن يقوم نظام التشغيل بالإشارة إلى إجهاض مستوى التخزين ، وفي الحالات القصوى ، قد لا تستجيب محركات الأقراص حتى بشكل جيد إلى إعادة تعيين ناقل SATA في مثل هذه الحالة.

النقطة رقم 1 هي واحدة من نقاط البيع الرئيسية لـ SAS على الخوادم ساس ديه بشكل كبير أفضل معالجة الأخطاء من SATA. النقطة رقم 2 هي قيود على البرامج الثابتة على محرك الأقراص ، ويصبح # 3 مشكلة بالفعل فقط بسبب # 2.

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

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

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

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

كما أشير في تعليق على السؤال من قبل ماتيو ايطالياتتمثل إحدى استراتيجيات التخفيف في استخدام وصلة تخزين مختلفة ، وهي طريقة معقدة لقول "وضع القرص في حاوية USB". من خلال الملخص من خلال تخزين USB كبيرة البروتوكول ، وهذا يعزل جزء SATA إشكالية من بقية النظام الخاص بك ، مما يعني ذلك نظريا، يجب أن تتأثر I / O فقط على ذلك القرص المحدد بمشكلات I / O على ذلك القرص.

كشيء من جانبا ، هذا هو السبب في كثير من الأحيان SATA (على وجه الخصوص ، SATA دون ERC على مستوى محرك) وغالبا ما لا تشجع على RAID (لا سيما مستويات RAID مع التكرار ، والتي من بين القياسية هي كل ما عدا RAID 0)؛ يمكن أن تتسبب فترات المهلة الطويلة وسوء معالجة الأخطاء بسهولة في إخراج جهاز كامل من الصفيف لقطاع سيئ واحد ، والذي يمكن لوحدة تحكم RAID التعامل معه بشكل جيد في حالة وجود فائض وتعرف وحدة تحكم التخزين ببساطة أن هذه هي المشكلة. تم تصميم SAS من أجل صفيفات تخزين كبيرة ، وبالتالي مع توقع وجود مشكلات على محركات الأقراص المختلفة من حين لآخر ، مما أدى إلى تصميمها للتعامل مع حالة محرك الأقراص المعضلة الوحيد أو طلب الإدخال / الإخراج برشاقة حتى لو كان محرك الأقراص لا. الأقراص المشكلة ليست شائعة جدا في أنظمة المستهلك ببساطة لأن تلك تميل إلى عدم وجود العديد من الأقراص المثبتة ، وتلك التي يتم تثبيتها في الواقع لا تملك أبدا تكرار. نظرًا لأن SATA تهدف إلى استبدال PATA / IDE وليس SCSI (هذا الأخير هو الهدف الذي تستهدفه SAS) ، فمن المحتمل أن تكون ميزات معالجة الأخطاء ومطالبها (أو ضماناتها) مناسبة لحالة الاستخدام المقصودة.


163
2017-08-09 13:28



نشكرك على نشر إجابة معقولة تشرح ما يجري. هذا هو نوع السؤال الذي عادة ما أرى فيه إجابات مبهمة مثل "لأن النظام ينتظر محرك الأقراص" أو "لأنه مصمم بهذه الطريقة". - Mehrdad
kasperd: كثيرًا جدًا. على الرغم من أن جزء منه هو "خطأ" Windows كذلك ، كما يمكن أن يحدث بنفس السهولة مع وحدات تحكم متعددة. IMO هذه الإجابة قليلا غامض عمدا، ورؤية وحدات تحكم SAS المؤسسة ليست في مأمن من هذه المسألة سواء. انها حقا يتلخص في بعض طلبات I / O حجب. تتطلب بعض عمليات محرك الأقراص الثابتة أن تكون العملية X مضمونة قبل انتهاء العملية Y ، وإذا لم تنهض X أبدًا ، فلا يمكن بدء Y أبدًا - وأي شيء بعد Y يصبح عالقًا أيضًا ، سواء كان محرك الأقراص أو جهاز التحكم أو برنامج التشغيل أو نظام التشغيل قيد التشغيل خطأ. - qasdfdsaq
@ JustAMartin في الواقع ، تقريبًا جميع المتزامنة بالفعل - أي الطرفية التي تدعم DMA في هذه الأيام ممتلئة غير متزامنة ؛ يقوم kernel بجدولة الطلبات فقط ويقوم بمعالجة المقاطعات التي تشير إلى أن الطلب قد تم. المشكلة هي أنك في بعض الأحيان يجب انتظر حتى تكتمل العملية - وفي هذه العملية ، يمكنهم حظر شيء مهم. كما لاحظ user20574 ، الذاكرة الظاهرية واحدة من تلك ، ولكن هناك الكثير من الأشياء التي تحتاج إلى بعض الضمانات. بعض أجزاء النواة ليست متزامنة ، وبطبيعة الحال ، فإن بعض السائقين / الأجهزة تمتص ببساطة. - Luaan
@ MichaelKjörling "نظرًا لأن نظام التشغيل في انتظار القراءة ، فإن هذا سيؤدي على الأقل إلى إبطاء عملية النسخ إلى الزحف ، وبناءً على بنية نظام التشغيل بالضبط ، يمكن أن يتسبب نظام التشغيل في التشويش أو حتى التجميد طوال المدة." - لماذا بالضبط يصبح نظام التشغيل متشنجًا في حالة القراءة من محرك ثانوي (غير نظام)؟ لا يمكن أن تكون المشكلة بسبب سلوك معالجة الأخطاء في وحدة تحكم SATA. أعتقد أن هذه الإجابة قد تستفيد من معلومات حول كيفية معالجة Windows للأخطاء في النظام الفرعي للقرص الخاص به. - Jordan Rieger
@ MichaelKjörling عادلة بما فيه الكفاية. تحتوي الإجابة على الكثير من المعلومات الجيدة ، لكنني أعتقد أنها لا تفسر السيناريو المحدد لبروتوكول OP. للرجوع إليها من زاوية مختلفة ، هل يمكنك الاستشهاد بأي مرجع لعمل نسخة احتياطية من نقطتك رقم 1: "مع SATA ، إذا توقف محرك الأقراص عن الاستجابة ، فإن هذا يمكن أن يربط نظام التخزين بأكمله ، وليس فقط محرك الأقراص الذي يواجه مشاكل. بالتأكيد لديه القدرة على ربط وحدة التحكم بأكملها."؟ هذا يبدو وكأنه تصميم رهيب. أليس هذا هو النظام الفرعي القرص OS أكثر عرضة من هذا الجاني؟ أي. وحدة تحكم غير متزامن ولكن برنامج التشغيل OS أحياناً يمنع دون داع. - Jordan Rieger


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

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


3
2017-08-11 15:03





لماذا تجمد محركات الأقراص الصلبة التالفة النظام بأكمله؟

ليس لديهم (بشكل عام). انها حقا تعتمد على نظام الملفات المعين كيفية التعامل مع فشل القرص.

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


2
2017-08-11 17:46



في الواقع ، هناك فشل القرص أن ZFS لا تتعامل بشكل جيد مع. على سبيل المثال ، قراءة طويلة للغاية قبل انقضاء مهلة الإدخال / الإخراج ، في أجهزة إعداد متكررة أو غير مكررة. (يمكنك إعداد ZFS بنفس السهولة بحيث لا يوجد لديه تكرار.) هذا يمكن أن يؤدي بسهولة إلى إلقاء محركات من الصفيف في ZFS ، والتي إذا كان هذا يسقطك تحت عتبة التكرار يمكن أن يسبب مجموعة كاملة ل تصبح غير متوفرة. في حالة التعيين مع failmode = الانتظار ، يمكن أن يؤدي ذلك إلى إظهار نتائج مماثلة. الفشل الكامل للقرص الكامل هو سهل الحال بالنسبة لأي نظام تخزين فرعي ؛ انها هامش محركات الأقراص التي تطرح مشاكل. - α CVn
وقبل أن تفكر بخلاف ذلك ، أقوم في الواقع بتشغيل ZFS (بشكل شبه حصري) بنفسي. إنه نظام ملفات رائع ، ومدير حجم رائع ، إذا أنت دقيق وتعرف ماذا تفعل. ومع ذلك ، فقد تم تصميمه لأنظمة فئة المؤسسات (محطات العمل والخوادم المتطورة) ، مع دفع المديرين لمعرفة ما يقومون به. لم يتم تصميمه للتعامل بشكل جيد مع بعض أوضاع الفشل التي تظهر في الأجهزة السلعية ، بما في ذلك مشاكل ذاكرة الوصول العشوائي ومحركات الأقراص التي تستغرق وقتًا طويلاً جدًا للعودة من طلب الإدخال / الإخراج ، وهي غير مصممة لسهولة الاستخدام للمستخدمين المنزليين أو حالات استخدام المستخدم المنزلي. - α CVn
باستثناء الفيديو ، لا يستمر تشغيل ZFS. يبدأ التشغيل مرة أخرى بعد فصل محرك الأقراص. - Christoffer Hammarström


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


-2
2017-08-10 13:24



"نظام منخفض المستوى" هل معرفة أولوية العملية التي تطلب صفحة ؛ يتم الاحتفاظ بمثل هذه المعلومات في جداول الصفحات، على الرغم من أن التنفيذ يعتمد على النظام على كيفية التعامل مع الأولوية. هذه ليست الإجابة الصحيحة على السؤال على الرغم من - هذه مشكلة الأجهزة ، وليس مشكلة نظام التشغيل. - Chris Cirefice
أعتقد أن الإجابة الصحيحة على السؤال هي رفض استخدام محرك خلل. ومع ذلك ، فإن هذا لا يرضي المستخدمين الذين يريدون بشكل مفهوم استرداد أكبر قدر ممكن من البيانات. - jrrk