मैं RAID सरणी में किसी एकल ड्राइव को शारीरिक रूप से कैसे पहचान सकता हूं?


16

मैं एक बाहरी ड्राइव बे है जिसमें 4 eSATA डिस्क हैं। मेरे सिस्टम में 4-पोर्ट ईएसटीए कार्ड है, साथ ही आंतरिक हार्डवेयर RAID1 ड्राइव की एक जोड़ी है। बाहरी ड्राइव सॉफ़्टवेयर RAID1 जोड़े में /dev/md0और हैं /dev/md1। मेरे storagevgLVM वॉल्यूम समूह बनाने के लिए दोनों को LVM भौतिक संस्करणों के रूप में कॉन्फ़िगर किया गया है । हाल ही में, एक एकल ड्राइव ऑफ़लाइन हो गई (मुझे केबल पर संदेह है), लेकिन शारीरिक रूप से पहचानने के लिए एक अच्छा तरीका नहीं लगता है कि मुझे किस ड्राइव की जांच करने की आवश्यकता है, खासकर जब से इनिशियलाइज़ेशन ऑर्डर बूट्स के बीच समान नहीं है। मुझे डिस्क पर ध्यान देने की आवश्यकता कैसे हो सकती है?

जवाबों:


15

डिस्क उपयोगिता (सिस्टम में बैठे -> प्रशासन) आपको अपने सभी डिस्क के लिए सीरियल नंबर देगा।

यहां मैं देख रहा हूं (धारावाहिक के लिए शीर्ष-दाईं ओर देखें)। आप देखेंगे कि यह ड्राइव एक mdadm RAID सरणी के भीतर है। डिस्क उपयोगिता कच्चे डिस्क पहुंच के लिए सरणी को भेद सकती है।

तस्तरी उपयोगिता

मेरे पीसी में डिस्क के समान मॉडल में से 6 हैं, इसलिए मैंने मामले में उनकी स्थिति और सीरियल नंबर दिखाते हुए थोड़ा आरेख बनाया ताकि मैं आपात स्थिति में उन्हें सीरियल पर जल्दी से ढूँढ सकूँ।

इसके विपरीत यह भी सच है कि यदि एक डिस्क मर जाती है, तो मुझे केवल यह पता लगाने की आवश्यकता है कि कौन से डिस्क दिखाई दे रहे हैं और मैं उन्हें समाप्त कर सकता हूं जब तक कि मुझे पता नहीं है कि कौन सा सीरियल गायब है।

संपादित करें: मैं अपने बैश-फू को बेहतर बनाने की कोशिश कर रहा हूं, इसलिए मैंने यह कमांड लाइन संस्करण आपको बस डिस्क सीरियल नंबर की एक सूची देने के लिए लिखा है जो आपकी मशीन में चालू हैं। fdiskकुछ त्रुटियों को दूर कर सकते हैं, लेकिन यह सूची को दागी नहीं करता है:

for disk in `sudo fdisk -l | grep -Eo '(/dev/[sh]d[a-z]):' | sed -E 's/://'`;
do
    sudo hdparm -i $disk | grep -Eo 'SerialNo=.*' | sed -E 's/SerialNo=//';
done

(और आप एक पंक्ति में उखड़ सकते हैं यदि आपको आवश्यकता हो - मैंने इसे पठनीयता के लिए तोड़ दिया है)

संपादित करें 2: ls /dev/disk/by-id/ कुछ हद तक आसान है;)


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

आप यह भी देखेंगे कि डिस्क उपयोगिता में एक "स्थान" पहचानकर्ता है, जिससे पता चलता है कि होस्ट एडेप्टर का कौन सा पोर्ट ड्राइव में प्लग किया गया है। आप ईश्वरीय सक्षम हो सकते हैं कि कौन से पोर्ट ड्राइव को अनप्लग किए बिना हैं, लेकिन मैं अटकल नहीं लगा सकता यह वास्तव में काम कर रहा है।
ओली

