我经常想知道为什么对分区驱动器有这样的热情,特别是在Unixy操作系统上(/ usr,/ var等)。 这似乎不是Windows安装常见的主题。
分区似乎大大增加了填充一个分区的可能性,而其他分区则有很大的空闲空间。 显然这可以通过仔细的devise和规划来防止,但事情可能会改变。 我经常在机器上经历过这种情况,大部分是由其他人设置的,或者是有问题的操作系统的默认安装设置。
我听到的另一个说法是它简化了备份。 它如何简化备份? 我也听说它提高了可靠性。 又如何呢?
磁盘存储遇到的几乎100%的问题是磁盘物理故障。 难道有人会争辩说,分区可能会加速硬件故障,因为在同一磁盘上将数据从一个分区移动或复制到另一个分区时,磁盘会发生抖动?
我并没有试图太过摇摆不定,我只想看到一个古老的pipe理实践的理由。
我不认为设置大量的分区是你应该为每个系统做的事情。 就个人而言,在我的大部分Linux服务器上,我只是设置了一个大的分区。 由于我的大部分系统都具有小巧的驱动器,并且具有单一用途,并为某些基础设施angular色(dns,dhcp,防火墙,路由器等)提供服务。 在我的文件服务器上,我设置了分区来将数据从系统中分离出来。
难道有人会争辩说,分区可能会加速硬件故障,因为在同一磁盘上将数据从一个分区移动或复制到另一个分区时,磁盘会发生抖动?
我非常怀疑一个分区很好的系统会有什么增加失败的可能性。
保持/ home / seperate的一个原因是你可以重新安装操作系统,不用担心丢失用户数据。 除此之外,在安装一切只读或不执行安全性。 如果用户不能在代码编写的任何地方运行代码,那么它就是less一个攻击向量。
尽pipe如此,在公共机器上我只会为此感到困扰,因为一个分区中的磁盘空间不足,而另一个分区中的磁盘空间不足,这是一个严重的问题。 有办法解决这个问题,就像做软件RAID或者ZFS,你应该可以很容易地dynamic调整分区大小,但是我没有经验。
你可以做备份(通过dumpfs或类似的)你想要的东西,而不是你不需要的东西。 dump(1)是比tar(1)更好的备份系统。
这也是分区的一个论据。 用户填满他们的家庭不会破坏服务器,closuresnetworking服务器,保持日志发生,保持根login等。
它还允许您更透明地将一部分数据(比如/ home)移动到另一个磁盘上:将其复制并挂载。 如果您使用的是允许卷影副本/快照/任何东西,您甚至可以直播。
我总是被教导把/ var保存在一个单独的分区上,所以如果你得到一个失控的日志文件,你将堵塞一个分区而不是整个驱动器。 如果它与系统的其他部分位于同一个空间,并且100%填满了整个光盘,则可能会崩溃并导致恶意恢复。
所有Zoredache提出的论点都是有效的。 有人可能会对这些细节有所质疑(有一台机器更快,所以你可以做其他的事情,而如果系统存在的原因是在其他文件系统上,那么对其他文件系统进行备份并不是很好) ; 不过,事实上他们都是有点理由的。
在真正的老派时代,你没有在单独的分区上的文件系统 – 你有他们在不同的磁盘上,因为磁盘是非常小的。 认为10MB(1)所以你有一个微小的/分区,/ var磁盘,/ usr磁盘,/ tmp磁盘和/ home磁盘。 如果你需要更多的空间,你买了另一个磁盘。
然后,“大”50MB的磁盘开始成本低于月亮计划,突然间,有可能把整个系统放在一个磁盘用户空间可用。
尽pipe如此,与计算机可能生成的磁盘大小相比,磁盘大小仍然很小,因此隔离/ var和/ opt和/ home以便填充一个并不会使计算机停机是一个好主意。
今天,在企业的情况下,我不分区操作系统。 数据被分离出来,尤其是在用户生成的情况下。 但经常是因为它在高速和/或冗余的某种磁盘arrays上。 但是/ var和/ usr全都和/一起存在于同一个分区中。
在家庭环境中,同样的事情 – / home可能应该放在一个单独的磁盘/arrays上,以便可以安装/升级/打破/修复所需的操作系统风格。
原因是因为无论你猜到你的/ var或/ usr或者其他任何树可能有多大 – 你都可能是搞错了,或者你会过分地搞错了。 我的一个老学校的同事发誓要分区,当他坐在一个我创build的系统上,坐了180天时,我总是对他感到悲伤。 但是我可以一直指望我整个职业生涯中被某些东西填满/放下系统的次数,而我可以用一只手来衡量今年到目前为止我一直在盯着某个人决定/ var将永远不会超过(比如说)1GB,并且是错误的,让我盯着一个完整的/ var和00秒的系统上的其他地方的免费GB,所有这些都可能已经在月球上他们对我的好处。
在当今大磁盘的世界里,我没有看到有任何真正的理由来划分操作系统树。 用户数据,是的。 但单独的分区为/ var和/ usr和/ var / spool等等等等? 没有。
(1)=而我只是通过select这个大小就知道了,我会在10MB的评论中find一个人呢? 豪华。 为什么我们的磁盘只是…
回复:
分区似乎大大增加了填充一个分区的可能性,而其他分区则有很大的空闲空间。
在Linux机器上,使用LVM(逻辑卷pipe理)来防止这种情况。 大多数文件系统允许resize(有些甚至在线)。 我为不同的用途创build了不同的分区,并将它们格式化为不同的文件系统(即:我可以快速删除的大型下载文件的xfs)。 需要更多的空间? 挂载一个新的驱动器,将数据移动到它,然后将其挂载到数据所在的位置。 它完全无缝的用户和应用程序。
借助LVM,您可以将磁盘或分区添加到卷组中,然后在该组中创build逻辑卷。 如果将空闲空间留在卷组中,则可以增加正在填满的分区。 如果文件系统支持它(ext3,ext4,reiserfs),则可以缩小已经分配的分区。
例如:在/ dev / sda1上创build一个启动分区,创build第二个(未格式化的)分区/ dev / sda2
pvcreate /dev/sda2 # add the partition to LVM vgcreate vg /dev/sda2 # create a volume group with sda2 in it lvcreate -n root -L5G vg lvcreate -n home -L10G vg lvcreate -n downloads -L100G vg mkfs.ext3 /dev/vg/root mkfs.ext4 /dev/vg/home mkfs.xfs /dev/vg/downloads mount /dev/vg/root / mount /dev/vg/home /home mount /dev/vg/downloads /downloads
当/下载需要更多空间时(文件系统安装时):
lvresize -L+50G /dev/vg/downloads xfs_growfs /dev/vg/downloads
你现在有一个150GB的下载分区。 类似的家庭。 实际上,我今天只调整了一个ext4 lvm“分区”。 另一方面,逻辑卷并不是真正的分区,你所说的分区与我的个人经验(比他们的价值更麻烦)是错误的大小。
传统的Unix分区scheme肯定是旧式的做法,不像以前那样有用。 早在当年Unix系统运行时间被测量的那一天,你就有成百上千的用户使用shell进行testing,安装/ usr作为只读是保护系统的有用方法。 现在重新安装文件系统来补丁似乎更加劳动密集,并没有那么有用。
早在我的大学,Unix集群拥有标准unix工具的只读文件系统,附加应用程序位于/ usr / local,后者是NFS,后来是AFS文件系统。 其中一部分是方便的…当你想通过高速,4Mb或10Mbnetworking运行应用程序时,谁想要在群集中的十几个盒子上重新编译软件? 今天,有着体面的包装经理和大量廉价的磁盘,这不是什么大不了的事情。
我认为,Veritas Volume Manager在1999年左右的Sun机箱上,我的思维过程开始发生变化,这大大降低了磁盘移动的痛苦阈值。
今天,当我想分区时,我正在考虑数据保护和性能。 说明性的例子:
这些考虑也适用于Windows。 我们有一个SCCM服务器,可以pipe理大约40k个客户端。 数据库和日志位于超级IBM DS8000磁盘上。 这些软件包位于EMC Celerra上,配有大容量,速度慢的SATA磁盘,每GB成本降低60%。
我明白这个问题不是特定于操作系统的,对吗?
在Windows下,我倾向于将所有机器尽可能less的分区,但不less于两个 – SYSTEM和DATA。 如果机器有两个物理磁盘,则一个(较小)将是SYSTEM,另一个是DATA。 如果只有一个磁盘,我把它分成两个分区。
原因是只有一个 – 当我需要重新安装机器(而且会有这样的时间),我不必担心SYSTEM分区的内容 – 我只是做一个完整的格式和一个干净的安装。 这当然意味着我的文档(也是最好的桌面)必须映射到DATA上的一个文件夹,但这很容易做到,尤其是在Vista和更高版本上。
我也试着做更多的部分(比如游戏,音乐,电影等等),但是这只会导致其中一些部分溢出到其他部分,造成比订单更多的混乱。
(假设有一个大磁盘可用),我把home
和var
放在不同的分区上,以控制“无法控制[用户|日志文件]填满所有空间”的问题,并允许在不触及家中的情况下轻松升级操作系统把其余的放在一起。
在较旧的硬件上,有时需要有一个单独的boot
分区,以确保引导加载程序可以访问内核映像。
你提到一个磁盘填充,而另一个有空闲空间 – 这是我分区的原因之一 – 因为我可以确保某些分区不填满。 尽pipe配额pipe理的方式,你必须分配所有的用户在其他分区的0配额,只是为了确保他们没有开始隐藏文件,如果他们设法find一个目录他们可以写信给。
至于简化备份 – 如果我知道每个分区的最大尺寸是多less,我可以确定它的大小是整齐地放在一个磁带上,并且可以在一个固定的时间内完成。
至于可靠性,我能想到的唯一的事情就是监测 – 我可以更容易地看到给定分区的增长超过它应该是什么时候,并给我理由来看看它。
现在,所有这些都说了,我们距离每个用户在共享机器上给予他们20MB的小配额的日子还很遥远。 一些旧的习惯是没有道理的 – 但是当你有一个过程变得疯狂,并填充/ var,而这又反过来填满了,而事情就会停下来,对生产机器来说,保护并不是那么糟糕。
对于家庭,我有分区,但只是为了便于pipe理已安装的操作系统。
我个人只使用我的孩子的电脑分区。 我为操作系统创build了一个大的分区,为操作系统分区创build了一个小分区,这样当机器被攻击时,我可以很快地从映像中恢复它。
在企业环境中,我从来没有听说过有关分区的有力论据。
一切都适中是一件好事 – 它可以是一个很好的工具来隔离问题时,如磁盘填满或文件系统损坏。
不要混淆硬件故障 – 这些应该由硬件冗余(RAID)
话虽如此,文件系统现在失败的频率更低,即使在线完整性检查(如ZFS)。 所以希望离线fsck将消失在某个点上…
另一方面,过度这样做只会意味着更多的工作(对于你和你的团队来说) – 只要适度地做,当它是有道理的。