ファイルバックアップNo space left on deviceエラー


今日はbackupを見ます.logファイルでは、多くのエラーが報告されています.
gzip: stdout: No space left on device mysqldump: Got errno 32 on write
このエラーの原因:ファイルのinodeが切れたためです.
Linux/Unix like OSのファイルシステムの各ディレクトリツリーのノードは、Windowsのようにファイルの具体的な情報を直接含んでいるのではなく、ファイル名とInode numberのみを含んでいます.ファイルのサイズ/物理アドレス/所有者/アクセス/タイムスタンプ/ハードリンクされた回数などの実際のmetadataは、Inode numberによって見つけられたファイル名に対応するInodeノードに記録されます.そのため、Linuxシステムではハードリンク(hard link)でファイルに複数の異なるディレクトリの下にあるファイル名を作成することができますが、実際のファイルデータにはコピーが必要です.
しかし、このようなファイルシステムの構造のため、LinuxでIO操作を行う場合、必要なリソースはディスクスペースのほかに、Inodeが残っています.デフォルトでは、Linuxはシステムのインストール中に1つのInodeに対応する2 kディスク領域で各パーティションの最大Inode数を計算します.ファイルシステムが作成されると、各パーティションで使用可能なInode数は動的に調整できません.
バックアップハードディスク(HDD)でこのようなエラーが発生したのは、小さな画像や他の小さなファイルが大量に存在し、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です.