是否对Linux Webserver使用或不使用虚拟化?

Modified on: Mon, 16 Sep 2019 01:20:02 +0800

我维护一个大型webproject(java + postgres +一些工具)的服务器,目前托管在三台机器上:

  1. 计算机:邮件服务器(后缀),广告服务器(lighttpd + php + openx)
  2. 机器:Tomcat + Servlet
  3. 机器:PostgreSQL-Server,静态内容(通过lighttpd)
  4. 醇>

    所有计算机都运行Debian Stable并通过VPN(openvpn)连接。由于硬件非常陈旧(每台AMD Athlon 3000+和2GB RAM),因此需要进行更改。

    这些服务器现在应该被一台大机器取代(16GB Ram,大型Intel CPU支持VT,5个IP)。

    现在的问题是:我是否仍然应该使用虚拟机分离不同的任务,或者我应该像往常一样将所有内容放在机器上。利弊在哪里?

    我想到了以下内容:

    专业虚拟化:

  • 安全性:由于vm是分开的,你不能拿整台机器(希望如此)

Con虚拟化:

  • 效果:性能损失
  • 工作:每个维护工作必须为每个vm完成几次
  • 通信:不同vm(Servlet do Database)的通信变得更加复杂。
  • 硬内存限制:我必须为每台机器分配静态资源(如内存)。这可能是一个骗局,如果说我的db-server需要更多ram 30秒(比它已分配)并且在其他机器上可以有更多的ram。没有虚拟化,这不会是一个问题。

感谢任何提示。

作者:,theomega

最佳答案

性能损失 - 是的,技术上有一个。这是您或您的用户会注意到的吗?除非是一些疯狂的高端工作负载,或者你过度配置虚拟机*(或者试图将“正常”RAM分配的5个虚拟机压缩到旧的现有服务器上,我真的很怀疑它。记得实际检查你的内存用法 - 如果你要拆分所有东西,你就不需要512megs用于默认为运行级别3的NTP服务器。(分散JUST NTP服务器过多,这只是一个例子。)

工作 - 这是事实。如果它只来自一到三台服务器,可能没什么大不了的 - 进行更改,将命令从一个终端会话复制/粘贴到另一个终端会话。虽然过去,你想要某种管理工具,我现在正在寻找Puppet

*内存限制 - 取决于virt。你用的解决方案。某些环境(如ESX / vSphere)允许您为VM分配更多RAM,而不是物理上可用。如果您为该功能付费,则ESX允许您设置资源池,并根据需要自动调整资源,并能够设置优先级。像所有事情一样,你必须知道它是如何工作的以及在特定环境中的权衡。

作者:Orangutech

相关问答

添加新评论