Назад | Перейти на главную страницу

Балансировка нагрузки с Piranha + Pulse перестала работать после 'yum update'

Мы успешно используем систему балансировки нагрузки Piranha + Pulse в течение 15 месяцев в нашей системе CentOS 6. Мы используем его для балансировки нагрузки двух веб-серверов. Обратите внимание, что наши веб-серверы также являются нашими балансировщиками нагрузки, поэтому в общей настройке у нас есть два сервера.

Сегодня мы обновили CentOS 6.4 до 6.5 и обновили все пакеты. Мы просто сделали и то, и другое, выполнив yum update. После обновления Pulse больше не запускается, поэтому балансировщик нагрузки не работает.

Одним из обновленных пакетов был piranha, который был обновлен с piranha-0.8.5-19.el6.x86_64 к piranha-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. Это не оптимальное решение, но на данный момент подойдет.

Вы можете использовать идентификатор отмены истории yum, где идентификатор - это идентификатор транзакции.

в твоем случае yum history undo 19