我正在研究 SharePoint,但在了解如何规划服务器以便在使用负载平衡的同时获得良好的可用性时遇到了一些问题。我基本上已经计划了最基本的设置,即
两台前端服务器
一台应用服务器
两台 SQL 服务器
我想要两台前端服务器以获得良好的运行时间,所以如果一台服务器崩溃,系统应该仍然可以工作,这同样适用于 SQL 服务器。我将有一些站点始终需要启动,而其他一些站点则不太重要并且可能会关闭一段时间。因此,我想在服务器之间进行负载平衡。如果服务器崩溃,我可以关闭一些站点而其他站点速度较慢。
问题是我可以理解负载平衡是如何工作的。所以我在 Windows 2008 中研究了 NLB。假设我将它安装在我的前端服务器上。这是否意味着即使我的两个前端服务器之一崩溃,我的系统也能正常工作?
这就是我理解它的工作方式,我有一个名为 Foo 的域。用户尝试访问路由到前端服务器 1 的 Foo,然后 NLB 将依赖于用户到前端服务器 2 的加载路由或将用户保留在前端服务器 1。
我无法理解的是,DNS 需要将用户路由到服务器,然后该服务器可以根据负载路由用户。但是,如果运行 NLB 的前端服务器 1 崩溃怎么办。那么用户仍然可以通过前端服务器 2 访问 Foo 吗?
同样的问题也适用于数据库?这是如何运作的?我是否需要购买一些额外的硬件,或者 SharePoint 或 SQL 是否会同时兼顾可用性和负载平衡?
使用 NLB 时,您需要一个额外的虚拟 IP 来进行负载平衡。每台服务器都有自己的IP。当您设置 NLB 时,会使用它自己的 MAC 地址创建一个额外的 IP。
当您将 NLB 与单播一起使用时,建议与具有 2 个 NIC 的服务器一起使用,两台服务器都侦听虚拟 IP 的 MAC 地址上的流量。根据访问虚拟 IP 的机器,每台服务器都会使用虚拟 IP 进行响应。
一个示例是子网 abcd/24 上的客户端 A 访问虚拟 IP 和机器 2 的答案。客户端现在绑定到机器 2,尽管它仍然与虚拟 IP 通信。
当子网 wxyz/24 上的客户端 B 连接时,机器 1 应答,客户端 B 现在将从机器 1 获取数据。注意:对于将所有数据库存储在同一实例中的共享点,您的 SQL 集群必须处于活动状态-被动模式。