Câu hỏi Phần mềm Linux RAID mạnh mẽ cho RAID1 và các cấp độ RAID khác


Tôi có một mảng RAID5 chạy và bây giờ cũng là một raid1 mà tôi thiết lập ngày hôm qua. Kể từ khi RAID5 tính toán chẵn lẻ nó sẽ có thể bắt tham nhũng dữ liệu im lặng trên một đĩa. Tuy nhiên đối với RAID1 các đĩa chỉ là gương. Tôi càng nghĩ về nó, tôi thấy rằng RAID1 thực sự khá nguy hiểm. Chắc chắn nó sẽ giúp tôi tiết kiệm từ một thất bại đĩa nhưng nó có thể không được tốt khi nói đến bảo vệ dữ liệu trên đĩa (những người thực sự là quan trọng hơn đối với tôi).

  1. Làm thế nào để RAID phần mềm Linux thực sự lưu trữ dữ liệu kiểu RAID1 trên đĩa?
  2. Làm thế nào để nó biết trục chính đang cho dữ liệu bị hỏng (nếu đĩa (hệ thống phụ) không báo cáo bất kỳ lỗi nào)

Nếu RAID1 thực sự không cho tôi bảo vệ dữ liệu mà là bảo vệ đĩa thì có một số thủ thuật mà tôi có thể làm với mdadm để tạo ra một thiết lập "RAID5 như" hai đĩa? Ví dụ. năng lực lỏng lẻo nhưng vẫn giữ dư thừa cũng cho dữ liệu?


3
2018-04-09 09:09


gốc


RAID 5 chậm hơn RAID 1 do tính chẵn lẻ calc, và nó có thể mất dữ liệu trong khi ghi nếu mất điện cho máy. RAID 1 là đáng tin cậy hơn (mặc dù tôi đã không sử dụng RAID phần mềm vì RAID phần cứng là đáng tin cậy hơn nhiều và thực hiện tốt hơn). RAID 5 đã được bán như là "tốt hơn" bởi vì bạn nhận được nhiều hơn sử dụng trong số cùng một ổ đĩa (3 hoặc nhiều hơn), nhưng tôi nghĩ rằng bạn đang nhìn vào vấn đề này một cách sai lầm: RAID không phải là bản sao lưu.
Cảm ơn bạn đã quan tâm. Tôi hoàn toàn nhận thức được rằng cuộc đột kích không phải là một bản sao lưu. Tôi cũng biết rằng đột kích 5 chậm hơn một chút so với đột kích 1. Tuy nhiên, tôi không đồng ý với bạn rằng cuộc tấn công phần cứng đáng tin cậy hơn so với cuộc đột kích phần mềm - hãy giải thích lý do tại sao bạn nghĩ như vậy. - Waxhead
Nếu hệ điều hành đã chết, thì cấu hình RAID của bạn cũng vậy. Với RAID phần cứng, dữ liệu vẫn có thể phục hồi nếu hệ điều hành bị hư hỏng.
Đối với thiết lập Linux md, bạn chỉ cần lưu trữ UUID của hệ thống tập tin là "an toàn". Không phải là một hy sinh lớn IMHO - Waxhead


Các câu trả lời:


Tập trung vào các câu hỏi thực tế ...

