LINUX.ORG.RU
ФорумAdmin

Ломаются зависимости при массовом старте виртуалок

 , ,


0

2

Довольно давно уже бьюсь с такой проблемой. Есть 8 серверов, на каждом хостится по 40 виртуалок. Везде Centos 7. Иногда эти виртуалки стартуют одновременно и начинают в себя устанавливать пакеты - драйвера фс и собранное под них ядро. При этом иногда одна-две виртуалки внезапно не осиливают установку, которая валится с якобы ошибками зависимостей, примерно так

Error: Package: kmod-lustre-2.12.4.2_205.el7.x86_64 (/kmod-lustre-2.12.4.2_205_3.10.0_957.1.3.x4.4.40.x86_64)
           Requires: ksym(ib_query_port) = 0xc9ab4f08
Error: Package: kmod-lustre-2.12.4.2_205.el7.x86_64 (/kmod-lustre-2.12.4.2_205_3.10.0_957.1.3.x4.4.40.x86_64)
           Requires: ksym(rdma_bind_addr) = 0x19ea6b1f
Error: Package: kmod-lustre-2.12.4.2_205.el7.x86_64 (/kmod-lustre-2.12.4.2_205_3.10.0_957.1.3.x4.4.40.x86_64)
           Requires: ksym(ib_register_event_handler) = 0x749f0a70

Выглядит как попытка поставить модули под чужое ядро, но ядро гарантированно правильное. Другие точно такие же виртуалки ставятся успешно и если потом зайти на проблемную и сделать yum install руками - всё ставится без проблем.

Вероятность падения - около 0.5%. Может и меньше. Воспроизвести проблему при одиночном запуске не получается - то ли мало пытался, то ли проблема свойственна массовым одновременным запускам. Виртуалки (kvm) живут на отдельных ssd, репозитории все локальные, памяти на хостах полно.

У меня две версии, обе дурацкие - то ли это баг yum/rpm и я его ловлю просто по закону больших чисел, то ли где-то есть узкое место, которое проявляется таким странным образом. Но как например высокий i/o на хосте или сетевые проблемы, или затыки на стороне локального зеркала с репозиториями могут ломать именно разрешение зависимостей?

Вангую, что проблема в наличии узкого места.

Но как например высокий i/o на хосте или сетевые проблемы, или затыки на стороне локального зеркала с репозиториями могут ломать именно разрешение зависимостей?

Шут его знает. В качестве околонаучной гипотезы можно предположить ошибки в сетевых пакетах или долгое отсутствие ответа от сервера. Но это просто первое, что пришло в голову, ни на каком личном опыте не основано.

Я бы попробовал как-то рандомизовать время обновления виртуалок и после этого ещё раз потестить.

aureliano15 ★★ ()
Ответ на: комментарий от aureliano15

Вангую, что проблема в наличии узкого места.

Мне тоже так кажется.

можно предположить ошибки в сетевых пакетах

Тогда они не ставились со второй попытки. Я не уточнил - при установке пакеты ставятся не из реп, а сперва стаскиваются вгетом в /tmp и оттуда ставятся локально.

рандомизовать время обновления виртуалок

Не, это не выход. И суть проблемы найти не поможет.

pinus_nigra ()
Ответ на: комментарий от pinus_nigra

можно предположить ошибки в сетевых пакетах

Я не уточнил - при установке пакеты ставятся не из реп, а сперва стаскиваются вгетом в /tmp и оттуда ставятся локально.

Тогда я бы первым делом проверил при возникновении такой ошибки, все ли пакеты скачались этим самым wget’ом, и правильно ли скачались (по контрольным суммам).

Если проблема не в сети и не wget, то следующая гипотеза: одновременная нагрузка на диск.

Также есть вероятность того, что локальные репозитории не синхронизированы, если синхронизация репозитория идёт одновременно с обновлением виртуалки.

рандомизовать время обновления виртуалок

Не, это не выход. И суть проблемы найти не поможет.

Почему? Если проблема проявляется только при массовом обновлении, то велика вероятность того, что как раз в этом-то и дело.

aureliano15 ★★ ()
Ответ на: комментарий от pinus_nigra

а сперва стаскиваются вгетом в /tmp и оттуда ставятся локально.

А /tmp это не tmpfs, случайно?

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.