ฉันจะระบุไดรฟ์หนึ่งตัวในอาร์เรย์ RAID ได้อย่างไร


16

ฉันมีช่องไดรฟ์ภายนอกที่มีดิสก์ eSATA 4 แผ่นอยู่ในนั้น ระบบของฉันมีการ์ด eSATA 4 พอร์ตเช่นเดียวกับไดรฟ์ RAID1 ฮาร์ดแวร์ภายในคู่ ไดรฟ์ภายนอกในคู่ซอฟต์แวร์ RAID1 เป็นและ/dev/md0 /dev/md1ทั้งสองถูกกำหนดค่าเป็นฟิสิคัลวอลุ่ม LVM เพื่อสร้างstoragevgกลุ่มวอลุ่ม LVM ของฉัน เมื่อเร็ว ๆ นี้ไดรฟ์หนึ่งไดรฟ์ออฟไลน์ (ฉันสงสัยว่าสายเคเบิล) แต่ดูเหมือนจะไม่มีวิธีที่ดีในการระบุทางกายภาพว่าต้องตรวจสอบไดรฟ์ใดโดยเฉพาะอย่างยิ่งเนื่องจากลำดับการเริ่มต้นไม่เหมือนกันระหว่างบูท ฉันจะค้นหาดิสก์ที่ต้องการความสนใจได้อย่างไร

คำตอบ:


15

Disk Utility (อยู่ในระบบ -> การดูแลระบบ) จะให้หมายเลขซีเรียลสำหรับดิสก์ทั้งหมดของคุณ

นี่คือสิ่งที่ฉันเห็น (ดูที่ด้านบนขวาสำหรับอนุกรม) คุณจะสังเกตเห็นว่าไดรฟ์นี้อยู่ในอาร์เรย์ mdadm RAID ยูทิลิตี้ดิสก์สามารถเจาะอาร์เรย์สำหรับการเข้าถึงดิสก์ดิบ

ยูทิลิตี้ดิสก์

ฉันมีดิสก์รุ่นเดียวกัน 6 ชิ้นในพีซีของฉันดังนั้นฉันจึงวาดไดอะแกรมเล็ก ๆ เพื่อแสดงตำแหน่งของพวกเขาในเคสและหมายเลขซีเรียลเพื่อที่ฉันจะสามารถหาตำแหน่งของพวกเขาได้อย่างรวดเร็วบนซีเรียลในกรณีฉุกเฉิน

สิ่งที่ตรงกันข้ามก็เป็นจริงเช่นกันหากดิสก์ตายฉันต้องหาดิสก์ที่แสดงขึ้นมาและฉันสามารถกำจัดมันได้จนกว่าฉันจะรู้ว่าอนุกรมใดหายไป

แก้ไข:ฉันพยายามปรับปรุง bash-fu ของฉันดังนั้นฉันจึงเขียนรุ่นบรรทัดคำสั่งนี้เพื่อให้รายการหมายเลขซีเรียลดิสก์ที่เป็นปัจจุบันในเครื่องของคุณ 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/ค่อนข้างง่าย;)


การใช้หมายเลขซีเรียลสามารถทำงานได้เป็นอย่างดีหากมีการบันทึกไว้ภายนอกแล้ว ในกรณีของระบบที่ไม่สามารถปิดได้ แต่มีฮ็อตสว็อปไดรฟ์มันน่าจะดีที่สามารถค้นหาไดรฟ์ที่ล้มเหลวผ่านไฟ LED
Kees Cook

คุณจะสังเกตเห็นว่ามีตัวระบุ "ตำแหน่งที่ตั้ง" ใน Disk Utility ซึ่งแสดงว่าพอร์ตใดของอะแดปเตอร์โฮสต์ที่เสียบไดรฟ์ไว้คุณอาจสามารถกำหนดพอร์ตที่พอร์ตใดโดยไม่ถอดปลั๊กไดรฟ์ แต่ฉันไม่สามารถคาดเดาได้ มันใช้งานได้จริง
Oli

