बैडब्लॉक से संबंधित SMART सेल्फस्टेट्स कैसे हैं?


15

स्मार्टक्टेल टूल एक लंबे सेल्फ-टेस्ट ( smartctl -t long /dev/sda) शुरू करने की अनुमति देता है । हालांकि यह भी है badblocksकि मैं एक ड्राइव पर चला सकता हूं। दोनों कैसे संबंधित हैं? यदि बैडब्लॉक खराब ब्लॉकों का पता लगाता है, तो क्या ड्राइव स्वचालित रूप से अपने SMART मानों को अपडेट करता है (जैसे कि उसके स्थानांतरित क्षेत्रों को अपडेट करके)? क्या बैडब्लॉक प्रतिस्थापित कर सकते हैं smartctl -t long, या इसके विपरीत?

जवाबों:


5

मुझे voretaq7 से असहमत होना है - स्मार्ट जादू नहीं है। जब आपके पास एक ड्राइव होती है और इसका एक सेक्टर खराब हो जाता है, तो आप अब इससे डेटा नहीं पढ़ पाएंगे। इसलिए आधुनिक डिस्क ड्राइव पर एक अपठनीय फ़ाइल होना पूरी तरह से संभव है। स्मार्ट इस अपठनीय क्षेत्र को "करंट पेंडिंग" और "ऑफलाइन अनरैचेबल" के रूप में चिह्नित करेगा, जब इसे विफलता के बाद पहली बार एक्सेस किया जाएगा।

लेकिन जब इस क्षेत्र को फिर से लिखा जाएगा, तो इसे रीमैपिंग करने के लिए जगह खाली कर दी जाएगी, अचिह्नित और "Reallocated_Sector_Ct" काउंटर बढ़ जाएगा। फिर एक पूरी ड्राइव फिर से पढ़ने योग्य होगी।

smartctl -t longपरीक्षण उपयोगी है - यह अपठनीय क्षेत्रों के लिए पूरे ड्राइव स्थान का परीक्षण करेगा और "वर्तमान लंबित" और "ऑफ़लाइन अपरिवर्तनीय" के रूप में लॉग और मार्क करेगा जब रन किया गया पहला खराब क्षेत्र है। मैं हर ड्राइव पर प्रति सप्ताह एक बार इस लंबी परीक्षा को चलाने के लिए अपने सर्वर को कॉन्फ़िगर कर रहा हूं। यह सामान्य ड्राइव फ़ंक्शंस को बहुत अधिक प्रभावित नहीं करता है, क्योंकि OS अनुरोधों में हमेशा SMART स्कैन पर प्राथमिकता होती है।

जैसा कि एक सर्वर पर मैं हमेशा RAID1 दर्पणों में डिस्क चलाता हूं, इसलिए जब एक लंबा परीक्षण एक बुरा क्षेत्र पाता है तो मैं एक दर्पण में दूसरी ड्राइव से डेटा का उपयोग करके इसकी सामग्री को फिर से लिख सकता हूं, जो पुनः प्राप्ति के लिए मजबूर करता है।

badblocksकभी-कभी उपयोगी भी होता है - उदाहरण के लिए यह पूरी ड्राइव का परीक्षण करेगा और पहली त्रुटि पर नहीं रुकेगा। यह एकल विभाजन या ड्राइव के किसी अन्य भाग का परीक्षण कर सकता है। यदि कोई ख़राब ब्लॉक सफलतापूर्वक हटा दिया गया था, तो आप इसे जल्दी से जांच सकते हैं।


11

जैसा कि मैंने अपने अन्य उत्तर में बताया है , हर आधुनिक हार्ड ड्राइव में रीमैपिंग स्पेस उपलब्ध होता है (क्योंकि विशेष रूप से आज की डिस्क घनत्व में, कोई भी ड्राइव प्लैटर सही नहीं होगा - हमेशा कुछ दोष होंगे कि ड्राइव को ब्रांड के आसपास भी रिमैप करना पड़ता है -new-never-never-used-used-off-the-Assembly-line-in-my-hands ड्राइव)।

