PostgreSQL 数据库服务器虚拟化,赞成还是反对?

PostgreSQL 数据库服务器虚拟化,赞成还是反对?

我们前任 CTO(现为“顾问”)曾警告他的继任者不要虚拟化数据库服务器,特别是我们的 PgSQL 数据库服务器,而应将其作为实际的物理服务器运行。这样做的问题是,我们的机架中的物理空间和主数据库服务器的容量正在迅速耗尽。

他对 I/O 速度只给出了模糊的思考;尽管我没有任何具体的理由怀疑他在这个问题上的判断,但了解以下信息还是有好处的:

这项建议是否有真正理由(如果有,理由是什么?),还是仅仅是他的迷信?

答案1

虚拟化数据库服务器是绝对不行的,原因如下

  • 您的 CTO 正确地指出,最大的问题就是 I/O 瓶颈,虚拟化系统在磁盘写入方面增加了大约 40% 到 60% 的覆盖,这意味着它们写入磁盘的速度至少会慢两倍。考虑到任何繁忙数据库的主要问题之一就是能够尽快写入磁盘,这会妨碍您的数据库硬件,并使数据库在负载下无法使用
  • 对于数据库来说,快速访问大内存页面的能力也很重要,这样它就不会让位于同一节点的其他虚拟机的内存不足

因此,明智的做法是将数据库保留在裸机上,同时虚拟化其他不太依赖磁盘的部分(例如,Web 服务器)

答案2

这个问题的更好答案是“视情况而定”。取决于硬件、配置等等。取决于服务级别协议、负载、编写良好的代码、应用程序架构等等。

我在 PostgreSQL 和 MS SQL 中运行了多个带有 SAN 存储的生产数据库服务器,它们在组织期望的参数范围内表现相当出色(并且比它们所取代的硬件解决方案要好得多)。而且我可以保证还有很多 DBA 同意我的观点。

相关内容