आपके मामले में, 5 मिनट के लिए RAID सरणी को रोकना, प्रत्येक ड्राइव को अनप्लग करना और सीरियल प्राप्त करना बहुत अनुचित नहीं होना चाहिए और मशीन को बंद करने की आवश्यकता नहीं होनी चाहिए ... लेकिन RAID को तब तक नीचे ले जाना होगा जब तक कि आप कल्पना न करें यह पुनर्निर्माण।
ओली

"स्थान" हमेशा उपयोगी नहीं होता है, उदाहरण के लिए PATA के मामले में 1 पोर्ट पर अक्सर 2 डिस्क होते हैं, और यदि आपके डिस्क दोनों मास्टर / दास वार्ता के लिए "ऑटो" पर सेट होते हैं, तो संभवतः यह पता लगाने का कोई तरीका नहीं है कि कौन सा है ? यह हालांकि SATA के लिए काम कर सकता है
JanC

1
क्या PATA ड्राइव अभी भी मौजूद हैं? मैं तब से SATA-only रहा हूं ... खैर जब से 112gig डिस्क को बड़ा माना जाता है। पोर्ट-टू-पोर्ट की समस्या वास्तव में यहां नहीं है क्योंकि हम बाहरी ड्राइव बे के बारे में बात कर रहे हैं। लेकिन पक्का। उपभोक्ता मदरबोर्ड पर, आपको संभवतः एक विचार प्राप्त करने के लिए मैनुअल से परामर्श करने की आवश्यकता होगी कि पोर्ट क्या है ... फिर भी, सॉफ़्टवेयर उन्हें एक अलग आदेश दे सकता है।
ओली

5

यदि आपको अपने डिस्क स्थानिक स्थानों के साथ ड्राइव सीरियल नंबर या पोर्ट इंडिकेशन से मिलान करने में समस्या है, तो आप चला सकते हैं cat /dev/sdz >/dev/null(जहां sdzविफल ड्राइव है) और इसके एलईडी द्वारा ड्राइव का पता लगाएं (या कान से अगर आप शोर सर्वर रूम में नहीं हैं )। यदि ड्राइव भी पावर नहीं करेगा, तो यह बताने के लिए पर्याप्त होना चाहिए कि यह कौन सा है। अगली बार डिस्क पर एक दृश्य लेबल लगाना सुनिश्चित करें।


यह शुद्ध प्रतिभा है क्योंकि इसमें ठोस पर प्रकाश छोड़ने का दुष्प्रभाव है, जबकि अन्य सभी निमिष हैं
एचडीवी

3

जो जानकारी udisksदेता है (या तो कमांडलाइन पर या गनोम डिस्क यूटिलिटी में ) डिस्क सीरियल नंबर शामिल है। मेरे पास मौजूद डिस्क पर, सीरियल नंबर ऊपरी तरफ और सामने की तरफ (एक के दूसरी तरफ एक होता है जिसमें कनेक्टर्स होते हैं), दोनों संख्याओं के साथ और बारकोड के साथ। दुर्भाग्य से, अधिकांश पीसी मामलों में डिस्क को बाहर निकाले बिना उन धारावाहिकों को पढ़ना असंभव हो जाता है ...

आप इसमें सीरियल नंबर भी पा सकते हैं /dev/disk/by-id/

जैसा कि आपकी डिस्क ऑफ-लाइन है, मुझे लगता है कि यह वर्तमान में "कर्नेल" द्वारा नहीं देखा गया है? उस स्थिति में, आपको उन्मूलन से गुजरना पड़ सकता है: आप डिस्क को एक सीरियल नंबर के साथ चाहते हैं जो सूचीबद्ध नहीं है ...


2

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

लेकिन सॉफ्टवेयर के साथ RAID प्रत्येक ड्राइव में कुछ अद्वितीय मेटाडेटा है। आप mdadm -E /dev/sda1सरणी में प्रत्येक ड्राइव के लिए कमांड का उपयोग करके प्रत्येक ड्राइव से इसे पढ़ सकते हैं , अपने पर्यावरण से मेल खाने के लिए उपकरणों को संशोधित कर सकते हैं। इसलिए यदि आपके पास एक ऐसी स्थिति है जहां एक ड्राइव आपको समस्याएं दे रही है और वर्तमान में ऑफ़लाइन है। मैं इसे प्रत्येक ड्राइव पर चलाऊंगा, जो ऑनलाइन है, प्रत्येक ड्राइव के लिए मामूली संख्या को रिकॉर्ड कर रहा है। फिर एमडी का समर्थन करने वाली एक लाइव सीडी का उपयोग करना, सिस्टम बचाव सीडी एक अच्छा है, केवल एक समय में एक ड्राइव जुड़ा हुआ है और अपराधी को खोजने के लिए इस कमांड को चला रहा है। यह संभवतः उतना सीधा आगे नहीं है जितना आप चाहते हैं लेकिन यह काम करना चाहिए।


