Ưu và nhược điểm của phần mềm Parity-RAID (ví dụ RAID5)


8

Gần đây tôi đã được thông báo về một số vấn đề liên quan đến Parity-RAID mà không có bộ đệm không biến động. Các bộ điều khiển CT cao cấp hơn có bộ đệm chạy bằng pin để hoàn thành các thao tác ghi trong trường hợp mất điện. Bây giờ, một số người nói rằng một thất bại như vậy, có lẽ kết hợp với một mảng xuống cấp, có thể giết chết toàn bộ hệ thống tập tin của bạn. Những người khác cho rằng những vấn đề đó đã lỗi thời và / hoặc quan niệm sai lầm .

Thật không may, không ai đưa ra các tài liệu tham khảo cứng và cả việc tìm kiếm md RAID và bộ đệm không biến động , cũng như bộ nhớ đệm bitmap đưa ra câu trả lời đáng tin cậy về việc md-RAID5 có được khuyến khích hay không.

Bất kỳ thông tin về điều đó?


1
Linux sợ có một tạp chí, ít nhất là an toàn trong trường hợp dừng đột ngột (ví dụ như sự cố hệ thống hoặc tất cả các ổ đĩa bị tắt nguồn cùng một lúc) hoặc trong trường hợp RAID-1. Tôi không biết liệu RAID- [56] có đối phó với tất cả các dạng mất điện không.
Gilles 'SO- ngừng trở nên xấu xa'

2
@Gilles, nó không có tạp chí, nhưng nó có một bitmap ý định viết tùy chọn. Điều này chỉ tăng tốc quá trình đồng bộ hóa khi hệ thống hoạt động trở lại, bởi vì nó xác định khu vực nào cần đồng bộ hóa và khu vực nào có thể được bỏ qua.
psusi

@psusi Tôi đã quay lại và kiểm tra những gì tôi đã nghiên cứu vài tháng trước . Theo như tôi hiểu, bitmap có mục đích viết (không phải là tạp chí, lỗi của tôi) không chỉ tăng tốc độ đồng bộ hóa, nó chỉ ra thành phần nào có khối bẩn, do đó đủ để đảm bảo tính nhất quán của khối trên RAID-1 nhưng không trên RAID-5 (nơi bạn có thể không có đủ đĩa ở cả trạng thái cũ và trạng thái mới để khôi phục một trong hai trạng thái).
Gilles 'SO- ngừng trở nên xấu xa'

1
@Gilles Tôi không chắc ý của bạn là "tính nhất quán bock". Bạn dường như bị treo lên trên toàn bộ dải ở trạng thái trước khi bắt đầu viết hoặc trạng thái sau. Điều này không bao giờ được đảm bảo và hoàn toàn có khả năng không xảy ra nếu mất điện ở giữa ghi. Tùy thuộc vào hệ thống tập tin để xử lý việc này giống như trên một đĩa đơn; sử dụng tạp chí.
psusi

Câu trả lời:


4

Tôi cho rằng RAID phần mềm của Linux đáng tin cậy như thẻ RAID phần cứng mà không cần BBU và bật bộ nhớ đệm ghi lại. Rốt cuộc, dữ liệu không được cam kết trong hệ thống RAID phần mềm nằm trong bộ đệm bộ đệm của kernel, đây là một dạng bộ nhớ đệm ghi lại mà không cần sao lưu pin.

Vì mọi thẻ RAID-5 phần cứng tôi từng sử dụng đều cho phép bạn kích hoạt bộ nhớ đệm ghi lại mà không cần BBU, tôi hy vọng phần mềm RAID-5 có thể hoạt động tốt cho những người có mức độ chấp nhận rủi ro nhất định.

ObWarStory:

Điều đó đã được nói, cá nhân tôi đã trải qua mất dữ liệu nghiêm trọng do không có BBU được cài đặt trên thẻ RAID-5 mặc dù bộ nhớ đệm ghi lại được kích hoạt. (Cũng không có UPS. Đừng la mắng tôi, không phải cuộc gọi của tôi.)

Ông chủ của tôi đã gọi cho tôi trong hoảng loạn khi tôi đang đi nghỉ vì một trong những hệ thống sản xuất của chúng tôi sẽ không hoạt động trở lại sau khi mất điện. Anh sẽ hết thứ để thử. Tôi phải tấp vào lề đường, rút ​​laptop, bật WiFi tether trên điện thoại, sshvào hệ thống bị mắc kẹt và sửa nó, trong khi gia đình tôi ngồi đó bên tôi cho đến khi tôi hoàn thành Khôi phục một bảng cơ sở dữ liệu roached từ bản sao lưu. (Chúng tôi đã mất khoảng một dặm để mất việc tiếp nhận tế bào vào thời điểm đó.)

