Trình quản lý lưu trữ ma trận Intel vs RAID phần mềm Linux


28

Chipset tôi đang sử dụng hỗ trợ công nghệ Intel RSTe. Điều đó có nghĩa là tôi có hai tùy chọn để thiết lập RAID:

  • RAID phần mềm linux thông thường, sử dụng mdadmlệnh.
  • RSTe (bằng BIOS hoặc, một lần nữa, sử dụng mdadmlệnh với -e imsmswitch).

Cho rằng mdadmcó thể được sử dụng cho cả hai, tôi không thể hiểu sự khác biệt giữa hai.

  • RSTe mang đến cho tôi những gì so với RAID phần mềm Linux thông thường?
  • Khi ở chế độ RSTe, là đường dẫn I / O RAID thực tế (nghĩa là phản chiếu và phân loại) được xử lý bởi Linux mdhoặc bởi BIOS.
  • Cụ thể, khi tôi sử dụng "RAID ma trận" (tức là RAID bao gồm các phân vùng cụ thể chứ không phải toàn bộ đĩa), tôi có cần phải cài đặt thủ công grub trên cả MBR không?

Câu trả lời:


46

Tổng quan

Có ba loại RAID phổ biến hiện có:

  • Software RAID: Điều này có nghĩa là BIOS của bạn và các hệ điều hành khác nghĩ rằng bạn thực sự có hai đĩa riêng biệt, nhưng hoàn toàn ở cấp độ phần mềm, hệ điều hành của bạn sử dụng một số định dạng trên đĩa dành riêng cho hệ điều hành cho RAID (phản chiếu, tách, bit chẵn lẻ, bất cứ điều gì) . Tất cả quá trình xử lý được thực hiện bởi CPU mà không hỗ trợ phần cứng.

  • BIOS RAID: Còn được gọi là "Fake RAID" hoặc "Host RAID", điều này có nghĩa là phần sụn bo mạch chủ của bạn (cụ thể hơn là bộ điều khiển SATA / SAS) có hỗ trợ rõ ràng để nhận dạng thiết bị RAID. Ở cấp độ thiết bị logic ( lun), nhiều ổ đĩa cứng của bạn sẽ xuất hiện dưới dạng một ổ đĩa duy nhất cho hệ điều hành. Về cơ bản, đây là bộ điều khiển SATA / SAS nói rằng "Tôi thực sự chỉ có một ổ cứng. Chà, thực ra là hai, nhưng shhhh, nó chỉ là một, tin tôi đi". Nói cách khác, hệ điều hành có thể cho biếtđó là một thiết lập RAID, nhưng hệ điều hành * không chịu trách nhiệm cho định dạng trên đĩa của tính chẵn lẻ / phân loại RAID / v.v. Tuy nhiên, ngay cả trong chế độ này, CPU thực hiện tất cả các tính toán cho các bit chẵn lẻ và phân chia. Bộ điều khiển bo mạch chủ, BIOS và SATA có đủ logic để "kết hợp" vật lý các thiết bị và xác định định dạng trên đĩa cho RAID. Nhưng họ thiếu bộ xử lý chuyên dụng để thực hiện các tính toán và phụ thuộc vào phần mềm trong hệ điều hành để yêu cầu CPU thực hiện chúng, đó là lý do tại sao bạn vẫn phải nói với Linux về BIOS BIOS của mình. (Intel Matrix / RST là một loại BIOS BIOS).

  • Hardware RAID: Đây là nơi bạn có một con chip chuyên dụng với mục đích duy nhất là xử lý dữ liệu cần thiết cho RAID. Con chip có thể khá mạnh; Một số bộ điều khiển RAID phần cứng thực sự có chip lõi kép, giống CPU trên bo mạch, mặc dù nó được tối ưu hóa đặc biệt để chạy một hệ điều hành nhúng RẤT nhanh khi thực hiện các phép tính RAID, chẳng hạn như các bit chẵn lẻ cho RAID-5 hoặc tước cho RAID -0. Các đĩa cứng được kết nối vật lý vào thẻ RAID, cung cấp bộ điều khiển SATA / SAS, thường là bộ đệm đọc và ghi trong DRAM hoặc Flash, hàng đợi lệnh gốc và bộ xử lý trung tâm trên máy tính để thực hiện nhiều phép tính toán học hơn. Các chip phần cứng này có giá từ 150 đô la ở mức đầu vào lên đến hàng nghìn cho các backplanes RAID của trung tâm dữ liệu công nghiệp.

