所以我目前正在运行 MySQL 5.1 数据库,具有以下规格:
- 处理器:Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz
- 内存:64G
- 磁盘:2x 100 Go SSD(RaidSoft)
我计划将我的物理服务器以及 mysql 服务器迁移到 percona 服务器 5.6。
我正在使用 Proxmox 集群作为其余基础设施,因此我想将我的新 MySQL 服务器放在专用的 openvz 容器中(主机上只有一个)。
我已经成功设置了它,并且它似乎运行良好,但我仍然想知道这是否是一个好主意。
有任何反馈吗?
答案1
对于任何可能有大量磁盘 I/O 的操作,请谨慎使用 OpenVZ(Proxmox 或其他)。我可以根据经验告诉你,它非常非常慢 - 在某些情况下大约是本机硬件速度的一半。写入时尤其糟糕,服务器上进行读写的容器越多,情况就越糟(虽然后半部分不适用于你的情况)。
另外,请记住,MySQL 非常耗资源,如果您没有正确设置它们,可能会很容易导致 OOM 终止或达到容器限制。同样,从经验来看,这可能很难做到。事实上,某些有助于 MySQL 性能更好的功能(例如大页面)无法在容器内设置,因此您可能最终需要在主机和客户机之间来回切换。
将 MySQL 放入容器中唯一能得到的好处是进程隔离(但并非真的)、容器不会关闭节点的温和保证(但没有保证)、用于控制服务器的漂亮界面(并非 OpenVZ 容器独有),以及在正确配置之前的许多麻烦。我会避免将 OpenVZ 用于这种特殊用途。
如果您坚持使用 Proxmox,我建议您为此使用 KVM,而不是 OpenVZ 容器。相信我,您会少受些麻烦。
答案2
在容器上运行 MySQL 有一些好处。
PVE 容器提供了一些好处: - 管理 DB 服务器并且不影响其他任何东西 - 轻松移动(如果使用共享存储则在线)到另一个物理主机 - 使用 PVE 备份,虽然我认为 xtrabackup 或 Idera Hot Copy 更好 - 在主从复制场景中运行 2 个或更多,这样您就有“实时”备份 SQL 服务器,但如果它们位于同一台物理服务器上,则会产生单点故障。
Prox 非常可靠,这一点毋庸置疑 - 我拥有的 proxmox 服务器的运行时间超过 800 天。如果您在容器中运行,性能只会受到轻微影响。只需确保将 CPU 核心分配给 VM,以便 innodb 可以使用它们。
答案3
为了回应“不要因为性能原因而这样做”,我们在写入非常频繁的环境(70% INSERT)中使用 Proxmox,在普通磁盘(WD Red)上使用 RAID-10 后端,以及几个其他繁忙的 VM(OpenVZ 和 KVM),并且没有写入性能问题(iodelay 很少超过 0%)。如果您只考虑性能,那么如果底层硬件不错,应该不会出现任何问题。
就好处而言 - 在线迁移、快照备份、驱动器空间扩展......应有尽有。
至于 proxmox 的可靠性,我只能附和另一位发帖人的意见。
正常运行时间
19:51:09 启动 785 天,22:59,1 个用户,平均负载:4.92、4.81、4.79
正常运行时间
19:51:55 启动 142 天,4:56,1 个用户,平均负载:0.05、0.07、0.05
答案4
对于大型生产服务器,我看不出使用容器有什么意义。根据我的经验,它没有真正的优势。也许将一个或几个从服务器放在容器上是有意义的,但对于主服务器,我会将其放在裸机上。看看 percona 集群。它很棒。
您希望使用虚拟机的原因是什么?商业案例是什么?