शायद ऐसे सीरियल नंबर हो सकते हैं जिन्हें आप लिनक्स के माध्यम से प्राप्त कर सकते हैं जो भौतिक ड्राइव पर भी मुद्रित हैं?
2

1

lsscsi

$ lsscsi -l
[०: ०: ०: ०] डिस्क ATA TOSHIBA THNS128G AGLA / देव / sda
  राज्य = रनिंग क्यू_डेप = 1 स्केसी_वेल = ६ प्रकार = ० डिवाइस_ब्लॉक = ० टाइमआउट = ३०
[१: ०: ०: ०] सीडी / डीवीडी एचएल-डीटी-एसटी DVDRAM GT30N LT09 / देव और s00
  राज्य = रनिंग क्यू_डेप = 1 स्केसी_वेल = ६ प्रकार = ५ डिवाइस_ब्लॉक = ० टाइमआउट = ३०

यदि डिस्क चालू नहीं है, तो यह एक अच्छा संकेत है। तो / proc / mdstat आपको बताएगा कि कौन सा सदस्य विफल हुआ। यह मानते हुए कि आपके पास एक अच्छा ड्राइव पिंजरा नहीं है, आपको सीरियल नंबर द्वारा नीचे ड्रिल करना होगा, sg_inq को उसकी मदद करनी चाहिए।

यदि आपके पास एक अच्छा ड्राइव पिंजरा है, तो आपको दोषपूर्ण सदस्य की पहचान करने में मदद करने के लिए डिस्क बीकन को सक्षम करने में सक्षम होना चाहिए।

http://www.mail-archive.com/linux-scsi@vger.kernel.org/msg07307.html


1

सभी हार्डडिस्क के सीरियल कोड प्राप्त करने के लिए:

lsblk -i -o kname,mountpoint,fstype,size,maj:min,name,state,rm,rota,ro,type,label,model,serial


KNAME MOUNTPOINT   FSTYPE   SIZE MAJ:MIN NAME   STATE   RM ROTA RO TYPE LABEL         MODEL            SERIAL
sda                         3.7T   8:0   sda    running  0    1  0 disk               WDC WD4000F9YZ-0 WD-WCCXXX4
sda1                        3.7T   8:1   `-sda1          0    1  0 part
sdb   /mnt/backup3 ext4     3.7T   8:16  sdb    running  0    1  0 disk backup_netops WDC WD4000F9YZ-0 WD-WCCXXX1
sdc                         3.7T   8:32  sdc    running  0    1  0 disk               WDC WD4000F9YZ-0 WD-WCCXXX3
sdc1  /mnt/backup2 ext4     3.7T   8:33  `-sdc1          0    1  0 part
sdd                         3.7T   8:48  sdd    running  0    1  0 disk               WDC WD4000F9YZ-0 WD-WCCXXX2
sdd1  /mnt/backup1 ext4     3.7T   8:49  `-sdd1          0    1  0 part

0

यह आसान है। उदाहरण के लिए यह मेरे पीसी पर आउटपुट है:

andrea@centurion:~$ cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdh1[1] sdg1[0]
      312568576 blocks [2/2] [UU]

unused devices: <none>

जैसा कि आप देख सकते हैं कि मैं / dev / sdh1 और / dev / sdg1 / dev / md0 में शामिल हो गया हूं


1
ठीक है, लेकिन यह मुझे इस बारे में कुछ नहीं बताता कि वे बाहरी ड्राइव के बाड़े में शारीरिक रूप से कहां हैं।
कीस कुक

0

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

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

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