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

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

我们如何最好地利用1.3TB的可用空间来确保何时何地可用的空间?它是必需的,但不会为sysadmin造成维护噩梦?

评论

使用LVM并随意调整大小
@thanasisk随意调整大小是一个神话,因为linux上没有可以在线收缩的文件系统。 ext2在古代就有这样的补丁。

@PeterHorvath-如果我将“ resize”替换为“ expand”,您会感到高兴吗?

期望您现在设置的任何内容在2.5年内仍然是最佳状态,这有点不现实!而且,非精明的用户正在搞砸了这一事实,这更是将操作系统与数据分开的原因。
@PeterHorvath我读了您的评论不止一次,这样我才能理解。您写道,如果存在可以扩展的文件系统,并且我指出了可以扩展的文件系统,您会感到很高兴。就这样。

#1 楼

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



将操作系统与用户和应用程序数据区分开。在RHEL 7发行之前,没有受支持的升级路径,并且主要版本升级将需要重新安装,然后在单独的分区(或LVM卷)上拥有/home和其他(应用程序)数据,您可以轻松地保存用户数据和应用程序数据,并擦除OS分区。
当磁盘空间完全用完时,用户无法正确登录,并且系统开始以有趣的方式发生故障。多个分区允许您为OS分配硬保留的磁盘空间,并将其与允许用户和/或特定应用程序写入的区域(例如/home /tmp/ /var/tmp/ /var/spool/ /oradata/等)分开,从而减轻行为不佳的用户和/或应用程序的操作风险。
配额。磁盘配额使管理员可以防止单个用户用完所有可用空间,从而中断对系统所有其他用户的服务。每个文件系统分配了单独的磁盘配额,因此单个分区(即单个文件系统)仅意味着一个磁盘配额。多个(LVM)分区意味着多个文件系统,允许进行更精细的配额管理。根据您的使用情况,您可能希望例如允许每个用户在其主目录中有10 GB的空间,在外部存储阵列的/ data目录中有2TB的空间,并设置一个较大的共享暂存区,任何人都可以在其中转储对于其主目录而言太大的数据集且政策变为“已满”的地方,但发生这种情况时也不会中断。
提供专用的IO路径。您可能将SSD和旋转磁盘结合使用,并且很好地解决了这些问题。在通用服务器中不是什么大问题,但是在数据库设置中很常见的是还要将某些心轴(磁盘)分配给不同的用途以防止IO争用,例如事务日志使用单独的磁盘,实际数据库数据使用单独的磁盘,临时空间使用单独的磁盘。 。
引导您可能需要一个单独的/boot分区。从历史上来看,BIOS的启动超出了1024个柱面的限制,如今越来越需要支持加密卷,支持某些RAID控制器,不支持从SAN引导的HBA或安装程序未立即支持的文件系统等。
调优您可能需要不同的调优选项,甚至可能需要完全不同的文件系统。

如果您使用硬分区,则或多或少必须在安装时正确安装它,然后单个大分区并不是最坏的情况,但它确实存在上述一些限制。

通常,我建议将主卷划分为一个大型Linux LVM物理卷,然后创建适合您当前需求的逻辑卷,并在其余磁盘空间中保留未分配状态,直到需要为止。

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

缩小LVM卷是微不足道的,但是通常并不十分支持缩小其上的文件系统,因此应该避免。

评论


与性能有关,我认为也值得一提的是,如果文件系统需要快速响应,那么'df'返回有用信息的速度将比'du -s $ DIRNAME'快得多。

–symcbean
2014-09-18 13:40

我不确定我是否同意“直到... RH7 ...不支持升级路径”。自从确定以来,我已经完成了支持的升级,并且绝对是RH4-> 5的升级系统。据我所知,只有RH5-> RH6缺少这样的途径-我感到RH因其缺乏而被他们的用户全面击中。不过,+ 1是一个很好的答案。

– MadHatter
2014-09-18 14:23



