На одном из наших небольших проектов, поддержка небольшого офиса (6 человек) представительства одной известной компании, нам досталась работающая, я бы даже сказал аккуратная, инфраструктура, но довольно старая — более 10 лет железу и ПО.
Примерно через год сотрудничества — вышел из строя сервер АТС на базе FreePBX. Слово сервер звучит громко — решение было собрано на базе неттопа от компании MSI c процессором Atom первого поколения и 1Гб ОЗУ, но суть не в этом.
Первичная диагностика показала, что на данном неттопе вышла из строя материнская плата. Оперативно найти замену не удалось в виду непопулярности выбранной модели в свое время, но возможно было произвести ремонт.
Заказчику были предложены варианты попробовать отремонтировать либо купить новый неттоп и собрать решение заново, благо диск не пострадал и конфигурации можно было перенести.
Заказчик выбрал путь покупки нового железа. И тут начинается наше приключение, которого на самом деле могло и не быть, если бы не решение на базе AMD, но об это ниже.
Задача получена — дальше все должно было быть просто:
Подобрать
Купить
Настроить
Сдать Заказчику
Наш отдел закупок предложил недорогой вариант неттопа от компании Lenovo — ThinkCentre M625q Tiny на базе процессора AMD E2-9000e. Наши телефонисты согласовали железо. Дальше закупка и настройка.
Для установки планировалось использовать: FreePBX 15 Distro SNG7-PBX-64bit-2104-1 — свежую и актуальную версию на тот момент.
С первой неприятности мы столкнулись из коробки:
При попытке установить дистрибутив получали вот такую неприятную ошибку:
--- [end Kernel panic – not syncing: System is deadlocked on memory ] ---
Проблему решили новой планкой оперативки. Казалось бы, дальше все должно быть как по маслу, но нет…
Далее мы получили следующую ошибку:
RIP [<ffffffffc04433bf>] nvme_reset_work+0xf6f/0xfbd [nvme]
…
Kernel panic – not syncing: Fatal exception
Первое подозрение, неужели нам совсем не повезло и диск SSD так же мертв, но оперативная замена диска, на заведомо исправный, ничего не дала — ошибка сохранилась.
Ради эксперимента была запущена инсталляция Ubuntu 20.04 — эффект был тот же, а вот Windows 10 приступила к установке без проблем – значит железо живое и в этот раз проблема с совместимостью.
Дальше началось гугление, потому что с такой проблемой мы столкнулись впервые.
Русскоязычный сегмент нам ничего не ответил, а вот на западном удалось почитать много интересного:
Выяснилось, что версия ядра Cent OS 7.8, которая используется в актуальной FreePBX, некорректно работает с NVMe дисками на платформах AMD. Все советы сводились к тому, чтобы использовать более старое ядро Linux, т.к. более свежей версии сборки не существовало на тот момент. Прислушиваемся к советам.
Актуальная версия FreePBX на момент установки базировалась на CentOS 7.8.2003 c версией ядра 3.10.0-1127.el7
Дальше начался перебор версий с понижением версии ядра, до того момента пока ошибка не уйдет и мы спустились до версии FreePBX 14 SNG7-PBX-64bit-1712-2 от 2017 года с CentOS 7.4 на базе ядра 3.10.0-693.5.2.el7.
Данный дистрибутив встал без проблем и дальше мы приступили к настройке и восстановлению конфигурации сервера телефонии, что стандартно банально и неинтересно — старые конфигурации встали почти без проблем. Единственное, что потребовалось — запросить пароли и явки у провайдеров IP-телефонии.
Сейчас все работает без нареканий.
Вывод: если железо исправно, то все решаемо, но непроверенная новая платформа может подкинуть лишних часов работы и нового опыта ?