Есть проект опенсорсный - Azuracast, он лайн радио. Развернут на серваке, работает всё гуд.
Установлена версия Ansible - тоесть без всяких докеров и прочего, в lxd контейнер
Задача - сделать "дублера", чтоб при выходе основного сервака все пошло на резервный.
Сделать это с потоком музыки - не проблема. Но там еще добавляются \ удаляются плейлисты, радиостанции и прочее...
Не понимаю как это правильно задублировать
Делайте снепшоты или бекапы.
В идеале об этом должно позаботиться ваше окружение. Чтобы весь сервер не ворочить, а сохранять только данные приложения. Например реплицировать базу данных.
Sanes, я ж в вопросе написал - чтоб в случае падения 1 сервака, всё автоматом переключилось на другой.
там порядка 1000 объектов он лайн музыку гонят, нельзя чтоб они остались без неё
alfss, магазины по РФ. им идет живая трансляция музыки. понятно что не критично, если она пропадет на 5 минут, посидят в тишине гробовой.. но заказчик хочет минимальный лаг по времени переключения
сейчас это делается вот так -
есть мейн сервак, на нем постоянно чет делается - добавляются \ убавляются плейлисты, редактируется время, итд. каждый день.
раз в час берется дамп БД и улетает на резервный сервак(музон в реалтайме синхронится с "облачного" хранилища)
на клиентах(там VLC) прописано 2 ссылки в плейлисте - мейна и резервного. если мейн недоступен vlc автоматом идет дальше по плейлисту
Это уже не размер , keepalived + репликация + rsync каждую минуту на файлы. Я полагаю можно уложится в 10 секунд , учитывая, что VLC. Клиент буферизует и сам переключится .
Drno, как выше предложил Sens , можно уточнить гео распределенную инсталляцию s3 у hetzner , но мое мнение это уже будет перебор. База маленькая , уверен файлов мало новых приходит, хочется красиво, нужно при переключении сделать видимость работы , что бы VLC проиграл какую-то композицию локально и потом ушел на резерв . Но это уже финты которые вряд ли нужны . Только работники магазина заметят скачек , покупателям без разницы
alfss, что подразумевалось под keepalived ? не совсем понял для какого сервиса... БД в режим репликации, это ясно. осталось понять не будет ли на 2 серваке из-за этого проблемы. Он то думает что он 1 единственный)
rsync - на ВСЕ файлы приложения? включая temp, файлы БД и InnoDB ?
Drno, Как-то нужно переключить же slave -> master. а еще запретить стартовать если уже переключение свершилось. Можно я полагаю и без него. В остальном я полагаю вам самому надо решать уже.
alfss, в итоге проблема в VLC.. и еще 5 плеерах. они почему то не переключаются на 2ю ссылку в плейлисте )) как будто продолжают ждать ответа от 1го сервера (если его погасить внезапно)
и пока не нашел как это решить
Даже если поднять failower в хетзнере и указать зацикливать 1 IP в проигрывании - тож самое ((
Если кратко - то можно или использовать готовые сервисы от облачных провайдеров, или пытаться все делать самому. Первый путь дороже, но надежнее. Второй требует очень хорошего понимания и опыта в HA.
скорее всего я пойду по второму пути. мне так будет просто комфортнее обслуживать
в плане готовых сервисов - с учетом что весь установщик есть в докере -
от того же яндекс\мейл\любого хостинга надеждного взять и запихать всё в их докер\кубернетис