我有一个双重的至强e5504服务器,现在只有8GB的内存。 存储是不是令人印象深刻的:raid5 + 500GB SATA驱动器3x 146GB sas。 目前它作为一个开发服务器,但它已经超出了我们的需求,而且由于我们的开发方法在过去的两年中发生了变化,我们决定将其作为我们的一些应用程序的生产系统+我们希望有一个单独的系统来testing/研究。 我们的应用程序主要是部署在tomcats上的web应用程序[复数,因为一些应用程序需要旧版本]并连接到Postgres。
我想有一个生产系统,其中只有httpd + tomcat + db设置,没有别的运行在那里。 无菌系统。 除此之外,我想要一个testing系统,在那里我可以使用不同的JVM设置,部署我的testing应用程序,玩tomcat / httpd设置,并重新启动它们,而不会干扰生产系统。
除此之外,我希望能够使用不同的linux风格,用更新的内核来testing它们是如何工作的。我知道,OpenVZ是不可能的,我也不得不为此selectKVM。 我正在考虑合并这两个,并build立一个KVM能够与不同的系统[Linux只是坦率] +使用openVZ设置单独的机器满足我的发展需要。 我只是简单地去解决这个问题,但是在这里和那里看看整个虚拟化对容器性能的影响,看看我的服务器的规格,让我三思而后行。 我不想放松太多的性能,尤其是因为我的应用程序(同时运行的less数JVM)的性质。
除了使用桌面virtualbox / vmserver以外,这将是我第一次进行虚拟化。 虽然我是一名快速学习者,但我不想过多地嘲弄主系统,以至于打破生产应用程序或使其抓取。 尽pipe它们或多或less是内部应用程序,并且不会产生太多的负载,但它们需要保持稳定。
我读过,KVM主机是一个正常的Linux安装,它允许运行正常的进程。 如果是这样,是否也允许运行openVZ? 我的意思是…我可以在同一个系统/内核上运行KVM和OpenVZ吗? 或者我必须安装另一个系统来运行OpenVZ容器? 这对我有多大的性能影响? 我的硬件是否足够?
哦,还有一件事…不幸的是我的资金相当有限…我正在寻找一个免费的解决scheme:/
不同之处在于虚拟化方法,KVM是作为Linux内核的一部分运行的内核模块(因此是名称),允许本地虚拟化或半虚拟化。 您正在运行一个完整的系统环境。
Openvz在容器中运行操作系统 – 类似于BSD监狱。 当所有的虚拟机都运行相同的操作系统(比如说linux)时,它更有效率,而且每个“guest”都是在主操作系统内部被chrooted的一个操作系统实例。
KVM将为操作系统带来更多的灵活性 – 您可以在KVM主机中运行Windows或fbsd虚拟机。 但是,每个虚拟机将需要分配硬盘映像和内存。
当你想运行大量的linux虚拟机,并且需要能够在它们之间灵活地分配资源时,Openvz更好。 由于系统全部使用相同的文件系统,内核和内存空间,因此不需要内存专用。
这取决于你在做什么。 OpenVZ从托pipe的angular度来看是非常好的,因为它是一个非常有效的硬件使用。 所有未使用的资源都可以使用。 所以你可以有更高的集装箱密度,并可以以较低的集装箱价格的forms传递给客户。 使用KVM任何客户没有使用的内存或HD空间都是浪费的。 因此你不能把更多的客户放在更高的价格上,或者需要更多的RAM / HD空间等等。
从用户的angular度来看,他们对于使用OpenVZ的投资者而言更加激动人心,因为没有内存用于内核和内核模块以及硬件实用程序。 它最终节省了相当多的内存。 在安装了基本的服务器,内核和基本组的情况下,我发现在OpenVZ容器上使用的内存大约不到15MB,而不包括caching/缓冲区,而不是在KVM上超过100MB而不包括caching/缓冲区。 两者均使用CentOS 6 64bit,并在重启后立即测量。 因此,OpenVZ提供商提供的512MB VPS计划实际上为客户提供了比512MB KVM计划多100MB的内存。
OpenVZ的另一个好处是开销非常低。 在裸机上运行可能不会超过2%或3%以上。 事实上,由于开销太低,我们通常会将专用服务器客户放在一个OpenVZ容器中,因为它更容易pipe理。 如果他们想要迁移到不同的数据中心或升级硬件,就像点击一样简单,只需将容器迁移到新硬件,然后完成。 不需要重新安装重新configuration。 虽然我没有任何比较数字,但KVM并没有那么高效。 我可以从使用它和观察负载平均值。 我会说可能会有10%的开销。 所以12-13%的开销比2-3%。 很多人似乎认为KVM的开销会随着时间的推移而改善,但是在过去的几年里我没有看到太多的变化。 我觉得起初有一些改进,但是在过去的几年里已经很成熟了,而且性能的提高已经变平了。
OpenVZ的主要缺点是客户无法访问内核或对内核做任何事情。 他们需要完成的一些事情可以由供应商完成,或者在控制面板中设置客户访问权限,如SolusVM对TUN / TAP和PPP所做的事情。 绝大多数托pipe客户不需要访问内核。
我试过Proxmox,这对我来说似乎是最好的解决scheme。 经过几天的使用,我很开心,我希望最好的。 请注意,这是基于几天使用情况的意见,但我没有发现任何其他的/更容易达到目的。