虚拟化生产 MySQL 服务器

虚拟化生产 MySQL 服务器

我们有一个支持多个内部业务系统的 MySQL 服务器。我们的基础设施团队正在激烈地争论是否可以将此数据库服务器切换到虚拟机。争论的焦点是虚拟机端的可用性高于物理硬件端的性能。我们能够找到的大多数信息都相当陈旧(2009 年或更早)。

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

一些附加信息,数据库大小约为 100GB,负载不是那么重,但是有很多写入。

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

答案1

您当前 MySQL 的 IOPS(95% 百分位 @ < 20ms 延迟)是多少?如果低于 100 000/s,您可以轻松进行虚拟化并使用以前使用的相同存储设备。

MySQL 甚至在多个核心的情况下也不是很有效,因此由于 InnoDB 内部的争用,分配超过 4-6 个 vCPU 不会有帮助(我假设您运行 InnoDB)。

答案2

我们在 HyperV 和 XEN 上虚拟化了许多 MSSQL 和 Oracle 数据库,包括一些大型 sharepoint 数据库,我们没有发现任何性能问题。我们的整个 IT 项目业务都在 sharepoint 上运行,大约有 100 个并发用户和一个比您的数据库稍大的数据库,以及一些非常大的 SAP 数据库和 XEN 下的 Oracle。对于我们创建的较大数据库,通过磁盘,这样只需要写入一层。但我认为,即使使用虚拟磁盘,您的环境与这个小型数据库配合使用也会运行良好。

答案3

如果可能的话,就试一试吧?转储数据库,将其放在虚拟机上,然后对其运行一些基准测试?

有了转储文件,你甚至可以尝试更多的 HA 想法,比如使用以下工具进行多主复制:加莱拉或其他。

答案4

这曾经是一个问题(即当 I/O 子系统实际上还没有看到这些位时,虚拟机管理程序报告已完成的磁盘写入)但现在已经是几年来的常见做法。

使用最新版本的 Xen/VSphere,没有理由不虚拟化生产 MySQL 服务器——将预测的工作负载与裸机服务器进行基准测试,看看虚拟机管理程序增加了多少开销。

如果您有很多写入需求,建议使用 SSD。

相关内容