Tác động của cấp độ RAID đối với IOPS [đã đóng]


11

Liên quan đến IOPS, tôi đã thấy một số nguồn trên web đề xuất IOPS của một số lượng đĩa nhất định chỉ đơn giản là IOPS của một đĩa đơn nhân với số lượng đĩa.

Nếu sự hiểu biết của tôi về IOPS là chính xác (và tôi hoàn toàn không chắc chắn về điều đó), tôi đã nghĩ rằng thực tế sẽ phụ thuộc vào - trong số nhiều yếu tố khác - cấp độ RAID. Với RAID 1/10, tất cả dữ liệu được sao chép trên ít nhất hai đĩa, giảm sự tranh chấp trên một đĩa cụ thể đối với một số mẫu IO. Tuy nhiên, ở các cấp RAID bị sọc như RAID 0/5/6, dữ liệu được phân phối thay vì trùng lặp, có nghĩa là các yêu cầu đọc liên tiếp có thể cho cùng một trục chính, dẫn đến chặn trong khi IO trước đó hoàn thành. Các bài viết thậm chí còn nhiều tranh cãi hơn.

Tôi nên nói thêm rằng tôi đánh giá cao thực tế phức tạp hơn nhiều do sự tối ưu hóa khác nhau và các yếu tố khác. Câu hỏi của tôi thực sự chỉ là lái xe ở mức độ rất cơ bản, sự hiểu biết của tôi về ý nghĩa của IOPS là đi đúng hướng. Có thể là sự khẳng định của tôi rằng IOPS thậm chí có thể bị ảnh hưởng bởi các cấp độ RAID theo cách như vậy cho thấy sự hiểu lầm cơ bản về khái niệm này.


4
Bạn đang đơn giản hóa việc này đến một điểm mà bạn loại trừ tác động của bộ đệm bộ điều khiển RAID, HĐH, hành vi của ứng dụng, I / O đồng bộ hoặc không đồng bộ và loại đĩa. Vậy bạn đang tìm cái gì?
ewwhite

@ewwhite Xin lỗi, tôi nên đã rõ ràng hơn. Tôi thực sự hy vọng xem liệu nguyên tắc cơ bản trong suy nghĩ của tôi có đúng không, thay vì đưa ra dự đoán trong thế giới thực. Tôi đánh giá cao rằng trong thực tế mọi thứ bị ảnh hưởng rất nhiều bởi tất cả các loại tối ưu hóa và phức tạp khác. Có một tình huống thực tế trong nền, nhưng như thường thấy khi bạn nhìn vào một thứ gì đó mà bạn không quen thuộc lắm, tôi đã quyết định bỏ đi và học một số nền tảng để tôi cảm thấy một chút thoải mái hơn với các nguyên tắc cơ bản.
dbr

Tôi muốn hỏi liệu có ai có bất kỳ khuyến nghị nào về việc đọc chất lượng tốt liên quan đến lý thuyết và khái niệm xung quanh việc lưu trữ và hiệu suất của nó không, nhưng tôi không nghĩ rằng đó có thể được coi là một câu hỏi không phù hợp cho ServerFault. Dường như có khá ít bài viết chất lượng cao về chủ đề trên mạng mà tôi đã tìm thấy cho đến nay - có lẽ vì đây là một chủ đề khá phức tạp mà ít người thực sự hiểu đầy đủ.
dbr

Hiệu suất RAID phụ thuộc nhiều vào giới hạn phần cứng và triển khai của bộ điều khiển so với mức RAID. Ví dụ, RAID0, RAID1, RAID5 và RAID6 về mặt lý thuyết có thể sử dụng tất cả các đĩa để đọc lâu, do đó chúng có thể có cùng tốc độ đọc chính xác trên một bộ điều khiển lý tưởng.
Zac67

Câu trả lời:


12

Đối với ổ cứng , IOPS thường bị chi phối bởi thời gian truy cập của đĩa, là tổng độ trễ tìm kiếm + độ trễ quay + độ trễ truyền. Vì các biến này phụ thuộc rất nhiều vào các mẫu truy cập và có các tương tác không rõ ràng với bố cục RAID cụ thể (nghĩa là: kích thước sọc) và bộ điều khiển (nghĩa là: đọc điều chỉnh trước), bất kỳ câu trả lời đơn giản nào SILL ĐƯỢC SAU.

