प्रश्न: एमडीएडीएम मिसमैच_कंट> 0. किसी भी तरह की पहचान करने के लिए कि कौन से ब्लॉक असहमति में हैं?


12

ठीक है। रूटीन स्क्रब के बाद, मेरा MDADM RAID5 mismatch_cnt = 16 की रिपोर्ट कर रहा है। जैसा कि मैं समझता हूं, इसका मतलब यह है कि किसी भी डिवाइस ने रीड एरर की सूचना नहीं दी है, लेकिन 16 ब्लॉक ऐसे हैं, जिनके लिए डेटा और समता सहमत नहीं हैं।

प्रश्न # 1: क्या कोई इन ब्लॉकों की सूची प्राप्त कर सकता है?

प्रश्न # 2: # 1 मान लेना संभव है, यह देखते हुए कि अंतर्निहित फाइलसिस्टम EXT4 है, क्या यह पहचानने का कोई तरीका है कि कौन सी फाइलें इन ब्लॉकों से जुड़ी हैं?

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

(मुझे ध्यान देना चाहिए कि मैं केवल 'जांच' विकल्प के साथ RAID स्क्रब चलाता हूं। 'मरम्मत' विकल्प के साथ रनिंग स्क्रब खतरनाक रूप से खतरनाक लगता है क्योंकि एमडीएडीएम केवल यह जानता है कि या तो डेटा या समता गलत है लेकिन यह नहीं जानता कि कौन है। तो ऐसा लगता है कि 50% संभावना है कि MDADM गलत अनुमान लगाता है और गलत डेटा का पुनर्निर्माण करता है। इसलिए मेरी यह जानने की इच्छा है कि कौन सी फाइलें संभावित रूप से प्रभावित होती हैं ताकि मैं उन्हें बैकअप से पुनर्स्थापित कर सकूं, यदि आवश्यक हो तो)

किसी भी सुझाव बहुत सराहना की!


जाँच dmesgया / var / लॉग / syslog?
Psusi

नमस्ते। जैसा कि मैं बता सकता हूं, स्क्रबर द्वारा सिसोग्लॉग में लॉग किए गए एकमात्र संदेश प्रारंभ और स्टॉप संदेश थे। बेमेल के बारे में कोई संदेश लॉग नहीं किया गया था।
अर्कासिंकी

देखें icheck+ ncheckमें debugfsऑफसेट क्षेत्र के आधार पर फ़ाइलों की पहचान करने के लिए।
sch

मैंने सेक्टर नंबर के लिए लॉगिंग जोड़ने की कोशिश की। अब मैं यह पता लगाने की कोशिश कर रहा हूं कि आगे क्या करना है: unix.stackexchange.com/questions/266432/…
पीटर कॉर्ड्स

2
मुझे पता है कि कुछ भी नहीं कहते हैं कि डिस्क खराब हैं, लेकिन उन्हें जांचें। प्रत्येक डिस्क के लिए ऐसा करने के लिए स्मार्टमोनटूल पैकेज का उपयोग करें (जैसे smartctl -a /dev/sdaऔर इतने पर), या जो भी अन्य विधि आपको प्रत्येक डिस्क पर एक लघु स्मार्ट परीक्षण चलाने और एक पूर्ण रिपोर्ट प्रिंट करने के लिए उपयोग करें। यह बहुत संभावना है कि उनमें से एक मर रहा है, और यह एक समग्र SMART स्वास्थ्य अलार्म को ट्रिगर करने के लिए खराब होने की गंभीर मात्रा लेता है।
स्पूलर

जवाबों:


1

क्षमा करें, 'चेक' वास्तव में सरणी में वापस लिखता है जब यह एक त्रुटि का सामना करता है - देखें https://www.apt-browse.org/browse/ubuntu/trusty/main/amd64/mdadm/3.2.5-5-5note4/file /usr/share/doc/mdadm/README.checkarray

'चेक' एक रीड ओनली ऑपरेशन है, भले ही कर्नेल लॉग सुझाव दे सकता है (जैसे / proc / mdstat और कई कर्नेल संदेश "resync" का उल्लेख करेंगे)। कृपया प्रश्न 21 का प्रश्न भी देखें।

यदि, हालांकि, पढ़ते समय, एक पढ़ने में त्रुटि होती है, तो चेक उन त्रुटियों को पढ़ने के लिए सामान्य प्रतिक्रिया को ट्रिगर करेगा जो 'सही' डेटा उत्पन्न करने के लिए है और इसे बाहर लिखने की कोशिश करते हैं - इसलिए यह संभव है कि एक 'चेक' एक ट्रिगर होगा लिखना। हालाँकि, पठन त्रुटियों के अभाव में यह केवल पढ़ने के लिए है।

... तो आपको पहले से ही जिस डेटा की तलाश है, उसे इकट्ठा करने में पहले ही बहुत देर हो सकती है।

लंबी अवधि के लिए, यह ध्यान देने योग्य है कि RAID5 (और 6, और 1) में बिट-रोट के खिलाफ कोई सुरक्षा नहीं है जो संभवतः आपके द्वारा सामना की गई स्थिति है। जब एक डिस्क में डेटा खराब हो जाता है, तो उनके पास यह निर्धारित करने का कोई तरीका नहीं होता है कि कौन सा डेटा अच्छा बनाम बुरा है। मैं एक फाइलसिस्टम की ओर पलायन करने की योजना बनाऊंगा जो प्रत्येक डिस्क जैसे कि btrfs या zfs को चेक करता है।

(RAID-5 को वास्तव में नई तैनाती में उपयोग नहीं किया जाना चाहिए - और वास्तव में ऐसा नहीं होना चाहिए जहां कच्चे डिस्क की क्षमता 2TB से अधिक हो - http://www.zdnet.com/article/why-raid-5- देखें स्टॉप-वर्किंग-इन -2009 / )

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