ฉันสามารถตรวจจับการบุกรุกข้อมูลฮาร์ดแวร์จากภายใน Linux ได้หรือไม่


15

เมื่อฉันอยู่ใน Linux ฉันสามารถรับข้อมูลต่อไปนี้ได้lsblk(ลบไดรฟ์ที่ไม่เกี่ยวข้องออกจากเอาต์พุต):

NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda     8:0    0   298G  0 disk 
sdb     8:16   0   2.7T  0 disk

เมื่อฉันดึงไดรฟ์ออกจากเซิร์ฟเวอร์ด้วยตนเองฉันสามารถบอกได้ว่าฉันใช้ไดรฟ์ต่อไปนี้แบบฟิสิคัล:

0  Seagate 320GB
1  Seagate 320GB
2  Hitachi 1TB
3  Hitachi 1TB
4  Hitachi 1TB
5  Hitachi 1TB
6  [empty]
7  [empty]

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

มีวิธีใดที่ฉันจะตรวจสอบว่าฉันใช้ฮาร์ดแวร์ RAID จากด้านในของ Linuxหรือไม่และหาข้อมูลทั้งหมดเกี่ยวกับมัน (เช่นประเภทของ RAID, ไดรฟ์ที่มีอยู่) โดยไม่ต้องปิดเซิร์ฟเวอร์ดึงตัวไดรฟ์ออกมา และอ่านฉลากของพวกเขา?

สามารถรวบรวมข้อมูลนี้จากภายในของ Linux หรือเป็นจุดประสงค์ของฮาร์ดแวร์ RAID ที่จะทำให้ระบบพื้นฐาน "มองไม่เห็น" กับระบบปฏิบัติการได้หรือไม่?


ขึ้นอยู่กับคอนโทรลเลอร์ RAID ที่คุณใช้และสิ่งที่รองรับภายใต้ Linux หากคุณให้ข้อมูลเกี่ยวกับตัวควบคุมของคุณคุณอาจพบความช่วยเหลือที่นี่ คุณสามารถค้นหาเว็บสำหรับ "คำสั่ง model # linux" หากคุณไม่ได้รับข้อมูลที่คุณต้องการที่นี่
ยีน

@ ยีนนั้นโชคร้าย อีกครั้งฉันหวังว่าจะมีวิธีแก้ปัญหาที่ไม่ต้องการค้นหาหมายเลขรุ่นเฉพาะ แต่สามารถใช้ได้โดยไม่คำนึงถึงฮาร์ดแวร์ที่คุณใช้
IQAndreas

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

1
โดยทั่วไปคุณสามารถค้นหาข้อมูลคอนโทรลเลอร์หรือชิปเซ็ตผ่าน dmesg, dmidecode, lspci และยูทิลิตี้อื่น ๆ ที่คล้ายกัน หากเป็น RAID ในตัวบนเมนบอร์ดที่ทราบยี่ห้อและรุ่นของเมนบอร์ดจะได้รับ 99% ของวิธีการใช้งานที่นั่น
ยีน

1
adds an answer explaining how to figure out which RAID controller is being used from inside of Linux - @IQAndreas แต่นั่นไม่ได้อยู่ในคำถาม คำตอบเกี่ยวกับความผิดพลาดของเซิร์ฟเวอร์ควรตอบคำถามที่ถูกถาม หากคุณมีคำถามอื่นคุณควรแก้ไขคำถามของคุณ คำถามนั้นสามารถตอบตัวเองได้ในไม่กี่นาทีบน Google lshwอย่างไรก็ตามคำตอบที่เป็น
Zoredache

คำตอบ:


17

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

ในการค้นหา RAID คอนโทรลเลอร์ที่คุณใช้อยู่ให้ลองคำสั่งอย่างใดอย่างหนึ่งต่อไปนี้:

lspci

# lspci -knn | grep 'RAID bus controller'
08:00.0 RAID bus controller [0104]: 3ware Inc 9690SA SAS/SATA-II RAID PCIe [13c1:1005] (rev 01)

