虚拟化生产MySQL服务器

我们有一个支持多个内部业务系统的MySQL服务器。 我们的基础架构团队正在争论我们是否可以将此数据库服务器切换到虚拟机。 从VM方面来看,可用性更高,而物理硬件方面则更高。 我们所能find的大部分信息都比较陈旧(2009年或更早)。

有没有人有任何虚拟化生产MySQL服务器的经验及其对可用性和性能的影响?

一些额外的信息,DB大小约100GB,负载并不那么重,但有很多写道。

编辑:我也应该注意到datadir正在使用SAN卷

你目前的IOPS(MySQL的95%百分比@ 20ms的延迟)是什么? 如果低于100 000 / s,则可以非常容易地使用虚拟存储设备,并使用之前拥有的存储设备。

对于多核心,MySQL甚至不是非常有效,所以分配超过4-6个vCPU是不会有帮助的,因为InnoDB内部的争用(我假设你运行的是InnoDB)。

我们在HyperV和XEN上虚拟化了许多MSSQL和Oracle数据库,包括一些大的共享点数据库,我们没有看到任何性能问题。 我们的整个IT项目商店在共享点上工作,有大约100个并发用户和比你更大的数据库,还有一些非常大的SAP数据库,在XEN下有Oracle。 对于我们创build的更大的数据库,通过磁盘传递,只有一个图层需要写入。 但是我认为,即使使用虚拟磁盘,使用这个小型数据库的环境也能正常工作。

如果可能的话,试试看吧? 把数据库的转储,把它放在一个虚拟机,并运行一些基准对付它?

随着转储手中,你甚至可以尝试更多的医pipe局的想法,如使用Galera或其他工具多主复制。

这曾经是一个问题(即当I / O子系统还没有真正看到这些数据时,pipe理程序报告已完成的磁盘写入),但是现在已经有几年了。

使用最新版本的Xen / VSphere,应该没有理由不虚拟化生产性MySQL服务器 – 基准预测的工作负载与裸机相当,以查看pipe理程序增加了多less开销。

如果您有很多写入,可以推荐使用SSD。