My Company is running several international websites for selling insurance products. Our current setup is a Webfarm with multiple Loadbalanced Webservers hosting our ASP.NET applications. The backend is a single - yet powerful - SQL Server. (all in one data center)
我公司正在运营多个国际网站,销售保险产品。我们当前的设置是一个Webfarm,其中有多个Loadbalanced Web服务器托管我们的ASP.NET应用程序。后端是一个单一但功能强大的SQL Server。 (全部在一个数据中心)
Our network admins want to move to virtual servers running on VMWare.
我们的网络管理员希望转移到在VMWare上运行的虚拟服务器。
Scenarios could be
情景可能是
- Webfarm: Multiple standard webservers, Loadbalanced (current setup), Session state on SQL Server
- Virtual Webfarm: Multiple virtual servers, loadbalanced on one physical VMWare Host, Session state on SQL Server 2.a same as above but with multiple physical hosts
- Single Virtual Webserver: One big powerful virtual webserver, no loadbalancing required, session state can be kept in process
Webfarm:多个标准Web服务器,Loadbalanced(当前设置),SQL Server上的会话状态
Virtual Webfarm:多个虚拟服务器,在一个物理VMWare主机上进行负载均衡,在SQL Server上进行会话状态2.a与上述相同,但具有多个物理主机
单个虚拟Web服务器:一个功能强大的虚拟Web服务器,无需负载平衡,可以保持会话状态
There is a big hype around virtualization and I can see the benefits, but have no experience with this. I cannot tell what issues we will face and to what we should pay special attention.
围绕虚拟化有一个大肆宣传,我可以看到它的好处,但没有经验。我不知道我们将面临哪些问题以及我们应该特别注意什么。
- Does anyone have experience with such a virtual setup?
- What are general recommendations?
有没有人有这种虚拟设置的经验?
一般建议是什么?
I tend towards 2a. I am afraid of having all webservers on one single physical machine.
我倾向于2a。我害怕在一台物理机器上安装所有网络服务器。
Many thanks in advance to share your thoughts.
非常感谢您提前分享您的想法。
5 个解决方案
#1
There are three reasons to use more than one webserver for an application:
为应用程序使用多个Web服务器有三个原因:
- Scaling - More grunt is required than one machine can provide
- Reliability - Website should keep running in case of failure (a. hardware b. software)
- Prioritization - One of the webservers takes on heavy work (perhaps scheduled tasks) leaving the other to respond to client requests quickly.
缩放 - 比一台机器可以提供更多的咕噜声
可靠性 - 网站应在发生故障时继续运行(a。硬件b。软件)
优先级 - 其中一个Web服务器承担繁重的工作(可能是计划任务),让另一个服务器快速响应客户端请求。
Marrying that up to you scenarios:
嫁给你的场景:
Scenario 1 provides 1, 2, 3 Scenario 2 provides 2b (perhaps 2a if it is fully hardware redundant (doubt it)) Scenario 2a provides 1, 2 Scenario 3 provides none of the above
场景1提供1,2,3场景2提供2b(如果它是完全硬件冗余可能是2a(怀疑它))场景2a提供1,2场景3提供以上都不是
Advantages of Virtual Hosting:
虚拟主机的优点:
- Lower Total Cost of Ownership (TCO) on big cluster serving multiple purposes is cost effective
- New servers can be created quickly if needed
- Redundant hardware is easier to justify if the cost is shared among many applications
降低服务于多个目的的大型集群的总体拥有成本(TCO)具有成本效益
如果需要,可以快速创建新服务器
如果在许多应用程序之间共享成本,则冗余硬件更容易证明是合理的
Disadvantages:
- Other virtual machines may suck away your CPU/Disk IO capacity
其他虚拟机可能会耗尽您的CPU /磁盘IO容量
IMHO there is little point to load balancing multiple virtual machines on the same virtual server.
恕我直言,在同一个虚拟服务器上负载均衡多个虚拟机是没有意义的。
#2
Robert's pretty much covered it all, I'm mostly just adding a note to say that at least one of our clients is currently running with option 2a.
罗伯特几乎涵盖了这一切,我主要是添加一个说明,说我们的客户中至少有一个目前使用选项2a运行。
So we have multiple loadbalanced web servers running on a couple of VM hosts, talking to a non-virtualised SQL cluster - this works quite well for them.
因此,我们在几个VM主机上运行多个负载均衡的Web服务器,与非虚拟化的SQL群集通信 - 这对他们来说非常有效。
One other advantage of virtualisation is that it allows you to more fully utilise your hardware - however, you need to be aware that if you're running your virtual host at around 90% capacity with multiple VMs, you've not got a lot of spare capacity for any traffic spikes - if you're not expecting any, then great, but if you are, you'll need to have something in place to cope.
虚拟化的另一个优势是它可以让您更充分地利用您的硬件 - 但是,您需要注意,如果您使用多个VM以大约90%的容量运行虚拟主机,那么您将无法获得大量任何交通高峰的备用容量 - 如果你没有预期,那么很好,但如果你是,你需要有适当的东西应对。
#3
I agree with all of the above answers, and I actually work at a webhost. :-) If you're using multiple load-balanced webservers now then I can only assume the reason for it is either
我同意上述所有答案,而且我实际上是在虚拟主机上工作。 :-)如果您现在使用多个负载均衡的Web服务器,那么我只能假设它的原因
- Hardware Redundancy: If a single app server fails then those sessions are lost, but the app keeps running on the other servers and users can immediately re-connect.
硬件冗余:如果单个应用服务器出现故障,那么这些会话将丢失,但应用程序将继续在其他服务器上运行,用户可以立即重新连接。
or
- Application Load Distribution (it's late so I can't think of a better name): Your traffic dictates that you have multiple app servers since all of your users would crash a single app server.
应用程序负载分配(已经很晚了,所以我想不出更好的名字):您的流量决定了您拥有多个应用服务器,因为您的所有用户都会崩溃单个应用服务器。
If #1 is the reason, then going to VMWare defeats the purpose since you only have one server supporting everything, and in case of hard drive crash, etc, you are down while it is repaired. If #2 is the reason then a VMWare based solution MAY work, however keep in mind that the hardware you'd use would almost necessarily be of a higher caliber than what you're currently using. So you maybe get more bang for your buck, but you STLL lose the redundancy that multiple physical machines gave you.
如果#1是原因,那么去VMWare就会失败,因为你只有一台服务器支持所有东西,并且在硬盘崩溃等情况下,你在修复时就会失败。如果#2是原因,那么基于VMWare的解决方案可以工作,但请记住,您使用的硬件几乎必须比您当前使用的硬件更高。因此,您可能会获得更多收益,但是STLL会失去多台物理机器给您的冗余。
Now, you could always combine the two by having multiple physical machines all running VMWare, but that adds a level of complexity to things that you may not necessarily want either.
现在,您可以通过让多台物理机都运行VMWare来将两者结合起来,但这会增加您可能不一定需要的复杂程度。
#4
It doesn't sound like there would be any tangible benefit from running multiple virtual servers on the same physical host, you're just adding overhead. Unless I'm missing something with the way you've described the setup, there wouldn't be any benefit at all from moving to VMware - unless you're looking at taking advantage of features such as VMotion
听起来好像在同一物理主机上运行多个虚拟服务器会带来任何实际好处,您只是增加了开销。除非我错过了您描述设置的方式,否则转移到VMware将没有任何好处 - 除非您正在考虑利用VMotion等功能
VMware is most useful for consolidating underutilized hardware. If your hardware is running at near-capacity during peak periods then you don't want to run multiple VMs on the one machine.
VMware对于整合未充分利用的硬件非常有用。如果您的硬件在高峰时段以接近容量运行,那么您不希望在一台计算机上运行多个VM。
There are benefits to Virtualization but your network admins need to prove that there is a benefit for your company before you even consider switching. I would say if you have multiple apps running on dedicated servers with low traffic (i.e. each app has it's own physical server) then sure, Virtualize. If you have one app over many servers, then don't.
虚拟化有一些好处,但您的网络管理员需要在您考虑切换之前证明您的公司有利。我想说如果你有多个应用程序在低流量的专用服务器上运行(即每个应用程序都有自己的物理服务器),那么确定,Virtualize。如果您有多个服务器上的一个应用程序,那么请不要。
#5
You should be able to use virtual machine hosts with multiple vm per host and load balance across all of them.
您应该能够使用每个主机具有多个vm的虚拟机主机,并在所有主机上实现负载平衡。
Microsoft is doing this with msdn and technet http://virtualization.info/en/news/2008/05/microsoft-migrates-msdn-and-technet-on.html.
Microsoft正在使用msdn和technet http://virtualization.info/en/news/2008/05/microsoft-migrates-msdn-and-technet-on.html这样做。
#1
There are three reasons to use more than one webserver for an application:
为应用程序使用多个Web服务器有三个原因:
- Scaling - More grunt is required than one machine can provide
- Reliability - Website should keep running in case of failure (a. hardware b. software)
- Prioritization - One of the webservers takes on heavy work (perhaps scheduled tasks) leaving the other to respond to client requests quickly.
缩放 - 比一台机器可以提供更多的咕噜声
可靠性 - 网站应在发生故障时继续运行(a。硬件b。软件)
优先级 - 其中一个Web服务器承担繁重的工作(可能是计划任务),让另一个服务器快速响应客户端请求。
Marrying that up to you scenarios:
嫁给你的场景:
Scenario 1 provides 1, 2, 3 Scenario 2 provides 2b (perhaps 2a if it is fully hardware redundant (doubt it)) Scenario 2a provides 1, 2 Scenario 3 provides none of the above
场景1提供1,2,3场景2提供2b(如果它是完全硬件冗余可能是2a(怀疑它))场景2a提供1,2场景3提供以上都不是
Advantages of Virtual Hosting:
虚拟主机的优点:
- Lower Total Cost of Ownership (TCO) on big cluster serving multiple purposes is cost effective
- New servers can be created quickly if needed
- Redundant hardware is easier to justify if the cost is shared among many applications
降低服务于多个目的的大型集群的总体拥有成本(TCO)具有成本效益
如果需要,可以快速创建新服务器
如果在许多应用程序之间共享成本,则冗余硬件更容易证明是合理的
Disadvantages:
- Other virtual machines may suck away your CPU/Disk IO capacity
其他虚拟机可能会耗尽您的CPU /磁盘IO容量
IMHO there is little point to load balancing multiple virtual machines on the same virtual server.
恕我直言,在同一个虚拟服务器上负载均衡多个虚拟机是没有意义的。
#2
Robert's pretty much covered it all, I'm mostly just adding a note to say that at least one of our clients is currently running with option 2a.
罗伯特几乎涵盖了这一切,我主要是添加一个说明,说我们的客户中至少有一个目前使用选项2a运行。
So we have multiple loadbalanced web servers running on a couple of VM hosts, talking to a non-virtualised SQL cluster - this works quite well for them.
因此,我们在几个VM主机上运行多个负载均衡的Web服务器,与非虚拟化的SQL群集通信 - 这对他们来说非常有效。
One other advantage of virtualisation is that it allows you to more fully utilise your hardware - however, you need to be aware that if you're running your virtual host at around 90% capacity with multiple VMs, you've not got a lot of spare capacity for any traffic spikes - if you're not expecting any, then great, but if you are, you'll need to have something in place to cope.
虚拟化的另一个优势是它可以让您更充分地利用您的硬件 - 但是,您需要注意,如果您使用多个VM以大约90%的容量运行虚拟主机,那么您将无法获得大量任何交通高峰的备用容量 - 如果你没有预期,那么很好,但如果你是,你需要有适当的东西应对。
#3
I agree with all of the above answers, and I actually work at a webhost. :-) If you're using multiple load-balanced webservers now then I can only assume the reason for it is either
我同意上述所有答案,而且我实际上是在虚拟主机上工作。 :-)如果您现在使用多个负载均衡的Web服务器,那么我只能假设它的原因
- Hardware Redundancy: If a single app server fails then those sessions are lost, but the app keeps running on the other servers and users can immediately re-connect.
硬件冗余:如果单个应用服务器出现故障,那么这些会话将丢失,但应用程序将继续在其他服务器上运行,用户可以立即重新连接。
or
- Application Load Distribution (it's late so I can't think of a better name): Your traffic dictates that you have multiple app servers since all of your users would crash a single app server.
应用程序负载分配(已经很晚了,所以我想不出更好的名字):您的流量决定了您拥有多个应用服务器,因为您的所有用户都会崩溃单个应用服务器。
If #1 is the reason, then going to VMWare defeats the purpose since you only have one server supporting everything, and in case of hard drive crash, etc, you are down while it is repaired. If #2 is the reason then a VMWare based solution MAY work, however keep in mind that the hardware you'd use would almost necessarily be of a higher caliber than what you're currently using. So you maybe get more bang for your buck, but you STLL lose the redundancy that multiple physical machines gave you.
如果#1是原因,那么去VMWare就会失败,因为你只有一台服务器支持所有东西,并且在硬盘崩溃等情况下,你在修复时就会失败。如果#2是原因,那么基于VMWare的解决方案可以工作,但请记住,您使用的硬件几乎必须比您当前使用的硬件更高。因此,您可能会获得更多收益,但是STLL会失去多台物理机器给您的冗余。
Now, you could always combine the two by having multiple physical machines all running VMWare, but that adds a level of complexity to things that you may not necessarily want either.
现在,您可以通过让多台物理机都运行VMWare来将两者结合起来,但这会增加您可能不一定需要的复杂程度。
#4
It doesn't sound like there would be any tangible benefit from running multiple virtual servers on the same physical host, you're just adding overhead. Unless I'm missing something with the way you've described the setup, there wouldn't be any benefit at all from moving to VMware - unless you're looking at taking advantage of features such as VMotion
听起来好像在同一物理主机上运行多个虚拟服务器会带来任何实际好处,您只是增加了开销。除非我错过了您描述设置的方式,否则转移到VMware将没有任何好处 - 除非您正在考虑利用VMotion等功能
VMware is most useful for consolidating underutilized hardware. If your hardware is running at near-capacity during peak periods then you don't want to run multiple VMs on the one machine.
VMware对于整合未充分利用的硬件非常有用。如果您的硬件在高峰时段以接近容量运行,那么您不希望在一台计算机上运行多个VM。
There are benefits to Virtualization but your network admins need to prove that there is a benefit for your company before you even consider switching. I would say if you have multiple apps running on dedicated servers with low traffic (i.e. each app has it's own physical server) then sure, Virtualize. If you have one app over many servers, then don't.
虚拟化有一些好处,但您的网络管理员需要在您考虑切换之前证明您的公司有利。我想说如果你有多个应用程序在低流量的专用服务器上运行(即每个应用程序都有自己的物理服务器),那么确定,Virtualize。如果您有多个服务器上的一个应用程序,那么请不要。
#5
You should be able to use virtual machine hosts with multiple vm per host and load balance across all of them.
您应该能够使用每个主机具有多个vm的虚拟机主机,并在所有主机上实现负载平衡。
Microsoft is doing this with msdn and technet http://virtualization.info/en/news/2008/05/microsoft-migrates-msdn-and-technet-on.html.
Microsoft正在使用msdn和technet http://virtualization.info/en/news/2008/05/microsoft-migrates-msdn-and-technet-on.html这样做。