Việc tính toán IOPS cho ZFS RAIDZ có khác nhau không khi tính IOPS cho RAID5 & RAID6?


13

Khi tính toán IOPS cho mảng RAID truyền thống, người ta có thể sử dụng công thức sau (Mượn từ Nhận Hang IOPS v1.3 trên Symantec Connect):

Ieffective = (n * Isingle) / (READ% + (F * WRITE%))

Ở đâu:

  • Hiệu quả là số IOPS hiệu quả
  • Isingle là IOPS trung bình của một ổ đĩa .
  • n là số lượng đĩa trong mảng
  • READ% là phần đọc được lấy từ hồ sơ đĩa
  • WRITE% là phần ghi được lấy từ hồ sơ đĩa
  • F là hình phạt ghi RAID :

    RAID Level      Write Penalty
    RAID-0          1
    RAID-1          2
    RAID-5          4
    RAID-6          6
    RAID-10         2
    RAID-DP         2
    

Công thức về cơ bản là một chức năng của:

  • IOPS cho mỗi ổ riêng lẻ trong mảng
  • Số lượng đĩa. Nhiều đĩa hơn có nghĩa là nhiều IOPS hơn
  • Các hình phạt RAID cho mỗi hoạt động ghi.
    • RAID5 & RAID6 yêu cầu hơn 4 thao tác đĩa cho mỗi lần ghi. Bộ điều khiển phải đọc khối và sau đó đọc dữ liệu chẵn lẻ (hai thao tác), tính toán dữ liệu chẵn lẻ mới và sau đó cập nhật khối chẵn lẻ và cập nhật khối dữ liệu (Hai thao tác nữa). RAID6 có hai khối chẵn lẻ và do đó yêu cầu ba lần đọc và ba lần ghi. Do đó, mảng RAID5 & RAID6 có khả năng ít IOPS hơn RAID1.
    • RAID1 & RAID10 chỉ cần 2 lần ghi, một cho mỗi đĩa trong gương.

Và để rõ ràng, tất cả điều này cung cấp một ước tính về hiệu suất lý thuyết. Các bộ điều khiển và phương thức RAID khác nhau có các thủ thuật để tăng tốc một số điều này.

Tương đương với RAID5 & RAID6 của ZFS là RAIDZ và RAIDZ2. Khi tính toán IOPS cho mảng RAIDZ, tôi có thể sử dụng cùng một công thức mà tôi sử dụng cho RAID5 & RAID6 không, hoặc ZFS có các thủ thuật đặc biệt để giảm số lượng thao tác cần thiết cho hoạt động ghi.

Có một công thức khác để sử dụng khi tính toán IOPS cho mảng RAIDZ không?


1
Câu hỏi tuyệt vời . Tôi mong được đọc câu trả lời ...
EEAA

1
iops là huyền thoại nhưng tài liệu này có thể cung cấp một số cái nhìn sâu sắc. info.nexenta.com/rs/nexenta/images/ từ
tony roth

IOPS có thể là lý thuyết, nhưng nó có thể đưa ra lời giải thích về lý do tại sao một mảng RAID10 thường sẽ vượt trội hơn một mảng RAID5, với cùng các ổ đĩa.
Stefan Lasiewski

Một trích dẫn đáng chú ý từ tài liệu Nexenta: "Trong cấu hình RAIDZ-2, một IO duy nhất đi vào VDEV cần được chia nhỏ và ghi trên tất cả các đĩa dữ liệu. Sau đó, nó phải được tính toán chẵn lẻ và ghi vào đĩa trước khi IO có thể hoàn tất. Nếu tất cả các đĩa có cùng độ trễ, tất cả các hoạt động của các đĩa sẽ hoàn thành cùng một lúc, do đó hoàn thành IO đến VDEV với tốc độ của một đĩa . Nếu có một đĩa chậm có độ trễ cao trong RAIDZ-2 VDEV, IO đến VDEV không hoàn thành cho đến khi IO trên ổ đĩa chậm nhất hoàn thành. "
Stefan Lasiewski

Câu trả lời:


13

Điều này dễ trả lời hơn ...

Tất cả đều được chắt lọc ở đây: Các đề xuất RAID ZFS: không gian, hiệu suất và MTTDLxem xét kỹ hơn về ZFS, Vdevs và Hiệu suất

  • RAIDZ với một ổ đĩa chẵn lẻ sẽ cung cấp cho bạn hiệu suất IOPS của một đĩa, nhưng băng thông tổng hợp gấp 1 lần của một đĩa đơn.