Vậy hãy nói cho tôi biết: bạn sẽ trả bao nhiêu cho một thẻ RAID + BBU bây giờ ?


Phải - Tôi đã xóa bình luận của tôi. Nhưng một cuộc đột kích không có BBU nên viết qua, phải không? Đây ít nhất là những gì bộ điều khiển PERC làm khi pin học và xuống dưới ngưỡng.
Nils

Có, không có BBU hoặc BBU chết, thẻ RAID vẫn ghi dữ liệu. Những gì nó không làm là nhớ những gì trong bộ đệm ghi khi mất điện cho máy chủ. Vì RAID phụ thuộc vào tính nhất quán giữa các bit dự phòng, nên nó bị lẫn lộn khi nó không nhất quán. Do đó, sự cố mất điện trong khi RAID ghi có nguy cơ làm hỏng một cái gì đó trên RAID, bởi vì bộ điều khiển buộc phải chọn một trong hai hoặc nhiều bản sao của dữ liệu, không biết cái nào là chính xác.
Warren Young

3

Chỉ cần một thông báo cảnh báo: Các hoạt động ghi RAID-5/6 mất một thời gian CPU đáng kể trong khi mảng của bạn bị suy giảm. Nếu máy chủ của bạn đã được tải đầy đủ khi đĩa bị lỗi, nó có thể rơi vào vực thẳm không phản hồi. Vấn đề như vậy sẽ không xảy ra với bộ điều khiển RAID phần cứng. Vì vậy, tôi khuyên bạn không nên sử dụng phần mềm RAID-5/6 trên máy chủ sản xuất. Đối với máy trạm hoặc máy chủ được tải nhẹ, mặc dù vậy cũng không sao.


3

SW RAID không có chế độ thất bại - nếu máy chủ ngừng hoạt động nửa chừng thì bạn có thể bị lỗi. Bộ điều khiển RAID RAID với BBU không quá đắt và nó sẽ giữ lại các khối bẩn cho đến khi bạn có thể khởi động lại các đĩa.

BBU trên bộ đệm không đảm bảo ghi trong trường hợp mất điện (tức là nó không cấp nguồn cho các đĩa). Nó cấp nguồn cho bộ đệm trong vài ngày cho đến khi bạn có thể khởi động lại đĩa. Sau đó, bộ điều khiển sẽ xả bất kỳ bộ đệm bẩn vào đĩa.

Một số lưu ý về SW so với HW RAID-5

  1. Việc ghi trên âm lượng SW RAID-5 có thể bị chậm nếu bộ nhớ đệm ghi được sử dụng để chặn I / O, vì cuộc gọi không trở lại cho đến khi tất cả I / O hoàn thành. Bộ điều khiển RAID RAID với BBWC có thể tối ưu hóa đáng kể điều này, do đó bạn có thể thấy hiệu suất tốt hơn đáng kể.

  2. Lần cuối cùng tôi nhìn bạn không thể thực hiện I / O trực tiếp (tức là DMA không sao chép) trên ổ đĩa SW RAID. Điều này có thể đã thay đổi và thực sự chỉ liên quan đến các ứng dụng như người quản lý cơ sở dữ liệu sử dụng phân vùng thô.

  3. Bộ điều khiển RAID SAS hiện đại có thể kéo hoặc đẩy 1GB / giây hoặc nhiều dữ liệu hơn khỏi một mảng đĩa, đặc biệt nếu được định dạng với kích thước sọc lớn (giả sử là 256kb). Tôi thậm chí đã điểm chuẩn một chiếc Adaptec ASR-2200 cũ hơn ở tốc độ cho thấy nó đã bão hòa khá nhiều cả hai kênh scsi của nó ở mức 600MB / giây + trong tổng hợp (đĩa 10 x 15k) với rất ít CPU tải trên máy chủ. Tôi không chắc bạn có thể lấy nó ra khỏi phần mềm RAID-5 mà không cần tải CPU nhiều hay không, ngay cả trên một máy hiện đại. Có lẽ bạn có thể đọc nó một cách nhanh chóng.

  4. Cấu hình để khởi động một khối RAID RAID rất đơn giản - âm lượng RAID trong suốt đối với O / S.

Bộ điều khiển RAID cấp thấp từ nhà cung cấp cấp 1 như Adaptec không đắt bằng giá bán lẻ trên đường phố và có thể được mua cho đậu phộng ngoài ebay. Nhưng hãy nhớ, nếu bạn mua đồ cũ, hãy bám vào các nhà cung cấp cấp 1 và đảm bảo bạn biết mô hình và xác minh tính khả dụng của trình điều khiển từ trang web của họ.

