Файлова система XFS зламана в RHEL / CentOS 6.x - Що я можу з цим зробити?


28

Останні версії RHEL / CentOS (EL6) внесли кілька цікавих змін у файлову систему XFS, від якої я сильно залежав понад десятиліття. Я провів частину минулого літа, переслідуючи розріджену ситуацію з файлами XFS внаслідок погано задокументованого резервного ядра ядра. Інші мали невдалі проблеми з роботою або непослідовною поведінкою з моменту переходу на EL6.

XFS була моєю файловою системою за замовчуванням для даних та розділів зростання, оскільки вона забезпечила стабільність, масштабованість та гарне підвищення продуктивності над типовою файловою системою ext3.

Існує проблема з XFS на системах EL6, яка виникла в листопаді 2012 року. Я помітив, що мої сервери показують ненормально високі навантаження системи навіть у режимі очікування. В одному випадку незавантажена система показала б постійне середнє навантаження 3+. В інших був навантаження 1+. Кількість змонтованих файлових систем XFS, здається, впливає на серйозність збільшення навантаження.

Система має дві активні файлові системи XFS. Завантаження становить +2 після оновлення до ураженого ядра. введіть тут опис зображення

Копаючи глибше, я знайшов кілька потоків у списку розсилки XFS, які вказували на підвищену частоту xfsaildпроцесу, що знаходиться у стані STAT D. Відповідні записи програми відслідковування помилок CentOS та програми Red Hat Bugzilla окреслюють специфіку проблеми та роблять висновок, що це не проблема ефективності; лише помилка в повідомленні про завантаження системи в ядрах, що перевищує 2.6.32-279.14.1.el6 .

WTF?!?

У разовій ситуації я розумію, що звітність про навантаження може не бути великою справою. Спробуйте керувати цим своїм NMS та сотнями чи тисячами серверів! Це було визначено в листопаді 2012 року в ядрі 2.6.32-279.14.1.el6 відповідно до EL6.3. Ядра 2.6.32-279.19.1.el6 та 2.6.32-279.22.1.el6 були випущені в наступні місяці (грудень 2012 та лютий 2013 року), без зміни цієї поведінки. З моменту виявлення цієї проблеми навіть з’явився новий незначний випуск операційної системи. EL6.4 був випущений і тепер знаходиться на ядрі 2.6.32-358.2.1.el6 , яке проявляє таку ж поведінку.

У мене була нова черга на складання системи, і мені довелося вирішити проблему, або блокуючи версії ядра на випуск до листопада 2012 року для EL6.3, або просто не використовуючи XFS, вибираючи для ext4 або ZFS , з суворим покаранням за продуктивність для конкретного користувацького додатка, що працює на вершині. Програма, про яку йдеться, значною мірою покладається на деякі атрибути файлової системи XFS для обліку недоліків у дизайні програми.

Заходячи на веб-сайт бази знань Red Hat , з'являється запис із зазначенням:

Висока середня завантаженість спостерігається після установки ядра 2.6.32-279.14.1.el6. Високе середнє навантаження спричинено тим, що xfsaild переходить у стан D для кожного пристрою, відформатованого XFS.

Наразі немає вирішення цього питання. Наразі відстежується через Bugzilla # 883905. Обхід Пониження встановленого пакету ядра до версії, нижчої за 2.6.32-279.14.1.

(за винятком пониження ядер, які не є опцією на RHEL 6.4 ...)

Таким чином, ми перебуваємо 4+ місяців у цій проблемі, не планується реальна корекція випусків версій ОС EL6.3 або EL6.4. Існує запропоноване виправлення для EL6.5 та виправлення джерела ядра ... Але моє питання:

У який момент має сенс відходити від ядер та пакетів, наданих ОС, коли сервіс, що підтримує верхній потік, порушив важливу функцію?

Red Hat представив цю помилку. Вони повинні включати виправлення в ядро ​​errata. Однією з переваг використання операційних систем підприємства є те, що вони забезпечують послідовну та передбачувану цільову платформу . Ця помилка порушила системи, які вже випускаються під час циклу патчів, і знизила впевненість у розгортанні нових систем. Хоча я міг застосувати один із запропонованих патчів до вихідного коду , наскільки це масштабовано? Потрібно мати певну пильність, щоб постійно оновлюватись із зміною ОС.

Який тут правильний хід?

  • Ми знаємо, що це може бути виправлено, але не коли.
  • Підтримка власного ядра в екосистемі Red Hat має власний набір застережень.
  • Який вплив на придатність підтримки?
  • Чи слід просто накладати робоче ядро ​​EL6.3 поверх новоспечених серверів EL6.4, щоб отримати належний функціонал XFS?
  • Потрібно просто зачекати, поки це офіційно буде встановлено?
  • Що це говорить про відсутність контролю над циклами випуску корпоративного Linux?
  • Чи так довго покладався на файлову систему XFS у помилці планування / проектування?