Khả năng tương thích

Nói chung, mỗi loại RAID được "gắn" với một số khía cạnh cụ thể, khi khía cạnh đó thay đổi, bạn gặp phải các vấn đề tương thích.

  • RAID phần mềm được gắn với hệ điều hành xác định định dạng RAID. Đôi khi, giữa hai phiên bản khác nhau của cùng một hệ điều hành, định dạng RAID sẽ bị hỏng, dẫn đến không tương thích. Mặc dù nó là khái niệm có thể cho bất kỳ định dạng phần mềm RAID được hỗ trợ bởi bất kỳ hệ điều hành khác, vì nó chỉ là phần mềm , trong thực tế, hầu hết các hệ điều hành hiện tại định dạng RAID không tương thích mà duy nhất mà hệ điều hành có thể nhận ra. Tuy nhiên, khả năng tương thích được biết đến rộng rãi nhất là các định dạng RAID thường được sử dụng bởi nhân Linux ( mdnhư bạn đang thảo luận trong OP), cũng có thể nhận ra RAID phần mềm của Windows, được gọi là Dynamic Disks.

  • BIOS RAID được gắn với bo mạch chủ bạn sở hữu. Có thể di chuyển các ổ đĩa được định dạng bằng một định dạng BIOS BIOS cụ thể sang một bo mạch chủ khác với giải pháp RAID BIOS tương tự; ví dụ: Intel RST sang một hệ thống khác có RST. Nhưng bạn sẽ cần nghiên cứu kỹ điều này trước khi bạn thực hiện một động thái, để chắc chắn rằng nó sẽ tương thích nếu bạn quan tâm đến việc nó có tương thích hay không.

  • RAID phần cứng được gắn với bộ điều khiển phần cứng cụ thể đó hoặc một loạt các bộ điều khiển phần cứng được nhà sản xuất tuyên bố rõ ràng là tương thích. Một số nhà cung cấp duy trì định dạng đĩa RAID phần cứng rất phù hợp được hỗ trợ bởi nhiều thế hệ bộ điều khiển; những người khác thay đổi định dạng thường xuyên hơn. Một lần nữa, bạn sẽ phải nghiên cứu nó trên cơ sở từng trường hợp.

Hiệu suất

Hiệu suất phần lớn phụ thuộc vào cách bạn định cấu hình các tham số cơ bản của mảng RAID và ít hơn vào giải pháp cụ thể. Nói chung, bộ điều khiển RAID phần cứng có "trần" cao nhất cho hiệu năng tối đa; họ cũng không đánh thuế CPU của bạn nhiều như các giải pháp khác. Nhưng nếu bạn chọn loại RAID sai cho khối lượng công việc của bạn hoặc kích thước sọc sai hoặc cách tiếp cận bộ đệm sai, bộ điều khiển RAID phần cứng cũng có thể cực kỳ chậm, chậm hơn một trong các ổ đĩa chạy ở chế độ không phải RAID. Các giải pháp khác cũng vậy, cũng có thể cực kỳ chậm.

  • RAID phần mềm phù hợp nhất cho cấu hình RAID-1, vì phản chiếu là một bản sao đơn giản của cùng một dữ liệu cho hai ổ đĩa và không có bit chẵn lẻ để tính toán. RAID-5 trên phần mềm RAID thật kinh khủng.

  • Hiệu năng của BIOS RAID thường tương đương với RAID phần mềm, nhưng một số bộ điều khiển và định dạng đĩa BIOS nhất định đã được biết là có lỗi hoặc hoạt động kém. Nói chung, nếu bạn phải chọn giữa RAID phần mềm và RAID BIOS, thì phiên bản trước hứa hẹn hơn một chút về hiệu năng, đặc biệt nếu bạn đang chạy một bản phân phối Linux gần đây.

  • Hiệu suất RAID phần cứng có thể cực kỳ nhanh do khả năng xử lý được tối ưu hóa của bộ xử lý bộ điều khiển RAID, như tôi đã nói được thiết kế cho thông lượng cao và thực sự có thể là một con chip đa lõi - vì vậy đây là một vấn đề nghiêm trọng. Nhược điểm chính là bạn mất tính linh hoạt - bạn không thể đặt ổ đĩa vào một máy tính khác mà không có bộ điều khiển RAID Phần cứng - và chi phí. RAID phần cứng là cấp độ tốt nhất để sử dụng RAID-5 hoặc RAID-6, đặc biệt nếu bạn có nhiều đĩa (4 hoặc nhiều hơn).

