Tôi có thể phát hiện sự xâm nhập RAID phần cứng từ bên trong Linux không?


15

Khi tôi ở trong Linux, tôi có thể lấy thông tin sau lsblk(các ổ đĩa không liên quan bị xóa khỏi đầu ra):

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

Khi tôi tự rút các ổ đĩa ra khỏi máy chủ, tôi có thể nói rằng tôi đang sử dụng các ổ đĩa sau:

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

Vì có nhiều bộ nhớ vật lý trong máy chủ hơn không gian có sẵn trong Linux, điều này có nghĩa là tôi rõ ràng đang sử dụng một số dạng hệ thống RAID. Với một chút toán học, tôi thường có thể tìm ra loại hệ thống RAID nào đang được sử dụng.

Có cách nào để tôi phát hiện xem tôi có đang sử dụng RAID phần cứng từ bên trong Linux hay không và tìm ra tất cả thông tin về nó (chẳng hạn như loại RAID, ổ đĩa có sẵn) mà không cần tắt máy chủ, rút ​​vật lý ra khỏi ổ đĩa, và đọc nhãn của họ?

Thông tin này có thể được thu thập từ bên trong Linux, hay là điểm của RAID phần cứng để làm cho hệ thống cơ bản "vô hình" với hệ điều hành?


Nó phụ thuộc hoàn toàn vào bộ điều khiển RAID bạn đang sử dụng và nó hỗ trợ gì trong linux. Nếu bạn cung cấp thông tin về bộ điều khiển của bạn, bạn có thể tìm thấy sự giúp đỡ ở đây. Bạn cũng có thể thực hiện tìm kiếm trên web cho "các lệnh model # linux" nếu bạn không nhận được thông tin bạn cần tại đây.
Gene

@Gene Thật không may. Một lần nữa, tôi đã hy vọng có một giải pháp không yêu cầu tra cứu số mô hình cụ thể, nhưng có thể được sử dụng bất kể bạn đang sử dụng phần cứng nào.
IQAndreas

Phần cứng khác nhau làm RAID khác nhau và có trình điều khiển khác nhau. Trong rất nhiều trường hợp, bạn không cần phải tắt nguồn hệ thống của mình, nhưng ít nhất bạn cần biết bộ điều khiển mô hình hoặc chipset nào bạn có để bạn có thể tìm các lệnh truy vấn bộ điều khiển từ hệ điều hành.
Gene

1
Bạn thường có thể tìm thấy thông tin về bộ điều khiển hoặc chipset thông qua dmesg, dmidecode, lspci và các tiện ích tương tự khác. Nếu nó được tích hợp RAID trên bo mạch chủ, biết kiểu dáng và kiểu dáng của bo mạch chủ sẽ giúp bạn đạt được 99%.
Gene

1
adds an answer explaining how to figure out which RAID controller is being used from inside of Linux - @IQAndreas nhưng đó không phải là câu hỏi. Câu trả lời trên serverfault nên được trả lời câu hỏi đang được hỏi. Nếu bạn có một câu hỏi khác, bạn nên chỉnh sửa câu hỏi của bạn. Câu hỏi đó gần như chắc chắn có thể được trả lời cho chính bạn sau vài phút trên Google. Dù sao câu trả lời cho điều đó là lshw.
Zoredache

Câu trả lời:


17

Cách lấy thông tin RAID sẽ phụ thuộc hoàn toàn vào bộ điều khiển RAID bạn đang sử dụng. Thông thường, các nhà sản xuất sẽ có các công cụ có thể được tải xuống từ trang web của họ, có thể được sử dụng để truy vấn bộ điều khiển RAID và lấy thông tin này.

Để tìm bộ điều khiển RAID mà bạn đang sử dụng, hãy thử một trong các lệnh sau:

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)

Ở đây, thông tin mà chúng tôi đang tìm kiếm là "3ware Inc 9690SA SAS / SATA-II RAID PCIe" .

lsscsi

