यह पता लगाना कि हार्डड्राइव कताई क्या है


10

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

मैं इसका कारण कैसे निर्धारित कर सकता हूं? मैं लिनक्स के लिए बहुत नया हूं, लेकिन मैं रूट एक्सेस प्राप्त करने में कामयाब रहा, और अब इसका एसएसएच कनेक्शन है।


यह बहुत पुराना है, लेकिन फिर भी प्रासंगिक सुझाव हो सकते हैं।
गिल्स एसओ- बुराई को रोकें '

क्या आपके पास NAS बॉक्स में वेब / फ्रंटएंड इंटरफेस के साथ कुछ एनालिटिक्स / जैसे प्लगइन है? NAS बॉक्स विवरण क्या हैं? मुझे आश्चर्य हो रहा है कि डिस्क गतिविधि की जांच के लिए कुछ सिस्टमटैप टूल को वहां नियोजित किया जा सकता है या नहीं। systemtap केवल Linux कर्नेल के बाद के संस्करणों के लिए उपलब्ध है।
निखिल मुल्ले

NAS एक लैसी d2 नेटवर्क 2 है। कोई प्लगइन विकल्प नहीं है, लेकिन मुझे लगता है कि मैं इसमें कुछ भी लोड कर सकता हूं। यह एक ग्रीन यूनिकॉर्न वेबसर्वर चलाता है। कर्नेल 2.6.31.14-svn6790 है।
एंड्रियास

जवाबों:


6

inotify-tools यह करने का एक सरल तरीका है। उनकी साइट पर कई उदाहरण हैं जो आप चाहते हैं कि कर सकते हैं (वास्तव में बुनियादी एक के लिए inotifywatch उदाहरण देखें)।


मैं फिलहाल इस पर गौर कर रहा हूं। सबसे पहले, मुझे ARMv5TE सीपीयू के लिए स्रोत संकलित करने की आवश्यकता है। यह काफी मुश्किल साबित हो सकता है :)
एंड्रियास


2

एक और टिप: सिस्टमटैप का उपयोग करें, अपराधी को खोजने के लिए पर्याप्त सिस्टमटैप की साइट पर जांच स्क्रिप्ट का गुच्छा है।

एक अन्य मामले में,

यदि आप यह पता लगाना चाहते हैं कि डिस्क को स्पिन करने के लिए किस प्रक्रिया का कारण है, तो आप ध्वज को सेट करके जानकारी एकत्र कर सकते हैं /proc/sys/vm/block_dump। जब यह ध्वज सेट किया जाता है, तो लिनक्स सभी डिस्क को पढ़ने और लिखने वाले कार्यों की रिपोर्ट करता है, और फ़ाइलों के लिए किए गए सभी गंदे कामों को रोक देता है। यह डिबग करना संभव बनाता है कि डिस्क को स्पिन करने की आवश्यकता क्यों है, और बैटरी जीवन को और भी अधिक बढ़ाने के लिए। ब्लॉक_डंप का आउटपुट कर्नेल आउटपुट को लिखा जाता है, और इसे "dmesg" का उपयोग करके पुनर्प्राप्त किया जा सकता है या डिबग संदेशों के गंतव्य के लिए अपने syslog kern सुविधा को देख सकता है। आम तौर पर, यह होना चाहिए /var/log/debug। जब आप block_dump का उपयोग करते हैं और आपके कर्नेल लॉगिंग स्तर में कर्नेल डीबगिंग संदेश भी शामिल होते हैं, तो आप संभवतः klogd को बंद करना चाहते हैं, अन्यथा block_dump का आउटपुट लॉग हो जाएगा, जिससे डिस्क गतिविधि सामान्य रूप से नहीं होती है।


2

आपको यह बताने की जरूरत है कि डिस्क को आप सभी रीड / राइट को सूचित करते हैं, फिर आपको उस जानकारी को देखना होगा।

इसलिए:

# sync
# echo 1 > /proc/sys/vm/block_dump
# dmesg -c | grep '/dev/sda'

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

मैं आमतौर पर डिस्क को नीचे स्पिन करने के लिए कुछ इस तरह का उपयोग करता हूं, फिर जब वह फिर से घूमता है, तो उसकी जांच करें:

# sync
# hdparm -y /dev/sda
# while true; do hdparm -C /dev/sda ; sleep 600 ; done

whileपाश की जाँच करता डिस्क सक्रिय / निष्क्रिय स्थिति हर 10 मिनट। जब आप इसे पावर अप dmesgकरते देखते हैं, तो व्होडुननिट ​​को देखने के लिए ऊपर की लाइन चलाएं ।

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