Nhìn chung

Mặc dù BIOS RAID được Linux hỗ trợ , tôi không thể khuyên bạn nên sử dụng nó.

Bây giờ để trả lời trực tiếp câu hỏi của bạn, sau khi tôi đưa cho bạn câu trả lời dài dòng:

RSTe mang đến cho tôi những gì so với RAID phần mềm Linux thông thường?

Xem các so sánh ở trên giữa RAID phần mềm và RAID BIOS. "RSTe" là một phiên bản của BIOS RAID; Linux mdRAID mà không có phiên bản RAID -e imsmphần mềm.

Khi ở chế độ RSTe, là đường dẫn I / O RAID thực tế (nghĩa là phản chiếu và phân loại) được xử lý bởi md Linux hoặc bởi BIOS.

Nếu bạn có nghĩa là đường dẫn dữ liệu, nó luôn được CPU xử lý (và do đó, hệ điều hành) trừ khi bạn có thẻ RAID phần cứng chuyên dụng. Tôi không nghĩ rằng chúng xuất hiện trên bất kỳ bo mạch chủ nào, mặc dù một số chipset máy chủ cao cấp ngoài kia có thể làm tôi ngạc nhiên ...

Cụ thể, khi tôi sử dụng "RAID ma trận" (tức là RAID bao gồm các phân vùng cụ thể chứ không phải toàn bộ đĩa), tôi có cần phải cài đặt thủ công grub trên cả MBR không?

Thực tế, bạn không bao giờ cần cài đặt GRUB trên cả MBR. Hãy để nó từng trường hợp:

  • RAID phần mềm: Chỉ cần chọn một đĩa tùy ý để cài đặt GRUB và đặt nó theo thứ tự BIOS để nó khởi động trước. Hãy nhớ rằng, bạn có thể phản chiếu các phân vùng riêng lẻ nếu bạn muốn, vì vậy các đĩa không phải giống nhau một chút trong RAID phần mềm. Một người có thể có MBR với bộ tải khởi động và người ta không thể có gì trong MBR.

  • BIOS RAID: BIOS sẽ cho bạn biết đó là một "đĩa" (thực tế nó sẽ gọi nó là gì, một mảng RAID), vì vậy bạn không được chọn nơi cài đặt GRUB. Khi bạn cài đặt Linux cho cái này, MBR (bao gồm bộ tải khởi động) và mọi khu vực khác của cả hai đĩa sẽ được sao chép giữa hai đĩa. Vì vậy, không giống như RAID phần mềm, BIOS RAID thực thi rằng cả hai đĩa phải được chặn cho khối giống hệt nhau, vì bạn không thể tách chúng thành hai thiết bị logic; bộ điều khiển đĩa cho biết chúng là MỘT thiết bị logic chứ không phải hai. Vì vậy, bạn không thể chỉ nói "Tôi muốn ghi một số dữ liệu vào ổ 0 nhưng không phải ổ 1". Không thể. Nhưng nó hoàn toàn có thể với RAID phần mềm.

  • RAID phần cứng: BIOS sẽ cho bạn biết rằng đó là một "đĩa" và theo như BIOS có liên quan, thậm chí còn không biết rằng bạn đang xử lý nhiều đĩa. Bộ điều khiển RAID tóm tắt hoàn toàn mọi chi tiết của RAID khỏi hệ điều hành và BIOS, ngoại trừ việc bạn có thể định cấu hình một số bộ điều khiển RAID phần cứng bằng cách sử dụng một số loại giao thức tùy chỉnh trong hệ điều hành. Nhưng các thiết bị hoàn toàn không thể tách rời khỏi lớp phần mềm, tương tự như BIOS RAID.