“在RHEL 7发行之前,没有支持的升级路径”指的是什么? RHEL是否支持从RHEL 7开始的主要版本之间的升级?

–马库斯·霍尔曼(Markus Hallmann)
2014年9月19日在8:23

升级确实可以,但是根据Red Hat的一般政策仍然是:Red Hat不支持在Red Hat Enterprise Linux的任何主要版本之间进行就地升级。还有一点细微的差别Red Hat当前仅支持从Red Hat Enterprise Linux 6到Red Hat Enterprise Linux 7的升级,仅用于特定/目标用例,这是检查手册

– HBruijn
2014-09-19 8:39



#2 楼

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

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

如果在用户或进程正常写入的地方使用不同的分区,则可以避免这种情况。到(/ home,/ var,/ tmp)。

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

du -h -d 1 / 2> /dev/null


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

#3 楼

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

用户根目录因此具有位于/root之外的主文件夹(/home)。如果文件系统在某些情况下已装满,即使root用户也无法登录并且无法修复系统。至少作为其他分区之一被填满时的根来修复系统。

评论


在某些文件系统(ext3 f.e.)上,您可以为root用户保留一些保留空间,以防止该行为。您必须使用配额来防止这种情况,对于/ tmp来说通常是这样,但经常会忘记使用配额。

–丹尼斯·诺尔特
2014-09-18 8:32

@DennisNolte我忘记了/ tmp。谢谢,我将其添加到我的答案中。

– Uwe Plonus
2014-09-18 8:33

@DennisNolte保留的空间会有所帮助,但是我认为维护要比使用其他分区困难得多,因为必须正确设置配额。

– Uwe Plonus
2014-09-18 8:35

我认为/ root位于/ home之外的一个更重要的原因是,在某些安装中/ home将位于网络驱动器上。如果在通过网络安装时出现问题,则根文件仍然可以访问。 (这可以与/ bin中通常使用文本编辑器的情况进行比较,以防/ usr无法挂载。)如今,我怀疑这是比/ home填满一遍更实际的情况。

– Eliah Kagan
2014年9月19日下午21:05

#4 楼

恕我直言,将一个分区作为/是相当合理的。

但是您可以使用lvm(逻辑卷管理器)。将所有磁盘用作lvm组,但为/,/ home,/ usr以及系统管理员喜欢的任何内容创建小型逻辑磁盘。然后,在系统开始变满时进行一些监视,并扩展所需的磁盘。 lvresize和resize2fs是联机工具,您可以在不重新启动服务器的情况下进行扩展。但是,您无法减少磁盘,因此需要从较小的地方开始,并在需要的地方增加空间。

#5 楼

linux的大分区设置几乎没有什么问题,但是却有很大的收获。

更改分区布局有点困难和冒险,这是您经常无法做到的停机时间长。

它的唯一优点是您可以一定程度地防止磁盘已满问题。但是您会经常发现这些问题。想象一下这种情况,如果您的一个分区已满,并且即使它们几乎是空的,也无法使用其他分区上的空间!

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

那里是一个名为lvm的简单系统,它允许“分区”(以其术语,卷)实时移动/调整大小。但是在单个本地部门服务器上,通常不需要IMHO。

评论


什么样的受虐管理员喜欢玩分区图???有趣的部分是构建内核,我能获得一个成功吗???

–主教
2014年9月21日下午16:55

阿们!现在,关于管理员喜欢使用分区的争论,我想反驳一下,因为linux可能有100种不同的文件系统类型,并且根据使用模式,为特定任务选择正确的filre系统可能意味着最佳系统与非功能系统之间的差异。也许您只需要几个文件夹中的文件系统即可。那里。

–Lennart Rolland
2015年3月12日19:58



#6 楼

进行分区的主要原因有两个:


使静态数据远离非静态数据
使公共数据远离私有数据

