一台高负载的FTP&EMAIL Server异常如下:
(1)显示屏不断提示:inumber on /:filesystem full
(2)执行df查询或mkdir创建目录提示:Device not configured
(3)log日志提示:failed: No space left on device、file_dotlock_create
(4)执行halt、reboot、shutdown、whereis、last、top等命令均提示:command not found
(5)执行uptime命令显示load averages值很高
(6)执行vi命令提示:
/: create/symlink failed, no inodes free
/: create/symlink failed, no inodes free
ex/vi: Error: /var/tmp/vi.recover: No space left on device
ex/vi: Modifications not recoverable if the session fails
ex/vi: Error: /etc/rc.conf: No space left on device
ex/vi: Error: Unable to create temporary file: No space left on device
以上种种信息都提示系统的inodes用完了,只能通过删除文件释放inodes,或者重新创建拥有更多inodes的文件系统!
以下以重建usr文件系统为例,请自行举一反三参考。
一、可通过删除src、ports、obj这三个目录以应急释放更多的inodes。
[[email protected] /]#cd /usr && rm -rf src ports obj
二、使用cpio命令将要扩展的目录安装到根分区上:
[[email protected] /]#mkdir /tmpusr
[[email protected] /]#cd /usr
[[email protected] /]#find . -print -depth | cpio -dpam /tmpusr
三、通过init 1进入单用户模式:
[[email protected] /]#init 1
四、确定所有守护程序都已停止的情况下,可以卸载掉/usr:
[[email protected] /]#umount /usr
创建新文件系统使其具有更多的索引节点:
[[email protected] /]#newfs -i 1024 /dev/ad1s1a
inode的默认值为4096,因此,通过在指定参数-i 1024,将inode的数量有效地增加4倍。换句话说,现在可以拥有的文件数量是以前的四倍。
五、重新挂载/usr并拷贝数据:
[[email protected] /]#mount /dev/ad1s1a /usr
[[email protected] /]#cd /tmpusr
[[email protected] /]#find . -print -depth | cpio -dpam /usr
六、编辑/etc/fstab使其开机能自动挂载:
参考文章:FreeBSD系统下增加硬盘
七、重启系统测试是否一切正常。
[[email protected] /]#reboot
八、使用df命令查询inodes的使用情况:
[[email protected] /]#df -ih
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/ad0s1a 81G 4.4G 70G 6% 194k 11M 2% /
devfs 1.0K 1.0K 0B 100% 0 0 100% /dev
/dev/ad1s1a 484G 16G 430G 3% 23k 66M 0% /usr