У нас есть сервер MySQL, который поддерживает несколько внутренних бизнес-систем. Наша команда по инфраструктуре горячо обсуждает, можем ли мы переключить этот сервер базы данных на виртуальную машину. Аргументом является более высокая доступность со стороны виртуальной машины по сравнению с производительностью со стороны физического оборудования. Большая часть информации, которую нам удалось найти, довольно устарела (2009 г. или ранее).
Есть ли у кого-нибудь опыт виртуализации производственного сервера MySQL и ее влияния на доступность и производительность?
Немного дополнительной информации, размер БД около 100ГБ, нагрузка не такая большая, но много записей.
РЕДАКТИРОВАТЬ: я также должен отметить, что datadir использует том SAN
Каковы ваши текущие IOPS (95% процентиль при задержке <20 мс), которые выполняет MySQL? Если ниже 100 000 / с, вы можете довольно легко перейти в виртуальный мир и использовать то же устройство хранения, которое у вас было раньше.
MySQL даже не очень эффективен с несколькими ядрами, поэтому назначение более 4-6 виртуальных ЦП не поможет из-за разногласий внутри InnoDB (я предполагаю, что вы используете InnoDB).
Мы виртуализировали множество баз данных MSSQL и Oracle на HyperV и XEN, включая некоторые большие базы данных sharepoint, и мы не видим никаких проблем с производительностью. Вся наша деятельность по ИТ-проектам работает на sharepoint с примерно 100 одновременными пользователями и базой данных немного больше, чем ваша, и некоторыми очень большими базами данных SAP с Oracle под XEN. Для больших баз данных, которые мы создали, проходят через диски, поэтому для записи требуется только один слой. Но я думаю, что ваша среда с этой небольшой базой данных будет нормально работать даже с виртуальными дисками.
Если возможно, просто попробуйте? Сделайте дамп базы данных, поместите его на виртуальную машину и проведите с ней тесты?
Имея в руках дамп, вы даже можете попробовать больше идей высокой доступности, таких как репликация с несколькими мастерами, с помощью таких инструментов, как Галера или другой.
Раньше это было проблемой (например, гипервизор сообщал о завершении записи на диск, когда подсистема ввода-вывода еще не видела биты), но уже несколько лет это обычная практика.
При использовании последней версии Xen / VSphere не должно быть причин не виртуализировать производственный сервер MySQL - сравните прогнозируемые рабочие нагрузки с эквивалентом на «голом железе», чтобы увидеть, сколько накладных расходов добавляет гипервизор.
Если у вас много записей, можно порекомендовать SSD.