我想咨询一下服务器基础设施方面的建议。我们将升级我们的网络基础设施(基于 MS 生态系统构建),到目前为止,我们有两台服务器(不包括 ISA 服务器):一台机器提供 Exchange、IIS、SQL 等应用程序服务,另一台机器提供网络服务(域控制器、DNS、DHCP、证书等网络服务,它也是文件服务器。两台服务器都在本地子网 192.168.xx 上
部分应用服务器可通过 ISA 服务器发布规则从外部访问,用于特定服务(例如 Exchange 服务器)。此设置适用于中小型组织,因此性能不是问题。
现在我们将升级旧硬件,可能需要检查一下我们当前的服务器基础架构。我们需要的是:
- 域控制器
- 网络服务(DNS,DHCP,...)
- Exchange 服务器
- SQL 服务器
- 互联网信息服务
- 特福斯
- 文件服务器
- 更新服务
- 认证机构
- 还有更多,但大多无关紧要的东西——
您是否建议保留当前的双服务器基础架构(一台机器作为本地网络上的应用程序服务器,并提供一些已发布的服务)并将一台机器用作 DC、网络和文件服务器,或者将所有内容放在一台服务器上(但据我所知,Exchange 和 DC 放在一台机器上并不好),或者完全不同,或者将应用程序服务器放在 DMZ 中,等等。顺便问一下,您认为将 DC 和文件服务器放在一台机器上有什么问题吗?
在评论以及 Nextraztus 和 Golmaal 的回答之后添加:
关于虚拟化,我绝对支持 Hyper-V - 我是一个十足的 MS 用户,从 WfW 3.1 开始就一直在为 Windows 进行开发,过去十年我一直在使用 ASP.NET 和 Windows 内核 IFS(是的,两个相当但不同的世界,C# 和纯 C)。
我们的标准设置是 RAID 10(用于系统和关键数据)和 RAID 5(用于“普通”数据)。
我几乎不敢大声承认这一点,但我对虚拟化有一些个人问题 - 如果您能帮助我克服这个问题,我将不胜感激:) 我日夜使用它进行开发,特别是使用经过检查的 Windows 版本进行内核开发,我在 Azure 上工作时使用它(我们使用 Azure 提供的几乎所有服务,虚拟机、网站、Web 角色、缓存等等),但在这里,我“感觉”我仍然希望拥有真正的物理服务器。
到目前为止,我理解,虚拟化给了我更多的自由,因为我可以拥有几乎任意数量的服务器,并且可以根据需要分离关注点,我可以备份整个图像。
没有虚拟化,我可以指定系统在 SSD 上运行,这些数据在 RAID 10 上运行,这些数据在 RAID 5 上运行(如果需要,我可以向这些数据卷添加特定的新磁盘)等等。我知道这会变成一个不同的问题,而且看起来你说得确实没错,但是除了成本低得多之外,将一切虚拟化还有什么真正的好处呢?
编辑2:
我可以理解 DC 应该单独保留(但网络服务,尤其是 DNS 和 DHCP,是没问题的) - 但为什么将几乎每个服务器角色暴露给单独的服务器似乎更好? Exchange 到一台服务器,SQL Server 到另一台服务器,TFS 到另一台服务器 - 我能想到的唯一原因是负载平衡,但如果这不是问题......?相反,我可以看到例如 TFS 可以从在具有 SQL Server、IIS 和 Exchange 的计算机上运行中受益。
答案1
在小型/中型设置中,集群/HA 不是主要考虑因素(尤其是由于多个许可证所涉及的复杂性和成本、需要更高/企业版本等),虚拟化可能看起来不是一个有吸引力的选择;也就是说,这一切都取决于用户数量和操作的关键性。既然您提到“此设置适用于中小型组织,因此性能不是问题”,我可以自由地假设不需要集群/HA 等。最终,这一切都取决于可接受的停机时间。
我将使用两台运行四台虚拟机的物理服务器(每个 Windows Server 2008 许可证可以在一台物理服务器或两台虚拟服务器上运行):
Server 1:
VM1:
PDC
Network Services
File Server (Use DFS replication)
VM2:
SQL Server
Server 2:
VM3:
Secondary Domain Controller (global catalog; backup dhcp etc)
File Server (Use DFS replication)
VM4:
Exchange
您可以在 VM1 或 VM3 上运行其他服务。清算 ISA 并使用第三台物理服务器(低端);在其上安装 pfSense,并使其成为具有防火墙、防病毒、缓存、VPN 等功能的全功能 TMG/UMG。使用由 cos 提供的邮件中继/备份服务,例如 dnsexit.com;这可能是实现 Exchange 故障转移的最便宜的方式(取决于预期)。
这样,您将拥有一个具有故障转移功能的域,用于某些最关键的服务。例如,如果您的 PDC 由于某些原因不可用,您的 VM3 将接管,您的客户端仍然可以访问文件并使用互联网和邮件。
通过适当的备份策略,您可能能够将其他服务(如 SQL Server、Exchange 等)的停机时间最小化到可接受的限度。使用 RAID 10、SSD 等可以让您获得配置自由,并可以在不增加大量成本或复杂性的情况下提高可靠性。
我希望它有帮助。
编辑:
我对 Exchange 不太感兴趣,但您需要将其保留在 DMZ 中,因此将其保留在自己的 VM 中可能更有意义。IIS 也是如此 - 与 Exchange 位于同一个 VM 中。我可以看出您完全喜欢 MS 生态系统和 Azure。使用内部 Exchange 而不是托管有什么特别的原因吗?
DFS - 它工作得很好。在我看来,它是文件服务器的低级管理员高可用性解决方案。如果您不需要处理离线文件,您应该尝试一下 DFS。
TFS 可以与 VM2 一起使用。我没有用过它,但我知道它是一个资源密集型应用程序。如果您使用托管 Exchange,请使用 VM4 进行 TFS。
我认为在同一台物理机/同一台虚拟机上运行 Exchange、SQL Server 和 TFS 是可以的。但是,在不同的虚拟机上运行它们与在单台物理机/虚拟机上运行它们相比没有任何缺点。对我来说,最大的优势是灵活性和安心。例如,如果您的 SQL Server 管理员搞砸了某件事,而您必须重建该机器,那么在您从备份或从头开始恢复 SQL Server VM 时,其余服务仍将不间断运行。
答案2
正如@Sarge 在他的评论中提到的那样,虚拟化是适合您用例的一条好途径。请注意,这些大多只是意见,并且是高层次的看法。
选择一个虚拟化平台。
现在有很多选择,我个人推荐以下之一:
- 微软的 HyperV
- 虚拟机
每种方式都有各自的优缺点,主要是价格和许可条款。您需要与供应商合作,确保您不会超卖或低价出售(并且无法通过审计)。
决定你想要的冗余程度
再次强调,有多种方法可以实现这一点,最明显的选择就是购买两台强大的服务器,并将它们与您选择的虚拟化平台进行集群。这显然很快就会变得非常昂贵。
另一种选择是将所有内容放在已正确备份的 SAN 上——一种故障情况是您丢失了执行实际虚拟化的服务器,但由于所有内容都很好地容器化到虚拟机中,因此您可以在新设备到达后立即恢复正常运行。
另一种故障模式当然是 SAN 死机。做好备份,这不是问题。显然,你在这里也有很多选择
获得适当的培训
虚拟化是一种全新的技术,有时需要小心谨慎。但是,当您需要测试某些东西并且不想冒险破坏现有基础设施时,它确实很有用。无论您选择哪种技术,都要获得一些有关如何管理它的专业开发。
部署
有很多工具可以将物理服务器转换为虚拟机。由于您的大多数服务都集中在一台服务器上,因此您不会看到太多好处,除非您能花一个周末的时间设置好一切并进行迁移。
提升
一旦一切恢复正常,你就可以享受乐趣了。在新环境中,破坏事物会变得更加困难。继续前进,取得成功,因为你知道只需点击几个按钮就可以安装和拆卸新机器和新想法。
建筑学
我不是 Windows 专家,但我一直被告知任何事物除了目录服务之外,在 DC 上运行也是坏事。我还听说您几乎总是希望使用两个 DC 来分担角色(RID、PDC 和 IM),并且如果其中一个 DC 发生问题,则会出现明显的冗余。
显然,许可是这类事情的一个问题。但实际上,如果您密切关注负载并保持职责,小型环境可能不会对服务器的双重职责造成太大影响。此外,如今的服务器功能强大,价格合理。
陷阱
虚拟化共享资源。这是显而易见的,但需要提及。如果您选择这种方式,则需要将 RAM、硬盘和其他所有东西放在首位。不要缩小硬件尺寸,因为现在一切都将共享。如果出现问题并占用了您存储空间中的所有空间,如果您不留意,您的其他机器现在就会受到影响。
至于您的 DMZ 问题 - 如果您决定虚拟化并且决定公开任何内容,则应确保将这些机器放在不同的虚拟网络上,以便它们保持适当的分段。
希望这些想法能有所帮助。