使用 Piranha+Pulse 进行负载平衡在“yum update”后停止工作

使用 Piranha+Pulse 进行负载平衡在“yum update”后停止工作

我们已经在 CentOS 6 系统上成功使用了负载平衡系统 Piranha+Pulse 15 个月。我们使用它来平衡两台 Web 服务器的负载。请注意,我们的 Web 服务器也是我们的负载平衡器,因此我们的总设置中有两台服务器。

今天,我们从 CentOS 6.4 升级到 6.5,并更新了所有软件包。我们只需执行 即可完成这两项操作yum update。自更新以来,pulse 将不再启动,因此负载平衡器已关闭。

更新的软件包之一是 piranha,它从 更新到piranha-0.8.5-19.el6.x86_64piranha-0.8.6-2.el6_4.1.x86_64这个问题也可能是由更新的依赖项引起的,谁知道呢。进行了大量更新。

目前,有两个选择:要么使用新软件包修复该问题,要么恢复使用旧软件包。如能提供任何帮助,我们将不胜感激。

我在 Pulse 上发现了什么

当脉冲启动时,它会持续运行几秒钟,然后崩溃。service pulse status然后显示pulse dead but pid file exists

这是/var/log/messages尝试启动脉冲时显示的内容:

Jan  8 13:12:25 XXX pulse[14028]: STARTING PULSE AS BACKUP
Jan  8 13:12:25 XXX pulse[14028]: Skipping death of unknown child 14029
Jan  8 13:12:26 XXX ntpd[9119]: Listen normally on 12 lo:1:0 xx.xx.xx.xx UDP 123
Jan  8 13:12:26 XXX ntpd[9119]: peers refreshed
Jan  8 13:12:31 XXX pulse[14028]: partner dead: activating lvs
Jan  8 13:12:31 XXX pulse[14028]: Error waiting for semaphore: Interrupted system call
Jan  8 13:12:32 XXX ntpd[9119]: Deleting interface #12 lo:1:0, xx.xx.xx.xx#123, interface stats: received=0, sent=0, dropped=0, active_time=6 secs
Jan  8 13:12:32 XXX ntpd[9119]: peers refreshed

我发现有人遇到了类似的问题:https://www.centos.org/forums/viewtopic.php?f=13&t=44198。我的错误信息略有不同(Interrupted system call而不是Permission denied)。不幸的是,建议的答案对我不起作用。我仍然收到相同的错误。

我用 yum 尝试过

yum history list piranha显示以下内容:

Loaded plugins: fastestmirror, security
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    19 |  <yy>                    | 2014-01-08 11:39 | I, U           |  184 EE
    15 |  <yy>                    | 2013-05-22 11:00 | I, O, U        |  254 EE
    11 |  <yy>                    | 2012-10-18 16:37 | Install        |    2
history list

我无法发布的完整输出yum history info 19,因为内容对于这篇文章来说太长了。

yum downgrade piranha失败:

Loaded plugins: fastestmirror, security
Setting up Downgrade Process
Loading mirror speeds from cached hostfile
 * base: mirror.nl.leaseweb.net
 * extras: centos.mirror.transip.nl
 * updates: mirror.nl.leaseweb.net
Only Upgrade available on package: piranha-0.8.6-4.el6.x86_64
Nothing to do

yum history undo 19我尝试使用和恢复最新更新yum history rollback 18。如果我这样做,我会收到以下错误:

Error: Depsolving loop limit reached.
Error: Package: yum-3.2.29-40.el6.centos.noarch (base)
       Requires: python(abi) = 2.6
       Removing: python-2.6.6-51.el6.x86_64 (@base)
           python(abi) = 2.6
Error: Package: yum-3.2.29-40.el6.centos.noarch (base)
       Requires: python-urlgrabber >= 3.9.0-8
       Removing: python-urlgrabber-3.9.1-9.el6.noarch (@base)
           python-urlgrabber = 3.9.1-9.el6
Error: Package: yum-3.2.29-40.el6.centos.noarch (base)
       Requires: yum-metadata-parser >= 1.1.0
       Removing: yum-metadata-parser-1.1.2-16.el6.x86_64 (@anaconda-CentOS-201111250358.x86_64/6.3)
           yum-metadata-parser = 1.1.2-16.el6
Error: Package: yum-3.2.29-40.el6.centos.noarch (base)
       Requires: python-iniparse
       Removing: python-iniparse-0.3.1-2.1.el6.noarch (@anaconda-CentOS-201111250358.x86_64/6.3)
           python-iniparse = 0.3.1-2.1.el6
Error: Package: yum-3.2.29-40.el6.centos.noarch (base)
       Requires: pygpgme
       Removing: pygpgme-0.1-18.20090824bzr68.el6.x86_64 (@anaconda-CentOS-201111250358.x86_64/6.3)
           pygpgme = 0.1-18.20090824bzr68.el6
Error: Package: yum-3.2.29-40.el6.centos.noarch (base)
       Requires: python >= 2.4
       Removing: python-2.6.6-51.el6.x86_64 (@base)
           python = 2.6.6-51.el6
Error: Package: yum-3.2.29-40.el6.centos.noarch (base)
       Requires: rpm-python
       Removing: rpm-python-4.8.0-37.el6.x86_64 (@base)
           rpm-python = 4.8.0-37.el6
Error: Package: yum-3.2.29-40.el6.centos.noarch (base)
       Requires: rpm >= 4.4.2
       Removing: rpm-4.8.0-37.el6.x86_64 (@base)
           rpm = 4.8.0-37.el6
Error: Package: yum-3.2.29-40.el6.centos.noarch (base)
       Requires: /usr/bin/python
       Removing: python-2.6.6-51.el6.x86_64 (@base)
           Not found
Error: Package: yum-3.2.29-40.el6.centos.noarch (base)
       Requires: python-sqlite
       Removing: python-2.6.6-51.el6.x86_64 (@base)
           python-sqlite = 2.3.2
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

关于食人鱼,这个脚本说(输出管道到grep piranha):

Updated     piranha-0.8.6-2.el6_4.1.x86_64                               @updates
--> Processing Dependency: initscripts for package: piranha-0.8.6-4.el6.x86_64
--> Processing Dependency: initscripts for package: piranha-0.8.6-4.el6.x86_64
---> Package piranha.x86_64 0:0.8.6-4.el6 will be erased

当我--skip-broken按照建议使用时,仍然会出现错误,并且 piranha 仍然没有降级。我收到以下错误:

Packages skipped because of dependency problems:
    yum-3.2.29-40.el6.centos.noarch from base
Error: Trying to remove "yum", which is protected
 You could try running: rpm -Va --nofiles --nodigest

更新

我们已经联系了 RedHat,这可能是一个错误。他们有一个可能的修复程序,但 RedHat 无法重现它,所以他们目前无法测试它。我建议将可能的修复程序发送给我们,以便我们可以尝试。他们还没有收到回复。

目前,我们通过 lvsd 自行管理负载平衡。这不是最佳解决方案,但目前可以做到。

答案1

您可以使用 yum history undo ID,其中 ID 是事务的 ID。

你的情况yum history undo 19

相关内容