Ngay cả RAID 5 cũng không thể sửa lỗi thối bit, nhưng nó có thể phát hiện nó trong quá trình quét dữ liệu. Mặc dù nó sẽ có thể sửa chữa một khối duy nhất đã được báo cáo bởi đĩa như có một Unrecoverable Read Error (URE). Lưu ý rằng không phải tất cả các ổ đĩa trong dải RAID5 đều được đọc để đọc dữ liệu bình thường, vì vậy nếu lỗi tồn tại trong dải trên đĩa không sử dụng, nó sẽ không bị phát hiện cho đến khi bạn thực hiện quét dữ liệu. Phát hiện lệch bit im lặng với bất kỳ RAID chuẩn nào chỉ có thể xảy ra trong quá trình quét dữ liệu. RAID 5 không thể làm được điều này ngay cả trong quá trình xây dựng lại đĩa bị lỗi, đây là điều mà hầu hết các mối quan tâm ngày nay là với RAID 5.

  1. Linux mdadm RAID 1, giống như gần như tất cả các triển khai RAID 1, chỉ là nhân bản / phản chiếu cùng một dữ liệu trên nhiều đĩa. Nó cho biết thêm không có sửa lỗi hoặc dữ liệu phát hiện. Nếu bạn lấy đĩa ra khỏi bất kỳ RAID 1 và sử dụng nó trong một máy tính khác, nó sẽ rất có khả năng chỉ làm việc như một đĩa đơn bình thường. Linux mdadm thêm một số mô tả mảng vào đầu đĩa để có thể biết phân vùng nào thuộc về mảng nào, vì vậy mdadm sẽ biết đó là RAID 1 nhưng có thể gắn kết và sử dụng đĩa đơn.
  2. Tất cả các bộ điều khiển RAID 1, là phần mềm hoặc phần cứng, dựa vào thực tế là các HDD sử dụng các phương pháp phát hiện và sửa lỗi của riêng chúng. Xem bài viết wikipeadia này để biết một số thông tin về cách thức hoạt động của HDD, đặc biệt lưu ý việc sử dụng Mã hóa sửa lỗi (ECC).

Đây là lý do tại sao hầu hết các thối bit sẽ được báo cáo như là một lỗi đọc không đọc được (URE) bởi hệ thống đĩa để mdadm. Tuy nhiên vẫn có những rủi ro đối với dữ liệu của bạn mà sẽ không dẫn đến bất kỳ lỗi nào được báo cáo bởi đĩa như

  • nếu có lỗi định vị đầu trong quá trình ghi, do đó một số vùng lân cận ngẫu nhiên bị ghi đè bằng dữ liệu và dữ liệu ECC chính xác cho khối đó. Đọc các khối đã thực sự được viết sẽ báo cáo rằng nó đọc khối chỉ tốt, mặc dù nó không phải là.
  • máy chủ bị mất điện trước khi nó ghi dữ liệu của nó vào tất cả các đĩa trong mảng, sau đó một số khối trong dải đó sẽ không đồng ý với các mảng khác.

và các loại lỗi khác như được mô tả trên trang ServerFault Là bit thối trên ổ đĩa cứng một vấn đề thực sự? Có thể làm gì về nó?

Các mảng RAID 6 và RAID 1 có ít nhất 3 đĩa là các mức RAID tiêu chuẩn duy nhất có khả năng phát hiện và sửa một số dạng thối bit im lặng không được báo cáo bởi các đĩa riêng lẻ dưới dạng lỗi, mặc dù Tôi không biết liệu mdadm có triển khai mã yêu cầu cho điều này không. Bằng cách sử dụng sửa lỗi trước hệ thống bỏ phiếu theo phong cách.

  • Đối với RAID 6 - chỉ khi lỗi ở một trong các khối chẵn lẻ. Điều này là do khả năng của một cuộc bỏ phiếu 3 cách giữa dữ liệu, chẵn lẻ 1, và chẵn lẻ 2. Nếu khối chẵn lẻ 1 hoặc 2 nói có một lỗi nhưng 2 khác thì không, thì khối chẵn lẻ về cơ bản có thể được bỏ phiếu. Lý do nó không thể sửa vấn đề nếu lỗi ở một trong các khối dữ liệu là nó không thể biết khối dữ liệu nào có lỗi, trừ khi nó là một 3 đĩa đột kích 6, thường không được phép. Tôi nghi ngờ rằng bất kỳ việc thực hiện nào, bao gồm mdadm, sẽ làm phiền với một lược đồ sửa chữa tối nghĩa và chỉ báo cáo nó là một lỗi.
  • Đối với RAID 1 với 3 hoặc nhiều đĩa hoạt động được cho là đã được đồng bộ hóa, nó có thể tiến hành một cuộc bỏ phiếu đa số đơn giản. Mặc dù một lần nữa, tôi không biết nếu có thực hiện RAID làm phiền với logic này như không nhiều người sử dụng một cuộc tấn công đĩa 3 + 1. Nếu nó đã thực hiện logic yêu cầu một RAID 1 mà
    • thông thường có 3 đĩa, một khối với thối bit im lặng có thể được tự động sửa chữa, mặc dù không phải nếu nó đã được trong quá trình xây dựng lại vì điều đó sẽ làm giảm số lượng các đĩa sync'd hoạt động đến 2.
    • một cuộc tấn công 4 đĩa 1 có thể tự động sửa bất kỳ sọc với một khối xấu duy nhất ngay cả trong khi xây dựng lại 1 đĩa không thành công.
    • một đĩa 5 có thể tự động sửa một sọc với 2 khối âm thầm, mặc dù nó được giảm xuống còn 1 nếu nó được tìm thấy trong quá trình xây dựng lại 1 hoặc 2 đĩa không đồng thời.