Chỉnh sửa: Từ nhận xét của @ psusi, đảm bảo bạn không nhận được bộ điều khiển fakeraid (SW trong suốt ẩn trong trình điều khiển), nhưng hầu hết các dịch vụ từ các tên lớn hơn (Adaptec, 3Ware hoặc LSI) không phải là đơn vị giả mạo. Bất cứ điều gì có thể mất BBU sẽ không được trả tiền.


Nếu mất điện ở giữa ghi, thì bạn nhận được một dải không đồng bộ không bị hỏng. Một dải không đồng bộ chỉ có nghĩa là tính chẵn lẻ không được cập nhật, vì vậy khi mảng được gắn kết, tính chẵn lẻ phải được cập nhật. Ngoài ra, những bộ điều khiển "đột kích" có thể có đối với đậu phộng thường bị giả mạo; họ có phần mở rộng rom rom và trình điều khiển windows thực hiện cuộc đột kích trong phần mềm.
psusi

@psusi - Hầu hết các bộ điều khiển ASR-2200 mà tôi đã mua vài năm trước đều có giá dưới 100 USD và chúng là bộ điều khiển RAID pukka HW. Tôi không nghĩ rằng Adaptec thực sự tạo ra các bộ điều khiển giả mạo. Bạn hoàn toàn có thể dễ dàng nhận được bộ điều khiển RAID 4 hoặc 8 cổng Adaptec, 3Ware hoặc LSI SAS trên ebay với giá vài trăm đô la.
Mối quan tâmOfTunbridgeWells

Tôi sẽ không gọi vài trăm đô la cho một sản phẩm đã qua sử dụng từ một "đồng xu" không rõ nguồn gốc; điều đó biểu thị nhiều hơn dọc theo dòng $ 50- $ 100 cho một sản phẩm mới. Các thiết bị trong lớp đó thường được trả tiền.
psusi

@psusi - Bạn đang cố gắng bác bỏ một lập luận mà tôi chưa bao giờ đưa ra; Tôi chưa bao giờ sử dụng từ 'đồng xu' cả. Xin đừng dùng đến những lý lẽ của người rơm - những ví dụ tôi đã sử dụng không phải là những người kiểm soát giả mạo.
Mối quan tâmOfTunbridgeWells

1

Nếu bạn nhận được dữ liệu trong bộ đệm nhưng chưa có trên đĩa và mất điện, thì dữ liệu sẽ biến mất và rất có thể đĩa của bạn sẽ ở trạng thái không nhất quán. Xác suất của điều đó không cao lắm trừ khi bạn có một hệ thống liên tục viết, nhưng tôi vẫn không muốn đặt cược dữ liệu của mình vào các trò chơi xác suất.

Một thay đổi thú vị sẽ là tạo một hệ thống tập tin chính trên RAID5 / 6 nhưng đặt một tạp chí vào một ổ đĩa thông thường, do đó dữ liệu được đổ vào ổ đĩa thông thường trước tiên. Hiệu suất có thể sẽ thuộc về crapper vì bạn bị giới hạn ở tốc độ ghi của một ổ đĩa, nhưng độ tin cậy sẽ tăng lên. Vì vậy, tôi đoán trong một tình huống mà hiệu suất viết của bạn không quan trọng, nhưng đọc của bạn, điều đó có thể hoạt động tốt.

Hoặc bạn chỉ có thể chi thêm 100 đô la và nhận thẻ với BBU hoặc một UPS nhỏ và tránh tất cả các biến chứng này hoàn toàn;)


Bạn nghĩ gì về một tạp chí trên SSD nhanh?
dùng773568

Điều đó sẽ làm điều đó, nhưng tại thời điểm đó, bạn đang trả nhiều hơn một bộ điều khiển tốt ngay từ đầu;) Ngoài ra, tốc độ tăng lên, nhưng độ tin cậy giảm xuống, bởi vì hầu hết các ổ SSD đều chết rất nhanh.
Marcin

1
@Marcin bạn dựa vào cái gì? Chúng dường như không có thời gian thiết kế được chỉ định ngắn hơn và tôi đã có một thiết bị trong hơn một năm và chỉ sử dụng 5% chu kỳ viết của nó.
psusi

@MarcinWell Khi bạn nói độ tin cậy, đó là sự an toàn hay sẵn có? Tôi không ngờ rằng việc mất tạp chí của mình sẽ đe dọa dữ liệu chung. Phải không? Dù sao, tôi dự định đặt HĐH và Hoán đổi trên một ổ SSD nhỏ hơn, vì lý do tiếng ồn và tiết kiệm năng lượng. RAID có thể đi ngủ theo cách đó.
dùng773568