นี่คือข้อมูลที่เรากำลังมองหา"3ware Inc 9690SA SAS / SATA RAID-II PCIe"

lsscsi

คำสั่งไม่พร้อมใช้งานบน Debian และ Ubuntu แต่sudo apt-get install lsscsiจะดึงข้อมูลอย่างรวดเร็วจาก repos หมายเหตุหากคุณไม่ได้ใช้ตัวควบคุม RAID ผู้ผลิตและหมายเลขรุ่นของฮาร์ดไดรฟ์ของคุณจะปรากฏที่นี่แทน

# lsscsi
[2:0:0:0]    disk    AMCC     9690SA-8I  DISK  4.08  /dev/sda 
[2:0:1:0]    disk    AMCC     9690SA-8I  DISK  4.08  /dev/sdb 

ที่นี่เราเห็นผู้ผลิตคือ"AMCC"และหมายเลขรุ่นของการ์ด RAID คือ"9690SA-8I" รวดเร็วการค้นหาของ Googleแสดงให้เห็นว่าการ์ดใบนี้เป็นที่รู้จักกัน"AMCC 3ware 9690SA-8I"

lshw

วิธีที่สาม (ซึ่งให้ข้อมูลบิตค่อนข้างน้อย) คือการใช้lshwคำสั่ง เรียกใช้lshw -class diskเป็นรูทเพื่อแสดงเฉพาะรายละเอียดเกี่ยวกับฮาร์ดไดรฟ์ (ซึ่งรวมถึงข้อมูล RAID)

การค้นหาเครื่องมือควบคุม RAID

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

หากผู้ผลิตปรากฏในรายการนี้ดูคำตอบเหล่านี้สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีรับข้อมูล RAID สำหรับการ์ดของคุณ:


5

lspci -knn | grep 'RAID bus controller'การทำงานบางอย่างเช่น

โดยใช้การส่งออกที่ Google (ตัวอย่าง) LSI Logic / Symbios Logic MegaRAID SAS 2208สำหรับ

ค้นหามันใช้storcliยูทิลิตี้เพื่อสอบปากคำคอนโทรลเลอร์ RAID

ดาวน์โหลดและติดตั้ง

storcli64 show ให้รูปแบบของตัวควบคุมโดยเฉพาะและดัชนีตัวควบคุมจำนวนกลุ่มไดรฟ์และไดรฟ์เสมือน

storcli64 /c0/d0 showแสดงให้คุณเห็นตัวควบคุมแรกกลุ่มขับครั้งแรก บอกระดับการจู่โจมรวมถึงการทำรัง

storcli64 /c0/eall/sall show all แสดงข้อมูลทั้งหมดในดิสก์ทั้งหมด

ข้อมูลอ้างอิงเพิ่มเติมสำหรับคำสั่งเหล่านั้นอยู่ที่นี่:

http://mycusthelp.info/LSI/_cs/AnswerPreview.aspx?sSessionID=&inc=8275

ควรเป็นสิ่งที่คุณต้องทำ เพียงแค่ใช้การวิปัสสนาฮาร์ดแวร์ปกติใน Linux จากนั้น Google จากนั้นดาวน์โหลดและติดตั้งยูทิลิตี้ที่สอดคล้องกับมัน

ข้อเสนอแนะและความคิดเห็นของ @Gene นั้นตรงจุด

คำตอบนี้มีความเฉพาะเจาะจงกับผลลัพธ์ที่คุณได้รับจากlspciคำสั่งและความสามารถในการค้นหา Google ของคุณเพื่อระบุผู้ผลิตและเพื่อคว้าเครื่องมือบรรทัดคำสั่งที่ถูกต้อง

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


