分区在Linux服务器上非常重要,因为分区为您提供了很大的灵活性,例如在升级到更大的硬盘驱动器时。
但是,构建Linux机器时应该创建多少个分区?我应该为每个分区设置什么大小?
最后但并非最不重要的一点是,我应该在单独的磁盘上拥有哪些分区(我正在考虑/ home,也许在更快的驱动器上的/ var等)以及可以在同一驱动器上共享哪些分区?
分区在Linux服务器上非常重要,因为分区为您提供了很大的灵活性,例如在升级到更大的硬盘驱动器时。
但是,构建Linux机器时应该创建多少个分区?我应该为每个分区设置什么大小?
最后但并非最不重要的一点是,我应该在单独的磁盘上拥有哪些分区(我正在考虑/ home,也许在更快的驱动器上的/ var等)以及可以在同一驱动器上共享哪些分区?
Answers:
计划一个良好的分区结构在很大程度上取决于实际了解您将如何使用“服务器”。任何不采用将要提供的实际服务的随机建议都不会特别有用。
例如,如果它是将用于mysql的基于debian的盒子,则可能需要/,/ var和/ var / lib / mysql的单独分区。
它将成为具有大量共享存储的文件服务器吗?您可能需要/,/ home和/ srv分区。
对于只运行乌贼的盒子,您可能想要在/分区上,在快速磁盘上为乌贼后台打印分区。
在规划分区时,对文件系统层次结构标准以及文件发行版是否/如何偏离标准有很好的了解将非常有帮助。
使用LVM可以使将来改变主意,调整分区而无需重新启动变得更加容易。创建快照的功能可以很容易地创建良好的备份。
我总是创建这些分区,从去年开始,总是在LVM上:
/ - a few Gig
/usr - 24 Gig and mostly empty
/var - 4 Gig works for me, YMMV
/home - depends on how many users you will have
最重要的一个是/var
-如果这是一个单独的分区,那么当它填满时,您将不会崩溃根分区。尽管我从未做过,但有些人将其单独设置为/usr
可以只读方式安装。
我有时创建这些分区:
/boot - even 1 Gig is way more than enough
原因是并非总是可以从RAID或LVM分区引导。因此,/boot
可以是一个简单的ext3分区,从而/
可以更高级。
如果我将拥有大量大文件,有时会为这些大文件创建一个特定的分区,以便可以调整文件系统以有效地存储大文件。某些人(如果要从服务器提供NFS服务)将为其NFS共享创建一个单独的分区,甚至为每个NFS共享创建一个单独的分区。这取决于您的需求。
为什么选择LVM?正如我在其他地方的答案中提到的,但在这里忘记提及的那样,这使以后改变主意并扩展分区变得很容易。这已经救了我的屁股。
这些是一般准则。当然,我希望如果您的服务器有特殊需求,您将考虑到这一点并进行分区以反映这些需求。
假设您要构建的机器会持续一段时间,并且重建起来很不方便,并且需要非常灵活,那么您可能需要一个类似于以下的方案:
至少安装两个相同大小的物理驱动器;就本示例而言,我将假设使用500GB SATA驱动器,但该原理在其他大小的驱动器上也可以正常工作。
对每个驱动器进行分区,如下所示:
/dev/sda1 500MB
/dev/sda2 100GB
/dev/sda3 the rest
我们的目标是在前面放置一个500MB的分区,在中间放置一个用于OS和应用程序的较大分区,并在后面放置大量驱动器以获取其他数据。
/dev/md0
从/dev/sda1
和构建SW RAID 1集/dev/sdb1
。建立附加SW RAID 1套/dev/md1
和/dev/md2
从相应的paritions。
格式/dev/md0
为ext3; 这将是/boot
。
格式化/dev/md1
并/dev/md2
作为LVM物理卷。
创建一个LVM卷组vg_system
,其中包含/dev/md1
。
在内部vg_system
为各种OS分区创建适当的LVM卷;最起码,你会想swap
,/var
一对夫妇GB的,和/
10GB的左右。
注意:不要全部分配vg_system
!当您以后决定要增加的大小\var
或要添加
/opt
或之类的内容时,便需要该额外的空间。
创建一个LVM卷组vg_data
,其中包含/dev/md2
。
vg_data
根据需要在内部创建LVM卷;至少,您将需要一个sizeable /home
,并且可能需要用于卷轴,数据库,Web根目录或OS以外的任何其他数据的其他卷。同样,vg_data
出于与上述原因相似的原因,请勿分配所有。
该策略的优点包括:
它可以容忍硬件故障;任何一个驱动器都可以发生故障而不会导致系统故障,如果您购买了热插拔控制器,则可以在不停机的情况下进行恢复。
它面向未来且可扩展;当您购买几年后购买2TB驱动器时,可以将它们拍打到计算机中,使其成为另一个SW RAID集,将其格式化为LVM物理卷,将其添加到需要更多空间(可能是lv_data
)的任何卷组中,然后用于
pvmove
将数据从旧驱动器迁移到新驱动器。此外,可以大大减轻主要OS更新的痛苦;如果您需要重新安装操作系统以进行重大升级(Red Hat :(),则可以在保留主目录(以及邮件线轴以及您放入的所有其他文件vg_data
)的同时进行)。
这种策略的缺点很少。我想它有点复杂,由于RAID 1,您的写入性能确实受到了影响。但是,多年来,我一直根据这些原则构建工作站和独立服务器,根据我的经验,每次不久之后,我便希望按照这些思路建造机器。
-史蒂夫
PS我要补充一点,如果您拥有可以快速,轻松地配置新机器的基础架构,那么像这样的系统就太过分了;无需修补RAID集和LVM,如果需要进行某些更改,只需重建计算机即可。
多年以来,我使用的每台计算机都是双引导系统,而在Linux方面,我几乎坚持使用这种模式(我在这里指的是个人工作站,没有服务器的东西,因此您的工作量可能会有所不同)
/ - main thing
/boot - not that relevant, since cylinder being < 1024 and
exotic filesystems are no longer an issue
/home - handy if you upgrade your laptop with each new distro :-)
对于上一次升级,我从头开始进行安装,清除了/
分区。这让我想起一个单独的/opt
或/usr/local
分区本来不错,不放过我重新安装所有我摆在那里的东西的麻烦(Java,Eclipse的......我通常不关心发行版包装的)。
假设您在那里不使用硬件RAID-在Linux下,我将始终在RAID之上使用LVM。即使是单个磁盘配置。原因是您可以选择添加更多存储空间(通过扩展LVM组)或更改冗余选项(例如,将“怪异”的单个磁盘raid1配置变成繁重的镜像一个甚至RAID10)。
为了回答您的问题,对于通用服务器,我通常有与此类似的东西。从2个磁盘(例如1RU Dell)开始,两个磁盘的分区为:
然后,我们将所有卷创建为LVM卷:* / * / var * / tmp * / home * / opt
我会避免创建过多的文件系统,因为这很麻烦。如果磁盘空间不足,您最终将在许多文件系统上拥有可用空间,但工作量不足。
/ home和/ tmp在单独的文件系统上总是一个好主意;通常,除非计划在其中添加很多内容,否则我不会将/ opt分开。(如果您有很多需要相同软件堆栈的服务器,则对于/ opt,NFS可能是更好的选择)
简而言之,对所有内容都使用LVM,除非您有理由不这样做-这样您就可以选择更改。
另外,请使用日志服务器,以便日志不会填满您的/ var!