我正在考虑购买一个新的基于服务器的开发框(冗余,我知道;))。 理想情况下,我想在最低级别运行诸如ESXi或Xen虚拟机pipe理程序之类的东西。 然后,我想添加(至less)5个Linux VM的以下用途:
2个Web服务器2个应用服务器1个数据库服务
我想负载平衡2个Web服务器和2个应用程序服务器,并且(显然)它们需要全部联网以模拟生产环境。
而且,以前的build议是把每个虚拟机都放在自己的硬盘上,但是我不确定这个问题是否成立。 有什么build议?
有没有人有任何build议如何把这个closures? Gotchya's,LookOuts!等?
谢谢!
我在VMware ESX 4.0下运行生产SQL Server环境
有些东西你必须知道的是虚拟化技术如何工作。 如果这只是testing环境,那么所有的服务器都不需要每个4 GB的RAM。 Web服务器可能会在每个512MB的罚款,相同的应用程序和至less1 GB的数据库。 我是PASS虚拟章节的一部分,专门从事这些设置,你应该检查一下。 它位于http://virtualization.sqlpass.org ,不需要注册。 我们今天联合了一些该领域的顶级虚拟化专家的博客,我们还针对各种主题免费进行networking广播。
另一个很好的资源是Brent Ozar在虚拟化方面的文章(他领导虚拟章节)。 你可以在http://www.brentozar.com/sql/virtualization-best-practices/上find
他们都可以通过networking看到对方,因为他们都可以拥有自己的networkingIP等等,但是我认为你可以用虚拟网卡来设置它们直接互相通话。
至于硬盘问题,我认为你将不得不考虑冗余。 我的意思是,如果你的硬件死了,你不会失去一台电脑。 丢失5.硬盘故障相当普遍,所以通常在VMWare服务器上运行RAID 10或者至less是RAID 1,这取决于你将如何推动系统的吞吐量。
这就是说,即使你有单独的驱动器,你可能会在控制器级别争用,因为你的机器将从同一台机器拉动。
如果将系统推向需要考虑拆分每个虚拟机的驱动器,则可能需要重新考虑使用虚拟化,或者您需要考虑多台机器和全面的VMWare来实现机器级平衡和监控(这不便宜)。
我们在16G内存的单个RAID 5arrays上运行了大约7台服务器,并且没有任何问题,但是我们并没有猛击虚拟机。 如果您正在使磁盘,networking或内存饱和,则只需两台服务器就可以重载一台虚拟机服务器。 这完全取决于你使用的是什么。
我的build议是尝试虚拟机解决scheme,如果它不起作用,至less有一个非常好的系统来开始你的开发场,或者如果你发现一个特别有问题的系统,你可以有一个服务器的VMWare系统,第二个自包含的VMWare系统或用于特定用途的单独盒子(虚拟化4个服务器,有一个用于有问题的系统)。 你仍然应该最终走出来。
没有估计你在系统上做什么,或者你有多难打击交通/吞吐量等等,很难告诉你更多的build议。
我想负载平衡2个Web服务器和2个应用程序服务器,并且(显然)它们需要全部联网以模拟生产环境。
有没有人有任何build议如何把这个closures? Gotchya's,LookOuts!等?
现在,你没有解释你使用的是什么设备/服务器,所以抽象的说,就磁盘I / O而言,“模拟”生产环境将是非常困难的。 我不知道你打算build立/部署什么样的networking应用程序,但我已经( 基本上 )完成了你要做的事情,尽pipe不完全符合你的一般规范。 磁盘子系统是一个很容易被忽视的重要因素,在数据库服务器上推硬盘并不难。 就内存和CPU而言,只要有足够的可用性,就可以很好地模拟生产环境,但与非虚拟化解决scheme相比,虚拟机环境的整体速度会更慢。 但是,磁盘子系统最终会影响内存和CPU,具体取决于您预期的负载types或计划testing的方式。
此外,过去的情况是build议将每个虚拟机放在自己的硬盘上,但是我不确定是否已经存在。 有什么build议?
在你的情况下,这很难说。 我会把VM路由作为一个configurationtesting,而不是别的。 尝试正确地获得负载平衡,不要为了这么大的吞吐量而浪费总吞吐量。 在虚拟环境中尝试优化性能是非常棘手的,无论您使用哪个供应商。 每个虚拟机有一个硬盘驱动器将是理想的,但即使你可以摆动,你可能不会得到“真实世界”的结果。
很明显,你要么为这个应用程序的新环境做好准备,要么希望能够与虚拟机服务器合作, 直到你需要或者有足够的预算用于非虚拟机解决scheme。 在任何一种情况下,为testingconfiguration而构build虚拟机服务器都是非常有意义的,但是试图用它来测量任何一种现实世界的性能/容量将是不准确的。 虚拟化是操作系统和硬件资源之间的折衷。 从虚拟化世界到非虚拟化世界你将不会获得相同的性能。