Btrfs: RAID 1 trên 3 thiết bị


10

Tôi hiện có phân vùng Btrfs với bốn thiết bị: ba ổ 3 TB và ổ 4 TB. Dữ liệu và siêu dữ liệu là RAID 10, vì vậy tôi có 6 TB dung lượng có thể sử dụng, gần như đầy đủ. Tôi đã dự đoán rằng hỗ trợ RAID 5 trong Btrfs sẽ hoàn thiện vào thời điểm lưu trữ của tôi đầy, nhưng rõ ràng đó không phải là ưu tiên.

Câu hỏi của tôi là: có lý do để thích RAID 10 hơn RAID 1 không? Tôi biết RAID 1 thực sự trên phần cứng hiện tại của tôi sẽ cung cấp cho tôi 3 TB không gian có thể sử dụng với 4 bản sao của mỗi khối, nhưng Btrfs dường như không hoạt động theo cách này. Từ Btrfs FAQ :

btrfs kết hợp tất cả các thiết bị vào một nhóm lưu trữ trước, sau đó sao chép các khối khi dữ liệu tệp được tạo. RAID-1 hiện được định nghĩa là "2 bản sao của tất cả dữ liệu trên các thiết bị khác nhau". Điều này khác với MD-RAID và sợ, ở chỗ chúng tạo ra chính xác n bản sao cho n thiết bị. Trong một btrfs RAID-1 trên ba thiết bị 1 TB, chúng tôi nhận được 1,5 TB dữ liệu có thể sử dụng. Vì mỗi khối chỉ được sao chép vào 2 thiết bị, nên việc viết một khối nhất định chỉ yêu cầu chính xác 2 thiết bị được ghi vào; đọc chỉ có thể được thực hiện từ một.

Và từ Jens Erat trên Stack Overflow :

Btrfs phân phối dữ liệu (và các bản sao RAID 1 của nó), do đó xử lý rất tốt với các đĩa cứng có kích thước khác nhau. Bạn sẽ nhận được tổng của tất cả các đĩa cứng, chia cho hai - và không cần phải suy nghĩ làm thế nào để đặt chúng lại với nhau theo cặp có kích thước tương tự.

Nếu có nhiều hơn một đĩa bị lỗi, bạn luôn có nguy cơ mất dữ liệu: RAID 1 không thể xử lý việc mất hai đĩa cùng một lúc. Trong ví dụ của bạn được đưa ra ở trên, nếu hai đĩa sai chết, bạn luôn mất dữ liệu.

Điều này có nghĩa là việc cân bằng lại từ RAID 10 sang RAID 1 sẽ giúp tôi có thêm 500 GB dữ liệu (6,5 TB thay vì 6 TB) do ổ đĩa 4 TB? Và có lý do nào để tôi gắn bó với RAID 10 không?


1
BTRFS RAID-5 (mặc dù vẫn đang thử nghiệm) thực sự khá ổn định và thậm chí nhiều kịch bản phục hồi dữ liệu điển hình hoạt động trong phiên bản hiện tại (không gặp sự cố). Thỉnh thoảng bạn có thể nên chau chuốt để đảm bảo dữ liệu của bạn vẫn chính xác, nhưng nó có thể đáng để thử. Có thể chuyển đổi từ RAID-1 (0) sang RAID-5.
bản6

@ basic6 Rất tốt để biết, cảm ơn. Tôi đã nghiên cứu cách đây không lâu và thấy rằng scrubreplacehỗ trợ đã được thêm vào ngày 3.19, nhưng mọi người vẫn phàn nàn về việc thiếu thông báo lỗi thiết bị. Tôi có các crons được thiết lập để tẩy tế bào chết hàng tuần và tự kiểm tra SMART hàng tuần / hàng tháng, vì vậy tôi có thể nắm bắt được những vấn đề đó. Tôi sẽ thử.
Mikkel

Việc tẩy tế bào chết định kỳ (hàng tuần hoặc hàng tháng) rất quan trọng, nếu một lần chà tìm thấy và lỗi vì nó không thể đọc được từ một ổ đĩa, nó sẽ làm tăng số lượng lỗi. Kiểm tra số lỗi sử dụng dev stats, có thể là một cronjob khác .
bản6

Câu trả lời:


5

Có, bạn nhận được thêm 500 GB. Lưu ý rằng việc xác định không gian có sẵn trong btrfs vẫn khó nắm bắt. Ngoài ra: có một cái nhìn vào máy tính sử dụng đĩa btrfs .

Về câu hỏi thứ hai của bạn: Bạn có thể mất một số hiệu suất trên mảng của bạn. Đương nhiên, dữ liệu của bạn an toàn như nhau trên cả hai cấu hình RAID. Khi xem xét hiệu suất, có lẽ bạn có thể xem qua các điểm chuẩn này: kernel.org , phoronix.com .