第一个原因是最明显的-您需要隔离将填充文件的区域和不填充文件的区域,并且特别要保护/以避免系统无法启动。例如,/ var目录通常是存储日志文件的位置(var代表“变量”),这就是为什么/ var倾向于将其挂载在与/分开的单独分区上的原因。
上面提到的原因很少被提及(我在15年前的Veritas Volume Manager课程中上次听说过),并且它实际上仅与许多人登录并执行工作的系统有关。

有效分割的一种技巧,这也许就是为什么Sys Admins认为它有点过分(IMO)的原因。您不仅需要完全了解文件系统,还必须知道预期的用途。我个人认为这是一种过时的方法,与今天使用服务器的方式越来越不相关。

作为软件开发人员,我特别讨厌Ops部门构建虚拟机的工作。考虑周全的分区方案会严格限制/ tmp,/ home,/ var和/的大小,而不管可用的磁盘空间总量如何,但不要分别挂载/ usr或/ opt等明显的选择。这些机器通常会将您所需要的磁盘空间中剩余的所有内容放入“ / stuff”卷中,您不可避免地最终将所有内容安装并符号链接到其中,但这绝非易事。最终结果是,与实际工作相比,我们经常花更多时间整理文件并发送警告电子邮件。

具有单个分区本质上没有“坏”的地方。在任何系统上,您都应该主动监视磁盘使用情况,并采用明智的内务管理策略(例如日志轮换,主目录上的配额),因此唯一真正的问题是:您要担心多少个单独的文件系统? >
因此,我会说:除非您对特定用例有效地对系统进行分区的能力有100%的信心,否则请不要进行分区。

评论


究竟。好的,也许应该通过文件系统和您的服务中的权限来完成公共-私人数据分离。

–peterh-恢复莫妮卡
2014-09-18 9:48

#7 楼

恕我直言,这完全取决于您。首先要考虑几件事,尽管完全是相对的。

该系统是否会经常管理?
一个或多个用户会使用此系统吗?
因为该系统可以用作(几乎)任何目录,所以挂载点还应该考虑包含什么增长数据的数据和包含增长数据的数据。

此系统将用作台式机还是服务器,或者同时用作这两种系统? br />

您会惊讶的是,一个linux系统(运行中的数据不断增长)需要运行多少,以及通过增长数据(通常是/ var / opt / home / srv)消耗多少? />

还取决于您如何定义该系统的用途,该用途概述了分区要求。包括LVM的使用。



典型的台式机系统将需要大约20GB的空间来安装软件负载,然后将其余的分配给专用的/ home即可。 LVM在您的系统上造成较小的开销,在这种情况下,它并不是那么有用。尽管意见可能会有所不同。


在服务器上,已安装软件与桌面系统一样动态的可能性较小。为典型的文件系统组件(例如/ tmp / var / usr / home / opt / srv)提供实际的挂载点也比较明智。建议在此处使用LVM并不是强制性的。系统模块化,它还可以做一些愚蠢的事情,例如将分区克隆到VM中。或使用dd创建块级备份。

基于一些经验,这里有一些注意事项。还应考虑拥有多个安装点以实现更好的控制,将快速或慢速磁盘设备分配给安装点可以带来很大的不同,并可以显着提高成本效率。

Mounpoint /


1GB(如果为/ var / usr / opt / home / tmp使用单独的挂载点)
+10 GB,如果用作具有单独的/ home的桌面系统,甚至+20 GB

如果使用mountpoint / home


分配所有可用空间(如果使用),/ home ne

如果使用mountpoint / opt

/>如果使用mountpoint / usr


,这是一个棘手的问题,并且在很大程度上取决于已安装的软件基础

如果使用mountpoint / var


这是一个棘手的问题,并且严重依赖于已安装的软件基础
,例如,如果不是所有的Linux,数据库都在基于Debian的系统上写数据。 var / tmp并非不合理

如果使用mountpoint / tmp


考虑存在tmpfs并将/ tmp分配给RAM
考虑一些应用程序可能会这里有很多数据


