SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 12.05.2012 11:14:11

as_lan
Участник
Зарегистрирован: 12.05.2012
Сообщений: 4

mysql: в виртуалке или хосте

Добрый день. Есть сервер, с openvz на борту, сейчас крутиться 3 виртуалки, поэтапно на него будут переноситься все функции, которые лежали на других физических серверах. Сейчас там только zabbix, биллинг и прочие мелочи. Почти все работают  на mysql. Поэтому задался вопросом, как правильно организовать связку с mysql. Возможные варианты:
1. В каждой виртуалке mysql для тех служб что работают в конкретной виртуалке. Из плюсов - надежность, если упадет в одной виртуалке база, другие будут работать дальше. Из минусов - большее потребление ресурсов.
2. Сделать отдельную виртуалку, чисто для mysql.
3. Поставить mysql на хосте.

Мне больше нравиться второй вариант. Но пока еще не делал подобного. Поэтому хотелось бы узнать, если кто-то уже подобное делал, есть какие либо подводные камни.

Неактивен

 

#2 12.05.2012 11:24:46

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: mysql: в виртуалке или хосте

Очень сильно зависит от условий. Я бы выбрал первый вариант, чтобы реализовать то, что требуется от виртуалок, а именно логическое отделение проектов. При этом потребуется несколько больше памяти, но зато сможете настроить параметры сервера по-разному для каждой виртуалки. Еще есть плюс на многоядерных системах - глобальные мьютексы MySQL (например, query cache) будут разделены на три части. Кроме того, разные проекты не будут конкурировать за общие кэши (key_buffer, innodb_buffer_pool) и выбивать друг друга из общих кэшей.

Неактивен

 

#3 12.05.2012 13:29:06

evgeny
Гуру
Зарегистрирован: 04.05.2009
Сообщений: 335

Re: mysql: в виртуалке или хосте

as_lan написал:

Добрый день. Есть сервер, с openvz на борту, сейчас крутиться 3 виртуалки, поэтапно на него будут переноситься все функции, которые лежали на других физических серверах. Сейчас там только zabbix, биллинг и прочие мелочи. Почти все работают  на mysql. Поэтому задался вопросом, как правильно организовать связку с mysql. Возможные варианты:
1. В каждой виртуалке mysql для тех служб что работают в конкретной виртуалке. Из плюсов - надежность, если упадет в одной виртуалке база, другие будут работать дальше. Из минусов - большее потребление ресурсов.
2. Сделать отдельную виртуалку, чисто для mysql.
3. Поставить mysql на хосте.

Мне больше нравиться второй вариант. Но пока еще не делал подобного. Поэтому хотелось бы узнать, если кто-то уже подобное делал, есть какие либо подводные камни.

Вообще на мой взгляд, тут важен факт, что именно находится на самой базе.
То есть, есть ли в базе, какая то общая информация для всех проектов ? (и планируется ли это на будущие)
Если общей информации нет, то первый вариант однозначно лучше по причинам перечисленными вами и rgbeast,
могу к ним добавить: зависимость между проектами в плане отказоустойчивости и полное восстановление снепшота например. Также если не грамотно разграничить права доступа, то могут быть проблемы с безопасностью, а в случае с отдельными виртуалками, проблема отпадает сама по себе.

Неактивен

 

#4 12.05.2012 16:27:09

as_lan
Участник
Зарегистрирован: 12.05.2012
Сообщений: 4

Re: mysql: в виртуалке или хосте

Общих скорее всего не будет. А как насчет производительности? Очень критично.  Не пострадает ли она при таком разделении? Ведь системных ресурсов потреблять будет больше. Сейчас там крутиться битриксовский сайт на первой виртуалке, база файрбёрд на второй, и скоро надо переносить zabbix, биллинг и еще пару служб на Mysql. Общей информации не будет.

Неактивен

 

#5 12.05.2012 21:21:32

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: mysql: в виртуалке или хосте

А почему Вы считаете, что ресурсов будет потребляться больше? Это же настраиваемо всё?

Неактивен

 

#6 14.05.2012 14:01:46

as_lan
Участник
Зарегистрирован: 12.05.2012
Сообщений: 4

Re: mysql: в виртуалке или хосте

ну как, на каждой виртуалке если он будет запущен в любом случае будет потреблять чуть больше, чем если будет на одном осте запущенно но с несколькими базами. По крайней мере логически если рассуждать так получается smile

Неактивен

 

#7 14.05.2012 16:29:50

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: mysql: в виртуалке или хосте

Да, чуть больше памяти при нулевой загрузке. Когда вы создали виртуалку, вы сознательно на это пошли - чуть больше памяти потребуется для апача, для ядра, для системных процессов. Однако, если предполагать серверы загруженными, то разделение может дать выйгрыш по памяти и ряд других плюсов. Если у вас 1 гигобайт памяти на все, то вопрос об общем MySQL имеет смысл, а если 8 или 16 гигов, то точно лучше разделить.

Неактивен

 

#8 14.05.2012 16:46:48

as_lan
Участник
Зарегистрирован: 12.05.2012
Сообщений: 4

Re: mysql: в виртуалке или хосте

Ок, спс, так и будем делать. А разделил так как для некоторых сервисов требуются свои версии php и прочих составляющих. Их при всем желании не получалось на один сервер посадить.

Неактивен

 

#9 16.05.2012 02:45:56

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: mysql: в виртуалке или хосте

Почему же нет? Никто не мешает поставить разные версии приложения по разным
путям и наслаждаться. Ну или chroot.

Хотя, конечно, на современных технологиях виртуалки и правда проще.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson