Мы успешно используем систему балансировки нагрузки 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
. Кто знает, проблема также могла быть вызвана обновленной зависимостью. Было сделано много обновлений.
На данный момент есть два варианта: либо проблема должна быть исправлена с помощью нового пакета, либо мы должны вернуться к старому пакету. Любая помощь в достижении этого приветствуется.
Когда начинается импульс, он продолжает работать несколько секунд, а затем вылетает. 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 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