我们对具有多个版本的产品进行Web开发,这些版本不希望在单个Windows / IIS安装上共存。 我们决定启动3个虚拟服务器来处理我们需要使用的每个版本。 这部分是给定的,因为虚拟化对于我们在这里面临的问题肯定是有意义的。
我目前正在努力的是设置的细微差别,但是,因为我之前没有使用Windows进行虚拟化。 所以首先是基本要求。 我们将运行3台虚拟服务器(Windows 2008 R2),每台服务器都安装了IIS,并安装了与我们合作的产品的相关版本。 我们还需要一个MSSQL服务器来支持所有这些。
该机是一个i7-920(四核,8逻辑)W / 12GB的RAM。 有6个7200RPM基本硬盘,configuration成3个RAID1卷。
至于MSSQL数据库去,数据库的大小是小(通常<300MB),所以我不特别担心磁盘性能; 一切都应该适应工作内存,所以它只是日志写入。 如果磁盘性能成为问题(甚至不是),那么一旦价格下降,我预计最终会用一对SSD(可能是X25-Ms)取代一个或多个RAID1卷。
所以,最后,这个问题。 我目前正在考虑两个设置,但是我对Windows虚拟化不够熟悉,不能真正把握好坏。 我希望得到这些选项的一些反馈,或者听说其他更合适的设置?
选项1)在一个卷上运行hypervisor作为Windows 2008 R2的“服务器核心”安装,并给它2GB的内存,据我所知基本上只是一个命令行界面。 运行一个虚拟实例,在其自己的卷上有4GB的内存用于MSSQL,然后为实际的IIS设置运行一个2GB内存的虚拟实例,共享最后一个卷。
这对我来说总的来说很吸引人,因为它使pipe理程序简单化,并将所有其他angular色放在虚拟框中。 由于我有一个Linux背景,通过CLIpipe理hypervisor并不担心我。 但是,我不知道Windows的“服务器核心”CLI安装是否实际上less了维护开销,或者如果最终需要像修补一样频繁地重新启动,等等? 另外,它是否真的需要2GB才能运行,还是可以less花钱? 将Hyper-V虚拟机pipe理程序作为基本“服务器核心”安装运行还有其他缺点吗?
选项2)运行虚拟机pipe理程序作为在一个卷上具有6GB RAM的Windows 2008 R2的常规安装,并在同一物理实例上运行MSSQL,并在第二卷上创build数据文件。 然后像以前一样立起3个虚拟服务器,每个虚拟服务器都有2GB RAM,在最后的卷上共享。 在某些方面,这更简单一些,资源方面,它为MSSQL和更多的处理器提供了更多的内存(因为在选项1中至less有一个物理处理器专用于虚拟机pipe理程序,剩下4台虚拟机在3个CPU之间进行争夺)。 但是,我担心在pipe理程序上安装MSSQL会导致我不得不经常重新启动物理实例,以便将修补程序等重新安装到MSSQL,这样我就不得不更频繁地closures其他虚拟机。
服务器核心上的Hyper-V是推荐的configuration。 Server 2008(和2008 R2)背后的想法是限制安装的function和angular色,限制了修补的整体需求。 将会有一些补丁适用于所有的事情,但是只有Hyper-V的核心安装应该能够为您提供与补丁需求相关的最佳运行时间。
它确实取决于负载如何重载,但是如果主要是为了开发,那么我不会担心性能,并将SQL服务器从它自己的虚拟机运行。
希望你使用的服务器的质量可以超过12 GB(如果有必要),如果你使用的是质量(即名牌)服务器,你也可以考虑VMWare ESXi(个人I不要以为两个系统在性能上的差异在基础环境中就太重要了 – 但是与Hyper-V / Server 2008相比,ESXi并没有很好的硬件支持。