ตั้งแต่คำตอบสำหรับคำถามของฉันเป็นไปได้เฉพาะฮาร์ดแวร์สิ่งที่ผมทำก็คือการเพิ่มคำตอบที่วิกิพีเดียชุมชนเกี่ยวกับวิธีการหาสิ่งที่ควบคุม RAID คุณกำลังใช้ คำตอบนี้เชื่อมโยงไปยังคำตอบ (รวมถึงของคุณ) ที่ให้รายละเอียดสำหรับตัวควบคุมหรือผู้ผลิตที่เฉพาะเจาะจง
IQAndreas

หากคุณต้องการอัปเดตรูปแบบของคำตอบเพื่อสะท้อนสิ่งนี้จะดี แต่ไม่จำเป็นอย่างยิ่ง
IQAndreas

2

นี่ไม่ใช่คำตอบขนาดเดียวเหมาะกับทุกคนและไม่ให้ข้อมูลทั้งหมดที่คุณต้องการ แต่สำหรับตัวควบคุม RAID ฮาร์ดแวร์ Adaptec ตัวหนึ่งที่เราเคยใช้มันให้การเข้าถึงไดรฟ์ด้วยตนเองผ่านอุปกรณ์พิเศษ / dev / sg1 / dev / sg2 เป็นต้นเราสามารถเรียกใช้ smartctl -a / dev / sg1 เพื่อรับข้อมูลจำนวนมากบนฟิสิคัลไดรฟ์นั้นรวมถึงผู้ผลิตหมายเลขรุ่นอินเทอร์เฟซหมายเลขอนุกรมขนาดและข้อมูลอื่น ๆ

เท่าที่ทราบว่ามีการใช้คอนโทรลเลอร์ตัวใดฉันก็เห็นด้วยกับความคิดเห็นของ Gene เกี่ยวกับ dmidecode, dmesg และ lspci - สิ่งเหล่านี้จะเป็นตัวทดลองของฉันก่อน


1

สำหรับการสร้างโพรไฟล์การจัดเก็บฉันจะทำสิ่งต่อไปนี้ก่อนที่จะรันlspciหรือดาวน์โหลดอะไรก็ได้

# cat /etc/fstab         What partitions get mounted at boot?

# sudo pvs               Are you running LVM? List the physical volumes

# cat /proc/mdstat       List software RAID devices & status

# for D in /dev/sd?; do parted $D print; done
                         If hardware RAID is being used, the "Model" field will list
                         the Mfr. name, otherwise the hard drive Mfr.

0

3ware

สิ่งนี้ได้รับการทดสอบกับคอนโทรลเลอร์ RAID ต่อไปนี้: 9690SA-8I

กรุณาแจ้งให้เราทราบในความคิดเห็นหากมันทำงานสำหรับตัวควบคุมเฉพาะของคุณหรือหากคำแนะนำจำเป็นต้องมีการปรับปรุงสำหรับรุ่นของคุณ

ดาวน์โหลด

tw_cliครั้งแรกที่คุณจะต้องดาวน์โหลดเครื่องมือ พบได้ในเว็บไซต์ Avago Technologies *:

* ไม่ต้องกังวลมันไม่ใช่เว็บไซต์ของบุคคลที่สาม 3ware ถูกซื้อโดย AMCC แล้วขายให้กับ LSI Corporation ซึ่งต่อมาได้กลายเป็นส่วนหนึ่งของ Avago [ แหล่งที่มา ] การสำรองข้อมูลนี้ทราบว่า3ware.comเปลี่ยนเส้นทางไปยังหน้าเว็บที่เกี่ยวข้องในavagotech.com

พิมพ์tw_cliลงในแถบค้นหาจากนั้นนำทางไปรอบ ๆ จนกว่าคุณจะพบชื่อการดาวน์โหลดCLI Linux - from the 10.2.2.1/9.5.5.1 code sets(หมายเลขเวอร์ชันล่าสุดอาจแตกต่างจากที่แสดงไว้ที่นี่)

แตกไฟล์ zip และในx86หรือx86_64คุณจะพบtw_cliไบนารีที่คุณต้องการ บันทึกไบนารีนี้ไปยังเซิร์ฟเวอร์หรือคอมพิวเตอร์ของคุณ

