Hoạt động mkfs diễn ra rất lâu trên Linux Software Raid 5


9

Tôi đã thiết lập một cuộc đột kích phần mềm Linux cấp 5 bao gồm các đĩa 4 * 2 TB. Mảng đĩa được tạo với kích thước sọc 64k và không có tham số cấu hình nào khác. Sau khi xây dựng lại ban đầu, tôi đã cố gắng tạo một hệ thống tập tin và bước này mất rất nhiều thời gian (khoảng nửa giờ trở lên). Tôi đã cố gắng tạo một hệ thống tập tin xfs và ext3, cả hai mất nhiều thời gian, với mkfs.ext3 Tôi đã quan sát hành vi sau đây, có thể hữu ích:

  • viết bảng inode chạy nhanh cho đến khi đạt 1053 (~ 1 giây), sau đó nó viết khoảng 50, đợi trong hai giây, sau đó 50 bảng tiếp theo được viết (theo màn hình bảng điều khiển)
  • Khi tôi cố gắng hủy hoạt động với Control + C, nó sẽ bị treo trong nửa phút trước khi nó thực sự bị hủy

Hiệu suất của các đĩa riêng lẻ rất tốt, tôi đã chạy bonnie ++ trên từng đĩa riêng biệt với các giá trị ghi / đọc khoảng 95 / 110MB / s. Ngay cả khi tôi chạy bonnie ++ trên mọi ổ đĩa song song, các giá trị chỉ giảm khoảng 10 MB. Vì vậy, tôi đang loại trừ lập lịch phần cứng / I / O nói chung như là một nguồn vấn đề.

Tôi đã thử các tham số cấu hình khác nhau cho kích thước sọc_cache_size và kích thước đọc nhưng không thành công, nhưng tôi không nghĩ chúng có liên quan đến hoạt động tạo hệ thống tệp.

Các chi tiết máy chủ:

  • Máy chủ Linux 2.6,35-27-chung # 48-Ubuntu SMP x86_64 GNU / Linux
  • mdadm - v2.6.7.1

Có ai có một đề nghị về cách gỡ lỗi này nữa không?

Câu trả lời:


4

Tôi đồng ý, rằng nó có thể liên quan đến căn chỉnh sọc. Từ kinh nghiệm của tôi, việc tạo XFS không được phân bổ trên 3 * 2TB RAID-0 mất ~ 5 phút nhưng nếu nó được căn chỉnh theo kích thước sọc thì nó là ~ 10-15 giây. Dưới đây là lệnh để căn chỉnh kích thước sọc XFS đến 256KB:

mkfs.xfs -l internal,lazy-count=1,sunit=512 -d agsize=64g,sunit=512,swidth=1536 -b size=4096 /dev/vg10/lv00

BTW, chiều rộng sọc trong trường hợp của tôi là 3 đơn vị, sẽ giống nhau cho bạn với 4 ổ đĩa nhưng trong raid-5.

Rõ ràng, điều này cũng cải thiện hiệu suất của FS, vì vậy bạn tốt hơn nên giữ nó thẳng hàng.


Xin chào, điều này không tạo ra sự khác biệt nào, tôi đã thử: time mkfs.xfs -l sunit=128 -d agsize=64g,sunit=128,swidth=512 -b size=4096 /dev/md0 -fmất khoảng thời gian tương tự như mkfs mà không có bất kỳ tham số nào
Elmar Weber

Tôi đang chạy bonnie ++ vì vậy hãy xem liệu nó có làm thay đổi hiệu năng trong quá trình hoạt động không. btw: có bất kỳ lý do cho tham số agsize? Tôi đọc trang man nhưng không thể suy ra lợi ích của việc đặt nó thành giá trị.
Elmar Weber

(btw: lệnh trên đã sai, swidth đúng là 384)
Elmar Weber

Tôi không nhận được bất kỳ tăng hiệu suất nào trên mkfs, nhưng hiệu suất tổng thể được đo bằng bonnie ++ tốt hơn nhiều: Thao tác tạo / xóa tệp tốt hơn khoảng 4 lần so với trước đây và tốc độ ghi tuần tự khoảng 15%. Cảm ơn rất nhiều.
Elmar Weber

2
agsize không thực sự cần thiết ở đây - mkfs sẽ tự động tính toán (có thể chia kích thước của âm lượng cho số lượng CPU logic). Nó là phần còn lại từ thiết lập của riêng tôi - Tôi đã tạo ra tập này với một số kỳ vọng cho sự thay đổi cấu hình trong tương lai.
dtoubelis

6

Tôi nghi ngờ bạn đang gặp phải vấn đề ghi nhỏ điển hình RAID5. Để ghi dưới kích thước của một sọc, nó phải thực hiện đọc-sửa-ghi cho cả dữ liệu và tính chẵn lẻ. Nếu chữ viết có cùng kích thước với sọc, nó có thể ghi đè lên tính chẵn lẻ, vì nó biết giá trị là gì và không phải tính toán lại.


Sẽ có ý nghĩa, tôi có nhìn thấy điều này một cách chính xác không?: Theo đầu ra mkfs.ext3, nó viết khoảng 25 bảng inode một giây, tôi giả sử rằng chúng nhỏ hơn 64k trong quá trình tạo ban đầu, do đó, một dải 64k được viết. Điều này có nghĩa là ghi 16k vào mỗi đĩa, do đó, cùng với 25 lần ghi 16k ngẫu nhiên mỗi giây, với kích thước cung 4kb, điều này có nghĩa là 100 thao tác i / o ngẫu nhiên mỗi giây, đó là về những gì bonnie ++ thể hiện.
Elmar Weber

Khớp với kết quả từ bonnie ++ trên cuộc đột kích thực tế, đọc 335 MB và ghi 310 MB, tuy nhiên việc tạo và xóa tệp chỉ bằng 1/4 hiệu suất đĩa đơn.
Elmar Weber

3

Mkfs và hiệu suất hệ thống tệp tiếp theo của bạn có thể được cải thiện nếu bạn chỉ định bước tiến và độ rộng sọc khi tạo hệ thống tệp. Nếu bạn đang sử dụng các khối 4k mặc định, sải chân của bạn là 16 (Dải RAID 64k chia cho khối hệ thống tệp là 4k) và chiều rộng sọc của bạn là 48 (sải bước của hệ thống tệp là 16 nhân với 3 đĩa dữ liệu trong mảng của bạn).

mkfs.ext3 -E stride=16 stripe-width=48 /dev/your_raid_device
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.