Редагувати:

Цей патч був включений до останнього випуску ядра CentOSPlus ( kernel-2.6.32-358.2.1.el6.centos.plus ). Я тестую це на своїх системах CentOS, але це не дуже допомагає для серверів на базі Red Hat.


3
Я завжди був впевнений, що якщо ви користуєтеся EL6 і платите підтримку RHEL, то це їх вирішення вирішити?
Том О'Коннор

6
Так ... Red Hat це виправить ... За власним графіком !! - Ця проблема виникла наприкінці 2012 року. Вона все ще не виправлена. Це ніколи не планується на ремонт до виходу RHEL 6.5, так що технічно вони є піклуючись про неї ...
ewwhite

Що ж, з позицією Red Hat проявляється (перегляньте помилку на відслідковування), я, чесно кажучи, не вірю, що вони більше не турбуються з XFS. Тут є сенс користувацького ядра, але який сенс платити за підтримку? Можливо, CentOS - це ваш шлях ..
pauska

5
<rant> Я розумію ваше розчарування, я відповідав за змішане середовище RHEL / CentOS раніше, і RH дуже важко вам інколи зберігати речі, бачачи, як вони постійно «ігнорують» виправлення вирішальних помилок, іноді яких вони представляють . Потім вони планують виправити наступний великий реліз, але оскільки вони не підтримують оновлення до наступної основної версії, це мало корисно. У якийсь момент я вирішив скинути їхні офіційні ядра на деяких ящиках RHEL5 просто тому, що мені довелося через відсутність конкретної функції. </rant>
Адріан Фрюхвітрт

1
@ MartinSchröder SLES не особливо популярний у США, але це може бути варіантом. Сам XFS не зламаний, але Red Hat поводиться з цим. Варто подумати.
ewwhite

Відповіді:


14

У який момент має сенс відходити від ядер та пакетів, наданих ОС, коли сервіс, що підтримує верхній потік, порушив важливу функцію?

"У тому випадку, коли ядро ​​або пакети постачальника настільки жахливо розбиті, що впливають на ваш бізнес", - це моя загальна відповідь (випадково це стосується і того пункту, коли я кажу, що є сенс почати шукати способи відходу від відносин з постачальником) .

В основному, як ви та інші сказали, RedHat, здається, не хоче виправляти це у своєму розподіленому ядрі (з будь-якої причини). Це в значній мірі залишає вас в ситуації, коли вам доведеться прокручувати власне ядро ​​(постійно оновлювати патчі, підтримувати власний пакет і встановлювати його на ваші системи з Puppet або подібним, або запускати сервер пакетів, що Yum чи що завгодно вони використовуйте сьогодні для посилань), або беруть свій мармур і їдуть додому.


Так, я знаю, що прийняття ваших мармурів і повернення додому часто є дорогою пропозицією - переключення постачальників ОС - це величезна біль, особливо в світі Linux, де смаки кардинально відрізняються від адміністративної точки зору.
Інші варіанти, як повністю працювати з CentOS, також є непривабливими (тому що ви втрачаєте підтримку, і ви все ще отримуєте, по суті, код RedHat, побудований кимось іншим, щоб у вас все-таки була помилка).

На жаль, якщо достатньо людей (тобто "величезні компанії) не беруть мармур і не повертаються додому, продавець не буде так сильно піклуватися про те, щоб накрутити людей, доставляючи поганий код і не виправляючи його.


14

Це було виправлено ( тихо ) Red Hat 23 квітня 2013 року в ядрі RHEL-2.6.32-358.6.1.el6 як частина оновлень 6.4 errata ...


2
Через 20 тижнів після повідомлення про помилку, через 2 тижні після публікації тут, ви вважаєте, що, можливо, Redhat побачив усі поради, що говорять про "пішки"
Ясен

Можливо? Я не впевнений.
ewwhite

3

Якщо вам необхідно пропатчити ядро RHEL, ви можете зробити це самостійно і офіційно підтримується на цьому ядрі, вам просто потрібно для них , щоб засвідчити його.

У договорі про підтримку RHEL є положення про це - ISTR, ви обмежені на 1 або 2 на квартал або рік, але не можете точно згадати.


Дуже добре знати!
ewwhite

Це неправильно. Ви можете подати запит на прискорене виправлення у Red Hat, але є критерії, яким має відповідати проблема, для того, щоб це було доставлено, та кілька різних способів доставки підтримуваного прискореного виправлення. Якщо ви перепрофілюєте власне ядро, це ядро ​​не підтримується Red Hat.
suprjami

У мене є замовник, який робить саме це. Я не думаю, що вони роблять це для всіх, але вони це роблять.
MikeyB
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.