ในกรณีของคุณให้หยุดอาร์เรย์การโจมตีลงเป็นเวลา 5 นาทีถอดปลั๊กแต่ละไดรฟ์และรับซีเรียลไม่ควรเกินเหตุและไม่จำเป็นต้องปิดเครื่อง ... แต่การจู่โจมจะต้องถูกถอดออกเว้นแต่คุณจะนึกออก มันสร้างใหม่
Oli

"สถานที่ตั้ง" ไม่ได้มีประโยชน์เสมอไปเช่นในกรณีของ PATA มักจะมี 2 ดิสก์บน 1 พอร์ตและหากดิสก์ของคุณทั้งคู่ถูกตั้งค่าเป็น "อัตโนมัติ" สำหรับการเจรจาต่อรองหลัก / ทาสอาจไม่มีวิธีที่จะค้นหาว่าสิ่งใด ? มันอาจใช้ได้กับ SATA
JanC

1
ไดรฟ์ PATA ยังคงมีอยู่หรือไม่? ฉันเป็น SATA เท่านั้นตั้งแต่ ... เพราะตั้งแต่ 112gig disk นั้นถือว่าใหญ่ ปัญหาการค้นหาพอร์ตไม่ได้นับที่นี่เพราะเรากำลังพูดถึงช่องไดรฟ์ภายนอก แต่แน่นอน บนแผงวงจรหลักของผู้บริโภคคุณอาจต้องศึกษาคู่มือเพื่อรับทราบว่าพอร์ตคืออะไร ... ถึงกระนั้นก็ตามซอฟต์แวร์อาจมีลำดับที่แตกต่างออกไป
Oli

5

หากคุณมีปัญหาในการจับคู่หมายเลขซีเรียลของไดรฟ์หรือตัวบ่งชี้พอร์ตกับตำแหน่งเชิงพื้นที่ของดิสก์ของคุณคุณสามารถเรียกใช้cat /dev/sdz >/dev/null(ซึ่งsdzเป็นไดรฟ์ที่ล้มเหลว) และค้นหาไดรฟ์ด้วยไฟ LED (หรือโดยหูถ้าคุณไม่อยู่ในห้องเซิร์ฟเวอร์ ) หากไดรฟ์ไม่สามารถจ่ายไฟได้ควรจะเพียงพอที่จะบอกได้ว่าไดรฟ์ตัวใดอยู่ อย่าลืมติดป้ายกำกับที่มองเห็นได้บนดิสก์ในครั้งต่อไป


นี่คืออัจฉริยะบริสุทธิ์เนื่องจากมันมีผลข้างเคียงของการปล่อยแสงบนของแข็งในขณะที่คนอื่น ๆ กำลังกระพริบ
HDave

3

ข้อมูลที่udisksให้ (บน commandline หรือในGNOME Disk Utility ) รวมถึงหมายเลขซีเรียลดิสก์ บนดิสก์ที่ฉันมีหมายเลขซีเรียลจะพิมพ์อยู่ที่ด้านบนและที่ด้านหน้า (หมายเลขที่อยู่อีกด้านหนึ่งของที่มีตัวเชื่อมต่อ) ทั้งเป็นตัวเลขและมีบาร์โค้ด น่าเสียดายที่เคสพีซีส่วนใหญ่ทำให้ไม่สามารถอ่าน serials เหล่านั้นได้โดยไม่ต้องดึงดิสก์ออก ...

นอกจากนี้คุณยังสามารถค้นหาหมายเลขซีเรียลได้ /dev/disk/by-id/ได้

ขณะที่ดิสก์ของคุณออฟไลน์อยู่ฉันคิดว่าเคอร์เนล "ไม่เห็น" ในขณะนี้? ในกรณีดังกล่าวคุณอาจต้องผ่านการกำจัด: คุณต้องการดิสก์ที่มีหมายเลขผลิตภัณฑ์ที่ไม่อยู่ในรายการ ...


2

เมื่อมีซอฟต์แวร์จู่โจมนี่เป็นปัญหาที่พบบ่อย การตรวจค้นฮาร์ดแวร์มักจะมีคุณสมบัติที่ช่วยให้คุณกะพริบไฟ LED ที่เกี่ยวข้องกับไดรฟ์โดยสมมติว่าฮาร์ดแวร์ของคุณรองรับ