FYI Tôi nhận thấy rằng các thiết bị Synology DS1813 + sử dụng mdadm cho cả phân vùng dữ liệu và hệ thống và nó sử dụng RAID 1 trên tất cả 8 đĩa cho các phân vùng hệ thống.

Như bạn có thể đã quan sát thấy nơi này rất nhiều phụ thuộc vào đĩa có thể báo cáo dữ liệu xấu là một lỗi. Trong khi mọi người đang nói để sử dụng ZFS để giải quyết vấn đề này. Tôi tin rằng cải tiến tính toàn vẹn dữ liệu chính của ZFS là nó cung cấp khả năng quét dữ liệu thường xuyên hơn do nó kiểm tra gương / chẵn lẻ với mỗi lần đọc và mức chẵn lẻ khối độc lập (có nghĩa là nhiều khối bị hỏng âm thầm không còn im lặng và sửa chữa nếu có thể). có thể thực hiện logic trên cho tham nhũng dữ liệu im lặng.

Để kiểm tra xem một hệ thống cụ thể có thể phát hiện và / hoặc sửa chữa tham nhũng dữ liệu thầm lặng hay không, hãy sử dụng lệnh dd Linux để ghi dữ liệu ngẫu nhiên vào một trong các phân vùng trong mảng, sau đó kiểm tra xem dữ liệu vẫn tốt trên mảng. Cảnh báo không thực hiện kiểm tra này trên hệ thống có dữ liệu bạn muốn giữ vì hệ thống của bạn có thể không thực hiện được thử nghiệm. Đối với các mức RAID tiêu chuẩn, bạn sẽ cần phải thực hiện quét dữ liệu giữa tham nhũng và đọc thử.


3
2017-12-24 20:09





RAID5 sẽ không bắt dữ liệu bị hỏng trên đĩa; bạn cần một hệ thống tập tin như ZFS hoặc BTRFS, với kiểm tra mức khối, để bảo vệ chống lại điều đó. RAID5 cũng sẽ không hoạt động tốt như RAID1 do tính toán tính chẵn lẻ của nó. Với bất kỳ loại RAID chẵn lẻ nào, bạn nên cẩn thận để giải quyết Lỗ ghi RAID5, trong đó giới thiệu các tiềm năng cho dữ liệu tham nhũng trong trường hợp mất điện, ví dụ.

Phần mềm Linux RAID1 có một lợi thế thú vị ở chỗ bạn có thể tạo bao nhiêu gương tùy ý - vì vậy nếu thời gian hoạt động là ưu tiên số 1 của bạn, bạn có thể cấu hình RAID1 8 đĩa duy trì 7 bản sao dự phòng.

Tiềm năng tham nhũng dữ liệu bằng RAID1 tương đương với việc sử dụng một đĩa đơn (không có RAID).

Nếu bạn thực sự lo ngại về việc hỏng dữ liệu, bạn nên sử dụng hệ thống tập tin kiểm tra hoặc thường xuyên so sánh dữ liệu không thay đổi của bạn với một số bản sao lưu. Một câu chuyện thành công của ZFS phổ biến kể về câu chuyện của một người có máy tính đang âm thầm làm hỏng dữ liệu của anh ta, và anh ta thậm chí không biết nó cho đến khi anh ta bắt đầu sử dụng ZFS. Sau một chút khắc phục sự cố, anh đã tìm ra nguyên nhân là nguồn cung cấp năng lượng bị lỗi.