กำลังเรียกใช้ tw_cli

หมายเหตุ: (1) ยูทิลิตีบรรทัดคำสั่งอาจต้องทำงานเป็นรูท (2) เรียกใช้มันตามที่คุณต้องการไบนารีอื่น ๆ ./tw_cliโดยทั้งเพิ่มไปยังเส้นทางหรือโดยการทำงานโดยตรงจากไดเรกทอรีปัจจุบันด้วย

ก่อนอื่นให้เรียกใช้tw_cli showรายการตัวควบคุม RAID ที่มีอยู่ในระบบของคุณ:

# tw_cli show
Ctl   Model        (V)Ports  Drives   Units   NotOpt  RRate   VRate  BBU
------------------------------------------------------------------------
c2    9690SA-8I    6         6        2       0       1       1      Charging 

ที่นี่เราสามารถเห็นได้ว่ามีคอนโทรลเลอร์หนึ่งตัวถูกแนบมาพร้อมกับ id ของc2(จำรหัสนี้!) ซึ่งมีไดรฟ์ฟิสิคัล 6 ตัวติดอยู่ ในการรับรายละเอียดเพิ่มเติมเกี่ยวกับไดรฟ์ใดที่ต่ออยู่กับยูนิตให้เรียกใช้tw_cli /c2 show(แทนที่/c2ด้วย ID ของคอนโทรลเลอร์ของคุณ):

# tw_cli /c2 show
Unit  UnitType  Status         %RCmpl  %V/I/M  Stripe  Size(GB)  Cache  AVrfy
------------------------------------------------------------------------------
u0    RAID-1    OK             -       -       -       298.013   Ri     ON     
u1    RAID-5    OK             -       -       64K     2793.94   Ri     ON     

VPort Status         Unit Size      Type  Phy Encl-Slot    Model
------------------------------------------------------------------------------
p0    OK             u0   298.09 GB SATA  0   -            ST3320613AS         
p1    OK             u0   298.09 GB SATA  1   -            ST3320613AS         
p2    OK             u1   931.51 GB SATA  2   -            Hitachi HDS721010CL 
p3    OK             u1   931.51 GB SATA  3   -            Hitachi HDS721010CL 
p4    OK             u1   931.51 GB SATA  4   -            Hitachi HDS721010CL 
p5    OK             u1   931.51 GB SATA  5   -            Hitachi HDS721010CL 

กลุ่มแรกแสดงการตั้งค่า RAID ที่ใช้อยู่ กลุ่มที่สองแสดงให้เห็นว่าไดรฟ์ใดติดอยู่กับเซิร์ฟเวอร์ในปัจจุบัน

ในกรณีพิเศษนี้ฉันมีการกำหนดค่า RAID สองแบบ:

  • u0-> ไดรฟ์p0และp1เป็นทั้งไดรฟ์ 300 GB โดยผู้ผลิตรายเดียวกันตั้งค่าให้ใช้ RAID-1 (มิร์เรอร์ที่แน่นอนของกันและกัน)
  • u1-> ฉันมีการตั้งค่าไดรฟ์ฮิตาชิ 1TB สี่ตัว ( p2โดยใช้p5) โดยใช้ RAID-5 ("หนึ่งในไดรฟ์" ถูกใช้เพื่อให้แน่ใจว่าข้อมูลจะถูกเก็บรักษาไว้หากไดรฟ์ตัวใดตัวหนึ่งล้มเหลว) นี่หมายถึง (อย่างที่เราเห็นจากด้านบน) u1มี2793.94 GBข้อมูลที่ใช้งานได้ 3TB (หรือค่อนข้างจะ)

ข้อมูลเพิ่มเติมเกี่ยวกับสถานะและสุขภาพของไดรฟ์สามารถพบได้โดยการทำงานหรือtw_cli /c2/u0 show tw_cli /c2/p0 showรายละเอียดเพิ่มเติมและคำสั่งสามารถพบได้ในหน้าคน

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