việc thêm hàng đống ổ đĩa vào một cuộc đột kích 0 có làm tăng hiệu suất không?


10

việc thêm hàng đống ổ đĩa vào một cuộc đột kích 0 có làm tăng hiệu suất không? Tôi biết rằng hai ổ đĩa trong một cuộc đột kích sọc thường sẽ nhanh hơn một ổ đĩa nhưng tôi sẽ nhận thấy sự khác biệt về hiệu suất giữa nói, 2 ổ đĩa trong một cuộc đột kích sọc và 8? Có giới hạn chung cho số lượng ổ đĩa trong cuộc đột kích trước khi bạn thực sự không nhận được bất kỳ lợi ích nào nữa không?

một câu hỏi tương tự đã được hỏi ở đây

Việc thêm nhiều ổ đĩa vào RAID 10 Array có làm tăng hiệu suất không?

nhưng tôi thực sự hỏi liệu việc thêm nhiều ổ đĩa vào một cuộc đột kích 0 có cải thiện gì không chỉ là nói 2 hoặc 4. hiệu suất có tiếp tục tăng không?

Câu trả lời:


11

Theo lý thuyết là có, nhiều ổ đĩa trong raid0 sẽ dẫn đến hiệu suất cao hơn vì tải được chia sẻ trên nhiều ổ đĩa hơn. Tuy nhiên, trong thực tế, bạn sẽ bị giới hạn bởi băng thông của bộ điều khiển đột kích, hiệu năng của CPU và bộ nhớ và tương tự. Hiệu suất tăng sẽ không tuyến tính, đó là 4 đĩa không chính xác nhanh gấp 2 lần 2 đĩa.

Trong bất kỳ hệ thống hiện đại hợp lý nào có bộ điều khiển đột kích hoặc thậm chí sử dụng một cuộc đột kích phần mềm với mdadm của linux, sử dụng 8 ổ đĩa sẽ nhanh hơn so với sử dụng 2 và bạn không nên bị giữ lại bởi hiệu suất còn lại của hệ thống. CPU, đột kích và / hoặc bộ điều khiển đĩa, bộ nhớ, tất cả sẽ có thể xử lý nó. Bạn có thể thấy việc sử dụng tài nguyên hệ thống tăng lên khi bạn thêm nhiều ổ đĩa. Đặc biệt là nếu bạn sử dụng bộ điều khiển SATA trên bo mạch trong sự kết hợp sợ hãi. Nhưng không có gì thực sự sẽ cản trở khả năng sử dụng tổng thể. Nếu sử dụng linux, bạn có thể muốn sử dụng kernel đã được cấu hình mà không có "quyền ưu tiên" để các tác vụ hướng máy chủ nhận được ưu tiên hơn khả năng đáp ứng của người dùng.

https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO

Tất nhiên, bạn càng thêm nhiều ổ đĩa, khả năng một trong số chúng thất bại càng cao và toàn bộ cuộc đột kích của bạn bị phá hủy. Tôi hy vọng một cuộc đột kích gồm 8 ổ đĩa sẽ không kéo dài quá một hoặc hai năm, nếu bạn may mắn. Một cuộc đột kích gồm 16 ổ đĩa sẽ yêu cầu sự cố và sau đó tôi sẽ xem xét một cuộc đột kích10, nó vẫn đủ nhanh và bạn sẽ không phải lo lắng nhiều.

Về việc có bao nhiêu ổ đĩa sẽ sử dụng tối đa tài nguyên của hệ thống mà tôi không biết trừ khi tôi có thông số kỹ thuật hệ thống chi tiết. Tôi nghĩ rằng bạn sẽ bị giới hạn nhiều hơn bởi tỷ lệ thất bại, nếu bạn đi qua khoảng 16 đĩa (tôi không muốn nghĩ về nó).

Đương nhiên, bạn chỉ sử dụng raid0 cho dữ liệu có thể bị mất bất cứ lúc nào mà không gặp vấn đề gì. Nó sẽ hoạt động tốt cho những thứ như máy chủ xây dựng hoặc không gian đầu cho các tính toán khoa học lớn. Trong thực tế, những kịch bản đó là những gì tôi thường sử dụng raid0 và đó là một cách tuyệt vời để vắt kiệt sức sống hơn một loạt các đĩa cũ, dung lượng thấp hơn và rẻ tiền hơn có thể đã thu thập bụi. Bạn thậm chí có thể trộn các kích cỡ, ít nhất là với mdadm.

Nếu sử dụng mdadm, có thể đáng cân nhắc khi chỉ sử dụng raid10 vì trong một số cấu hình nhất định, nó có thể đạt gần hiệu suất của raid0, đó là hiệu suất đọc của raid0 và đã cải thiện hiệu suất ghi so với các mức đột kích khác (trừ raid0). Bạn sẽ có được sự dự phòng tốt hơn so với các cấp độ đột kích khác, chỉ với một hình phạt tốc độ nhẹ so với một cuộc đột kích0. Đó sẽ là điều tốt nhất của cả hai thế giới, bạn không tìm thấy điều đó thường xuyên.