Bạn cũng nên xem xét rằng ổ đĩa cứng không phải là nơi duy nhất mà dữ liệu có thể bị hỏng. Nếu bạn không sử dụng RAM ECC (và một bo mạch chủ cấp doanh nghiệp không chỉ tương thích, nhưng cho phép ECC), ví dụ, một tia vũ trụ có thể lật một chút trong bộ nhớ. Tùy thuộc vào loại dữ liệu chúng ta đang nói đến, nó có thể không quan trọng. Nếu đó là tệp video hoặc nhạc, thì lật bit sẽ không được chú ý khi bạn phát lại tệp.

Khi bạn nhận được xuống thịt của vấn đề, tham nhũng dữ liệu im lặng là tất cả về xác suất. Xác suất dữ liệu của bạn sẽ bị hỏng không phải là rất cao; nếu không chúng ta sẽ bị nguyền rủa liên tục khi dữ liệu của chúng ta bị hỏng một lần nữa. (Mọi người có lẽ sẽ giữ nhiều bản sao lưu và thậm chí cả bản sao cứng của tất cả mọi thứ, bởi vì họ sẽ không tin tưởng máy tính để giữ một bản sao tốt.) Khả năng bạn thậm chí sẽ nhận thấy dữ liệu bị hỏng thậm chí còn thấp hơn. Hầu hết mọi người hoàn toàn không biết khái niệm về tham nhũng dữ liệu thầm lặng, và họ nhận được bằng cách tốt. Cũng cần lưu ý rằng thậm chí nhiều hệ thống lưu trữ đĩa cấp doanh nghiệp cũng không bảo vệ chống lại sự tham nhũng dữ liệu im lặng ở mức hệ thống tập tin. Nhưng nếu bạn không phải là một người cờ bạc, bạn có thể muốn ném một số tiền vào phần cứng cấp doanh nghiệp (RAM ECC, bộ điều khiển đĩa được hỗ trợ bằng pin và tất cả) và chuyển sang sử dụng ZFS hoặc BTRFS.


6
2018-04-09 18:31



1 để đề cập đến lỗ ghi RAID5, cũng như quảng bá zfs và btrfs. - Steven Monday


Cả raid1 cũng không raid5 sẽ bảo vệ bạn khỏi tham nhũng bit im lặng nếu tham nhũng được thực hiện bởi đĩa cứng.

Hãy suy nghĩ về nó: Với cả raid1 và raid5 nó rất dễ dàng để phát hiện ra rằng dữ liệu đã bị hỏng, nhưng không có cách nào để xác định đĩa nào có dữ liệu tốt, và điều đó có hại.

Nhưng hãy nhớ: Im lặng bit tham nhũng trên một ổ đĩa cứng xảy ra REALLY REALLY hiếm khi (Đĩa cứng có kiểm tra nội bộ riêng của mình trên tất cả các khối), và cuộc tấn công không loại bỏ sự cần thiết phải sao lưu.

Nếu bạn cần để tồn tại tham nhũng đĩa im lặng, sử dụng một cái gì đó như raid6, hoặc một hệ thống tập tin kiểm tra tất cả các tập tin của nó.


3
2018-04-09 17:14





Kể từ khi raid5 tính toán chẵn lẻ nó sẽ có thể bắt tham nhũng dữ liệu im lặng trên một đĩa.

Không. Người ta hoàn toàn có thể xóa sạch một khu vực với dữ liệu ngẫu nhiên, và một RAID5 sẽ không dơi một lông mi. RAID1 có cùng một vấn đề.

Nói chung, RAID không cung cấp kiểm tra tính toàn vẹn dữ liệu theo thời gian thực. Những gì nó cung cấp là lỗi khoan dung khi đối mặt với một (hoặc nhiều hơn, với một số cấp độ RAID) thất bại ổ đĩa. Đó là hai điều rất khác nhau.

Nếu bạn đang tìm kiếm một cái gì đó để bắt tham nhũng tập tin, bạn cần hỗ trợ hệ thống tập tin. RAID không làm điều đó. Ít nhất, không phải của riêng mình.

Để trả lời các câu hỏi cụ thể của bạn:

