Как Управлять Стадом Контейнеров Openvz, Если Их Количество > 300-500

Как, виртуализируя всё и вся, вместо циркового шатра в виде кучки демонов на голом железе получить отряд хорошо обученных сервисов, да и вообще какой в этом смысл?



Художественное введение

Давным-давно, когда люди не умели разжигать огонь, все сервисы (приложения, базы данных, http-бэкенды и т.д.) жили прямо на серверах, мастера-админы каждую ночь будились звонками бдительных (время отклика ~30 минут, хе-хе) мониторю рабочих.

Потому что сначала тот или иной демон вышел из-под контроля и съел что-то свободное - циклы диска/памяти/процессора.

Были среди разработчиков и умельцы, которые смогли создать универсальный xml-эквалайзер, вмещающий в памяти до 8 гигабайт.

Схема

Одна услуга — один контейнер.

Сервис - http-интерфейс, http-бэкенд, приложения, базы данных и т. д. Поскольку лимиты на контейнеры выдаются только по результатам нагрузочного тестирования (нет результатов — некоммерческое использование), сервис может сходить с ума чисто в этих пределах.

Иногда бывает, что один контейнер дает ЛА на всю машину, но сильно крепко зажать иоприо не получится.

«Используйте Bacula, если не планируете восстанавливать файлы из резервной копии» Резервное копирование баз данных осуществляется через mysqldump и pg_dump на один хост, у которого достаточно дисков.

Всякие мелкие файлы - настройки, контент и т.д - хранятся в корзине.

Проекты уже существуют в svn и git. Кроме того, мы используем «теплый» бэкап — примерно для каждой 6-й машины каждую ночь делается rsync-копия контейнеров, работающих на остальных 5 узлах.

Контейнеры с mysql в конце синхронизации поднимаются с левым адресом и делается проверка таблицы.

В общем, у нас «всё» забэкапировано в том или ином виде, и мы имеем возможность руками дежурных оперативно возвращать контейнеры из упавшей железки обратно в строй.

Машины с сердцебиением и дрбд не в счет.

Контроль

Если в вашем распоряжении три-четыре сотни контейнеров, то помимо «обычного» мониторинга при такой схеме особенно важно знать, когда и где были достигнуты лимиты и какова текущая нагрузка на хост-машины.

Навскидку, ничего подходящего не гуглилось, как минимум 2 года назад, поэтому мы и писали Ябеда И Комбайн .

Ябеда может показать в консоли, какой контейнер какой параметр ввел с момента последнего запуска, а также записать эти знания в базу и поругать Джаббер.

Комбайн может: — Для хост-узлов — собрать доступную выделенную память (privvmpages и shmpages), процессорные блоки и дисковое пространство в базу данных; — Для vps — собрать основные параметры и внести изменения в базу данных; — Для людей — показывать текущую картину в общем и подробную историю в частности (см.

django frontend к базе данных комбайн-паутина ).

Также есть самописное подключение к ps и vzpid для снимков всплывающего списка процессов на хост-машине, так как htop не может выводить в текстовые файлы.

Если я что-то не ясно описал, спрашивайте! Теги: #Виртуализация #Системное администрирование #резервное копирование #openvz

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.