这一切都是在几周前开始的:
"E297: Write error in swap file $ echo "test" > test 产生 -bash: echo: write error: No space left on device 不是我的配额,因为它发生在所有用户。
除此之外,服务器似乎很好…
以下是我认为可能有用的一些信息:
$ sudo df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/fileserver--00-root 224G 212G 0 100% / none 995M 192K 995M 1% /dev none 1000M 0 1000M 0% /dev/shm none 1000M 14M 986M 2% /var/run none 1000M 0 1000M 0% /var/lock none 1000M 0 1000M 0% /lib/init/rw /dev/sdb1 1.4T 1006G 356G 74% /cubo/d2p1 /dev/sdc1 459G 416G 39G 92% /cubo/d3p1 /dev/sda1 228M 17M 199M 8% /boot 192.168.1.7:/nfs/Backups 1.8T 1.2T 645G 65% /cubo/nfsMounts/ixBackup
也:
$ ll /dev/mapper/ total 0 crw-rw---- 1 root root 10, 59 2013-04-11 12:54 control brw-rw---- 1 root disk 251, 0 2013-04-11 12:54 fileserver--00-root brw-rw---- 1 root disk 251, 1 2013-04-11 12:54 fileserver--00-swap_1
附加信息
$ sudo dmsetup status fileserver--00-swap_1: 0 11993088 linear fileserver--00-root: 0 475701248 linear
和:
$ sudo dmsetup info Name: fileserver--00-swap_1 State: ACTIVE Read Ahead: 256 Tables present: LIVE Open count: 1 Event number: 0 Major, minor: 251, 1 Number of targets: 1 UUID: LVM-z7USJS3uIlf3VVUPeDeE0TzljgezS31fcvrwZihBYEENf5Tkgsyb9xJHo3RNVXsT Name: fileserver--00-root State: ACTIVE Read Ahead: 256 Tables present: LIVE Open count: 1 Event number: 0 Major, minor: 251, 0 Number of targets: 1 UUID: LVM-z7USJS3uIlf3VVUPeDeE0TzljgezS31fdr57i4JAzZxlK6KeTOWDTm6bzUKK87J1
我的根文件夹大小:
$ cd / $ sudo du -sh {bin,boot,cdrom,dev,etc,home,lib,lost+found,media,mnt,opt,proc,root,sbin,selinux,srv,sys,tmp,usr,var} 7.4M bin 17M boot 4.0K cdrom 192K dev 39M etc 1.1M home 154M lib 16K lost+found 4.0K media 4.0K mnt 4.0K opt du: cannot access `proc/21251/task/21251/fd/4': No such file or directory du: cannot access `proc/21251/task/21251/fdinfo/4': No such file or directory du: cannot access `proc/21251/fd/4': No such file or directory du: cannot access `proc/21251/fdinfo/4': No such file or directory 0 proc 48K root 7.5M sbin 4.0K selinux 4.0K srv 0 sys 16K tmp 542M usr 282M var
我的fstab:
$ cat /etc/fstab # /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc nodev,noexec,nosuid 0 0 /dev/mapper/fileserver--00-root / ext4 errors=remount-ro 0 1 # /boot was on /dev/sda1 during installation UUID=1724d880-01a4-481c-87e5-08328c3c8137 /boot ext2 defaults 0 2 /dev/mapper/fileserver--00-swap_1 none swap sw 0 0 /dev/sdb1 /cubo/d2p1 ext3 defaults 0 0 /dev/sdc1 /cubo/d3p1 ext4 defaults 0 0 /dev/sdd1 /cubo/d4p1 ext4 defaults,noauto 0 0 192.168.1.7:/nfs/Backups /cubo/nfsMounts/ixBackup nfs defaults 0 0
我该如何解决?
在聊天中调查问题后,原因被确定 – 根文件系统上的空间被隐藏在挂载点下面的文件占据(因此du不可见)。
在Linux中,有两种方法可以访问隐藏在挂载点下的文件和目录:
显而易见的方法 – 卸载安装在目录中的文件系统,然后查看该目录内的内容。 显然,在文件系统正在使用时这是不可能的。
使用绑定挂载,可以在树的另一个目录中访问外部文件系统,并且普通绑定挂载不是recursion的 – 它们不会复制嵌套挂载,因此在旧位置超载的目录可以在新位置访问。 这可以在运行的机器上执行,而不会中断使用文件系统的操作,所以这里将使用这个方法。
为根文件系统执行这种绑定装载的命令:
sudo mkdir /mnt/tmp_root sudo mount --bind / /mnt/tmp_root
(在这种情况下,使用/mnt/tmp_root是可能的,因为为root保留的空间不是100%被占用的。)
然后find隐藏在挂载点下的大文件是可能的:
sudo du -x --max-depth=1 /mnt/tmp_root sudo du -x --max-depth=1 /mnt/tmp_root/cubo ...
find有问题的文件后,可以将其删除以释放空间。 请注意,无法删除在同一文件系统的其他绑定安装中用作挂载点的目录 – 例如,如果NFS文件系统安装在/cubo/nfsMounts/ixBackup , /cubo/nfsMounts/ixBackup /mnt/tmp_root/cubo/nfsMounts/ixBackup是不可能的(但它下面的文件和目录可以被删除)。
最后,防范未来这种问题的一种方法是收紧打算作为挂载点使用的目录的权限,以便在存在阻止挂载的问题的情况下(例如,NFS服务器没有响应),目录不可访问,尝试访问失败的方式显而易见:
sudo chown root:root /mnt/tmp_root/cubo/nfsMounts/ixBackup sudo chmod 0600 /mnt/tmp_root/cubo/nfsMounts/ixBackup
(这会更改根文件系统上目录的权限,并且不会对可以在/cubo/nfsMounts/ixBackup上挂载的文件系统执行任何/cubo/nfsMounts/ixBackup 。)
最后一个操作是在不再需要的情况下删除绑定挂载,并删除临时目录:
sudo umount /mnt/tmp_root sudo rmdir /mnt/tmp_root
正如我在其他地方所说,你的根分区已满。
线路224G 212G 0 100% /是线索,您正在使用/上安装的文件系统的100%。