Chỉnh sửa: Cập nhật để có thêm câu trả lời cho câu hỏi

Tôi vẫn không hiểu một vài điều. Đầu tiên, về RAID BIOS: Tôi có thể xây dựng nó bằng mdadm, vì vậy Linux không thực sự che giấu các đĩa bên dưới khỏi tôi.

Thật kỳ lạ và khó giải thích. Về cơ bản, các đĩa xuất hiện như một ở một lớp nhất định và hai ở các lớp khác. Nhưng tôi cá rằng với BIOS RAID, mỗi đĩa sẽ không có nút thiết bị riêng, ví dụ /dev/sda/dev/sdb. Nếu đúng như vậy, tốt, BIOS BIOS của bạn khác với những gì tôi đã thấy.

về grub và MBR: nếu RAID bao gồm các phân vùng chứ không phải đĩa, thì tôi vẫn có thể thấy các đĩa bên dưới. MBR không thuộc RAID và do đó bạn cần cài đặt bộ tải khởi động hai lần để có thể khởi động trong trường hợp hỏng đĩa. Điều này có đúng không?

Việc cài đặt một bản sao khác không gây hại gì, nhưng trong trường hợp hỏng đĩa, việc khởi động sẽ là điều ít quan tâm nhất của bạn. Tóm lại, hãy tiếp tục và làm điều đó nếu bạn muốn, nhưng đó không phải là điều quan trọng nhất. Cài đặt grub từ đĩa CD trực tiếp vào ổ cứng rất dễ dàng.

Các đĩa trong RAID (đặc biệt là nếu chúng là cùng một kiểu dáng và mẫu mã, được sản xuất tại cùng một nhà máy và hoạt động ngay cạnh nhau ở cùng nhiệt độ) có thể sẽ thất bại liên tiếp, hết lần này đến lần khác. Vì vậy, nếu một đĩa bị lỗi, có lẽ không ổn khi chỉ nhún và đặt vào một đĩa mới và bắt đầu xây dựng lại: có một cơ hội công bằng rằng, trong quá trình xây dựng lại, đĩa cuối cùng chứa bản sao dữ liệu nhất quán sẽ tự thất bại. Tại thời điểm này, khi bạn đi xuống đĩa còn lại cuối cùng, tôi khuyên bạn nên có một chuyên gia (hoặc tự làm nếu bạn giỏi về phần cứng) loại bỏ các đĩa khỏi đĩa gốc, mua một đĩa mới có kiểu dáng / mô hình giống hệt , đặt các đĩa trong đó và đọc dữ liệu bằng đĩa mới. Điều này là tốn kém và tốn thời gian,

Vì vậy, đó là năm câu hỏi tôi đã trả lời cho bạn; nếu bạn tìm thấy bất kỳ giá trị nào trong thông tin này, vui lòng đánh dấu câu trả lời một cách thích hợp. Cảm ơn.


1
cảm ơn câu trả lời chi tiết và sâu sắc của bạn. Tôi vẫn không hiểu một vài điều. Đầu tiên, về RAID BIOS: Tôi có thể xây dựng nó bằng cách sử dụng mdadm, vì vậy Linux không thực sự che giấu các đĩa bên dưới khỏi tôi. Thứ hai, về grub và MBR: nếu RAID bao gồm các phân vùng chứ không phải đĩa, thì tôi vẫn có thể thấy các đĩa bên dưới. MBR không thuộc RAID và do đó bạn cần cài đặt bộ tải khởi động hai lần để có thể khởi động trong trường hợp hỏng đĩa. Điều này có đúng không?
Leonid99

