最佳UNIX文件系统分区+设置策略


16

在为UNIX分区新的系统磁盘时,台式机和/或服务器的首选策略是什么?

请包括磁盘分区布局,文件系统格式和选项,安装点,RAID级别,LVM组和卷,加密以及任何其他相关设置。


这个问题似乎几乎是这个问题的重复(serverfault.com/questions/1145/…)。
Zoredache

这是用于工作站,测试服务器还是完全成熟的在线服务器?
djangofan

Answers:


9

对于此类问题,我是LVM的粉丝。您只需要一些空间用于/ boot(我大约使用100MB)。结合可以动态增长和收缩(或至少增长)的文件系统,您无需再考虑小型分区。

在我的桌面上,我将带有XFS的LVM用作所有分区的文件系统。我创建的空间越小越好,让它们随着我需要更多空间而增长。


7

如果是Linux,则使用单独的/ boot。

通常,对于其他Unix变体,我推荐使用/和/ var分区,数据通常安装在/ u001,/ u002等位置。

以前,由于磁盘空间有限,因此需要进行大量分区,并且您不希望使用单个填充的分区来关闭整个系统。随着当今可用的存储量大大增加,以及可用的大量调整大小和虚拟化选项,IMO对许多分区的需求已经下降。再加上这样的事实,即当您拥有多个分区时,四处移动是很麻烦的,这意味着如果您可以省去更少的钱,那就去做。

当您拥有32GB的内存时,将2xRAM作为交换是没有意义的。因此请记住,“规则”实际上是指南,鉴于现在可用的较新硬件,某些规则根本就没有意义。


2
+1表示最近需要分区下降,此外,如果您需要/ home中更多的空间,您可以随时挂载新的硬盘驱动器。
Spoike

1
+1-我同意低估大多数系统上疯狂分区游戏的需求。如果您知道由于某些应用程序需要/ var放在快速磁盘上,那就这样吧。通常,当我在生产系统中遇到疯狂的分区游戏时,它是将单个硬件RAID-1卷分割成一堆小分区,所有分区都在等待填满,需要重新调整大小(以便为管理员,显然)。如果您知道您有某种复杂分区方案的应用程序,那就去吧。如果不这样做,就不会。
埃文·安德森

5

计划一个好的分区结构在很大程度上取决于实际知道您将如何使用该系统。任何不考虑系统功能的随机建议都不会特别有用。

有时所有花哨的文件系统都可能有用,但是如果您想要一个稳定的系统,最好坚持使用“标准”文件系统(例如ext3),除非您有充分的理由使用其他东西。

RAID很好,我总是在所有个人计算机上运行RAID1,因为我的硬盘驱动器太多了。

如果您的系统是便携式设备,具有高价值数据或只是偏执狂,则使用dm-crypt之的加密方法会比较好。

在计划分区时,对文件系统层次结构标准之类的内容以及所选的unix是否/如何偏离标准有很好的了解是非常有帮助的。

使用LVM可以使将来改变主意,调整分区而无需重新启动变得更加容易。创建快照的功能可以很容易地创建良好的备份。使用LVM,不要立即分配所有空间。


5

除了FS类型,还有两个很好的理由进行分区:

  1. 防止因应用程序溢出而影响系统功能。如果您的应用程序已满/usr,那么留出一些空间/var以使系统继续运行并记录日志是很有用的。

    Jauder在上面说过,今天的硬盘大小已使这一点被否定了-我认为这并非绝对正确。我们的驱动器可能更大,但我们正在交接的数据却在不断增加。无需自满。

  2. 挂载选项。您可以更仔细地定义每个分区应采用的权限。例如,优良作法是不允许执行文件,尤其是suid文件,/tmp因为它是服务于Web应用程序的计算机的常见攻击手段。除非您正在运行监狱,否则您不应指望在其他任何地方看到设备节点/dev。等等。

例如。

/ noatime  
/tmp noatime,nodev,nosuid,noexec  
/var noatime,nodev,nosuid  
/usr noatime,nodev  
/home noatime,nodev,nosuid  

4

物理磁盘分区
至少从2个磁盘开始:

#1 100MB,ID = 83(Linux),启动标志为ON
#2剩余ID = FD(Linux Raid Auto)

100MB分区用于/ boot卷。我将其保留在所有驱动器上(甚至是非引导状态),以提供灵活性,以便以后可以使任何驱动器启动。如果磁盘大小不匹配,或者您有奇数(500GB,250GBx2),则将500GB驱动器的分区进行划分以匹配较小的磁盘。

RAID
使用上的100MB分区sda并为sdb创建RAID1(镜像)卷/boot。这变成了md0

md0 / boot 100MB Ext2

不要打扰在/ boot上使用外来的FS,这是不值得的。

剩余空间可以用不同的方法设置。我选择了RAID10(镜像/条带),使用64K块和“ 2个远程副本”来提高速度。这为您提供了很大的灵活性,可以逐步升级驱动器。其他选项是执行RAID5 / 6。但是,可用空间将限于最小的分区,并且请勿使用同一设备上的分区。命名新的RAID阵列md1md2等等。