Có lẽ bạn đã thử chuyển đổi sang RAID 1? Nếu vậy: những phát hiện của bạn là gì?


1
Điều này không cung cấp một câu trả lời cho câu hỏi. Để phê bình hoặc yêu cầu làm rõ từ một tác giả, hãy để lại nhận xét bên dưới bài đăng của họ - bạn luôn có thể nhận xét về bài đăng của riêng bạn và khi bạn có đủ danh tiếng, bạn sẽ có thể nhận xét về bất kỳ bài đăng nào .
DavidPostill

Tuy nhiên, để trả lời câu hỏi của bạn, tôi đã chuyển đổi và kết quả có vẻ phù hợp với mong đợi của tôi. Btrfs thực hiện công việc kém trong việc chỉ ra dung lượng đĩa trống thực tế, nhưng bạn có thể thấy trong đầu ra của btrfs fi shkhông gian thừa đó trên ổ đĩa 4 TB đang bị lợi dụng và (2,83 + 1,93 + 1,93 + 1,95) /2~=4.30 như mong đợi. Gần đây tôi đã duy trì một lỗi ổ đĩa và được xây dựng lại thành công mà không mất dữ liệu, vì vậy tôi có thể xác nhận trực tiếp rằng sự dư thừa vẫn còn nguyên vẹn.
Mikkel

Tôi xin lỗi câu trả lời của tôi không rõ ràng @david. Tôi đã cố gắng trả lời hai câu hỏi trong hai dòng cuối của bài viết gốc. Ngoài ra, tôi chỉ ra một loạt các yếu tố không chắc chắn (có vẻ như nội tại đối với btrfs) và cung cấp các nguồn của tôi để tham khảo. Quả thực tôi cũng đã hỏi một câu hỏi cho tác giả, để những người khác có thể học hỏi từ những phát hiện của anh ấy. Tôi đã làm điều này trong câu trả lời vì lý do bạn đã giải thích. Tôi sẽ xem xét ý kiến ​​của bạn vào lần tới khi tôi trả lời một câu hỏi về trao đổi ngăn xếp.
Laura

Nó có thể không phải là câu trả lời chắc chắn nhất, nhưng kết quả của tôi cho thấy rằng các giả định của bạn là chính xác, vì vậy tôi chấp nhận nó. Tôi không chắc chắn về nhận xét của bạn về sự khác biệt hiệu suất, mặc dù. Điều đó hoàn toàn đúng với phần cứng RAID 1 so với 10, nhưng tôi không chắc Btrfs có thấy hiệu năng tăng lên từ RAID 10. Hơn nữa, cái mà nó gọi là RAID 1 vẫn bị sọc trên nhiều thiết bị ở đây, vì vậy nó vẫn giống với RAID 10 hơn RAID thực 1. Nếu tôi đọc câu trả lời của bạn trước khi chuyển đổi, tôi đã thực hiện trước và sau điểm chuẩn, nhưng tôi sẽ không mất một tuần nữa để chuyển mảng sang RAID 10 trở lại.
Mikkel

Vâng, có trang này , cho thấy lợi ích cận biên của RAID 10 so với RAID 1, mang theo lời cảnh báo ở đầu rằng các điểm chuẩn là 7 năm.
Mikkel

0

Đừng sử dụng btrfs đột kích 5 hoặc 6, việc triển khai có nhiều lỗi, hãy chạy zfs nếu bạn muốn điều đó.

Với raid10 bạn sẽ đạt được tốc độ.

Điều tối ưu cần làm là tạo phân vùng 3TB trên ổ đĩa 4TB (đảm bảo cả 3 đều có cùng kích thước), kết hợp những thứ đó vào RAID10 sẽ có 6 TB dung lượng trống. Sử dụng thêm 1 TB trên ổ đĩa 4 TB cho / boot (dù sao đây cũng phải là vfat nếu bạn muốn sử dụng efistub và tránh grub hoặc bất kỳ trình tải khởi động nào khác giúp khởi động nhanh hơn một chút), trao đổi (bạn có thể sử dụng khá lớn, tối ưu sẽ là một hoán đổi zram nhỏ (4 gb hoạt động tốt với 32 gb ram, 2 gb sẽ ổn với 16 gb, nếu bạn có ít hơn 16 idk nếu nó đáng giá và dù sao bạn cũng nên nâng cấp) được sử dụng trước tiên (đặt mức ưu tiên lên cao nhất) bằng cách sử dụng zstd và càng nhiều luồng nén khi bạn có lõi / luồ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.