1
Tôi có PCH 6 sê-ri và mdadm --detail-platformchỉ ra rằng Trình quản lý lưu trữ ma trận Intel là phiên bản 11.0.0.1339. Trong thực tế tôi có thể thấy các ổ đĩa cá nhân của tôi là /dev/sdc/dev/sdd. Mảng RAID1 giả của tôi là vậy /dev/md126.
Jonathon Reinhart

1
Khi nhân Linux hoạt động và chạy, mã firmware / BIOS không còn thực thi nữa. Vì vậy, tất cả những gì là hạt nhân chịu trách nhiệm làm? Mọi điều? Nếu đó là trường hợp, thì IMSM thực sự làm gì? Có vẻ như nó không nhiều hơn Linux với phần mềm RAID? Tôi đoán tôi đang hỏi, chính xác thì BIOS / Chipset làm gì?
Jonathon Reinhart

Vâng, nó dường như là một hybrid: Khi máy tính khởi động lần đầu tiên (khi BIOS vẫn còn hoạt động), BIOS cung cấp logic RAID mềm. Khi hệ điều hành khởi động, trình điều khiển của nó chịu trách nhiệm duy trì mảng RAID. 1 , 2
Jonathon Reinhart

2

Câu trả lời của Allquixotic quá dài:

  1. RSTe mang đến cho tôi những gì so với RAID phần mềm Linux thông thường?

Hỗ trợ khởi động và một bộ tính năng hơi khác nhau. Tại trung tâm của nó, nó là một định dạng dữ liệu. - Bạn thậm chí có thể sử dụng nó mà không cần ROM RST Option của Intel (khi đó bạn không có hỗ trợ khởi động đặc biệt). Những gì định dạng ngụ ý được viết trong mdadmtrang người đàn ông.

  1. Khi ở chế độ RSTe, là đường dẫn I / O RAID thực tế (nghĩa là phản chiếu và phân loại) được xử lý bởi md Linux hoặc bởi BIOS.

Bởi Linux md (tức là kernel hoàn toàn).

Điều này để lại một câu hỏi mở: Tại sao RST của Intel chỉ giới hạn ở một số chipset? Họ hoàn toàn không tham gia vào RAID. Tốt nhất là họ lưu trữ một chút, điều này cho ROM Tùy chọn từ chối chạy trên các chipset không được hỗ trợ.


Điều này tốt hơn nhiều so với câu trả lời được chấp nhận, dài, lan man, phần lớn không chính xác và không trả lời câu hỏi. (Điểm mấu chốt là RSTe sử dụng định dạng do BIOS hiểu, cho phép bạn khởi động từ RAID bị xuống cấp.)
Nemo

2

Hmmm một câu trả lời quá dài còn lại quá ngắn.

RST "đột kích" chủ yếu để sử dụng nếu bạn khởi động kép máy trạm do Intel sản xuất windows và trình điều khiển Linux và bạn có thể định cấu hình cuộc đột kích trong BIOS. Bạn định cấu hình RAID, phân vùng đĩa ảo và có thể khởi động kép với cả hai hệ điều hành hiểu được nhiều phân vùng.

mdam là cho nếu máy chủ được dành riêng cho Linux. Nó "tốt hơn" vì nếu bạn đang xây dựng lại một mảng, bạn đang thực hiện nó từ HĐH chứ không phải từ BIOS nên tốc độ xây dựng lại nhanh hơn nhiều. Với các đĩa lớn, việc xây dựng lại cuộc đột kích BIOS có thể mất vài NGÀY.

Nhưng thực tế là bạn đang lựa chọn giữa một mảnh C màu xanh lá cây hoặc một mảnh màu xanh lam C. Thực tế là phần mềm RAID về cơ bản là cuộc đột kích "mương CYA" cuối cùng.

