/var
关于移动到另一个目录或另一个分区或设备似乎确实存在几个问题。我想做的是将其移至熔丝池 fs。
我的目标:将 Linux 服务器安装到 USB 上,并使用保险丝来管理已安装的 JBOD。但我想转向/var
存储池,因为很多人警告不要对 USB 进行过多写入,从而缩短其寿命。如果我搬到/var
附属的/storage
游泳池,那么棍子的寿命就会大大延长。
问题是当我将绑定安装添加到我的指向/etc/fstab
时,操作系统在重新启动时挂起。我必须进入恢复模式才能撤销我的更改。 /storage/var
/var
这是/etc/fstab
我恢复之前的。
# SnapRAID Dsks
/dev/disk/by-id/ata-abc-part1 /mnt/data/disk1 ext4 defaults 0 2
/dev/disk/by-id/ata-def-part1 /mnt/data/disk2 ext4 defaults 0 2
/dev/disk/by-id/ata-ghi-part1 /mnt/data/disk3 ext4 defaults 0 2
/dev/disk/by-id/ata-jkl-part1 /mnt/data/disk4 ext4 defaults 0 2
# Parity Disks
/dev/disk/by-id/ata-lmn-part1 /mnt/data/disk5 ext4 defaults 0 2
# MergerFS
/mnt/data/* /storage fuse.mergerfs category.create=eplfs,defaults,allow_other,minfreespace=20G,fsname=mergerfsPool 0 00
# bind mount
/storage/var /var ext4 defaults 0 0
这是不可能的吗,或者我应该直接将其绑定挂载到一个磁盘上。
答案1
更好的解决方案是将 /var 移动到 tmpfs,而不是将 /var 移动到池中。看完之后这来自 Chris Newland 的消息,我将把 /var 移动到 tmpfs,并添加noatime
到根安装驱动器。
# /etc/fstab: static file system information.
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/sda1 / ext2 noatime,errors=remount-ro 0 1
tmpfs /tmp tmpfs defaults,noatime 0 0
tmpfs /var/log tmpfs defaults,noatime 0 0
tmpfs /var/tmp tmpfs defaults,noatime 0 0
tmpfs /var/run tmpfs defaults,noatime 0 0
tmpfs /var/spool tmpfs defaults,noatime 0 0
tmpfs /var/lock tmpfs defaults,noatime 0 0
tmpfs /var/cache tmpfs defaults,noatime 0 0
由于一些程序抱怨没有临时位置可写入(也来自 Chris Newland 的页面),我还跟进了其他配置...
这可以确保 apache2、postgresql 和 debconf 在安装在 tmpfs 文件系统上时都能正确/var/log
运行/var/cache
:
# Put these commands into /etc/init.d/make-tmpfs-dirs
#!/bin/sh
mkdir /var/cache/debconf
mkdir /var/log/apache2
chown root:adm /var/log/apache2
chmod 750 /var/log/apache2
mkdir /var/log/postgresql
chown root:postgres /var/log/postgresql
chmod 774 /var/log/postgresql
exit 0
现在使该可执行文件:
chmod u+x /etc/init.d/make-tmpfs-dirs
...从正确的 rc.d 运行级别目录链接到 make-tmpfs-dirs 脚本
cd /etc/rc2.d
ln -s ../init.d/make-tmpfs-dirs S02make-tmpfs-dirs
最后,我不会放弃交换,而是重新配置除非绝对必要(当我内存不足时),否则不要使用它:
要更改 ubuntu 中的系统交换值,请/etc/sysctl.conf
以 root 身份打开。然后,更改或添加此行到文件中:
vm.swappiness = 10