LVM
除去所有RAID阵列md0,然后将它们放入一个名为的LVM卷组中lvm_vg0。如果您有RAID5和RAID10卷,最好不要将它们组合在一起,但我想这不会有什么坏处。

为剩余的系统挂载分配VG0。请记住,如果需要,添加更多的空间相对容易,因此这些数字可能有些保守。

lvm_vg0-root / 8GB Ext3 / ReiserFS(核心发行文件)
lvm_vg0-home / home 20 + GB Ext3 / ReiserFS(用户数据,文档)
lvm_vg0-data / data 60 + GB XFS(媒体,大文件,虚拟机)

XFS文件系统不能缩小,因此请记住这一点。另外,可能不支持收缩在线根卷。

升级 如果您想将磁盘换成更大的尺寸,则有几种选择。最简单的方法是成对或更多成对添加驱动器,然后将新的RAID阵列添加到当前的LVM VG中。

另一个选择是将单个驱动器添加到当前空间的总和中> =。例如,如果RAID10中有两个100GB设备,则可以添加一个新的200GB设备并使用这两个旧设备进行镜像。这更容易出错,但是可以使用。

如果需要,md#可以从LVM VG中删除设备,而不会丢失数据。如果有足够的可用LVM空间将所有使用的LVM模块从md#设备转移到其他模块,则可以执行此操作。LVM只能使用尚未分配给LV的空间,因此,空文件系统不算作“可用”空间。


1
我不惧怕/ boot上的奇异文件系统。ext3和XFS在2009年不再成为异国情调。当liveCD并未与驱动程序打包在一起时,它就成为一个问题,但如今几乎都是如此。
丹·卡利

@Casey,只要您有足够的可用空间移动内容,就可以“实时”收缩Ext3卷。是的,这是一个令人难忘的体验,但我已经做到了,并且确实如广告中所述。请非常小心参数。
艾利·佩恩

2

我只是运行Linux工作站。我使用ext3文件系统,其大小在某种程度上取决于磁盘的大小,对较大磁盘上的分区更为慷慨。这些大致按照它们在分区表中出现的顺序进行:

  • /启动-100 MB
  • 交换空间-2xRAM
  • / usr-10-20 GB
  • --5-10 GB
  • / var-1-2 GB
  • / tmp-1-2 GB
  • / usr / local-10-20 GB
  • / home-其他所有内容。

在我妻子的大学工作站上,该工作站具有两个750 GB的驱动器,除上述内容外,我们还在/ data / N中安装的各个驱动器上创建了十几个〜100 GB的分区,其中N是从1到12的数字她使用这些数据保存她不同研究项目的数据。


我个人没有看到将/ var,/ usr分离到另一个分区的优势。如果您有自定义安装的软件(=不是通过数据包管理安装的),那么/ usr / local可能是一个好主意,但是提到的两个是恕我直言。另外,不需要交换2xRAM。如果您的系统开始交换,那么一切都会变得很慢,因此您一开始就要避免这种情况。我个人仅使用Ramsize + X拥有交换分区,因为有时会使用暂停到磁盘。
马丁

2
@Martin,在充当鱿鱼缓存的linux机器上,您希望假脱机目录和日志目录位于快速磁盘上,并且通常不需要该磁盘是可靠的。可能会将您的线轴(/ var)放在RAID0(条带)上,而将其他所有内容都放在速度较慢的驱动器中。
Zoredache

@Martin-是的,拆分/ usr可能是不必要的,而且我也不总是这样做。swap = 2xRAM是我在配置仅具有256 MB或更少RAM的系统时留下的旧习惯。
dagorym

1
实际上,将/ usr和/ var分开可以使您在一个而不是另一个上启用日记功能。
斯科特,

1
并且将/ var放在单独的分区上可确保只有/ var可以填满日志文件,否则可能会使您的系统崩溃。
wzzrd

1

在所有磁盘上使用noatime(除非您有理由不这样做)我在tmpfs中挂载/ tmp,尽管在服务器上可能不太好,但我会确保它是一个单独的分区,并将其挂载到nodev,nosuid,noexec,noatime 。我总是将ext2用于/ boot,因此我不必担心更改fs东西而使我无法通过grub进行引导。ext4在其他所有东西上,我在/ home上使用journal = data,这可能会减慢速度(因为它没有取消分配),但是我也从未使用journal = data丢失数据,并且一点也不最新妓女,有时我的系统锁定了,我必须对其进行硬重置(因为我尝试了kms之类的操作并发现了一个错误)。


1
别忘了也使用'nodiratime',否则您将使用大量inode来推动vfs_cache_pressure(加上对磁盘的实际写入!)。
Gazzonyx

0

哇,好问题。一直在为yonks寻求完美答案。

我个人有50Mb / boot〜8GB /,其余的去/ home,但这远非完美。我需要研究备用文件系统,目前我使用ext3,但是我听说过其他文件系统的重要知识,例如XFS。

通常,我通常也纯粹为/ tmp创建一个文件容器,以便将来可以更加灵活地使用它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.