Nếu bạn mất đĩa trong mảng RAID phần mềm, điều này cho phép bạn dừng máy chủ ngay lập tức, tạo bản sao lưu hoàn chỉnh, thay thế đĩa bị lỗi và có thể là các đĩa còn lại, sau đó tạo lại mảng hoặc cố gắng xây dựng lại. Thông thường, việc thay thế đĩa sẽ nhanh hơn sau đó xóa mọi thứ trên chúng và tạo lại mảng và sau đó khởi động từ đĩa khôi phục sao lưu sau đó khôi phục từ bản sao lưu.

Với chip mảng phần cứng, tất cả các đĩa có thể đi vào các khay trao đổi nóng và khi một lỗi, đèn đỏ bật, trên đĩa bị lỗi, bạn đẩy nó ra, thay thế nó bằng một đĩa mới, sau đó thẻ đột kích phần cứng sẽ tự động xây dựng lại mảng trong khi máy chủ vẫn đang chạy.

Trong lý thuyết, có thể làm điều này nếu bạn có các khay trao đổi nóng và một mảng phần mềm mdam Linux trong thực tế, bạn đang gặp nguy hiểm và máy chủ có thể dễ dàng không khởi động được trên đĩa còn lại.

Vấn đề khác liên quan đến LOẠI đĩa được sử dụng. Các đĩa máy trạm thông thường khi có tuổi bắt đầu phát triển các thành phần xấu được đĩa ánh xạ bên trong thành các phần dự phòng. Vấn đề là bản tóm tắt này chỉ xảy ra khi ghi - đĩa sẽ trì hoãn ánh xạ lại nếu việc đọc xảy ra trên một khu vực xấu và trên một số mô hình đĩa sẽ liên tục đọc lại khu vực xấu hoặc thất bại, so sánh kết quả mỗi lần cho đến khi nó quyết định có dữ liệu tốt nhất có thể nhận được từ khu vực đó trước khi ánh xạ lại. Quá trình này có thể mất một phút hoặc lâu hơn và trong thời gian đó bạn có 1 đĩa trong mảng bỏ qua mã lệnh để phần mềm đột kích Phần mềm sẽ gặp sự cố và đánh dấu mảng là xuống cấp. Khi khởi động lại, bây giờ bạn có 2 đĩa có cùng một khu vực có thể có dữ liệu khác nhau giữa các đĩa, vì vậy bây giờ trình quản lý RAID phần mềm không biết cái nào là "tốt", đĩa không có lỗi hoặc đĩa đã ánh xạ lại một khu vực có dữ liệu gần đúng nhất với dữ liệu mà nó có. Western Digital tạo ra các ổ đĩa "Red" được cho là được sử dụng trong các mảng RAID phần mềm không làm được điều này, họ chỉ bị lỗi đọc ngay lập tức khi phát hiện ra một khu vực xấu và sắp xếp lại để bộ quản lý mảng có thể lấy dữ liệu từ khu vực đó trên ổ đĩa tốt và ghi nó vào ổ đĩa với khu vực thất bại. Không cần phải nói họ tính phí thêm cho các đĩa này. họ chỉ thất bại khi đọc một khu vực ngay lập tức khi họ phát hiện ra một khu vực xấu và sắp xếp lại nó để trình quản lý mảng có thể lấy dữ liệu từ khu vực đó trên ổ đĩa tốt và ghi nó vào ổ đĩa với khu vực bị lỗi. Không cần phải nói họ tính phí thêm cho các đĩa này. họ chỉ thất bại khi đọc một khu vực ngay lập tức khi họ phát hiện ra một khu vực xấu và sắp xếp lại nó để trình quản lý mảng có thể lấy dữ liệu từ khu vực đó trên ổ đĩa tốt và ghi nó vào ổ đĩa với khu vực bị lỗi. Không cần phải nói họ tính phí thêm cho các đĩa này.

Tóm lại, không sử dụng cuộc đột kích phần mềm cho một máy chủ không thể chịu đựng được một số thời gian chết nếu đĩa bị lỗi. Nó chủ yếu dành cho các máy trạm nơi mọi người không thường xuyên sao lưu và cho các máy chủ SOHO nhỏ được sao lưu và có thể chịu đựng được một ngày thời gian chết nếu đĩa bị hỏng.

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.