这个问题是关于 Active Directory 是否需要运行终端服务的讨论。但是一连串的答案和评论(主要是我)提出了一个与域控制器相关的问题。
在 AD 环境中只有一个域控制器显然是一种糟糕的做法。将每个域控制器放在单独的(物理或虚拟)单一功能服务器上显然也是最佳实践。然而,并不是每个人都能始终遵循最佳实践。
可以使用充当其他角色的服务器作为域控制器吗?
在确定是否“双重用途”服务器时应考虑哪些事项?
域控制器角色是否会改变 Windows 操作文件系统或硬件的方式?
Windows Server 的版本之间有区别吗?
多角色域控制器很常见。虽然,他们执行的大多数角色都是网络基础设施角色。很好的例子是文件服务器、DHCP 和 DNS。它们对于诸如终端服务器(用户无权登录域控制器并给予他们所说的权限授予需要域管理员)、Web 应用程序服务器、业务线应用程序服务器、防火墙/代理/ISA 服务器等东西来说是糟糕的选择
在我的环境中,我更喜欢在域控制器上运行所有内部 DNS 服务器以及我的 DHCP 服务。这似乎是 DC 上角色的良好组合,以降低成本并尽可能充分利用硬件。
“你甚至可以用它切一个锡罐,但你不会想要的!” - Mr. Popeil , 歌词 Weird Al Yankovic
我想问题是:你愿意吗?当然,您可以将域控制器变成文件和打印服务器、SQL Server 机器或任何数量的其他功能。但这也有不利的一面,即该盒子功能退化的代价。如果您的用户很少(比如 25-50 岁以下),或者您受到预算限制的压力,并且需要将其设为“一体式”盒子,那么您可以侥幸成功。但是存在性能问题、安全问题,甚至服务之间存在不兼容的可能性。做“一体式”盒子是由不了解他们将支付的价格的钱袋子制定的邪恶预算的功能。
如果您负担得起,请将域控制器放在单独的盒子上。哎呀,如果可能的话,买一个便宜但服务器级的盒子,可能是一个部门级的盒子,然后把你的 DC 服务放在上面;然后得到那个盒子的双胞胎,并在上面放上 DC 服务。这是 Windows 希望您拥有的模型,并且您确实应该为每个域至少有两个域控制器。
为那些最常用的服务购买加强盒——数据库、电子邮件、文件和打印等。这些是用户经常看到的“日常”盒;域控制器最好在整个域中留下橡皮图章的用户凭据。
你能摆脱性能下降的问题吗?您正在安装的服务与可能运行的任何其他服务之间是否存在不兼容性?它会干扰 AD 身份验证吗?
不会。但它会增加它的工作量。如果您集成其他非 Windows 功能(例如,使用 PAM 堆栈通过 Kerberos 作为 IMAP 服务的一部分来验证 linux 机器),那么预计工作量会增加。
每个版本都会增加功能的数量,尽管可以肯定地说,如果不是更好的话,您至少需要 Windows 2000。大多数人都在使用 Windows 2003(和表亲),其中包括对文件服务、卷影复制等的增强。2008 提供了更多的增强。
Microsoft Small Business Server 是 AD + Exchange + 文件服务器 + 路由器/VPN 服务器 + Sharepoint + SQL Server.. 并且更多的都集成到一个服务器中。因此,我不会说将每个功能都放在不同的服务器上是“最佳实践”。对于小型操作,在不同的硬件中运行所有内容是没有意义的。
你可以而且它有效。我有大约 40 个分支机构,并且出于政治原因,做出了一项管理决定,为每个分支机构提供完整的服务器基础架构。出于财务原因,每个环境都是单服务器环境,所以都是 DC/File/Exchange(这是在 Windows 2000 时代)。
然而,它的管理是一场噩梦,我更喜欢的规则是“一个 DC 就是一个 DC,没有其他任何事情发生”。这些是您最重要的服务器,如果您的广告变得有趣,您将很难将其恢复正常。如果可以的话,通过专门的 DC 角色给自己避免这种情况的最佳机会。如果你不能,乞求、尖叫、呜咽、贿赂、威胁、预言或任何使自己处于可以的位置的方法。
是的,他们可以,但从安全角度来看,通常的答案是否定的。原因很简单:在域控制器上运行的东西越多,可以利用的表面积就越大。拿起盒子,你就有了域名。通常,在 Active Directory 集成区域中运行 DNS 并不罕见。但是,除此之外,我会说不,除非您是一家小商店并且根本负担不起中断服务的费用。
看起来它归结为安全性和性能。我认为在小型网络上性能并不是什么大问题,AD 使用的最便宜的服务器数量很少,你现在可以组装起来。
那时,您可以权衡安全性与成本 - 这是所有安全问题在小型网络中归结为...
我想所有的答案都可以用 Small Business Server 来概括。
当然,MS 能够将几乎所有东西(AD、Exchange、SQL 等)都扔到一个盒子上。但它像垃圾一样运行,仅在非常有限的情况下有用。
简而言之,你能做到吗?是的。你应该这样做吗?我不推荐它,但如果你处于绑定状态,它可以工作。
从性能的角度来看,它取决于两个服务的负载。在较小的网络上,DC 也可以兼作 DNS 或 DHCP 服务器,而不会出现问题。在更大的网络上,它正在自找麻烦。
我强烈建议您不要在同一个物理盒子上放置多个“主”服务器。IE,如果这是您的主 DC,则可以将其用作辅助 DNS 服务器或备用 DHCP 服务器。原因是,您不希望一个盒子上的失败取出两个服务。
我强烈反对任何人运行要求更高的服务,例如 Web 服务器(IIS 或 Apache 等)或任何类型的数据库。
如果您确实决定在同一个物理机器上运行多种类型的服务,我强烈建议您尽可能地使用“强大”的机器,并将其用作虚拟服务器的主机。这样,您的所有服务在操作系统级别上仍然相互独立。
我通常会在域控制器上运行 DNS 和 DHCP,并且至少有两个 DC。就我个人而言,我有一个虚拟 DC 在我的两台虚拟主机(运行 VMware ESXi,总共三台虚拟主机)和一台物理主机上运行。所有 DC 都是 DNS 服务器,其中两个是 DHCP 服务器(每个服务范围的一半)。虚拟化使拥有特定任务的虚拟机变得容易(并且取决于您支付 Windows 许可的方式,价格合理),而且我更喜欢将事情分开,因为重新启动一台服务器不会影响其他服务器。
但是,我在另一个(较小的)办公室运行 SBS 2003,它在功能强大的服务器上运行良好,尽管重新启动调度问题有时很烦人。SBS 是物理的,但我有第二台服务器运行 VMware ESXi,它有一个 Windows VM,它也是一个 DC,所以我有一个辅助服务器(只要 SBS 持有 FSMO 角色,SBS 就允许使用第二个 DC)。我讨厌拥有一个 DC,它会使恢复更加困难,并且停机时间更长!
除了 DNS 和 DHCP 之外,如果可能的话,我会尝试仅向 DC 添加诸如打印和/或文件服务之类的内容。其他人必须仔细权衡......如果可能的话,如果您必须在主要硬件上混合,即使是桌面/低端服务器也可以作为辅助 DC/DNS 盒子。如果您的主要硬件出现故障,即使是非冗余硬件也可能启动,反之亦然(无论是重新启动还是崩溃)。
没有什么本质上会拒绝域控制器以其他身份运行。
如果您有一个现有的 AD 基础结构并且您只有一个域控制器,我会说提升另一台服务器的任何缺点都将被获得另一个 DC 的优势所抵消。
请记住,在您运行 dcpromo 之后,您必须重新启动,因此新提升的机器提供的任何服务都将被中断。此外,如果您有任何域控制器安全策略,它们将应用于该服务器。