लाइनक्स (रास्पबेरी पाई) पर बाहरी हार्ड-ड्राइव का बल स्पिन-डाउन


16

मैं वर्तमान में एक रास्पबेरी पाई का उपयोग करके एक होम-सर्वर स्थापित कर रहा हूं, जिसमें एक बाहरी हार्ड-डिस्क यूएसबी के माध्यम से जुड़ा हुआ है। हालाँकि, मेरा हार्ड-ड्राइव बेकार होने पर कभी भी नीचे नहीं आएगा।

मैंने पहले से ही raspberrypi.org पर उपलब्ध कराए गए संकेतों की कोशिश की ... बिना किसी सफलता के।

1.)

sudo hdparm -S5 /dev/sda

रिटर्न

/dev/sda:
 setting standby to 5 (25 seconds)
SG_IO: bad/missing sense data, sb[]:  70 00 04 00 00 00 00 0a 00 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

2.)

sudo hdparm -y /dev/sda

रिटर्न

/dev/sda:
 issuing standby command
SG_IO: bad/missing sense data, sb[]:  70 00 04 00 00 00 00 0a 00 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

... और 3.)

sudo sdparm --flexible --command=stop /dev/sda

रिटर्न

/dev/sda: HDD         1234

... ड्राइव के स्पिन-डाउन के बिना।

मैं निम्नलिखित हार्डवेयर का उपयोग करता हूं:

  • Inateck FDU3C-2 डुअल पोर्ट्स USB 3.0 HDD डॉकिंग स्टेशन
  • पश्चिमी डिजिटल WD10EZRX ग्रीन 1TB

क्या यह संभव है, कि भेजे गए स्पिन-डाउन-सिग्नल कहीं-कहीं ओवरराइट / खोए / अनदेखे हैं?


1
अद्यतन: मेनियंटेड इनटेक डॉकिंग स्टेशन में हार्ड ड्राइव को क्लोन करने के लिए एक कार्यक्षमता है, जो एक मास्टर / स्रोत और एचडीडी के लिए एक दास / सिंक पोर्ट प्रदान करता है। जब एचडीडी को स्लेव पोर्ट पर प्लग किया जाता है, तो ऊपर उल्लिखित वर्कआउट। यह मास्टर पोर्ट पर स्पिन-डाउन गुम होने की समस्या को सीमित करता है।
user258346

1
यदि आपको लगता है कि यह समाधान है, तो आपको अपना समाधान स्वीकार करना चाहिए। कॉर्नी हालांकि यह लग सकता है, यह एक ही समस्या के साथ भविष्य के पाठकों के लिए उपयोगी है।
MariusMatutiae

1
तुम्हें पता है, निश्चित रूप से, कि आप अपनी स्क्रिप्ट में जो कमांड का उपयोग करते हैं वही वही है जो आपने कहा था कि काम नहीं कर रहा है, है ना? hdparm -y / dev / sda ...
MariusMatutiae

जवाबों:


4

मेरे पास किस्मत नहीं थी HD-idle; यह चला लेकिन काम नहीं किया। मैंने नीचे स्क्रिप्ट लिखना समाप्त किया:

#!/bin/bash
# This script looks for recent disk access, and if nothing has changed, puts /dev/"drive" into spindown mode.
# This should be used only is the hdparm power management function is not working.
# Call this script with cron or manually as desired
#
#
#
# Change which drive this script looks at by changing the drive variable below:
drive="sda"
#
#
current=`date`
caller=$(ps ax | grep "^ *$PPID" | awk '{print $NF}')
filename="/tmp/diskaccess.txt"
if [ -f "$filename" ]; then
    stat_old=`cat "$filename" | tr -dc "[:digit:]"`
    stat_new=`cat /sys/block/"$drive"/stat | tr -dc "[:digit:]"`
    if [ "$stat_old" == "$stat_new" ]; then
        stat="0"
        echo "The disk hasn't been used; spinning down /dev/$drive"
        echo $stat_old
        hdparm -y /dev/$drive > /dev/null
    else
        stat="1"
        echo $stat_old
        echo $stat_new
        echo "The drive has been used..."
        echo $stat_new > $filename
    fi
else
    echo "/tmp/diskaccess.txt file does not exist; creating it now."
    echo $stat_new > $filename
fi
echo $stat " - " $drive " - " $current " - by: " $caller >> /tmp/diskaccesslog.txt

4
मैंने सोचा hdparm -yथा कि काम नहीं किया।
क्रिस्टियन सियुपिटु

धन्यवाद, पूरी तरह से काम करता है। मेरा WD नीला हार्डडिस्क अब नीचे घूमता है, जब इसका उपयोग नहीं किया जाता है। आपकी राय में, स्क्रिप्ट को कॉल करने के लिए एक उचित इंटरवल क्या है? मैं इसे हर 15 मिनट के लिए कहता हूं।
टेरेटर

5

हां, यह संभव है, लेकिन कुछ कस्टम विकास कार्यों की आवश्यकता होगी और तुच्छ नहीं और कोड आपके बाड़े के USB-> SATA पुल चिप INSIDE के लिए विशिष्ट होने वाला है।

सौदा यह है कि यूएसबी पुल एक विद्युत कनवर्टर से अधिक के रूप में कार्य करता है। USB-संलग्न HDD एक SCSI ड्राइव का अनुकरण करता है जिसमें एक अलग कमांड सेट होता है। जबकि मानक पढ़ने / लिखने / आज्ञाओं का अनुवाद हर समय अधिक विदेशी स्पिन अप / डाउन नहीं करते हैं। अधिकांश चिप्स ऐसा नहीं करेंगे। इसके अलावा एक सार्वभौमिक चिप स्तर एपीआई नहीं है। इसलिए यदि मैंने कोड लिखा है तो मुझे USB ब्रिज चिप के लिए प्रोग्रामिंग मैनुअल रखना होगा।

नीचे की रेखा, जब तक आपके पास चिप पर प्रोग्रामिंग की बारीकियां नहीं होती हैं और आप एटीए और एससीएसआई निर्देश सेट और पास-थ्रू कमांड को एनकैप्सुलेट करने से परिचित हैं, तब आप बस बिना कुछ किए होंगे। बहुत काम और कोई मानक नहीं।


5

यह पूरी तरह से संभव है कि आपके द्वारा भेजे जा रहे संकेत उपेक्षित हों। आपने आउटपुट प्रदान नहीं किया

sudo hdparm -I /dev/sdX

जो हमें डिस्क क्षमताओं को बताया होगा, लेकिन कई डिस्क बस इन आदेशों का जवाब नहीं देते हैं।

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

संपादित करें: यह रास्पियन पर सही ढंग से संकलित और स्थापित करता है।

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