Tuy nhiên, hãy thử để có một con số trên sân bóng. Trên một xấp xỉ đầu tiên, IOPS được đảm bảo bởi một mảng n đĩa phải gấp n lần IOPS của một đĩa đơn. Tuy nhiên, cả cấp độ RAID và mẫu truy cập dữ liệu , bằng cách thay đổi trọng số giữa độ trễ tìm kiếm / quay / chuyển, thay đổi một cách kịch tính xấp xỉ thứ tự đầu tiên này.

Hãy thực hiện một số ví dụ, giả sử 100 IOPS cho mỗi đĩa đơn (giá trị đỉnh cho 7200 RPM đĩa) và mảng 4 đĩa (ngoại trừ RAID1, thường chỉ giới hạn ở 2 chiều):

  • một đĩa đơn là 100 IOPS, cả đọc và ghi (lưu ý: do ghi kết hợp, ghi IOPS thường cao hơn đọc IOPS, nhưng hãy bỏ qua điều đó cho đơn giản)
  • RAID0 (phân dải 4 chiều) có tới 4 lần IOPS ngẫu nhiên và tối đa gấp 4 lần IOPS tuần tự. Từ khóa ở đây là "tối đa": do tính chất của việc phân loại và sắp xếp dữ liệu, nếu các khu vực truy cập ngẫu nhiên thường nằm trên một đĩa đơn, bạn sẽ kết thúc với IOPS thấp hơn nhiều.
  • RAID1 (phản chiếu 2 chiều) phức tạp hơn để cấu hình. Vì các đĩa khác nhau có thể tìm kiếm trên các dữ liệu khác nhau, nó có tới 2 lần IOPS đọc ngẫu nhiên nhưng cùng một 1x (hoặc thấp hơn một chút, do chi phí quá cao) ghi IOPS ngẫu nhiên. Nếu tất cả mọi thứ đều phù hợp (ví dụ: đọc lớn nhưng không phải 100% tuần tự, bộ điều khiển RAID sử dụng khái niệm / xử lý khối / sọc ngay cả trong chế độ phản chiếu, đọc trước hoạt động chính xác, v.v.) đôi khi có thể đọc tới 2 lần giá trị đĩa, trong khi ghi tuần tự vẫn được giới hạn ở mức 1x đĩa đơn (nghĩa là: không tăng tốc)
  • RAID10 (phản chiếu 4 chiều), thông minh về hiệu năng, ở nửa đường giữa phân chia RAID0 4 chiều và phản chiếu 2 chiều. Nó có tới 4 lần IOPS đọc ngẫu nhiên và tối đa gấp 2 lần IOPS ghi ngẫu nhiên. Đối với chuyển tuần tự, cảnh báo RAID1 được áp dụng: đôi khi nó có tới 4 lần IOPS đọc tuần tự, nhưng chỉ gấp 2 lần IOPS ghi tuần tự. Xin lưu ý rằng một số triển khai RAID10 (cụ thể là Linux MDRAID) cung cấp các bố cục khác nhau cho các mảng RAID10, với cấu hình hiệu suất khác nhau .
  • RAID5 (chẵn lẻ sọc) có tới 4 lần IOPS đọc ngẫu nhiên, trong khi IOPS ghi ngẫu nhiên, tùy thuộc vào một số yếu tố như mức độ ghi lớn đối với kích thước sọc, tính khả dụng của bộ đệm sọc lớn, thuật toán tái tạo sọc chính nó (đọc-tái cấu trúc-ghi so với đọc-sửa-ghi), v.v., có thể ở bất kỳ đâu giữa 0,5x (hoặc thấp hơn) và gấp đôi IOPS của một đĩa đơn. Khối lượng công việc tuần tự dễ dự đoán hơn, với gấp 3 lần IOPS của một đĩa đơn (cả để đọc và ghi)
  • RAID6 (tương đương gấp đôi sọc) hoạt động giống như người anh em RAID5 của nó, nhưng với hiệu suất ghi thấp hơn. Nó có tới 4 lần IOPS đọc ngẫu nhiên của một đĩa đơn, nhưng hiệu suất ghi ngẫu nhiên của nó thậm chí còn thấp hơn RAID5, với cùng các giá trị tuyệt đối (0,5x - 2x) nhưng với mức trung bình từ thực thấp hơn. Đọc và ghi tuần tự được giới hạn ở mức 2 lần IOPS của một đĩa đơn.

Hãy để tôi nhắc lại: ở trên là những xấp xỉ đơn giản và gần như bị phá vỡ. Dù sao, nếu bạn muốn chơi với một máy tính IOPS RAID (chưa hoàn chỉnh), hãy xem tại đây .

