使用单个卷/驱动器号安装 Windows Server 的优点/缺点

使用单个卷/驱动器号安装 Windows Server 的优点/缺点

我们的虚拟环境被分割成每个工作角色(DNS、DC、System Center CM、文件服务器、日志聚合、IIS 等)的 VM。如果磁盘性能不是至关重要的,是否真的有必要在逻辑上将 Windows 操作系统文件与应用程序文件/数据/日志分开?作为 Windows 2000/2003 和 NT4 上的先前标准(天哪!),我们的商店会将工作负载分割到 C: 和 D: 驱动器等中,即使它们由相同的底层磁盘阵列提供服务。

假设您不需要单独的磁盘阵列来提高性能(例如 SQL Server 方案),这种分离仍然是最佳的还是必要的?如今将您的 OS+数据拆分到不同的卷上有哪些优点/缺点?

我能想到的多个卷的一个优点是,您可以以交互方式对非系统驱动器运行 chkdsk,而无需重新启动(这在过去为我节省了一些停机时间)。

感谢您的帮助 - 我们有几台新的实用程序服务器待建,但不想过度设计。

答案1

如果您只是问是否应该有一个“系统”分区和一个单独的“应用程序”分区,我看不出它的价值,尤其是现在。

对于 UNIX 类型的系统来说,这样做曾经是一种惯例,因为如果系统卷中数据溢出,则可能会出现无法启动或无法使用的情况,因此分区分离是一种伪物理方式,可以防止无人值守的日志文件填满您的启动分区。

如今,如果您正确地维护系统,您不应该从中看到太多好处。现在您实际上可能会遇到问题,因为更新量巨大,系统升级量如此之大;曾经在 10 GB 的 Windows 安装分区中没问题的东西现在变得很小了。我还看到了一些问题,因为 Windows 通过网络传输文件的方式以及临时下载的方式,它会填满系统分区,无法稍后将内容复制到它们所属的位置,并且它严重增加了文件系统上的碎片问题。

如果您正在虚拟化该系统,那么您甚至不会争辩说您获得了更好的性能,因为虚拟机是从物理磁盘层抽象出来的,无论虚拟机认为它有多少个分区/驱动器。

如果您的应用程序对时间非常敏感,以至于您无法关闭系统进行磁盘检查(希望您很少需要它),那么您可能应该制定计划,以便提供故障转移支持、维护窗口,并且对于虚拟机,您可能有办法在必要时使用快照或沙箱中的副本诊断问题的同时保持虚拟机运行。如果操作至关重要,您应该已经制定了计划,以便在机器发生故障时保持服务可用。这内置了在不中断服务的情况下修复虚拟机的能力。否则,您的用户将不得不忍受一段时间的停机时间。

此外,Windows 终于获得了更大的灵活性(Linux 已经具备了这一点),可以创建即时卷管理,可以扩大和缩小驱动器并将其组合成更大的卷(如 Linux LVM 支持)。Windows 正在慢慢地从以驱动器为中心的模型转向服务器上的卷管理模型。

如果您使用的是 Windows DC,您提到的服务已经内置了一些冗余,因此对于其中许多服务来说,执行 chkdsk 的时间应该不是问题。

总体而言,除非您直接需要创建单独的卷作为驱动器号,否则我会创建一个大驱动器并保留它。它更简单,以后更灵活,而且总体来说处理起来更麻烦。

答案2

我不认为它曾经是一个标准,尽管它是一种广泛实施的惯例。我从未看到这样做的价值,现在仍然没有。我理解出于备份/恢复原因想要将数据与操作系统分离的原因,但出于性能原因,通过在同一个物理磁盘子系统上创建单独的逻辑卷将操作系统与应用程序和数据分离是一种错误的尝试。如果有的话,你会通过这样做在磁盘 I/O 上引起更多的性能负载,因为你的操作系统和应用程序正在争夺相同的底层物理磁盘。如果你需要将磁盘 I/O 密集型应用程序与操作系统分离(例如 SQL 或 Exchange),你需要使用单独的物理磁盘或磁盘阵列来实现。

答案3

您可能已经知道,某些文件系统操作可能更简单(chkdsk)。例如备份,这取决于您的备份系统如何工作。

此外,规划可能更简单。如果您的操作系统的磁盘要求不变,但应用程序的要求会变化,那么在部署虚拟机时,如果您只需将应用程序磁盘附加到模板化基础虚拟机,您可能会有更大的灵活性。

我确信还有其他优点和缺点,但相关性取决于您的组织如何运作。

答案4

虽然在单独的驱动器上运行操作系统和数据可以提高性能,但令人惊讶的是,人们普遍误以为这也适用于操作系统和数据(或应用程序等)的单独分区。这是大错特错。

单个物理驱动器或阵列上的多个分区会导致性能下降。原因很简单。最大的性能损失来自磁头组件的物理移动。驱动器甚至无法开始读取或写入,直到磁头到达正确位置并停止横向移动。运行多个分区时,磁头需要移动的距离比单个分区大得多。平均行进距离也大得多。

当驱动器很小的时候,将操作系统和数据分开实际上是有意义的,只要确保每个驱动器都有足够的空间即可。对于现代驱动器容量,这不太有意义,除非有更令人信服的理由只是为了这样做而分开它们。当然,有很多情况下,分离是有意义的,只要您使用物理上独立的驱动器或阵列。例如,高需求的数据库服务器可能需要专用驱动器才能应对。

相关内容