Hệ thống tập tin XFS bị hỏng trong RHEL / CentOS 6.x - Tôi có thể làm gì với nó?


28

Các phiên bản gần đây của RHEL / CentOS (EL6) đã mang lại một số thay đổi thú vị cho hệ thống tệp XFS mà tôi đã phụ thuộc rất nhiều trong hơn một thập kỷ. Tôi đã dành một phần của mùa hè năm ngoái để theo đuổi một tình huống tệp XFS thưa thớt do một backport kernel được ghi chép kém. Những người khác đã có vấn đề về hiệu suất đáng tiếc hoặc hành vi không nhất quán kể từ khi chuyển sang EL6.

XFS là hệ thống tệp mặc định của tôi cho các phân vùng dữ liệu và tăng trưởng, vì nó mang lại sự ổn định, khả năng mở rộng và tăng hiệu suất tốt so với các hệ thống tệp ext3 mặc định.

Có một vấn đề với XFS trên các hệ thống EL6 xuất hiện vào tháng 11 năm 2012. Tôi nhận thấy rằng các máy chủ của tôi đang hiển thị tải hệ thống cao bất thường, ngay cả khi không hoạt động. Trong một trường hợp, một hệ thống không tải sẽ hiển thị trung bình tải không đổi là 3+. Trong những người khác, đã có hơn 1 vết sưng. Số lượng các hệ thống tập tin XFS được gắn dường như ảnh hưởng đến mức độ nghiêm trọng của việc tăng tải.

Hệ thống có hai hệ thống tập tin XFS hoạt động. Tải là +2 sau khi nâng cấp lên kernel bị ảnh hưởng. nhập mô tả hình ảnh ở đây

Tìm hiểu sâu hơn, tôi tìm thấy một vài luồng trong danh sách gửi thư XFS chỉ ra tần suất tăng của xfsaildquá trình ngồi ở trạng thái STAT D. Các mục nhập theo dõi lỗi tương ứng của CentOSRed Bug Bugzilla phác thảo các chi tiết cụ thể của vấn đề và kết luận rằng đây không phải là vấn đề về hiệu năng; chỉ có một lỗi trong báo cáo tải hệ thống trong các hạt nhân mới hơn 2.6.32-279.14.1.el6 .

WTF?!?

Trong tình huống một lần, tôi hiểu rằng báo cáo tải có thể không phải là vấn đề lớn. Hãy thử quản lý điều đó với NMS của bạn và hàng trăm hoặc hàng ngàn máy chủ! Điều này đã được xác định vào tháng 11 năm 2012 tại kernel 2.6.32-279.14.1.el6 theo EL6.3. Kernels 2.6.32-279.19.1.el62.6.32-279.22.1.el6 đã được phát hành trong những tháng tiếp theo (tháng 12 năm 2012 và tháng 2 năm 2013) mà không thay đổi hành vi này. Thậm chí đã có một bản phát hành nhỏ mới của hệ điều hành kể từ khi vấn đề này được xác định. EL6.4 đã được phát hành và hiện đã có trên kernel 2.6.32-358.2.1.el6 , thể hiện hành vi tương tự.

Tôi đã có một hàng đợi xây dựng hệ thống mới và đã phải khắc phục sự cố, hoặc khóa các phiên bản kernel tại phiên bản trước tháng 11 năm 2012 cho EL6.3 hoặc không sử dụng XFS, chọn ext4 hoặc ZFS , với hình phạt hiệu năng nghiêm trọng cho các ứng dụng tùy chỉnh cụ thể chạy trên đỉnh. Ứng dụng được đề cập phụ thuộc rất nhiều vào một số thuộc tính hệ thống tệp XFS để giải thích cho sự thiếu sót trong thiết kế ứng dụng.

Đi đằng sau trang web kiến ​​thức được trả tiền của Red Hat , một mục xuất hiện cho biết:

Trung bình tải cao được quan sát thấy sau khi cài đặt kernel 2.6.32-279.14.1.el6. Trung bình tải cao là do xfsaild chuyển sang trạng thái D cho mỗi thiết bị được định dạng XFS.

Hiện tại không có giải pháp cho vấn đề này. Nó hiện đang được theo dõi thông qua Bugzilla # 883905. Giải pháp hạ cấp gói kernel đã cài đặt xuống phiên bản thấp hơn 2.6.32-279.14.1.

