Нас долгое время задалбывали рандомные варнинги приходящие от ProxmoxVE - Replication Job failed. Какой-то дополнительной информации - что именно пошло не так и где proxmox не предоставляет. Вообще в этой системе с документацией туго, и пул реквест им не пришлешь. Зато есть платная поддержка.
Эта хрень приходила в почту несколько месяцев, админы все время грозились что-то сделать, но как-то у них не очень получалось. Мне как начальнику делать нехер, поэтому я закатав рукава полез внутрь proxmox. Внутри там с одной стороны все довольно красиво написано, API, плагины, код не плохого качества. С другой стороны - это все на перле. Никогда не думал что придется вспоминать перл, но как говорится никогда не говори никогда.
Оказалось что варнинги выбрасывались заданиями по репликации виртуальных машин с одного сервера на другой. Если быть более точным - реплицировались не сами виртуалки, а снэпшоты сделанные с виртуалки. Причем обычно все отрабатывало штатно, а в некоторых случаях (примерно 10%) это заканчивалось ничем. С чем это было связано - непонятно.
Покопавшись в коде выяснил что "репликация" производится путем выполнения команд через shell, с каким-то таймаутом. Если команды не укладывается в заданный таймаут - процесс завершается ошибкой. Никаких настроек типа "таймаут такой-то" в конфигах ProxmoxVE нет. Есть только магические чиселки, прямо в перловом коде. Чиселок много, они разным способом перетирают друг друга, комментарии в коде - это тоже для слабоков.
В общем если вас преследует аналогичная проблема, то в случае ZFS менять таймаут нужно в PVE/Storage/ZFS/PoolPlugin.pm, строка 185:
Если вы используете другой сторадж - логично будет посмотреть в других модулях директории PVE/Storage. Место установки перловых модулей зависит от системы, у меня они лежат в /usr/share/perl5/
Комментариев нет:
Отправить комментарий