แต่ด้วยซอฟต์แวร์ RAID แต่ละไดรฟ์จะมีข้อมูลเมตาที่ไม่เหมือนใคร ซึ่งคุณสามารถอ่านได้จากแต่ละไดรฟ์โดยใช้คำสั่งmdadm -E /dev/sda1สำหรับแต่ละไดรฟ์ในอาเรย์ปรับเปลี่ยนอุปกรณ์ให้ตรงกับสภาพแวดล้อมของคุณ ดังนั้นหากคุณมีสถานการณ์ที่ไดรฟ์ทำให้คุณมีปัญหาและขณะนี้ออฟไลน์ ฉันจะเรียกใช้สิ่งนี้ในแต่ละไดรฟ์ที่ออนไลน์บันทึกจำนวนเล็กน้อยสำหรับแต่ละไดรฟ์ จากนั้นใช้ Live CD ที่สนับสนุน MD ระบบกู้คืนซีดีเป็นไดรฟ์ที่ดีโดยเชื่อมต่อไดรฟ์เพียงหนึ่งครั้งและเรียกใช้คำสั่งนี้เพื่อค้นหาผู้ร้าย สิ่งนี้อาจไม่ตรงไปตรงมาเท่าที่คุณต้องการ แต่ควรจะทำงาน


บางทีอาจมีหมายเลขซีเรียลที่คุณสามารถใช้งานผ่าน Linux ที่พิมพ์อยู่บนฮาร์ดไดรฟ์ได้เช่นกัน
erjiang

1

lsscsi

$ lsscsi -l
[0: 0: 0: 0] ดิสก์ ATA TOSHIBA THNS128G AGLA / dev / sda
  state = กำลังทำงาน queue_depth = 1 scsi_level = 6 type = 0 device_blocked = 0 timeout = 30
[1: 0: 0: 0] ซีดี / ดีวีดี HL-DT-ST DVDRAM GT30N LT09 / dev / sr0
  state = กำลังทำงาน queue_depth = 1 scsi_level = 6 type = 5 device_blocked = 0 หมดเวลา = 30

หากดิสก์ไม่ได้ทำงานอยู่แสดงว่าเป็นสัญญาณที่ดีทีเดียว ดังนั้น / 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
ใช่ แต่นี่ไม่ได้บอกอะไรฉันเกี่ยวกับที่ที่พวกเขาอยู่ในกล่องใส่ไดรฟ์ภายนอก
Kees Cook

0

เนื่องจากอาเรย์ของคุณไม่มี SES smarts และ LED กิจกรรมดิสก์ไม่สามารถขับได้โดยตรงเช่นคุณต้องการการสนับสนุนเฟิร์มแวร์ สิ่งเดียวที่คุณทำได้คือ quiesce I / O ที่ดีที่สุดที่คุณสามารถทำได้จากนั้นใช้สิ่งที่ชอบddหรือsg_readบนตัวสมาชิกเพื่อกำหนดรูปแบบการอ่านไปยังดิสก์ที่สร้างรูปแบบการกะพริบที่ไม่ซ้ำกันโดยใช้ LED กิจกรรม สัญญาณของมนุษย์ถ้าคุณจะ มันเป็นทางเลือกเดียวของคุณจริง ๆ ยกเว้นว่าการนำอาร์เรย์ลงมาเป็นตัวเลือก

ความสามารถในการให้บริการประเภทนี้เป็นสิ่งที่แตกต่างไปจากอาร์เรย์หน่วยเก็บข้อมูลภายนอก เนื่องจากคุณไม่ได้วางแผนล่วงหน้าโดยการเขียนหมายเลขซีเรียลและตำแหน่งของพวกเขาคุณจะไม่สามารถทำการตั้งค่าต่าง ๆ เพื่อระบุไดรฟ์ที่ผิดพลาดได้ เป็นราคาที่คุณจ่ายสำหรับโซลูชันที่คุณปรับใช้ไม่ว่าคุณจะเข้าใจหรือไม่ก็ตาม แต่นี่คือชีวิตและการเรียนรู้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.