考虑到以上所有因素,我们现在可以开始进行布局了。 这是基于我自己的方法,该方法是在我获得 3 个旧 SCSI 磁盘并对各种可能性感到困惑时开发的。
附录中的表格旨在简化映射过程。 它们旨在帮助您完成优化过程,并在系统维修时作为有用的日志。 还给出了一些示例。
确定您的需求,并列出您想要放在单独分区上的所有文件系统部分,并按速度要求降序和您想要为每个分区分配的空间大小对它们进行排序。
附录 A 部分的表格是一个有用的工具,用于选择您应该将哪些目录放在不同的分区上。 它以逻辑顺序排序,并为您自己的添加内容和关于挂载点以及附加系统的注释留有空间。 因此,它不是按速度顺序排序的,而是用项目符号 ('o') 指示速度要求。
如果您计划使用 RAID,请记下您想要使用的磁盘以及您想要 RAID 的分区。 请记住,各种 RAID 解决方案提供不同的速度和可靠性级别。
(为了简单起见,我假设我们有一组相同的 SCSI 磁盘,并且没有 RAID)
然后我们想将分区放置到物理磁盘上。 以下算法的目的是最大化并行性和总线容量。 在此示例中,驱动器为 A、B 和 C,分区为 987654321,其中 9 是速度要求最高的分区。 从一个驱动器开始,我们以这种方式“蜿蜒”分区线在驱动器上反复进行
A : 9 4 3
B : 8 5 2
C : 7 6 1
这使得每个驱动器的“速度要求总和”最均衡。
使用附录 B 部分中的表格来选择要用于每个分区的驱动器,以便优化并行性。
注意您的驱动器的速度特性,并在相应的列下记下每个目录。 准备好多次洗牌目录、分区和驱动器,直到您满意为止。
之后,建议为每个驱动器选择分区编号。
使用附录 C 部分中的表格来选择分区号,以便优化磁道特性。 最后,您应该有一个按升序分区号排序的表格。 将这些数字填回到附录 A 和 B 的表格中。
当运行分区程序 (fdisk
或 cfdisk
) 以及进行安装时,您会发现这些表格很有用。
在此之后,通常会有一些分区必须在驱动器之间“洗牌”,要么是为了使它们适合,要么是出于对速度、可靠性、特殊文件系统等方面的特殊考虑。 然而,这为作者认为的驱动器和分区的完整设置提供了一个良好的起点。 最终,在做了这么多假设之后,实际使用将决定真正的需求。 在开始操作后,应该假设会有重新分区有利的时候。
例如,如果上述示例中的 3 个驱动器之一比其他两个驱动器慢得多,那么更好的计划如下
A : 9 6 5
B : 8 7 4
C : 3 2 1
驱动器在表面上的整体速度可能相似,但通过将驱动器与文件大小分布和访问频率相匹配,可以获得一些优势。 因此,二进制文件适合具有快速访问且提供命令队列的驱动器,而库更适合具有更大传输速度的驱动器,其中 IDE 为资金提供了良好的性能。
通过查看任务来避免驱动器争用:例如,如果您正在访问 /usr/local/bin
,则您很可能很快也需要来自 /usr/local/lib
的文件,因此将它们放置在单独的驱动器上可以减少寻道并实现可能的并行操作和驱动器缓存。 如果您可以获得并行操作,那么选择可能看起来不太理想的驱动器特性仍然可能是有利的。 确定常见任务、它们使用的分区,并尝试将它们保留在单独的物理驱动器上。
为了说明我的观点,我将在这里给出一些任务分析的示例。
例如编辑、文字处理和电子表格是低强度软件的典型示例,无论是在 CPU 还是磁盘强度方面。 但是,如果您为大量用户提供单个服务器,则不应忘记大多数此类软件都具有自动保存功能,这会导致额外的流量,通常是在主目录上。 将用户分散到多个驱动器上将减少争用。
阅读器还在主目录上具有自动保存功能,因此 ISP 应考虑分离主目录
新闻假脱机目录以其深度嵌套的目录和大量非常小的文件而闻名。 对于大多数人来说,丢失新闻假脱机分区并不是一个大问题,因此它们非常适合 RAID 0 设置,使用许多小磁盘来在多个主轴之间分配许多寻道。 INN 新闻服务器的手册和 FAQ 中建议将新闻假脱机目录和 .overview
文件放在单独的驱动器上,以用于更大的安装。
关于 Tru64 UNIX 下 INN 优化的 一些说明也适用于更广泛的受众,包括 Linux 用户。
应用程序在驱动器使用率和速度要求方面都可能要求很高。 详细信息自然是特定于应用程序的,请仔细阅读文档,并考虑到磁盘要求。 还要考虑 RAID 以提高性能和可靠性。
读取和发送涉及主目录以及传入和传出假脱机文件。 如果可能,请将主目录和假脱机文件放在单独的驱动器上。 如果您是邮件服务器或邮件枢纽,请考虑将传入和传出假脱机目录放在单独的驱动器上。
丢失邮件是一件非常糟糕的事情,如果您管理的是 ISP 或主要枢纽。 考虑对您的邮件假脱机目录进行 RAID,并考虑频繁备份。
可能需要大量目录来存放二进制文件、库、包含文件以及源代码和项目文件。 如果可能,请尽可能多地分散到单独的驱动器上。 在小型系统上,您可以将 /usr/src
和项目文件与主目录放在同一驱动器上。
正变得越来越流行。 许多浏览器都有本地缓存,可以扩展到相当大的容量。 由于这在重新加载页面或返回上一页时使用,因此速度在这里非常重要。 但是,如果您通过配置良好的代理服务器连接,则每个会话通常不需要超过几兆字节。 另请参阅关于主目录和WWW 的章节。
避免上述陷阱的一种方法是仅将固定分区设置为大小相当已知的目录,例如交换分区、/tmp
和 /var/tmp
,并将剩余部分组合到剩余分区中,使用符号链接。
示例:一个慢速磁盘 (slowdisk
)、一个快速磁盘 (fastdisk
) 和各种文件。 在 fastdisk
上设置了 swap
和 tmp
; 并在 slowdisk 上设置了 /home
和根目录之后,我们有(虚构的)目录 /a/slow
、/a/fast
、/b/slow
和 /b/fast
留待分配在分区 /mnt.slowdisk
和 /mnt.fastdisk
上,它们代表两个驱动器的剩余分区。
将 /a
或 /b
直接放在任一驱动器上会为子目录提供相同的属性。 我们可以使所有 4 个目录成为单独的分区,但会失去管理每个目录大小的一些灵活性。 更好的解决方案是将这 4 个目录符号链接到各自驱动器上的相应目录。
因此我们进行
/a/fast point to /mnt.fastdisk/a/fast or /mnt.fastdisk/a.fast
/a/slow point to /mnt.slowdisk/a/slow or /mnt.slowdisk/a.slow
/b/fast point to /mnt.fastdisk/b/fast or /mnt.fastdisk/b.fast
/b/slow point to /mnt.slowdisk/b/slow or /mnt.slowdisk/b.slow
我们获得了快速驱动器上的所有快速目录,而无需为所有 4 个目录设置分区。 第二种(右侧)替代方案为我们提供了一个更扁平的文件系统,在这种情况下,它可以更简单地保持对结构的概览。
缺点是,首先设置和计划它是一个复杂的方案,并且所有挂载点和分区都必须在系统安装之前定义。
重要提示: 请注意,/usr
分区必须直接挂载到根目录,而不是通过上述间接链接挂载。 原因是 X11 中广泛使用的长反向链接,这些链接从 /usr
深处一直到根目录,然后向下到 /etc
目录。