Vì vậy, nếu bạn cần chia tỷ lệ, bạn chia tỷ lệ với số lượng RAIDZ vdevs ... Ví dụ: với 16 đĩa, 4 nhóm RAIDZ 4 đĩa sẽ có tiềm năng IOPS lớn hơn 2 nhóm RAIDZ 8 đĩa.

Đáng ngạc nhiên, phải không?

Tôi thường đi với gương sọc (RAID 1 + 0) trên các bản cài đặt ZFS của mình. Khái niệm tương tự được áp dụng. Nhiều cặp nhân đôi hơn == hiệu suất tốt hơn.

Trong ZFS, bạn chỉ có thể mở rộng theo đơn vị của một vdev đầy đủ. Vì vậy, trong khi mở rộng bộ RAID 1 + 0 có nghĩa là thêm nhiều cặp, thực hiện tương tự cho bộ RAIDZ có nghĩa là thêm nhiều nhóm RAIDZ có tổng hợp bằng nhau.


Bài viết hay, nhưng nó quá cũ đến nỗi so sánh các liên kết của ZFS RAID1 và RAID5 ("Kết quả mô hình chẵn lẻ đơn lẻ" và "Kết quả mô hình chẵn lẻ kép" bị thiếu). Chuột!
Stefan Lasiewski

RAIDZ với một ổ đĩa chẵn lẻ sẽ cung cấp cho bạn hiệu suất IOPS của một đĩa Điều này thật thú vị, đó có phải là một giá trị không đổi bất kể tỷ lệ đọc so với tỷ lệ ghi? Ví dụ, hiệu suất của RAID5 rất khác nhau tùy thuộc vào tỷ lệ phần trăm của các câu đọc. Mảng 3 Đĩa 15K có thể khác nhau giữa 130IOPS và 500IOPS tùy thuộc vào tỷ lệ đọc / ghi. 50% số lần đọc và 50% ghi sẽ dẫn đến hiệu suất IOPS của một đĩa lớn hơn . Sử dụng 3+ trục chính giúp cải thiện hiệu suất so với 1 trục chính, đúng không?
Stefan Lasiewski

Tôi chỉ nghĩ về tỷ lệ vdev và hiệu suất ghi đó bằng 1 đĩa, bất kể thành phần của vdev đó; mirror, RAIDZ, RAIDZ2, v.v ... Các đĩa bên trong vdevs đang ở đó để tăng khả năng của bạn. Số lượng vdevs được sử dụng để xây dựng hiệu suất thoát của bạn. Số lần đọc từ vdevs sẽ chia tỷ lệ với # ổ đĩa.
ewwhite

1
Tôi có một lượng kinh nghiệm đáng kể với điều này và có thể xác nhận với bạn rằng trong hầu hết các tình huống, RAIDZ sẽ KHÔNG vượt trội so với cùng số lượng đĩa được ném vào một mảng tương đương RAID5 / 6 truyền thống. Hầu hết các mảng RAID5 / 6 truyền thống đều đạt được hiệu năng IOPS (hầu hết mọi người đều quan tâm, ngay cả khi họ không nghĩ họ làm như vậy) khi bạn thêm trục xoay vào bộ RAID, trong khi ZFS thì không. Đổi lại, ZFS sẽ không mất dữ liệu của bạn và không gặp phải vấn đề 'lỗ ghi RAID'. Thêm vào đó toàn bộ ảnh chụp nhanh, nhân bản, nén và như vậy. Và ARC. Và .. bạn có được ý tưởng.
Nex7

2
Tôi chỉ muốn rõ ràng - ZFS là do thiết kế của nó sẽ không chiến thắng bất kỳ cuộc chiến hiệu suất nào. Bạn có thể tìm thấy các hệ thống tập tin và trình quản lý khối (hoặc kết hợp) thay thế có thể vượt trội hơn ZFS trên cùng một phần cứng (ví dụ: ext4 & thẻ RAID thích ứng). Ngoại lệ duy nhất mà tôi biết là đến từ các lần đọc dễ dàng lưu vào bộ nhớ cache, trong đó ARC thường cung cấp cho ZFS hầu hết các lựa chọn thay thế. Nhưng khi viết thì sao? Không. Nỗ lực ZFS dành cho tính toàn vẹn dữ liệu và cách nó xử lý việc ghi gần như không bao giờ thắng các cuộc thi tốc độ. Sự đánh đổi là tính toàn vẹn và tính năng được thiết lập.
Nex7
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.