RAID1 được thực hiện đơn giản như hai (hoặc nhiều) gương giống nhau. Khi các gương không đồng ý về nội dung của một ngành, thì sự tham nhũng đã xảy ra. Vấn đề là, hệ thống RAID không thường xuyên ở một vị trí để nhận thức được điều này, vì nó thường không đọc tất cả các gương khi nó được yêu cầu để lấy một khu vực nhất định. Đối với hiệu quả, nó sẽ có khả năng chỉ lịch trình một đĩa để đọc nó (hy vọng là một trong những người đứng đầu hiện nay gần nhất với nó).

Giả sử rằng, trong một hoạt động "quét", khi hệ thống RAID được yêu cầu một cách rõ ràng để xác minh tính nhất quán của tất cả các dữ liệu của nó, một sự mâu thuẫn được phát hiện. Câu hỏi về cách giải quyết mâu thuẫn này không có câu trả lời đơn giản. Lưu ý rằng vấn đề này ảnh hưởng đến RAID5 như RAID1 và các cấp RAID khác.

Trong RAID1, một mâu thuẫn xuất hiện dưới dạng hai phần gương có chứa dữ liệu khác nhau. Làm thế nào để hệ thống RAID quyết định khu vực nào đại diện cho dữ liệu chính xác? Vâng, đó là một chi tiết thực hiện, và tôi thành thật không biết làm thế nào hệ thống Linux được thực hiện chính xác. Nhưng vấn đề là cơ bản: các lĩnh vực được nhân đôi khác nhau, và có thể không có dấu hiệu nào cho thấy tại sao chúng lại trở thành như vậy. Vì vậy, tốt nhất hệ thống RAID có thể làm là lật một đồng xu: chọn một ngẫu nhiên là dữ liệu "chính xác".

Trong RAID5 3-đĩa, một sự không thống nhất xuất hiện dưới dạng một ba lĩnh vực có lĩnh vực chẵn lẻ là không chính xác. Câu hỏi đặt ra là: trong 3 lĩnh vực nào là sai? Một lần nữa, không có câu trả lời rõ ràng. Bất kỳ cái nào trong ba cái đều có thể bị hỏng, và có lẽ không có cách nào để biết. Nếu bạn phải chọn một khu vực được tính toán lại từ 2 khu vực khác, bạn có 1 trong 3 cơ hội chọn một khu vực đã thực sự bị hỏng. Điều này chứng tỏ rằng RAID1 thực sự "an toàn hơn" so với RAID5, theo nghĩa này. RAID1 có 50% chọn ngành sai, trong khi RAID5 có 67% cơ hội chọn sai.

Tóm lại: RAID không được thiết kế để bắt lỗi đĩa khi chúng xảy ra. RAID cung cấp khả năng chịu lỗi khi đối mặt với lỗi toàn bộ ổ đĩa. Chỉ có bấy nhiêu thôi.


3
2018-04-09 15:44



Hãy sửa tôi nếu tôi sai. Tôi hiểu rằng raid5 không thể sửa chữa một đĩa bị hỏng tham nhũng nhưng theo như tôi hiểu nó sẽ có thể bắt nó (và do đó tôi có nghĩa là đăng nhập lỗi). Câu trả lời MTilsted ở trên cũng cho thấy rằng raid6 có thể tái tạo lại tham nhũng dữ liệu thầm lặng. - Waxhead
Như tôi đã nói, các hệ thống RAID thường sẽ không ở vị trí để phát hiện các hỏng đĩa. Khi một RAID5 đọc một lĩnh vực, vì lý do hiệu quả và hiệu suất, nó chỉ đọc những gì nó cần để đáp ứng yêu cầu (bỏ qua bộ nhớ đệm đọc trước). Tôi cho rằng người ta có thể tạo RAID5 để xác minh tính chẵn lẻ trên đĩa trên mọi yêu cầu đọc, nhưng điều đó sẽ làm chậm mọi thứ xuống rất nhiều, vì nó đòi hỏi phải thực hiện 2 lần đọc vật lý cho mỗi lần đọc được yêu cầu. Và nếu bạn chỉ xác minh một phần nhỏ của lần đọc, thì bạn chắc chắn sẽ bỏ lỡ một số trường hợp tham nhũng thầm lặng. - Steven Monday