分区在 Linux 服务器上非常重要,因为它为您提供了很大的灵活性,例如升级到更大的硬盘时。
但是,构建 Linux 系统时我应该创建多少个分区?每个分区应该设置多大?
最后但同样重要的一点是,我应该将哪些分区放在单独的磁盘上(我正在考虑 /home、/var,也许是更快的驱动器等)以及哪些分区可以在同一驱动器上共享?
答案1
规划一个好的分区结构很大程度上取决于您实际上了解将如何使用“服务器”。任何不考虑实际提供的服务的随机建议都不会特别有用。
例如,如果它是一个用于 mysql 的基于 debian 的盒子,您可能需要为 /、/var 和 /var/lib/mysql 设置单独的分区。
它会成为具有大量共享存储的文件服务器吗?您可能需要 /、/home 和 /srv 分区。
对于仅运行 squid 的盒子,您可能需要为 / 设置一个分区,并在快速磁盘上为 squid 假脱机设置一个分区。
在规划分区时,了解以下内容非常有帮助:文件系统层次标准以及您选择的发行版是否/如何偏离标准。
使用逻辑卷管理器可以使您将来更轻松地改变主意并调整分区,而无需重新启动。并且其创建快照的能力可以非常轻松地创建良好的备份。
答案2
我总是创建这些分区,并且从去年开始,始终在 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?正如我在其他地方的答案中提到过但在这里忘记提到的那样,它使以后改变主意并扩展分区变得容易得多。这已经救了我一命了。
这些是一般准则。当然,我希望如果您的服务器有特殊需求,您会考虑到这一点并进行反映这些需求的分区。
答案3
假设您正在构建一台可以使用一段时间的机器,重建起来不方便,并且需要非常灵活,您可能会喜欢类似以下的方案:
安装至少两个相同大小的物理驱动器;为了举个例子,我假设使用 500GB SATA 驱动器,但该原理也适用于其他大小的驱动器。
对每个驱动器进行如下分区:
/dev/sda1 500MB /dev/sda2 100GB /dev/sda3 the rest
目标是在前面设置一个小的 500MB 分区,在中间设置一个相当大的分区用于存放操作系统和应用程序,并在后面保留大部分驱动器用于存放其他数据。
/dev/md0
从/dev/sda1
和构建 SW RAID 1 集, ;从相应的分区/dev/sdb1
构建额外的 SW RAID 1 集/dev/md1
和。/dev/md2
格式化
/dev/md0
为 ext3;这将是/boot
。格式化
/dev/md1
为/dev/md2
LVM 物理卷。创建一个 LVM 卷组 ,
vg_system
其中包含/dev/md1
。为您的各种操作系统分区创建适当的 LVM 卷
vg_system
;至少,您需要swap
几/var
GB 和/
10GB 左右的空间。 笔记:不要分配全部vg_system
!当您稍后决定要增加的大小\var
,或者要添加/opt
或诸如此类时,您将需要额外的空间。创建一个 LVM 卷组 ,
vg_data
其中包含/dev/md2
。根据需要在内部创建 LVM 卷
vg_data
;至少您需要一个相当大的卷,并且您可能需要额外的卷,例如邮件假脱机、数据库、Web 根目录或任何其他不属于操作系统的数据。同样,出于与上面列出的原因类似的原因,/home
不要分配所有的卷。vg_data
该策略的优点包括:
它可以容忍硬件故障;任何一个驱动器发生故障都不会导致系统故障,如果您购买热插拔控制器,则可以在不停机的情况下进行恢复。
它具有面向未来性和可扩展性;几年后,当您购买 2TB 驱动器时,您可以将其放入机器中,将其放入另一个 SW RAID 集,将其格式化为 LVM 物理卷,将其添加到需要更多空间的卷组(可能是
lv_data
),然后使用pvmove
它将数据从旧驱动器迁移到新驱动器。此外,主要的操作系统更新可以变得轻松得多;如果您需要重新安装操作系统以进行重大升级(咳咳,Red Hat :( ),您可以在保留主目录(以及邮件假脱机和您放入的所有其他内容vg_data
)的同时进行此操作。
这种策略的缺点很少;我认为它有点复杂,而且由于 RAID 1,写入性能会受到影响。但是,我已经根据这些原则构建工作站和独立服务器好几年了,根据我的经验,每次我没有按照这些原则构建机器时,不久我就会后悔。
-史蒂夫
PS 我应该补充一点,如果你有现成的基础设施来快速轻松地配置一台新机器,那么像这样的系统就是大材小用了;如果你需要改变一些东西,只需重建机器,而不是摆弄 RAID 组和 LVM。
答案4
除了 Eddie 提到的分区之外,我通常还会创建两个单独的分区
/tmp - 出于同样的原因,您创建了一个单独的 /var 分区(我之前已经把临时空间全部填满了)。我通常使用 1-2 GB
/usr/local - 这允许您根据需要升级和清理 /usr,而不会删除所有单独安装的软件。这里的大小取决于您安装了多少外部软件。我通常使用大约 10 GB,但最近发现这有点小。
我总是将 /home 放在最后,并用它来填满磁盘的其余空间。
在 /boot 分区上,我从未将其设置为大于 100 Mb,也从未遇到过空间问题(我最终会清理旧内核)。它确实可以非常小。
另外也不要忘记交换分区。