इस वजह से, सैद्धांतिक रूप से आपको badblocksएक ड्राइव पर नोटिस (अंतिम-उपयोगकर्ता-दृश्यमान) खराब क्षेत्रों की तरह कुछ पहले रिपोर्ट की गई SMART विफलता होनी चाहिए ।
आधुनिक हार्ड डिस्क पर कोई भी अंतिम-उपयोगकर्ता-दृश्यमान खराब क्षेत्र (जैसा badblocksकि ओएस द्वारा स्वचालित रूप से पता लगाया जा सकता है या स्वचालित रूप से पता लगाया जा सकता है ) एक अंतिम हांफते हैं और एक मरने वाली डिस्क के कंपकंपी होते हैं।


अंत में स्मार्ट और badblocksदो अलग-अलग, लेकिन संबंधित चीजों का परीक्षण करें:

स्मार्ट एक स्व-निगरानी उपकरण है:

हार्ड ड्राइव अपने ऑपरेटिंग मापदंडों के बारे में कुछ जानकारी जानता है, और कुछ के लिए "सामान्य" और दूसरों के लिए "स्वीकार्य" के रूप में कुछ मेटा-ज्ञान है।
यदि ड्राइव को होश है कि कुछ पैरामीटर "असामान्य" या "अस्वीकार्य" हैं, तो यह पूर्व-विफलता की स्थिति की रिपोर्ट करेगा - दूसरे शब्दों में ड्राइव अभी भी कार्यात्मक है, लेकिन जल्द ही विफल हो सकती है।

उदाहरण के लिए: स्पिंडल मोटर सामान्य रूप से 0.10 एम्प्स खींचती है, लेकिन अब यह 0.50 एम्प्स आरेखित कर रही है - एक असामान्य रूप से उच्च ड्रॉ जो संकेत दे सकता है कि शाफ्ट बाध्यकारी है या बीयरिंग पर स्थायी स्नेहक चला गया है। आखिरकार मोटर प्रतिरोध को दूर करने में असमर्थ हो जाएगा और ड्राइव जब्त हो जाएगा।

एक और उदाहरण: बुरे क्षेत्रों से निपटने के लिए ड्राइव में 1000 "रीमैप" ब्लॉक हैं। इसमें से 750 का उपयोग किया गया है, और जिन इंजीनियरों ने ड्राइव का निर्माण किया, उन्होंने निर्धारित किया कि रीमैप की संख्या कुछ आंतरिक रूप से गलत (खराब प्लैटर, बुढ़ापे की विफलता, क्षतिग्रस्त सिर) को इंगित करती है - यह ड्राइव आपको पूर्व-विफलता की स्थिति की सूचना देगी जिससे आपको समय मिल सकेगा रीमैप स्पेस से बाहर होने से पहले आपका डेटा बंद हो जाता है और खराब सेक्टर दिखाई देने लगते हैं।

स्मार्ट बुरे क्षेत्रों से अधिक की तलाश में है - यह ड्राइव के स्वास्थ्य का अधिक व्यापक मूल्यांकन है। आपके पास ड्राइव पर कोई पूर्व-विफलता चेतावनी हो सकती है जिसमें कोई खराब क्षेत्र नहीं है और कोई पढ़ने / लिखने की त्रुटियां नहीं हैं (उदाहरण के लिए, स्पिंडल मोटर मुद्दा मैंने ऊपर वर्णित किया है)।


badblocks एक विशिष्ट (पुराने) उद्देश्य के साथ एक उपकरण है: खराब क्षेत्रों का पता लगाएं।

badblocksस्मार्ट और खराब-सेक्टर रीमैपिंग से पहले एक समय से आता है। तब हमें पता था कि ड्राइव में खामियां थीं, लेकिन गलती से स्टोर करने वाले डेटा को रोकने के लिए उन्हें मैप करने का एकमात्र तरीका डिस्क का तनाव-परीक्षण करना था, एक विफलता का कारण था, और फिर याद रखें कि डेटा फिर कभी वहां न डालें।

