Chi phí cho ZFS RAIDZ2 trên các đĩa của khu vực 4K sẽ đi đâu?


8

Tôi đã bắt đầu bằng cách tạo 16 tệp trống có chính xác 1 tỷ byte:

for i in {1..16}; do dd if=/dev/zero of=/mnt/temp/block$i bs=1000000 count=1000 &> /dev/null; done

Sau đó, tôi đã tạo ra khối lượng RAIDZ2 lớn hơn và lớn hơn trên các tệp, buộc ashift = 12 để mô phỏng ổ đĩa 4K, ví dụ:

zpool create tank raidz2 -o ashift=12 /mnt/temp/block1 /mnt/temp/block2...

và sau đó so sánh sử dụng df -B1để xem kích thước thực tế.

Filesystem  1B-blocks
tank        12787777536

Kết quả của tôi:

+-------+-------------+-------------+------------+------------+
| disks |  expected   |   actual    |  overhead  | efficiency |
+-------+-------------+-------------+------------+------------+
|     3 |  1000000000 |   951975936 |   48024064 | 95.2       |
|     4 |  2000000000 |  1883766784 |  116233216 | 94.2       |
|     5 |  3000000000 |  2892234752 |  107765248 | 96.4       |
|     6 |  4000000000 |  3892969472 |  107030528 | 97.3       |
|     7 |  5000000000 |  4530896896 |  469103104 | 90.6       |
|     8 |  6000000000 |  5541068800 |  458931200 | 92.4       |
|     9 |  7000000000 |  6691618816 |  308381184 | 95.6       |
|    10 |  8000000000 |  7446331392 |  553668608 | 93.1       |
|    11 |  9000000000 |  8201175040 |  798824960 | 91.1       |
|    12 | 10000000000 |  8905555968 | 1094444032 | 89.1       |
|    13 | 11000000000 | 10403577856 |  596422144 | 94.6       |
|    14 | 12000000000 | 11162222592 |  837777408 | 93.0       |
|    15 | 13000000000 | 12029263872 |  970736128 | 92.5       |
|    16 | 14000000000 | 12787908608 | 1212091392 | 91.3       |
+-------+-------------+-------------+------------+------------+

Như một biểu đồ:

biểu đồ hiệu quả

  1. Là kết quả của tôi chính xác, hoặc tôi đã để lại một cái gì đó?
  2. Nếu họ đúng, tại sao? Không gian đi đâu?
  3. Tôi có thể làm bất cứ điều gì để cải thiện hiệu quả?
  4. Có một công thức để tính toán hiệu quả?

Tại sao? Chỉ là vì sao?!?
ewwhite

@ewwhite - Có không gian ít hơn tới 11% so với những gì tôi mong đợi. Nếu bạn có ổ đĩa 12x1TB, bạn sẽ có 10TB nhưng có ít hơn 9TB.
steveh7

Không, đó là một câu hỏi hay. Tôi không biết câu trả lời. Tôi có sự khác biệt lớn trong việc sử dụng zpool giữa ashift 9 và 12 và cùng một bộ dữ liệu.
ewwhite

Bạn có thể chạy lại chúng với các giá trị ashift từ 0 đến 12 và vẽ đồ thị trong 3D không?
Andrew

Câu trả lời:


3

Câu trả lời glib, vì RAIDZ (2) hút trên các ổ đĩa 4k.

  • Vấn đề # 548 : Sử dụng không gian không hiệu quả cao được quan sát thấy khi sử dụng raidz2 với ashift = 12
  • Vấn đề # 1807 : zvol trên RAIDZ2 chiếm gấp đôi không gian dự kiến ​​# 1807

Nó phải được thực hiện với các tính toán chẵn lẻ nuốt chửng một khối lượng không gian bổ sung, đặc biệt là với các tệp nhỏ hơn. Hãy thử làm cùng một bài kiểm tra đối với các tệp dưới 50 MB nếu bạn muốn thấy một số sự thiếu hiệu quả thực sự.


Câu trả lời này không thực tế, các lỗi đã được sửa ...
Arman

@Arman Nếu bạn đọc các bình luận trên 548, nó giải thích tại sao lại như vậy. 'Lỗi' trong 548 không được sửa, nó chỉ bị đóng; nó không được coi là một lỗi.
RobbieCrash
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.