Bây giờ, quay trở lại thế giới thực. Trên khối lượng công việc trong thế giới thực, RAID10 thường là lựa chọn nhanh hơn và được ưa thích , duy trì hiệu năng cao ngay cả khi đối mặt với một mảng xuống cấp . RAID5 và RAID6 không nên được sử dụng cho các khối lượng công việc nhạy cảm với hiệu suất, trừ khi chúng có tính chất đọc trung tâm hoặc tuần tự. Điều đáng chú ý là các bộ điều khiển RAID nghiêm trọng có bộ đệm ghi lại được bảo vệ mất điện lớn chủ yếu để khắc phục (bằng bộ nhớ đệm sọc nặng) hiệu năng ghi ngẫu nhiên thấp RAID5 / 6. Không bao giờ sử dụng RAID5 / 6 với bộ điều khiển RAID không có bộ đệm , trừ khi bạn thực sự không quan tâm đến tốc độ của mảng.

SSD là những con thú khác nhau, nghĩ. Vì chúng có thời gian truy cập trung bình thấp hơn nhiều, RAID dựa trên tính chẵn lẻ có chi phí hoạt động thấp hơn nhiều và là tùy chọn khả thi hơn nhiều so với trên ổ cứng. Tuy nhiên, trong một khối lượng công việc trung tâm ghi ngẫu nhiên nhỏ, dù sao tôi cũng sẽ sử dụng thiết lập RAID10.


Không bao giờ sử dụng RAID5 / 6 với bộ điều khiển RAID không có bộ đệm, trừ khi bạn thực sự không quan tâm đến tốc độ của mảng. Bạn có thể thoát khỏi điều này nếu bạn thực sự biết những gì bạn đang làm và kiểm soát chặt chẽ mô hình IO của bạn. Nếu bạn không làm gì ngoài IO tuần tự phù hợp với kích thước sọc của mảng, bạn có thể thoát khỏi việc sử dụng RAID5 / 6 không có bộ đệm. Và bộ đệm không thể lưu hiệu năng nếu bạn thực hiện đủ các thao tác ghi khối nhỏ, ngẫu nhiên vào mảng RAID5 / 6, mặc dù giá trị của "đủ hoạt động IO" có thể giết chết hiệu năng có thể là một con số khổng lồ cho bộ điều khiển RAID thực sự tốt.
Andrew Henle

@AndrewHenle Chắc chắn, nếu chỉ phát hành đọc / ghi tuần tự được căn chỉnh theo dải, ngay cả bộ điều khiển không lưu trong chế độ RAD5 / 6 cũng có thể cho bạn kết quả tốt. Tuy nhiên đây là một mẫu sử dụng rất hẹp (ví dụ: phát trực tuyến và sao lưu). Đối với khối lượng công việc cho mục đích chung, bộ điều khiển không lưu trữ kết hợp với bất kỳ RAID chẵn lẻ nào sẽ rất chậm. Một số bộ điều khiển thậm chí yêu cầu bộ đệm ghi lại được bảo vệ bằng powerloss để cho phép bạn tạo RAID chẵn lẻ.
shodanshok

Tôi đã suy nghĩ nhiều hơn về các quản trị viên, những người thắc mắc tại sao bộ lưu trữ thư RAID6 ổ đĩa 21 ổ đĩa công ty của họ với kích thước sọc 19 MB-bởi vì lớn hơn phải nhanh hơn ....
Andrew Henle

1

Đó chỉ là vấn đề định nghĩa. Bạn có thể đo IOPS ở các cấp độ khác nhau trong hệ thống và bạn sẽ nhận được các giá trị khác nhau. Ví dụ: giả sử bạn có hai đĩa được nhân đôi và bạn đang viết nhanh nhất có thể. IOPS đi đến các đĩa sẽ gấp đôi số IOPS mà một đĩa đơn có thể xử lý với tải ghi tương tự. Nhưng IOPS đi vào bộ điều khiển sẽ bằng với số IOPS mà một đĩa đơn có thể xử lý.

Thông thường những gì chúng ta quan tâm là có bao nhiêu IOPS logic chúng ta có thể vào trong mảng và chúng ta không đặc biệt quan tâm những gì đang xảy ra ở cấp độ đĩa. Trong trường hợp đó, bạn đã đúng và IOPS phụ thuộc vào cấp độ RAID, số lượng đĩa, hiệu suất của các đĩa riêng lẻ và trong một số trường hợp là các đặc điểm cụ thể của các hoạt độ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.