मेरे कहने का कारण यह पुराना है क्योंकि आधुनिक ड्राइव पर इलेक्ट्रॉनिक्स पहले से ही badblocksआंतरिक और कुछ हजार गुना तेजी से क्या करते हैं। badblocksमूल रूप से प्राचीन ड्राइव की अनुमति देता है जिसमें परिष्कृत इलेक्ट्रॉनिक्स की कमी होती है, जो विफल हो गए हैं (फिर से मानचित्रित) क्षेत्रों को फिर से मैप करने के लिए, लेकिन आधुनिक हार्ड ड्राइव पहले से ही असफल क्षेत्रों का पता लगाते हैं और उन्हें आपके लिए फिर से तैयार करते हैं।

सैद्धांतिक रूप से आप badblocksओएस रीमैप (दृश्यमान) विफलताओं के लिए डेटा का उपयोग कर सकते हैं जैसे कि आपकी आधुनिक डिस्क एक प्राचीन विनचेस्टर डिस्क थी, लेकिन यह अंततः प्रतिसंबंधी है - जैसे मैंने पहले कहा था कि आधुनिक ड्राइव पर किसी भी खराब सेक्टर का पता लगाने का badblocksकारण नहीं है। दोषपूर्ण के रूप में संपूर्ण ड्राइव (या विफल होने के बारे में)।

दृश्यमान बुरे क्षेत्र संकेत देते हैं कि ड्राइव रीमैपिंग स्पेस से बाहर है, जो कि आधुनिक डिस्क के लिए अपेक्षाकृत दुर्लभ है जब तक कि वे पुराने नहीं हैं (कार्यात्मक जीवन के अंत तक) या दोषपूर्ण (कारखाने से खराब प्लैटर / हेड)।


इसलिए मूल रूप से अगर badblocksआप इसे उत्पादन में तैनात करने से पहले डिस्क पर चला रहे हैं तो आपको बेहतर महसूस होता है कि आप इसे आगे बढ़ाएं और इसे करें, लेकिन अगर आपकी डिस्क इस सदी में निर्मित हुई थी और यह एक दृश्यमान खराब क्षेत्र को दर्शाता है तो आपको इसे कूड़ेदान में फेंक देना चाहिए (या कॉल करें) इसकी वारंटी)। मेरे पैसे के लिए SMART स्टेटस और डिफेंस इन डेप्थ , डिस्क चेकिंग की तुलना में मेरे समय का बेहतर उपयोग है।


1
ठीक है, जो SMART और बैडब्लॉक के बीच अंतर को बहुत अच्छी तरह से समझाता है। लेकिन क्या इसका मतलब यह है कि स्मार्ट स्थिति की निगरानी करना पर्याप्त है, या क्या मुझे भी एक बार में लंबे एसएमएआरटी परीक्षण चलाने होंगे, अगर मैं चाहता हूं कि एसएमएआरटी चेतावनी सही तरीके से बंद हो जाए? यानी मैं smartctl -t long /dev/sdaएक बार में एक बार दौड़ने वाला हूं , या क्या मैं यह मान सकता हूं कि smartd"स्वचालित रूप से" मेरे लिए आसन्न समस्याओं के बारे में मुझे चेतावनी देगा, मेरे बिना कुछ और सेटअप करने के लिए?
होंगली लाई

यह केवल एक निर्णय है जिसे आप कर सकते हैं, हालांकि SMART को मैन्युअल हस्तक्षेप (यह "जस्ट वर्क्स" की आवश्यकता के लिए डिज़ाइन नहीं किया गया है और आपको आम तौर पर इसके साथ खिलवाड़ नहीं करना चाहिए)। अपने हार्डवेयर पर भरोसा करें (कम से कम इस सीमित सीमा तक), क्योंकि अगर आप अपने हार्डवेयर पर भरोसा नहीं कर सकते हैं तो आप पैक कर सकते हैं और घर जा सकते हैं।
voretaq7