(ngoại trừ việc hạ cấp hạt nhân không phải là một tùy chọn trên RHEL 6.4 ...)

Vì vậy, chúng tôi đã giải quyết vấn đề này hơn 4 tháng mà không có bản sửa lỗi thực sự nào được lên kế hoạch cho các bản phát hành HĐH EL6.3 hoặc EL6.4. Có một bản sửa lỗi được đề xuất cho EL6.5 và bản vá nguồn kernel có sẵn ... Nhưng câu hỏi của tôi là:

Tại thời điểm nào thì có ý nghĩa khi rời khỏi các gói và gói do hệ điều hành cung cấp khi bộ duy trì ngược dòng đã phá vỡ một tính năng quan trọng?

Red Hat đã giới thiệu lỗi này. Họ nên kết hợp một sửa chữa vào một kernel errata. Một trong những lợi thế của việc sử dụng các hệ điều hành doanh nghiệp là chúng cung cấp một mục tiêu nền tảng nhất quán và có thể dự đoán được . Lỗi này đã phá vỡ các hệ thống đã được sản xuất trong một chu kỳ vá lỗi và làm giảm sự tự tin trong việc triển khai các hệ thống mới. Trong khi tôi có thể áp dụng một trong các bản vá được đề xuất cho mã nguồn , làm thế nào có thể mở rộng được? Nó sẽ đòi hỏi một số cảnh giác để tiếp tục cập nhật khi hệ điều hành thay đổi.

Điều gì đúng di chuyển ở đây?

  • Chúng tôi biết điều này có thể có thể được sửa chữa, nhưng không phải khi nào.
  • Hỗ trợ hạt nhân của riêng bạn trong hệ sinh thái Red Hat có bộ cảnh báo riêng.
  • Điều gì ảnh hưởng đến đủ điều kiện hỗ trợ?
  • Tôi có nên phủ lớp nhân EL6.3 đang hoạt động lên trên các máy chủ EL6.4 mới được xây dựng để có được chức năng XFS phù hợp không?
  • Tôi có nên đợi cho đến khi điều này được sửa chữa chính thức?
  • Điều này nói gì về sự thiếu kiểm soát mà chúng ta có trong các chu kỳ phát hành Linux của doanh nghiệp?
  • Việc dựa vào một hệ thống tập tin XFS quá lâu là một lỗi lập kế hoạch / thiết kế?

Chỉnh sửa:

Bản vá này đã được tích hợp vào bản phát hành nhân CentOSPlus gần đây nhất ( kernel-2.6.32-358.2.1.el6.centos.plus ). Tôi đang thử nghiệm điều này trên các hệ thống CentOS của mình, nhưng điều này không giúp ích nhiều cho các máy chủ dựa trên Red Hat.


3
Tôi luôn tin tưởng rằng nếu bạn đang sử dụng EL6 và trả tiền hỗ trợ cho RHEL, thì đó là trách nhiệm của họ để khắc phục nó cho bạn?
Tom O'Connor

6
Phải ... Red Hat sẽ sửa nó ... Theo thời gian biểu của riêng họ !! - Vấn đề này nổi lên vào cuối năm 2012. Nó vẫn chưa được sửa. Nó không được dự kiến ​​sửa chữa cho đến khi phát hành RHEL 6.5, vì vậy về mặt kỹ thuật, họ đang chăm sóc nó ...
ewwhite

Chà, với thái độ mà Red Hat đang thể hiện (tham khảo trình theo dõi lỗi) Tôi thực sự không tin rằng họ đang làm phiền với XFS nữa. Một hạt nhân tùy chỉnh có ý nghĩa ở đây, nhưng điểm trả tiền cho hỗ trợ là gì? Có lẽ CentOS là con đường của bạn ..
pauseka

5
<rant> Tôi hiểu sự thất vọng của bạn, tôi đã chịu trách nhiệm cho một môi trường hỗn hợp RHEL / CentOS trước đây và RH khiến bạn rất khó để giữ mọi thứ đôi khi, xem cách chúng liên tục "phớt lờ" để sửa các lỗi nghiêm trọng, đôi khi chúng tự giới thiệu . Sau đó, họ lên lịch sửa lỗi cho phiên bản chính tiếp theo, nhưng vì họ không hỗ trợ nâng cấp lên phiên bản chính tiếp theo nên điều này rất ít hữu ích. Tại một số thời điểm, tôi đã chọn bỏ hạt nhân chính thức của họ vào một số hộp RHEL5 chỉ vì tôi phải thiếu một tính năng cụ thể. </ Rant>
Adrian Frühwirth