Lệnh không có sẵn trên Debian và Ubuntu, nhưng nhanh chóng sudo apt-get install lsscsisẽ tìm nạp nó từ repos. Lưu ý, nếu bạn không sử dụng bộ điều khiển RAID, nhà sản xuất và số kiểu ổ cứng của bạn sẽ hiển thị ở đây.

# 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 

Ở đây chúng tôi thấy nhà sản xuất là "AMCC" và số kiểu của thẻ RAID là "9690SA-8I" . Một tìm kiếm nhanh của Google cho thấy thẻ này còn được gọi là "AMCC 3Ware 9690SA-8I" .

lshw

Phương pháp thứ ba (cung cấp khá nhiều dữ liệu đầu ra) là sử dụng lshwlệnh. Chạy lshw -class diskvới quyền root để chỉ hiển thị chi tiết về ổ cứng (bao gồm thông tin RAID).

Tìm các công cụ điều khiển RAID

Bây giờ chúng tôi có nhà sản xuất và số kiểu, có thể tìm thấy các công cụ trên trang web của họ hoặc ít nhất có thể Google chi tiết về cách tìm và sử dụng các công cụ cho bộ điều khiển cụ thể đó.

Nếu nhà sản xuất xuất hiện trong danh sách này, hãy xem các câu trả lời sau để biết thêm chi tiết về cách nhận thông tin RAID cho thẻ của bạn:


5

Chạy một cái gì đó như lspci -knn | grep 'RAID bus controller'.

Sử dụng đầu ra đó, Google (ví dụ) cho LSI Logic / Symbios Logic MegaRAID SAS 2208.

Tìm nó sử dụng storclitiện ích để thẩm vấn bộ điều khiển RAID.

Tải về và cài đặt nó.

storcli64 show cung cấp cho bạn mô hình của bộ điều khiển cụ thể và chỉ mục bộ điều khiển, số lượng nhóm ổ đĩa và ổ đĩa ảo.

storcli64 /c0/d0 showcho bạn thấy bộ điều khiển đầu tiên, nhóm ổ đĩa đầu tiên. Cho bạn biết cấp độ đột kích, bao gồm cả làm tổ.

storcli64 /c0/eall/sall show all hiển thị cho bạn tất cả các thông tin trên tất cả các đĩa.

Dữ liệu tham khảo thêm cho các lệnh có thể được tìm thấy ở đây:

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

Nên là tất cả những gì bạn phải làm. Chỉ cần sử dụng phần hướng nội phần cứng thông thường trong Linux, sau đó là Google, sau đó tải xuống và cài đặt các tiện ích đi kèm với nó.

Đề xuất và ý kiến ​​của Gene là hoàn toàn đúng chỗ.

Câu trả lời này hoàn toàn cụ thể cho đầu ra bạn nhận được từ lspcilệnh và khả năng tìm kiếm Google của bạn để xác định nhà sản xuất và lấy công cụ dòng lệnh chính xác.

Nhưng nó cho thấy rằng bạn có thể lấy tất cả những thứ này từ máy chủ, trên một dòng lệnh, mà không cần tạm dừng máy, mở vỏ và kéo ổ đĩa, điều mà tôi hy vọng là hữu ích.


Vì câu trả lời cho câu hỏi của tôi sẽ là phần cứng cụ thể, những gì tôi đã làm là thêm một câu trả lời wiki cộng đồng về cách tìm ra bộ điều khiển RAID nào bạn đang sử dụng . Câu trả lời này sau đó liên kết đến câu trả lời (bao gồm của bạn) cung cấp chi tiết cho các bộ điều khiển hoặc nhà sản xuất cụ thể.
IQAndreas

Nếu bạn muốn cập nhật định dạng câu trả lời của mình để phản ánh điều này, nó sẽ rất hay, nhưng không thực sự cần thiết.
IQAndreas

2

Đây không phải là câu trả lời phù hợp với một kích thước và không cung cấp cho bạn tất cả thông tin bạn cần, nhưng trên một bộ điều khiển RAID phần cứng Adaptec mà chúng tôi đã sử dụng, nó đã cấp một số quyền truy cập vào các ổ đĩa thông qua các thiết bị / dev đặc biệt / sg1 / dev / sg2, v.v. Chúng tôi có thể chạy smartctl -a / dev / sg1 để có nhiều thông tin về ổ đĩa vật lý đó bao gồm nhà sản xuất, số kiểu, giao diện, số sê-ri, kích thước và dữ liệu khác.