https://en.wikipedia.org/wiki/RAID#Non-st Chuẩn_levels

Linux MD RAID 10 cung cấp trình điều khiển RAID chung có bố cục "gần" mặc định cho RAID 1 tiêu chuẩn có hai ổ đĩa và RAID 1 + 0 tiêu chuẩn có bốn ổ đĩa; mặc dù vậy, nó có thể bao gồm bất kỳ số lượng ổ đĩa, bao gồm cả số lẻ. Với bố cục "xa", MD RAID 10 có thể chạy cả sọc và nhân đôi, thậm chí chỉ có hai ổ đĩa trong bố cục f2; điều này chạy phản chiếu với các lần đọc sọc, cho hiệu suất đọc của RAID 0. RAID 1 thông thường, được cung cấp bởi RAID phần mềm Linux, không đọc các sọc, nhưng có thể thực hiện đọc song song.

Như đã đề xuất trong các nhận xét, trộn kích thước với mdadm sẽ không tăng tốc độ nếu bạn sử dụng tất cả không gian đĩa thay vì để đĩa nhỏ nhất xác định kích thước của mảng.

Đồng thời tìm kiếm thời gian sẽ không cải thiện trong raid0 và thậm chí có thể trở nên chậm hơn một chút. Đối với raid0 dựa trên SSD, thời gian tìm kiếm sẽ rất nhỏ (trong khoảng 0,08 đến 0,16 ms https://en.wikipedia.org/wiki/Hard_disk_drive_performance_characteristic#cite_note-HP_SSD-6 ) tôi sẽ không quan tâm lắm.


Nếu bạn muốn trộn kích thước, thì bạn không thể áp dụng RAID0, ít nhất là sử dụng tất cả không gian mà các đĩa có. Bạn phải sử dụng JBOD, không tăng hiệu suất.
Tero Kilkanen

Bạn có thể trộn kích thước bằng mdadm, nó rất linh hoạt, mdadm thậm chí cho phép bạn định cấu hình raid10 3 đĩa. Tôi không mong đợi bạn có thể trộn kích thước trong bộ điều khiển đột kích, những thứ đó kém linh hoạt hơn, nhưng nhanh hơn.
aseq

1
Tôi đã kiểm tra điều này và nếu bạn muốn RAID0, thì thiết bị nhỏ nhất của mảng xác định kích thước của mảng hoàn chỉnh. Đó là, nếu bạn có ổ đĩa 100 GB, 200 GB và 300 GB, bạn sẽ nhận được một mảng RAID0 300 GB và dung lượng trống 100 GB và 200 GB để sử dụng cho các mục đích khác. Trong chế độ Tuyến tính, bạn có được toàn bộ dung lượng của tất cả các thiết bị, nhưng không có hiệu suất song song.
Tero Kilkanen

1
Nghe có vẻ đúng đúng.
aseq

2
Với phương tiện quay vòng, không phải cũng có vấn đề về thời gian tìm kiếm so với thời gian chuyển giao sao? Thêm nhiều đĩa hơn, số lượng được đọc / ghi trên nhiều đĩa hơn (mỗi đĩa phải làm ít hơn == nhanh hơn) nhưng tất cả chúng vẫn phải thực hiện thao tác tìm kiếm (không giảm bằng cách thêm nhiều ổ đĩa). Vì vậy, tùy thuộc vào loại hoạt động bạn đang thực hiện (nghĩa là mất số lần đọc nhỏ so với một số lần đọc lớn), việc tăng tốc độ truyền (bằng cách thêm nhiều ổ đĩa) có thể tạo ra sự khác biệt nhỏ hoặc lớn.
Molomby

1

Nó phụ thuộc vào khối lượng công việc, nhưng IMHO có thêm 2 đĩa bổ sung vào mảng 2 đĩa hiện có sẽ cho hiệu suất tổng thể tốt hơn.

Bạn cần nhận ra nút thắt ở đâu:

  • CPU - CPU có thể xử lý bao nhiêu luồng dữ liệu,
  • xe buýt / bộ điều khiển - nó có thể mang theo bao nhiêu dữ liệu
  • SSD / HDD - nó có thể cung cấp / lấy bao nhiêu dữ liệu.

Giả sử rằng có RAID phần mềm Linux, sau đó thêm hai đĩa bổ sung CÓ THỂ dẫn đến:

  • ~ hai lần thời gian truy cập ngắn hơn để khối dữ liệu đủ lớn, dẫn đến;
  • ~ gấp đôi IOPS,
  • ~ thông lượng gấp đôi, giả sử rằng bộ điều khiển có đủ bus và CPU có thể xử lý lưu lượng.

* ~ đây không bao giờ là hai lần tăng trong các yếu tố sau, luôn luôn ít hơn 10-20%. Có vẻ như tuyến tính nhiều hay ít. Xin đừng coi đó là một câu trả lời có thẩm quyền, tôi đã không làm bất kỳ nghiên cứu nào về nó.

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.