1
@ MartinSchröder SLES không đặc biệt phổ biến ở Mỹ, nhưng nó có thể là một lựa chọn. Bản thân XFS không bị hỏng, nhưng cách xử lý của Red Hat là như vậy. Thật đáng để xem xét.
ewwhite

Câu trả lời:


14

Tại thời điểm nào thì có ý nghĩa khi rời khỏi các gói và gói do hệ điều hành cung cấp khi bộ duy trì ngược dòng đã phá vỡ một tính năng quan trọng?

"Tại thời điểm mà các gói hoặc gói của nhà cung cấp bị phá vỡ khủng khiếp đến mức chúng ảnh hưởng đến doanh nghiệp của bạn" là câu trả lời chung của tôi (ngẫu nhiên đây cũng là điểm mà tôi nói thật hợp lý khi bắt đầu tìm cách rời khỏi mối quan hệ nhà cung cấp) .

Về cơ bản như bạn và những người khác đã nói, RedHat dường như không muốn vá điều này trong kernel phân tán của họ (vì bất kỳ lý do gì). Điều đó khiến bạn rơi vào tình trạng phải tự tạo kernel (cập nhật bản vá, tự duy trì gói và cài đặt nó trên hệ thống của mình bằng Puppet hoặc tương tự, hoặc chạy máy chủ gói Yum hoặc bất cứ thứ gì chúng sử dụng ngày hôm nay có thể tham khảo), hoặc lấy viên bi của bạn và về nhà.


Có, tôi biết việc lấy viên bi của mình và về nhà thường là một đề xuất đắt đỏ - việc chuyển đổi các nhà cung cấp hệ điều hành là một nỗi đau rất lớn, đặc biệt là trong thế giới Linux nơi các hương vị hoàn toàn khác biệt với quan điểm hành chính.
Các tùy chọn khác như đi hoàn toàn CentOS cũng không hấp dẫn (vì bạn mất hỗ trợ và về cơ bản bạn vẫn nhận được mã của RedHat do người khác tạo nên bạn vẫn gặp lỗi này).

Thật không may, trừ khi đủ người (tức là "các công ty lớn) lấy viên bi của họ và về nhà, nhà cung cấp sẽ không quan tâm quá nhiều đến việc lừa đảo mọi người bằng cách vận chuyển mã xấu và không sửa nó.


14

Điều này đã được sửa chữa ( một cách lặng lẽ ) bởi Red Hat ngày 23 tháng 4 năm 2013 trong kernel RHEL-2.6.32-358.6.1.el6 như một phần của bản cập nhật 6.4 errata ...


2
20 tuần sau báo cáo lỗi, 2 tuần sau khi đăng bài ở đây, Bạn có nghĩ rằng có lẽ redhat đã thấy tất cả lời khuyên nói "hãy đi bộ"
Jasen

Có lẽ? Tôi không chắc.
ewwhite

3

Nếu bạn cần vá kernel RHEL của mình, bạn có thể tự làm và được hỗ trợ chính thức trên kernel đó , bạn sẽ chỉ cần họ chứng nhận nó.

Có những điều khoản trong thỏa thuận hỗ trợ của RHEL để làm như vậy - ISTR bạn bị giới hạn ở mức 1 hoặc 2 mỗi quý hoặc năm nhưng không thể nhớ chắc chắn.


Rất tốt để biết!
ewwhite

Điều này LAF không đúng. Bạn có thể yêu cầu một bản sửa lỗi được tăng tốc từ Red Hat, nhưng có những tiêu chí mà vấn đề phải đáp ứng để giải quyết vấn đề này và một số cách khác nhau để cung cấp bản sửa lỗi được tăng tốc được hỗ trợ. Nếu bạn biên dịch lại kernel của chính mình, kernel đó không được Red Hat hỗ trợ.
suprjami

Tôi có một khách hàng làm chính xác điều này. Tôi không nghĩ họ làm điều đó cho mọi người nhưng họ làm điều đó.
MikeyB
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.