在一个大分区上安装 Linux 到底有多糟糕?

bde*_*est 97 linux partition centos partition-table raid6

我们将在新服务器上运行 CentOS 7。我们在服务器内部的 raid6 中有 6 个 300GB 驱动器。(存储主要以 40TB RAID 盒的形式在外部存储。)如果格式化为单个卷,则内部卷大约为 1.3TB。我们的系统管理员认为将操作系统安装在一个 1.3TB 的大分区上是一个非常糟糕的主意。

我是生物学家。我们不断安装新软件来运行和测试,其中大部分都在 /usr/local 中。然而,因为我们有大约 12 位不精通计算机的生物学家在使用该系统,所以我们也在 /home 中收集了很多数据。我们的最后一个服务器有一个 200GB 的 / 分区,2.5 年后它已满 90%。我不希望这种情况再次发生,但我也不想违背专家的建议!

我们如何才能最好地使用 1.3TB 可用空间来确保空间在需要的时间和地点可用,但又不会为系统管理员带来维护噩梦?

HBr*_*ijn 109

分区的主要(历史)原因是:

  • 该操作系统从用户和应用程序数据分离。在 RHEL 7 发布之前,没有支持的升级路径,主要版本升级需要重新安装,然后/home在单独的分区(或 LVM 卷)上拥有例如和其他(应用程序)数据允许您轻松保留用户数据和应用程序数据并擦除操作系统分区。

  • 当您的磁盘空间完全耗尽时,用户将无法正确登录,并且您的系统开始以有趣的方式出现故障。多个分区允许您为操作系统分配硬盘保留磁盘空间,并将其与允许用户和/或特定应用程序写入(例如/home /tmp/ /var/tmp/ /var/spool/ /oradata/等)的区域分开,从而降低行为不良的用户和/或应用程序的操作风险

  • 配额。磁盘配额允许管理员防止单个用户用完所有可用空间,从而中断对系统所有其他用户的服务。每个文件系统分配单独的磁盘配额,因此单个分区和单个文件系统意味着只有 1 个磁盘配额。多个 (LVM) 分区意味着多个文件系统允许更精细的配额管理。根据您的使用场景,您可能希望例如允许每个用户在其主目录中使用 10 GB,在外部存储阵列的 /data 目录中使用 2TB,并设置一个大型共享暂存区,任何人都可以在其中转储对于其主目录而言太大的数据集并且政策变为“已满”,但当发生这种情况时,也没有任何问题。

  • 提供专用的 IO 路径。您可能有 SSD 和旋转磁盘的组合,最好以不同的方式解决它们。在通用服务器中不是什么问题,但在数据库设置中很常见的是还将某些主轴(磁盘)分配给不同的目的以防止 IO 争用,例如,将磁盘用于事务日志,将磁盘用于实际数据库数据和单独的磁盘。临时空间的磁盘。.

  • 引导您可能需要一个单独的/boot分区。过去,为了解决 BIOS 超过 1024 个柱面限制启动的问题,现在通常需要支持加密卷、支持某些 RAID 控制器、不支持从 SAN 启动的 HBA 或安装程序不立即支持的文件系统等。

  • 调整您可能需要不同的调整选项,甚至完全不同的文件系统。

如果你使用硬分区,你或多或少必须在安装时把它弄好,然后单个大分区并不是最糟糕的,但它确实有上面的一些限制。

通常,我建议将您的主卷分区为单个大型 Linux LVM 物理卷,然后创建适合您当前需求的逻辑卷,对于剩余的磁盘空间,在需要之前保持未分配状态

您可以根据需要扩展这些卷及其文件系统(这是一个可以在实时系统上完成的微不足道的操作),或者也可以创建其他卷。