2
"आधुनिक ड्राइव पहले से ही बैडब्लॉक करती है, आंतरिक रूप से और कुछ हजार गुना तेज" badblocksड्राइव से हर बाइट पढ़ता है, उन्हें यादृच्छिक पैटर्न के साथ ओवरराइट करता है, और फिर मूल डेटा को वापस रखता है। स्मार्ट स्व-परीक्षण ऐसा नहीं करते हैं। यह किसी भी "लंबित" क्षेत्रों को साफ करना चाहिए, अगर मैं सही ढंग से समझता हूं।
रात १३:१३

4
@endolith परीक्षण प्रत्यक्ष समतुल्य नहीं हैं, लेकिन वे जिस उद्देश्य की सेवा करते हैं वह समतुल्य है (बुरे क्षेत्रों के पुन: पता लगाने की अनुमति दें)। मेरा मुख्य बिंदु अंतिम पैराग्राफ था: यदि आप डिस्क एक्सरसाइज के रूप में बैडब्लॉक चलाना चाहते हैं (यह देखने के लिए कि क्या आप SMART त्रुटियों को भड़का सकते हैं क्योंकि यह खराब ब्लॉकों का एक समूह है) इसके लिए जाएं, लेकिन यदि आप बैडब्लॉक आज चला रहे हैं। खराब सेक्टर की सूची लोड करने का इरादा उन सेक्टरों का उपयोग करने से बचने के लिए (जैसा कि हमने पत्थर की उम्र में किया था) आप इसे गलत कर रहे हैं: दृश्यमान बुरे क्षेत्रों का मतलब है कि आपको ड्राइव को निकटतम कचरा बिन में चक करना चाहिए।
voretaq7

1
@ हाशिम हां मेरा मानना ​​है कि बैडब्लॉक का उपयोग करना उपयोगी है क्योंकि यह लंबित क्षेत्रों को साफ कर देगा।
एंडोलिथ

5

इस प्रश्न के अच्छे उत्तर हैं

/superuser//a/693065

/superuser//a/693064

अन्य उत्तरों के विपरीत मुझे बैडब्लॉक पुराने नहीं बल्कि एक बहुत उपयोगी उपकरण लगते हैं। एक बार जब मैंने अपने पीसी को एक नई हार्ड ड्राइव के साथ अपग्रेड किया और यह अस्थिर होने लगा। बैडब्लॉक के लिए धन्यवाद महसूस करने में मुझे काफी समय लग गया कि डिस्क की सतह में दोष थे। तब से मैं हर नए हार्ड ड्राइव का उपयोग करना शुरू कर देता हूं और फिर कभी भी उस समस्या का सामना नहीं करना पड़ा। मैं अत्यधिक अनुशंसा करता हूं

समय sudo badblocks -swvo sdX.log / sev / sdX

हर नई हार्ड ड्राइव के लिए। यह लिखने और पढ़ने के लिए कुछ समय में डिस्क के हर एक बिट का परीक्षण करेगा और इसलिए बाद में बहुत परेशानी से बच सकता है।

इस परीक्षण के दौरान खराब ब्लॉकों को ड्राइव द्वारा मैप किया जाएगा। इसलिए "वास्तविक क्षेत्र की गणना" को परीक्षण से पहले और बाद में SMART थ्रेशोल्ड के साथ नोट किया जाना चाहिए क्योंकि यह ड्राइव के स्वास्थ्य के बारे में कुछ बताएगा।


2
तनाव का परीक्षण एक नई ड्राइव है, जबकि यह अभी भी वारंटी के अंतर्गत है, एक महान विचार है।
२०

2

बैडब्लॉक पुराने समय से एक अवशेष है और यह कड़ाई से उपयोगी नहीं है, यह वर्तमान में एक अप्राप्य क्षेत्र का पता लगा सकता है लेकिन खराब क्षेत्र के साथ करने के लिए सही काम बैकअप से डेटा को पुनर्प्राप्त करना है। यदि डेटा आपके लिए महत्वपूर्ण नहीं था, तो संबंधित फ़ाइल को हटाने और उस स्थान पर कुछ भी लिखने के लिए क्या किया जा सकता है, इससे डिस्क को इस क्षेत्र को फिर से प्राप्त करना होगा यदि उसे लगता है कि उसे इसकी आवश्यकता है और काम करना जारी रखें।