Theo như tìm hiểu về bộ điều khiển nào đang được sử dụng, tôi đồng ý với nhận xét của Gene về dmidecode, dmesg và lspci - đó cũng là những bộ điều khiển của tôi để thử trước.


1

Để tạo hồ sơ lưu trữ, tôi sẽ làm như sau trước khi chạy lspcihoặc tải xuống bất cứ thứ gì.

# 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

3 phần mềm

Điều này đã được thử nghiệm trên các bộ điều khiển RAID sau: 9690SA-8I

Vui lòng cho tôi biết trong các nhận xét nếu nó hoạt động cho bộ điều khiển cụ thể của bạn hoặc nếu hướng dẫn cần cập nhật cho mô hình của bạn.

Đang tải xuống

Đầu tiên, bạn cần tải về công cụ tw_cli. Điều này có thể được tìm thấy trên trang web Avago Technologies *:

* Đừng lo lắng, đây không phải là trang web của bên thứ ba; 3ware đã được AMCC mua, và sau đó được bán cho Tập đoàn LSI, sau này trở thành một phần của Avago [ nguồn ]. Để sao lưu điều này, lưu ý rằng 3ware.com chuyển hướng đến trang có liên quan trên avagotech.com .

Nhập tw_clivào thanh tìm kiếm, sau đó điều hướng xung quanh cho đến khi bạn tìm thấy bản tải xuống có tên CLI Linux - from the 10.2.2.1/9.5.5.1 code sets(số phiên bản mới nhất có thể khác với những gì được liệt kê ở đây)

Giải nén tệp zip và trong x86hoặc x86_64bạn sẽ tìm thấy tw_clitệp nhị phân mà bạn cần. Lưu nhị phân này vào máy chủ hoặc máy tính của bạn.

Chạy tw_cli

LƯU Ý: (1) Tiện ích dòng lệnh có thể cần chạy dưới quyền root. (2) Chạy nó như bất kỳ nhị phân nào khác bằng cách thêm nó vào đường dẫn hoặc bằng cách chạy trực tiếp từ thư mục hiện tại với ./tw_cli.

Trước tiên, hãy chạy tw_cli showđể liệt kê bộ điều khiển RAID nào có sẵn trên hệ thống của bạn:

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

Ở đây chúng ta có thể thấy có một bộ điều khiển được đính kèm, với id của c2(hãy nhớ id này!), Có 6 ổ đĩa vật lý kèm theo. Để biết thêm chi tiết về ổ đĩa nào được gắn vào thiết bị, hãy chạy tw_cli /c2 show(thay thế /c2bằng ID của bộ điều khiển của bạn):

# 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 

Nhóm đầu tiên cho thấy các thiết lập RAID đang được sử dụng. Nhóm thứ hai cho thấy các ổ đĩa hiện đang được gắn vào máy chủ.

Trong trường hợp cụ thể này, tôi có hai cấu hình RAID:

  • u0-> Ổ đĩa p0p1cả hai ổ đĩa 300 GB của cùng một nhà sản xuất, được thiết lập để sử dụng RAID-1 (gương chính xác của nhau)
  • u1-> Tôi có bốn ổ đĩa 1TB ( p2thông qua p5) được thiết lập bằng RAID-5 ("một trong các ổ đĩa" được sử dụng để đảm bảo dữ liệu được bảo quản nếu bất kỳ một trong các ổ đĩa khác bị hỏng). Điều này có nghĩa (như chúng ta có thể thấy từ đầu), u1có 3TB (hoặc, đúng hơn là 2793.94 GB) dữ liệu có thể sử dụng.

Thậm chí nhiều thông tin về trạng thái và sức khỏe của các ổ đĩa có thể được tìm thấy bằng cách chạy tw_cli /c2/u0 showhoặc tw_cli /c2/p0 show. Thêm chi tiết và lệnh có thể được tìm thấy trong các trang man .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.