缩小 LVM 卷是微不足道的,但通常不能很好地支持缩小它们上的文件系统,应该避免。

  • 升级确实有效,但根据 [Red Hat](https://access.redhat.com/solutions/21964) 的一般政策仍然是:*Red Hat 不支持任何主要 Red Hat Enterprise 版本之间的就地升级Linux.* 和一些细微的差别 *Red Hat 目前仅支持从 Red Hat Enterprise Linux 6 升级到 Red Hat Enterprise Linux 7,仅适用于特定/目标用例* 和 [这里是手册](https://access.redhat. com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Migration_Planning_Guide/chap-Red_Hat_Enterprise_Linux-Migration_Planning_Guide-Upgrade_Paths.html)检查 (5认同)
  • 与性能相关,我认为还值得指出的是,在文件系统归档的情况下需要快速响应,并且“df”将比“du -s $DIRNAME”更快地返回有用信息 (4认同)
  • 我不确定我是否同意“*直到……RH7……不支持升级路径*”。我已经完成了受支持的升级,并且肯定升级了系统 RH4->5。据我所知,只有 RH5->RH6 缺少这样的路径 - 我感觉 RH 因缺少这种路径而被用户全面打屁股。不过,对于其余的优秀答案,+1。 (3认同)

小智 17

使用多个分区的概念是在错误的地方一个完整的分区不会导致整个系统意外工作。

考虑机器上的一个进程非常快地填充日志文件,直到没有可用空间为止。例如,在单分区机器上,这可能会阻止系统将新数据写入 /tmp。如果有另一个进程想要写入 /tmp,它可能会退出并出现错误,从而导致意外行为。

如果您对用户或进程通常写入的位置(/home、/var、/tmp)使用不同的分区,则可以防止这种情况发生。

我建议您检查旧服务器,哪些文件夹会变大。你可以在命令行上用

du -h -d 1 / 2> /dev/null
Run Code Online (Sandbox Code Playgroud)

您将看到最多数据在哪里积累并适当地设计您的下一个系统。“-d 1”将输出限制为仅一级文件夹深度,使其更具可读性。


Uwe*_*nus 12

拥有单个大分区的主要问题是填满文件系统可能无法再登录。

由于这个原因,用户 root 有它的主文件夹 ( /root) /home。如果在某些情况下文件系统被填满,甚至 root 也无法登录,也无法修复系统。

这就是为什么您通常会创建单独的挂载点/var/tmp并且/home在其他分区之一被填满时能够至少以 root 用户身份登录以修复系统的原因。

  • 我认为将 `/root` 放在 `/home` 之外的一个更重要的原因是,在某些安装中,`/home` 将位于网络驱动器上。如果在网络上安装出现问题,root 的文件仍然可以访问。(这可以与`/bin` 中通常有一个文本编辑器的方式进行比较,以防`/usr` 不会挂载。)我怀疑这在实践中是一种更常见的场景,这些天,而不是`/home` 填充一路向上。 (4认同)
  • 在某些文件系统(ext3 fe)上,您可以为 root 用户保留一点空间以防止这种行为。您必须使用配额来防止这种情况,对于经常被遗忘的 /tmp 也是如此。 (2认同)

Kaz*_*lis 11

恕我直言,将一个分区设置为 / 是非常合理的。

但是您可以使用 lvm(逻辑卷管理器)。将所有磁盘用作 lvm 组,但为 /、/home、/usr 以及您的系统管理员喜欢的任何内容创建小的逻辑磁盘。然后进行一些监控,您知道,当您的系统开始变满并扩展您需要的那些磁盘时。lvresize 和 resize2fs 是在线工具,无需重启服务器即可进行扩容。但是,您无法减少磁盘,因此您需要从合理的小规模开始,并在您认为需要的地方增加。


pet*_*erh 9

linux 的大单分区设置几乎没有问题,但它有很大的回报。

更改分区布局是一件有点困难和冒险的事情,如果没有长时间停机,您通常无法做到。

它唯一的优点是您可以防止磁盘已满问题。但你会发现这些问题频繁。想象一下这种情况,如果您的一个分区已满,而您无法使用其他分区上的空间,即使它们几乎是空的

一些专业的系统管理员对此有完全不同的看法。他们说,拥有多个分区可以使您的系统更可靠,并且您必须在分区之前知道您的分区有多大。在我看来,这根本不能说,这是系统灵活性的一个可怕缺点,他们的真正动机是他们只是喜欢玩分区图

有一个名为lvm的简单系统,它可以即时移动/调整“分区”(在其术语中,卷)的大小。但是在单个本地部门服务器上,恕我直言,通常不需要它。

  • 什么样的自虐管理员*喜欢*玩分区图???有趣的部分是构建内核,我可以得到一个*阿门*吗??? (7认同)