डिस्क स्व-परीक्षण भी विभिन्न दोषों के लिए पूरे मीडिया का परीक्षण करेगा और परीक्षण करेगा, यह माना जाता है कि सामान्य ऑपरेशन में इसका उपयोग करने की तुलना में निचले थ्रेसहोल्ड का उपयोग करना चाहिए, यह देखने के लिए कि क्या डिस्क में कई कमजोर स्पॉट हैं और विक्रेता तर्क के आधार पर यह तय कर सकते हैं कि डिस्क इसका उपयोगी जीवन है और परीक्षण को विफल घोषित करता है। उस बिंदु पर आपको अपने सभी डेटा को बाहर निकालना चाहिए या इसे बैकअप से पुनर्प्राप्त करना चाहिए और डिस्क को प्रतिस्थापित करना चाहिए।

यदि कोई डिस्क कार्रवाई (बैडब्लॉक या सामान्य ऑपरेशन द्वारा) एक अप्राप्य पढ़ने योग्य त्रुटि को हिट करती है, तो डिस्क स्वचालित रूप से अपने वास्तविककरण लंबित काउंटर को अपडेट कर देगी और जब वास्तविक प्रदर्शन किया जाता है तो यह लंबित लंबित और वास्तविक लेटर्स को अपडेट करेगा। एक साधारण dd मिलेगा कि जैसा भी हो रहा है।

यदि आपको दो उपयोग के बीच चयन करने की आवश्यकता है, तो यह डिस्क का बेहतर विश्लेषण होगा।

मैं अपनी डिस्क उपयोगिता का उपयोग करने का सुझाव भी दे सकता हूं https://github.com/baruch/diskscan , यह badblocks लेकिन कोशिश करता आकलन करने के लिए और अधिक की तरह वहाँ क्षेत्रों है कि बुरा क्षेत्र सुनवाई की एक हार्ड जा रहे हैं, तरह तरह की है कि एक लेता है, तो काम करता है बहुत लंबे समय तक पढ़ने के लिए। यह एक विकासशील मीडिया समस्या का संकेत है और भविष्य के संस्करणों में डिस्क को इस समस्या को ठीक करने में मदद करने के लिए स्वचालित प्रयास भी कर सकता है।


"इसके अलावा, बैडब्लॉक अनिवार्य रूप से इस दिन और उम्र में अप्रचलित है क्योंकि डिस्क स्वयं डेटा को फिर से व्यवस्थित करेगा और अब फाइल सिस्टम स्तर में खराब ब्लॉकों को मैप करने की कोई वास्तविक आवश्यकता नहीं है।" badblocksउन तरीकों से ड्राइव को तनाव न दें जो स्मार्ट आत्म परीक्षण नहीं करते हैं?
२०

बैडब्लॉक डिस्क की क्रमिक स्कैन करेगा। यह dd से बेहतर नहीं है और वैसा ही होगा जैसा सेल्फ-टेस्ट भी करता है।
बारूच

badblocksडिस्क से हर बाइट को पढ़ता है, इसे परीक्षण पैटर्न के साथ बदलता है, फिर मूल डेटा को वापस जगह में लिखता है। स्मार्ट स्व-परीक्षण इसी तरह के पढ़ने-लिखने के परीक्षण हैं?
एंडोलिथ

1
अच्छी तरह से बैडब्लॉक के डेटा को फिर से लिखने से कोई भी "लंबित क्षेत्र" साफ हो जाएगा और ड्राइव या तो उन्हें फिर से अच्छा बना देगा या उन्हें पुनः प्राप्त करेगा, सही?
एंडोलिथ

1
हाँ। यह हो सकता है कि आप ऐसे मामले में क्या चाहते हैं।
बारूच
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.