XFS文件系统在RHEL / CentOS 6.x中已损坏-我该怎么办?


28

RHEL的最新版本/ CentOS的(EL6)带来的一些有趣的变化XFS文件系统,我依赖严重了十多年。去年夏天,我花了一部分时间来追查由于文档记录不良而导致的XFS稀疏文件情况。自迁移到EL6以来,其他人则遇到了不幸的性能问题行为不一致的情况

XFS是我用于数据和增长分区的默认文件系统,因为它提供了比默认ext3文件系统更高的稳定性,可伸缩性和良好的性能。

2012年11月出现在EL6系统上的XFS出现问题。我注意到我的服务器即使在空闲时也显示出异常高的系统负载。在一种情况下,空载系统的平均负载平均值为3+。在其他情况下,负载会增加1+。挂载的XFS文件系统的数量似乎会影响负载增加的严重性。

系统有两个活动的XFS文件系统。升级到受影响的内核后,负载为+2。 在此处输入图片说明

深入研究,我在XFS邮件列表中发现了一些线程,这些线程指出xfsaild处于STAT D状态的进程的频率增加。相应的CentOS Bug TrackerRed Hat Bugzilla条目概述了该问题的细节,并得出结论,这不是性能问题。在2.6.32-279.14.1.el6以后的内核中,报告系统负载中只有一个错误。

WTF?!?

在一次性情况下,我了解到负载报告可能并不重要。尝试使用您的NMS和成百上千的服务器进行管理!在EL6.3下的201211月内核2.6.32-279.14.1.el6中确定了这一点。内核2.6.32-279.19.1.el62.6.32-279.22.1.el6在随后的几个月(2012年12月和2013年2月)中发布,此行为没有任何变化。自从发现此问题以来,甚至还发布了新的操作系统次要版本。EL6.4已发布,现在位于内核2.6.32-358.2.1.el6上,该内核具有相同的行为。

我有一个新的系统构建队列,并且不得不解决此问题,要么在2012年11月之前的版本中锁定内核版本以用于EL6.3,要么只是不使用XFS,而是选择ext4ZFS,这会严重影响性能。用于在顶部运行的特定自定义应用程序。有问题的应用程序严重依赖某些XFS文件系统属性来解决应用程序设计中的缺陷。

在Red Hat的付费专区知识库站点后面,出现一个条目,指出:

安装内核2.6.32-279.14.1.el6后,观察到较高的平均负载。平均负载高是由于每个XFS格式化设备的xfsaild进入D状态引起的。

当前没有解决此问题的方法。当前正在通过Bugzilla#883905进行跟踪。解决方法将已安装的内核软件包降级到低于2.6.32-279.14.1的版本。

(除了降级内核不是RHEL 6.4上的选项...)

因此,我们已经有4个多月的时间解决此问题,并且没有针对EL6.3或EL6.4 OS版本计划任何真正的修复。有一个针对EL6.5的建议修复程序和一个内核源补丁可用...但是我的问题是:

当上游维护者破坏了重要功能时,在什么时候离开操作系统提供的内核和软件包是有意义的?

红帽介绍了此错误。他们应该将修复程序合并到勘误内核中。使用企业操作系统的优势之一是它们提供了一致且可预测的平台目标。此错误在补丁程序周期内破坏了已经投入生产的系统,并降低了部署新系统的信心。虽然我可以将其中一个建议的补丁应用于源代码,但它的可伸缩性如何?随着操作系统的更改,需要保持警惕以保持更新。

什么是正确的举动?

  • 我们知道这可能是固定的,但不是固定的。
  • 在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所表现出的态度(请参阅Bug跟踪程序),老实说,我不认为他们已经对XFS感到困扰。自定义内核在这里很有意义,但是支付支持的意义是什么呢?也许CentOS是您的路..
pauska

5
<rant>我了解您的无奈,之前我曾负责过RHEL / CentOS混合环境,而RH使您有时很难保留很多东西,看到它们如何不断“忽略”以修复关键错误,有时他们会自我介绍。然后,他们确实为下一个主要版本安排了一个修复程序,但是由于他们不支持升级到下一个主要版本,因此没有什么帮助。在某些时候,我之所以选择在某些RHEL5机器上抛弃它们的官方内核,仅仅是因为我由于缺乏特定功能而不得不
这么做

1
@MartinSchröderSLES在美国并不特别流行,但是可以选择。XFS本身没有损坏,但是Red Hat对其进行了处理。值得考虑。
ewwhite 2013年

Answers:


14

当上游维护者破坏了重要功能时,在什么时候离开操作系统提供的内核和软件包是有意义的?

我的一般回答是“在供应商的内核或软件包被严重破坏以至于影响到您的业务的那一刻”(巧合的是,这也是我说开始寻找脱离供应商关系的方式的意义所在) 。

基本上就像您和其他人所说的那样,RedHat似乎不想在其分布式内核中对此进行修补(无论出于何种原因)。这几乎使您处于以下情况:必须滚动自己的内核(自己维护补丁程序的最新状态,维护自己的软件包并使用Puppet或类似程序将其安装在系统上,或者运行Yum或它们所支持的软件包服务器)今天使用可以参考),或者带弹珠回家。


是的,我知道带大理石回家通常是一个昂贵的提议-切换OS供应商是一个巨大的痛苦,尤其是在Linux世界中,从管理的角度来看,这些世界的根本不同。
诸如完全使用CentOS之类的其他选项也没有吸引力(因为您失去了支持,并且您实际上仍在获取由其他人构建的RedHat代码,因此您仍然会遇到此错误)。

不幸的是,除非有足够的人(例如,“大公司”)带弹弹回家,否则,供应商将不会太在乎通过发送错误的代码并对其进行修复来使人们陷入困境。



3

如果您确实需要修补RHEL内核,则可以自己进行修补并获得内核的正式支持,您只需要他们进行认证即可。

RHEL支持协议中有关于这样做的规定-ISTR每季度或每年限制为1或2,但不能确定记住。


很高兴知道!
ewwhite

这是不正确的。您可以从Red Hat请求加速修复,但是要满足此条件,必须满足一些标准,以及提供受支持的加速修复的几种不同方式。如果您要重新编译自己的内核,那么Red Hat不支持该内核。
suprjami

我有一个客户正是这样做的。我不认为他们会为每个人做到,但他们会做到。
MikeyB
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.