文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>文件备份 No space left on device错误

文件备份 No space left on device错误

时间:2010-10-22  来源:jason_luo

        今天查看backup.log文件,发现报了很多错误:

gzip: stdout: No space left on device
mysqldump: Got errno 32 on write

         这种错误原因: 因为文件的inode耗尽。

         Linux/Unix like OS 的文件系统中每个目录树中的节点并不是像 Windows 那样直接包含文件的具体信息,而只包含了文件名和 Inode number 。通过 Inode number 所找到对应于文件名的 Inode 节点中才真正记录了文件的大小/物理地址/所有者 /访问权限/时间戳/被硬链接的次数等实际的 metadata 。因此你可以在 Linux 系统中通过硬链接( hard link ) 的方式给某个文件创建无数个位于不同目录下的文件名,而实际的文件数据只需要一份拷贝。

        但也正因为这种文件系统的结构,当你在 Linux 中进行 IO 操作的时候,需要的资源除了磁盘空间以外,还要有剩余的 Inode 才行。缺省情况下, Linux 在系统安装过程中按照1 个 Inode 对应 2k 磁盘空间来计算每个分区的最大 Inode 数。一旦文件系统创建之后,每个分区可用 Inode 数就无法进行动态调整。

         我们的备份硬盘出现此类错误的原因是因为我们有大量的小图片和其他的小的文件,可能会耗尽Inode。

解决的办法也很简单:先查看一下当前各个磁盘Inode使用的情况。

 

  1. ##[root@svr1 disk2]# df -i 
  2. Filesystem            Inodes   IUsed   IFree IUse% Mounted on 
  3. /dev/mapper/VolGroup00-LogVol00 
  4.                      37781504 1024057 36757447    3% / 
  5. /dev/sda1              26104      62   26042    1% /boot 
  6. tmpfs                 189160       1  189159    1% /dev/shm 
  7. /dev/sdc5            122109952 12918904 109191048   11% /disk2 
  8. /dev/sdb5            122109952  616980 121492972    1% /disk3 
  9. mfs#192.168.100.15:9421 
  10.                      1001869388  863377 1001006011    1% /gmfs 

然后呢,想办法减少小文件数量。使文件系统的 Inode释放出来,就ok了。

排行榜 更多 +
打螺丝高手

打螺丝高手

模拟经营 下载
解救火柴人计划安卓版

解救火柴人计划安卓版

体育竞技 下载
鸡生化精英安卓版

鸡生化精英安卓版

飞行射击 下载