#8 楼

首先,我要质疑的是,为什么您甚至是一位生物学家,正在就硬盘分区的优缺点与一位貌似有能力的系统管理员进行争论,所以您甚至还要在此处发布此问题! (没有冒犯性,只是真的想知道为什么您不信任您的系统管理员)。

因此,一些观察结果:


1.3 TB不再是大驱动器。如今,2 TB在台式机领域几乎是标准SATA驱动器大小。
任何Linux Distro的安装都不太可能需要超过100GB。当然,应该通过对(root)和(swap)的大小过大(对于root)或系统配置准则(swap)轻松地将它们的大小确定为上限数字。
/的安装点home应该指向40TB RAID服务器上的故障。无需将该数据(用户的主目录)放在该根设备上的任何位置。无论如何,将它们放在RAID服务器上可能会为您提供更好的保护。而且,它很可能是易于扩展的NAS设备,而服务器箱中可能没有内置的RAID。
您应该将特殊软件放在一个单独的分区中(/ usr / local / bin的挂载点,等等) ),因此您可以在操作系统更新和根分区擦除中保留此设置。否则,您将面临在操作系统升级/修复/任何操作后必须重新安装“特殊”软件应用程序的可能性。
如果您要担心系统的管理,请问一个不同的问题:建筑物着火并且服务器和RAID盒被破坏后,灾难恢复过程如何?除非您关心的数据完全掌握在您的脑海中,否则这是每个用户应向其IT / sysadmin人员提出的问题。该策略应包括诸如“我们将如何复制所需的硬件”和“需要多长时间才能备份并运行”之类的问题。有关服务器虚拟化的一些讨论可能有助于解决有关硬件依赖性的问题,并使事情恢复正常运行,而无需重新配置操作系统(因为可以将其配置为在不会改变的“软”设备环境中运行,即使底层硬件完全不同)
类似地,您可能想问一下保护用户数据免受程序和用户错误数据丢失的策略是什么。将空文件保存在研究论文的非常好的草稿上,或者用户输入错误的命令(例如,rm -rf *),将导致数据丢失,就像地震,火灾或其他物理损坏一样。单个文件恢复的解决方案与批量灾难恢复中最有用的解决方案有所不同(或可能!)。
-


#9 楼

这允许独立于用户数据备份,还原或重新安装操作系统。这给您自由,独立和安全。


迁移到另一个Linux发行版仍然更容易,而且仍然保留了绝大部分用户数据。
通过应用操作系统分区的备份,可以很容易地还原错误更新(需要两次启动)。此备份甚至可能很旧-您可以应用它,然后再更新到已知稳定的版本。
如果您不喜欢最近应用的“主要升级”,则可以很容易地还原到以前的操作系统版本。 (需要双重引导)。

要使这种方法发挥最大的潜力,您还应该配置双重引导(也可以是CentOS / CentOS),以便在运行Windows操作系统时可以覆盖一个操作系统分区。另一个操作系统。并且,当然,您必须至少每月备份一次系统分区。

评论


为什么是-1?您是否会认为不无线而等待漏洞修复是更专业的方法? BTW已在三个星期内得到修补。

– h22
2014-09-18 11:50



我不知道,但是得到了补偿。如果您看到类似的内容,请同样执行。

–peterh-恢复莫妮卡
2014年9月18日上午11:53

#10 楼

我的简短回答是,即使台式机也不应使用“一个大分区”。我最近尝试用一个更好的判断来尝试该操作,因为它只是“一台笔记本电脑”,自动安装程序使用了一个分区,然后单击按钮。然后,我不得不重新分区驱动器,因为安装程序不会在现有发行版上进行安装。如果/ home位于自己的分区上,它可以并且将保持您的/ home完整。因此,我最终启动了gparted live-cd并缩小了分区,为/ home和其他分区创建了新分区,将数据移至新分区,然后最终启动至新OS的安装程序。

