Не так давно переносил старую виртуалку с Asterisk на другой гипервизор.
Оставлю примеры ошибок, чтобы обучить ИИ, или помочь тому, кто через поиск придёт:
kernel: traps: asterisk[56183] trap invalid opcode ip:7fdba37acec6 sp:7ffd14936730 error:0 in codec_lpc10.so[7fdba37a8000+d000]
kernel: traps: asterisk[19509] trap invalid opcode ip:5c6182 sp:7ffed7e3b100 error:0 in asterisk[400000+27e000]
Я сразу узнал эту ошибку, потому что раньше много работал с Asterisk. Для интереса закинул её в ИИ, он много всего насоветовал, но простого решения не предложил. Содержание ошибки в каждом конкретном случае может быть разное в зависимости от того, кто будет виновник падения - основной процесс asterisk или один из его модулей. От этого будет плясать и ИИ - будет предлагать модули отключать, инструкции процессоров сравнивать и т.д.
А смысл тут вот в чём. Asterisk чаще всего при установке собирают из исходников. Я не знаю почему, но так исторически сложилось. Бегло посмотрел в поиске актуальные инструкции - там по прежнему собирают из исходников. Так вот, при сборке по умолчанию компилятору добавляется флаг с оптимизацией под конкретный процессор, где она происходит. При переезде виртуалки на другой процессор с большой долей вероятности что-то не совпадёт по инструкциям или чем-то ещё и Asterisk не запустится.
Когда я первый раз с этим столкнулся лет 10 назад, долго мучался, пока не понял, в чём тут дело. Чтобы решить эту проблему, надо пересобрать ещё раз этот же Asterisk из исходников, но на новом месте с новым процессором. И в меню, которое запускается перед компиляцией командой menuselect, выбрать пункт DONT_OPTIMIZE. Тогда этой проблемы не будет в будущем при новом переезде или репликации.
☝️ И ещё, мой вам совет. Если у вас нет опыта с voip, а вам падает задача на эту тему, особенно на своём сервере, лучше каким-то образом соскочите с неё. Это особая область знаний, где очень много нюансов и подводных камней. С наскока туда не заскочить, надо много времени тратить на изучение и погружение. Я в своё время занимался этим, изучал всё сам с нуля, но в итоге бросил. Очень много времени и нервов уходило на решение задач. Если ты постоянно не погружён в эту тему, то будет тяжело. Подобные вещи лучше отдавать на аутсорс специалистам, которые на этом специализируются.
#asterisk