SSD MLC có hồ sơ theo dõi các vấn đề về độ tin cậy. Các đơn vị SLC đáng tin cậy hơn nhiều, nhưng cũng đắt hơn nhiều. Có thể tìm thấy một tờ giấy trắng về độ tin cậy của SSD tại đây
ConcernedOfTunbridgeWells

1

Linux đột kích phần mềm mdadm được thiết kế để đáng tin cậy như một cuộc đột kích phần cứng với bộ nhớ cache được hỗ trợ bằng pin. Không có vấn đề với việc mất điện đột ngột, ngoài những vấn đề cũng áp dụng cho việc mất điện đột ngột trên một đĩa.

Khi hệ thống hoạt động trở lại sau khi mất điện, mảng sẽ được đồng bộ hóa lại, điều đó có nghĩa là tính tương đương được tính toán lại để khớp với dữ liệu được ghi trước khi mất điện. Phải mất một thời gian, nhưng thực sự, không có vấn đề lớn. Thời gian đồng bộ hóa có thể được giảm đáng kể bằng cách kích hoạt bitmap ý định ghi.


1
Nghe có vẻ hơi lạc quan. Làm thế nào một giải pháp phần mềm thuần túy có thể đáng tin cậy như bộ đệm được hỗ trợ bằng pin?
dùng773568

1
Có những điều xấu có thể xảy ra với một mảng RAID không thể xảy ra với một đĩa đơn. Với một đĩa đơn, mọi khu vực đều ở trạng thái cũ hoặc mới. Ví dụ, với RAID-5 trên 4 + 1 đĩa, điều gì xảy ra nếu sector 42 của đĩa 1 và 2 ở trạng thái cũ và sector 42 của đĩa 3, 4 và 5 ở trạng thái mới? Cả trạng thái cũ lẫn trạng thái mới đều không thể phục hồi. Tôi không biết liệu Linux có biện pháp nào để tránh điều này không, và đây là vấn đề.
Gilles 'SO- ngừng trở nên xấu xa'

@ user773568 umm ... Tôi chỉ giải thích thế nào?
psusi

@Gilles bạn vừa trình bày lại trường hợp tương tự như đĩa đơn. Một số lĩnh vực ở trạng thái cũ, và một số ở trạng thái mới. Không quan trọng họ đang ở trên đĩa nào. Hệ thống tập tin xử lý việc viết không đầy đủ trong một vụ tai nạn với tạp chí.
psusi

@psusi Không: với một đĩa đơn, mỗi khu vực ở trạng thái mới hoặc trạng thái cũ. Với nhiều đĩa, nếu trình điều khiển sử dụng cách tiếp cận ngây thơ là ghi đè cung trên mỗi đĩa mà không lưu trữ thông tin ở nơi khác, thì một khu vực ở trạng thái tạm thời (trạng thái cũ trên một số đĩa, trạng thái mới trên các đĩa khác) hoàn toàn không thể được phục hồi. Lỗi có thể được phát hiện (nếu bạn may mắn: sự tương đương có thể trùng khớp một cách tình cờ), nhưng không thể sửa được.
Gilles 'SO- đừng trở nên xấu xa'

1

Đây là một blog giải thích vấn đề với RAID5 và cách ZFS RAIDZ giải quyết nó .

Điểm chính của nó là:

RAID-5 (và các lược đồ dữ liệu / chẵn lẻ khác như RAID-4, RAID-6, chẵn lẻ và chẵn lẻ theo đường chéo) không bao giờ được thực hiện theo lời hứa RAID - và không thể - do một lỗ hổng nghiêm trọng được biết đến như lỗ ghi RAID-5. Bất cứ khi nào bạn cập nhật dữ liệu trong một dải RAID, bạn cũng phải cập nhật tính chẵn lẻ, để tất cả các đĩa XOR về 0 - đó là phương trình cho phép bạn xây dựng lại dữ liệu khi đĩa bị lỗi. Vấn đề là không có cách nào để cập nhật hai hoặc nhiều đĩa nguyên bản, do đó, các sọc RAID có thể bị hỏng trong khi gặp sự cố hoặc mất điện.

RAID-Z là sơ đồ tương đương dữ liệu / tương đương như RAID-5, nhưng nó sử dụng chiều rộng sọc động. Mỗi khối là dải RAID-Z của riêng nó, bất kể kích thước khối. Điều này có nghĩa là mỗi lần ghi RAID-Z là một lần ghi đầy đủ. Điều này, khi kết hợp với ngữ nghĩa giao dịch sao chép trên ghi của ZFS, sẽ loại bỏ hoàn toàn lỗ ghi RAID.

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.