理想情况下,根据您计划升级的频率,将/放在SSD上,/ home放在硬盘上,/ var放在硬盘上,/ usr可以放在SSD或HDD上。 / tmp到硬盘驱动器。我通常会在/ home中为共享媒体文件(例如mp3和电影)创建另一个分区,并带有符号链接。请注意,/ sbin是root的一部分,并且是/ bin和/ root。那就是/ bin和/ usr / bin之间的区别,是/ usr是直到所有驱动器都挂载后才可用的东西,因此mount命令不能在/ usr中!我通常会为其他Linux发行版保留几个额外的分区,例如gparted位于我的硬盘驱动器上,以防万一我搞砸了一些非常糟糕的东西,我准备好另一个实时系统来进行恢复工作。

对于可能需要四处移动,动态添加存储并需要始终保持工作状态的服务器,一定要使用LVM !!!

#11 楼

您不必将软件安装到/ usr / local,可以将所有软件安装在不同的前缀(可能在/ home中)中。
当您从源代码编译它时,大多数软件都可以执行此操作,方法是运行例如
./configure --prefix=/home/bin

由于您是生物学家,所以您可能会对很多不合适的软件感兴趣

我是HPC系统的系统管理员,我们的用户中有很多生物学家,我们安装了他们需要的所有软件,在/ apps /文件系统下,因此我知道可以对大多数软件执行此操作,但是有时可能很难。
为了解决这个问题,我和我一直在写一个名为EasyBuild(免费和开放源代码)的工具。
它可以从源代码编译和安装软件,并将其安装在其他文件夹中,并自动创建一个环境模块文件,因此您实际上可以安装同一软件的两个不同版本,并且没有冲突。

看看我们的软件包列表,我们仅需一个命令即可安装,作为生物学家,您可能会认识很多;-)

免责声明:我是EasyBuild的开发人员

#12 楼

我认为一般来说,对于初学者/入门级* ix用户,只有在了解到有关系统性质的更多知识之后,分区最少的系统才能工作。但是,由于多种原因,您不能简单地拥有一个分区,而您是先生,出于多种原因。它应该在1-2 * RAM之间)还需要一个单独的系统分区,引导分区或主分区,对于UEFI引导linux系统,则需要一个EFI分区(仅500MB)。

第二个原因,特别是适用于您的情况的是,至少可以说,采用6个300GB驱动器进行突袭6并不是最佳的解决方法。尽管这项新技术将Raid 6称为通用性更好的系统,但更需要条带化算法,并且存储信息所需的空间(与RAID 5相比)更大。

更不用说RAID 6需要额外的硬件。在我看来,应该使用哪种方式购买更大的磁盘,以避免磁盘故障,停机,灾难恢复或增加的技术帮助成本。我了解有些人可能会不同意我的观点,我想再次确认一下,当磁盘在未来两年内变得更大(由于最近几年价格下降)时,RAID6适用于更大的阵列和大型收入公司将是显而易见的选择。但是,在这种情况下,我不建议您使用RAID6。

对于第二个问题(基于非RAID),在镜像时创建一个巨型分区可能对您有用,但是,如果要最大化效率使用更大的驱动器和多个分区。这样,如果发生双磁盘故障,则在某些安装点上将不会有停机时间,或者几乎没有停机时间,具体取决于/ dev + / dir。

至少要使/ sys(系统,内核等)分开运行,这样,如果出于某种原因您的内核决定不启动,则可以简单地使用恢复内核,远程启动或PXE,磁盘启动等您的内核,并让公司-在d恢复过程中,您可以广泛访问您的信息。

您的公司可能不会在意这些口音,只要该系统能够正常工作,但我试图解释人们做事情的原因。我也希望听到其他人的更多意见,赞成和反对这种说法,并提出其他观点。如果您不同意,请告诉我原因。海报-我也会为您提供一些链接。一般公众,即使通过凭据,也最好将您的分区分开。其他人可以在这里输入更多,我需要更多咖啡。