Назад | Перейти на главную страницу

OpenVZ: Пользовательские настройки при запуске контейнера / Выбор правильного сервера MySQL

Что у меня есть:

Два сервера под управлением Wheezy / OpenVZ с

Что я хочу:

Каждый контейнер должен использовать «локальный» MySQL-сервер (тот, который работает на том же аппаратном узле). Я хотел бы иметь возможность перемещать веб-контейнеры между хостами. Каждый контейнер должен автоматически выбирать MySQL-сервер (полу). Эта схема должна продолжать работать, если один из хостов не работает.

Что пробовал:

В настоящее время я отслеживаю, какой контейнер должен работать на каком хосте с помощью записей DNS, которые представляют собой запросы по сценариям, например. на вопросы типа: «Какой контейнер следует резервировать на / на каком хосте».

Для выбора правильного сервера MySQL у меня есть одна дополнительная запись, например «mysql.container_abc», которая разрешает либо mysql1 / mysql2. Поэтому в приложениях в контейнере я могу использовать mysql.container_abc, например, mysql_connect, и если я хочу переместить контейнер, мне просто нужно изменить dns.

Теперь я заметил одну проблему с этим подходом: каждый mysql_connect генерирует один DNS-запрос, потому что DNS не кэшируется, и это излишне замедляет запрос.

Что хотелось бы лучше:

Какой-то способ передать информацию о том, на каком хосте мы работаем, в контейнер и использовать его напрямую вместо использования DNS. Например. какой-то способ установить пользовательскую запись в / etc / hosts в контейнере. Или любую другую отличную идею. Не обязательно включать DNS, но не требует особого «волшебства» внутри контейнера. Возможно, можно создать / etc / hosts при запуске контейнера извне?

Вам следует прочитать немного о vzctl вы можете установить / etc / hosts или даже дать ей собственное имя хоста при запуске, перед запуском и т. д.

Все зависит от вас, что и как вы установите, и это можно сделать с помощью скриптов.