我正在为一家公立高中设计计算机网络,并制定了以下服务器之间的职责划分:
在局域网中:
Active Directory 域控制器。DC 将为 LAN 中的大约 130 台设备提供服务。DNS、DHCP 和 RADIUS 在此运行。
文件服务器。用户资料、数据共享、邮件。
应用程序服务器。SQL 服务器和其他一些程序,例如 IP 摄像机记录器、楼宇门禁、午餐订购系统等。
在 DMZ 中:
互联网网关。提供对互联网的访问。运行 Exchange、IIS 和 Web 缓存代理。
网络服务器。Debian GNU/Linux 托管多个网站和网络邮件。
这是五台服务器。虽然我可以购买必要的硬件,但这似乎太多了。而且出于某种原因,我不喜欢虚拟化服务器。
如果我使用此设计,我想利用它并在文件服务器上运行另一个 AD DC,以防第一台服务器出现问题。但用户配置文件存储在文件服务器上,因此如果文件服务器出现故障,一切都会中断。
因此,也许我可以将数据移动到连接到 AD DC 和文件服务器的磁盘阵列上。它们都将充当 DC 和文件服务器。我甚至可以在第二台服务器上运行辅助 DNS、备份 DHCP 和备份 RADIUS,从而使所有服务冗余,只需进行一些配置即可。
局域网中一半的计算机可以将第一台服务器配置为主 DC/DHCP/DNS,另一半可以使用另一台服务器作为主服务器来平衡负载。
SQL 服务器在应用程序服务器上绝对至关重要。我可以在第一个 DC 上运行备份 SQL 服务器。应用程序服务器上的其他应用程序并不那么重要。
两台机器位于 DMZ 中。不幸的是,我们需要 DMZ 中的 IIS 服务器。否则,一台 GNU/Linux 服务器就可以了。(我会使用 postfix 而不是 Exchange Server。)
我对计算机网络设计没有太多经验(除了非常小的网络或独立的服务器),想知道我的设计是否合理以及是否存在任何固有缺陷。
如果有关于该主题的好书,请告诉我。
答案1
您需要高可用性 - 当出现故障时,所有事物仍能顺利运行的能力。虚拟化是实现这一目标的关键部分。如果没有虚拟机,我甚至不会考虑这样做。
一个非常简单的设置是两台具有大量 RAM 的物理服务器,在集群中运行 VMware ESXI 或 HyperV,以及一些共享存储(例如 iSCSI SAN)。我是 HyperV 的忠实粉丝,尤其是如果您在 Windows Server Datacenter 上获得特殊的教育价格。指定系统以便所有内容都可以在一台服务器上运行,尽管在正常情况下可能没有您希望的那么快。这主要意味着拥有足够的 RAM 来运行所有内容。如果您这样做,在正常情况下,负载将在两台服务器上平衡,但如果物理主机发生故障,所有内容仍会继续运行,并且在您修复它时没有人会对您大喊大叫。
虚拟化意味着您不受物理服务器数量的限制(尽管您受其内存和 CPU 能力的限制)。这意味着您可以执行诸如运行两个域控制器之类的操作,使用 DHCP 设置为故障转移群集角色或拆分 DHCP 范围。您还可以使用新的 Server 2012 功能来运行持续可用的文件服务器。冗余 SQL 服务器也是如此。在这两种情况下,您都告诉虚拟化平台将这些虚拟机对保留在单独的物理服务器上,因此即使物理服务器死机也不会有人注意到。
您需要有两个域控制器。如果数量不足,以后就会出现问题。Active Directory 与所有事物息息相关,如果它发生故障,很多事情都会中断。更重要的是,如果网络上仍有可用的域控制器,则恢复 Active Directory 会容易得多。
将文件服务器作为第二个域控制器运行的想法并不太糟糕。但在域控制器上运行 SQL 并不是一个好主意。将单独的服务器用于单独的任务可以减少出现故障的可能性,让您更好地控制停机时间(我需要更新 SQL 服务器...所以我必须将 Active Directory 脱机一段时间...),并使恢复备份变得更加简单。
DMZ 可以由同一服务器上的 VLAN 处理,也可以是一个单独的物理盒,这取决于您的具体需要。
虚拟化的最大优点是,除了节省大量购买整天闲置的昂贵服务器的费用外,它还将操作系统与硬件分离开来。想要将硬件升级到最新最好的型号 - 没问题,无需重新安装 Windows,只需安装虚拟机管理程序并迁移虚拟机即可。在许多情况下,这可以做到甚至无需关闭虚拟机,0 停机时间。操作系统不知道它是新硬件,不需要重新安装驱动程序,它就可以正常工作。
在学校工作,你可能有资格获得微软的超值折扣,所以我建议你买一本关于 Hyper-V 的好书。选择硬件时,请与供应商合作。戴尔、惠普或其他公司会非常乐意向你展示一套他们已经测试过的、可以很好地协同工作的服务器和存储设置。
答案2
避免使用虚拟服务器肯定会限制您的选择。如果可能的话,您应该重新考虑这一点。
没有好的方法可以在一个段上运行多个 DHCP。将其作为群集资源运行以确保高可用性更有意义。第二个 DC 是必要的,以便能够在正常时间内进行维护等工作。您没有说明使用 RADIUS 的原因,因此我假设是 VPN。这也应该是冗余的,以允许故障和维护。
SQL Server 还需要高可用性集群来提供有保证的服务。
DMZ 中的 IIS 令人好奇。如果您打算在那里保留 *nux Web 服务器,请使用反向代理将 IIS 角色保留在防火墙内。这样,您还可以在内部服务器上保留 Exchange 角色。
考虑每个角色的工作量比考虑具体的角色更重要。
您还需要考虑如何在这么多台机器上进行备份。
考虑将集群用作容错 SAN 节点上的 NAS 前端 - 连接 iSCSI 以降低成本。您还需要冗余交换机。