Останні версії 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.