我们需要实现一个新的 MS-SQL/IIS 服务器,在内部为 Intranet 页面提供服务。目前我们平均每秒看到 22 次点击,但每个请求都非常小。
您推荐的服务器配置是什么?
a) 具有两个应用程序的单个服务器
b) 两台物理服务器,每个应用程序一台
c) 两台 VMware 服务器,每个应用程序一台
d) 其他
另外,此时您会选择哪个版本的 Windows 和 MS-SQL,为什么?
我们需要实现一个新的 MS-SQL/IIS 服务器,在内部为 Intranet 页面提供服务。目前我们平均每秒看到 22 次点击,但每个请求都非常小。
您推荐的服务器配置是什么?
a) 具有两个应用程序的单个服务器
b) 两台物理服务器,每个应用程序一台
c) 两台 VMware 服务器,每个应用程序一台
d) 其他
另外,此时您会选择哪个版本的 Windows 和 MS-SQL,为什么?
你没有说你期望从 Intranet 应用程序得到什么负载。我猜除非你的公司是一家大公司,否则 Intranet 应用程序不会有那么大的负担。在这种情况下,关键目标是可管理性。如果是这样,我会使用两个 Hyper-V 虚拟机。您可以将它们放在同一个物理服务器上开始,如果负载变得太大,则将每个 VM 放在它自己的服务器上。
在不同的服务器上安装 IIS 和 SQL 的优点是简单。您不必担心对一项服务所做的更改会影响另一项服务。
使用虚拟机而不是真实服务器的优势在于,您可以通过(影子)复制它们所在的文件夹来备份虚拟机。这使得 SQL Server 服务包之类的东西不那么可怕。如果您有两台物理服务器,您甚至可以在两台服务器上保留同一个虚拟机的副本,然后如果您丢失了一台物理服务器,您可以快速在另一台物理服务器上启动虚拟机。它还使硬件升级更加容易。
我会为 IIS 使用 W2k8。是否值得使用 x64 值得商榷。我确实在我最近的 IIS 服务器上使用了 x64,但我最终不得不在 32 位模式下运行 IIS,因为它需要的许多 COM 服务器仅在 x86 版本中可用。对于使用 x64 的 SQL 服务器,如果您认为您可能需要 > 4GB 的 RAM,那么它会在未来得到证明,老实说,您永远不会有太多的内存用于 SQL 服务器。我可能会选择 SQL 2008,因为您最终必须这样做,而且现在执行它比以后升级要容易得多。
在虚拟磁盘上安装 SQL Server 可能会引起一些人的注意(或者它会在 SAN 上吗?),但我对我们中等大小的数据库的测试表明,性能影响几乎不明显。事实上,当我最近将我们的一个 SQL Server 迁移到 VM 时,它的运行速度提高了大约 50%,这仅仅是因为与两年前的新主机服务器相比,它的磁盘速度大幅提高。
约翰·雷尼
我在一个非常活跃的制造环境中管理我们的 IIS 和 SQL 服务器实例。过去,我们总是拥有“千篇一律”的 sql/iis 服务器,并将它们放置在每个不同的区域中。有太多时间开发人员进行更改或安装导致服务器问题的软件,这些问题显然也会影响您的 sql 服务器。话虽如此,我肯定会建议将应用程序拆分到单独的服务器上。我不知道是否在 VM 环境中使用 sql 对性能的影响。我们在 VM 中构建了一个测试 sql 集群,它也可以与许多其他 VM 实例一起正常运行。
我们最近才开始将我们的 sql 服务器整合到在 Windows Server 2003 上运行的 sql 2005 故障转移集群中。它们存在于 2 台物理服务器上,采用主动/被动配置,带有 SAN 后端。如果我能做到这一点,我会使用 SQL 2008,所以我不必担心升级一段时间,并且会考虑将它们放入 VM 中。
我们的 IIS 服务器存在于 VM 中 Windows Server 2003 上的 Web 集群中。
我真正喜欢 VM 的一点是,如上所述,VM 实例可以在没有太多通知最终用户的情况下被折断和移动。例如,在物理服务器可能脱离租约的情况下,VM 实例不会脱离租约。对于真正的硬件,您可以在进行交换时将您的 VM 实例移动到另一块硬件上。
D) 其他
没有足够的信息。你的预算是多少?您是否已经拥有虚拟基础架构?您期望服务器上有多少负载?
如果您有无限的预算和大量的负载,那么显而易见的答案是分离并虚拟化所有内容。
致所有虚拟化 SQL 反对者:向我展示虚拟化 SQL 应该与虚拟化其他任何东西不同的证据。; )
我会选择 B 或 C 选项。拆分 2 是最好的。如果您有良好的虚拟服务器设置,那么我看不出它们不能成为虚拟服务器的任何原因。您可能只想知道您将获得多少页面请求和 SQL 请求以提高性能。
除非您在 SQL 框上进行大量的全文搜索,否则我会选择 SQL2008。否则,我会选择 SQL2005。Server 2008 和 SQL2008 很好地相互集成,所以我会选择它们。
-JFV
我的 0.02 英镑价值:
将数据库服务器放在一个单独的盒子上。这使您可以针对数据库服务器对其进行优化。一台或多台集群网络服务器可以在便宜的 1U 机器上运行。在单个机器上扩展数据库服务器要容易得多。
除非您有特定的应用程序,否则不要使用虚拟机。如果您有大量要沙盒化的单独应用程序,它们实际上只会给您带来好处。
SQL Server 2008 免费为您的系统提供额外三年的使用寿命。SQL Server 2005 将在 2008 年之前 3 年进入 EOL,因此使用 SQL Server 2008 可以让您的应用程序在需要迁移之前有更多时间。
不是选项A,肯定不在Windows的同一个INSTANCE内。
SQL Server 确实不能很好地与同一服务器上的其他应用程序一起使用,因为它很容易被 RAM 占用并且可以分页其他应用程序/服务。(我还建议修复 SQL Server 使用的 RAM 量,关闭“自动”参数)
您可以拥有一台服务器,运行 vmware 并托管 Windows 2008 的两个虚拟实例。如果您还没有开始使用 vmware(或任何其他虚拟化环境),那就开始吧。
一旦你发现你的单个 vm 服务器运行良好,你就可以考虑投资更高端的 vmware 产品:esx、虚拟中心等,你可以通过集群建立你的 DR/HA 和容量。