对于基于 Linux 的 Web 和应用程序,是否有某种“最佳磁盘分区方案”显影机,在绩效、组织还是其他方面?
答案1
分区对性能的影响不大,但是文件系统及其配置会影响性能。看这个基准。有关安装选项的一些信息,请参见系统表在ArchWili;尤其是看atime
选项。
分区与 Linux 中的组织文件无关,因为在 Linux 中所有内容都安装到一棵树中。
我建议为根文件系统使用一个分区/
,并为放置工作和个人数据的文件夹使用单独的分区:/home
如果/var/www
您将网站放在这里,因为如果您更改发行版,则无需进行备份。
您可以根据文件组织及其重要性来创建分区/磁盘。
例如,您有非常珍贵的项目和文档,那么您可以将它们放在RAID-ed磁盘上。您还可以使用 ssh/ftp 安装远程磁盘。
安装方案:
/ -> SSD disk, partition 1
/home -> SSD disk, partition 2
/tmp -> tmpfs
/media/data -> RAID-ed disk, partition 2 (ie. shared photos with family)
user mounts:
/home/miroslav/secure -> RAID-ed disk, partition 1 (encrypted)
/home/miroslav/remote -> sshfs/curlftpfs
要安装remote
和secure
目录,您可能需要一些要求您输入密码的脚本。
目录符号链接pwd=/home/miroslav
:
projects -> secure/projects
documents -> secure/documents
mails-dir -> secure/mails
答案2
在我们的内部开发虚拟机上,我们使用三个分区:
/root
分区 - 主要容纳静态操作系统的东西/var
分区 - 适用于所有动态数据/home
分区 - 这是使用开发人员的用户帐户进行开发的地方
分离分区的原因是为了避免由于文件系统已满而导致系统停止。如果/home
已满 - 没关系。没有正在运行的进程受到影响。删除一些内容,在线放大并继续。
/
不应该改变太多(唯一的例外是/tmp
- 但那里的文件通常不会很大)。
/var
/var/tmp
是所有其他“实时”数据所在的位置(包括/var/log
)。满载/var/log
仍然是系统/应用程序故障的首要原因,因此/var
必须足够大,并且当空间变得稀疏时必须及时发出警告......
在物理机器上,磁盘空间并不那么重要,我们划分了额外的“分区”(主要是 LV),包括:/var
, /var/tmp
, /var/log
, /tmp
, /boot
, ... 但这些是生产机器,正常运行时间很重要。
答案3
我曾经为/
、/home
、/usr/local
和制作单独的分区/var
,但我似乎总是以某种跨分区的交互结束。如果我确实安装了不同的发行版,为了简单起见,我希望删除未使用的点文件,因此我仍然进行了备份并擦除了/home
.
至于分区/var
,我在学校创建了很多站点(约 100 个左右),媒体重的站点和纯文本练习之间的大小差异如此之大,以至于我无法准确估计要使用的空间量。分配。
现在,我只有一个分区来容纳所有的东西,而且我根本不会把它填满。个人媒体(电影、游戏、节目)存储在外部高清硬盘上,这样我就可以将其带到朋友家。对于虚拟机,如果你想移动它们,就必须是 virtualbox 中的虚拟设备,我喜欢为每个虚拟机配备一个专用的闪存驱动器。
我从未见过硬盘崩溃,但如果确实如此,我认为物理驱动器如何分区并不重要;它就会死掉。我对硬盘做过的最危险的事情就是调整分区大小,但这已经不再是必要的了。
答案4
根据经验,最易于管理的最佳分区方案可能如下所示:
/
(/Dev
/etc
/root
/run
/opt
/mnt
/media
) 40 GB(用于安装大文件)/usr
(/bin
/sbin
/lib
/lib64
) 10GB/tmp
8 GB(下载文件大小最大 6 GB)/var
20 GB(不希望 Linux 干扰保持很大)/boot
1280MB/home
(休息)/home/bin
512MB
为什么会这样呢?
对于/
,将其挂载为只读 minus 是很实用的/etc
,但是一旦系统完全配置完毕,您希望系统在每次启动后都感觉清新,这是重要的一步。您也可以安全地安装它们,而noexec
nosuid
nodev
不会产生太大的后果。
理想情况下/usr
,您将挂载为只读以保持新鲜感,但偶尔更新时只需重新挂载为rw
,没什么大不了的;安全使用nodev
。
/tmp
因为/var
你不能只读并且想使用nodev
nosuid
noexec
.
/boot
由于显而易见的原因,只读 ( ro
) nodev
nosuid
noexec
。
/home
为什么和之间要分开/home/bin
,这样我就可以chown root /home/bin
给 和 赋予exec
特权,并拒绝 给 和 相同的特权/home
。因此脚本必须以 sudo 身份从该目录运行。
顺便说一句,/proc
和/sys
是内核创建的虚拟文件系统。因此可以根据需要安装在fstab
.