web-dev-qa-db-ja.com

XFSデバイスにスペースが残っていない状態でrsync(およびscp)が失敗する

XFS用にフォーマットされた400GBのプライマリパーティションを持つCentOS7の新規インストールがあります。現在使用されているGBは1GB未満です。 65GBのファイルをrsyncしようとしていますが、14GBから26GBの間でコピーが失敗し始めます。 (私は何度も試しました。)

十分なスペースがあります:

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      400G  919M  400G   1% /
devtmpfs        7.3G     0  7.3G   0% /dev
tmpfs           7.2G     0  7.2G   0% /dev/shm
tmpfs           7.2G   41M  7.2G   1% /run
tmpfs           7.2G     0  7.2G   0% /sys/fs/cgroup
/dev/xvdb        37G   49M   35G   1% /mnt

私はたくさんのiノードを持っています:

# df -ih
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/xvda1       400M   24K  400M    1% /
devtmpfs         1.9M   289  1.9M    1% /dev
tmpfs            1.8M     1  1.8M    1% /dev/shm
tmpfs            1.8M   280  1.8M    1% /run
tmpfs            1.8M    13  1.8M    1% /sys/fs/cgroup
/dev/xvdb        2.4M    11  2.4M    1% /mnt

これが何を意味するのかわかりませんが、他の場所で参照されているのを見たことがあるので、診断に役立つと思いました。

# xfs_db -r "-c freesp -s" /dev/xvda1
   from      to extents  blocks    pct
      1       1      82      82   0.00
      2       3      14      30   0.00
      4       7      12      63   0.00
      8      15      13     131   0.00
     16      31      17     369   0.00
     32      63       9     408   0.00
     64     127       8     774   0.00
    128     255       9    1702   0.00
    256     511       4    1605   0.00
    512    1023       6    4267   0.00
   1024    2047       1    1664   0.00
   2048    4095       2    7446   0.01
   8192   16383       2   24221   0.02
  32768   65535       1   33389   0.03
 131072  262143       1  205592   0.20
 262144  524224     200 104345607  99.73
total free extents 381
total free blocks 104627350
average free extent size 274612

何をチェックする必要があるのか​​、なぜ失敗し続けるのかわかりません。上記の引用セクションは、コピー前のものです。コピー後、iノードは47Kになります。

あなたが提供できるどんな助けにも前もって感謝します。

編集:CentOS6.7ではなくCentOS7を使用します。また、カーネルバージョン:

# uname -r
3.10.0-123.8.1.el7.x86_64

編集2:

別の試行後の結果は次のとおりです(失敗する前に22GB/65GBが完了しました)。

# touch test
touch: cannot touch ‘test’: No space left on device
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      400G   22G  379G   6% /
devtmpfs        7.3G     0  7.3G   0% /dev
tmpfs           7.2G     0  7.2G   0% /dev/shm
tmpfs           7.2G   41M  7.2G   1% /run
tmpfs           7.2G     0  7.2G   0% /sys/fs/cgroup
/dev/xvdb        37G   49M   35G   1% /mnt
# df -ih
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/xvda1       400M   47K  400M    1% /
devtmpfs         1.9M   289  1.9M    1% /dev
tmpfs            1.8M     1  1.8M    1% /dev/shm
tmpfs            1.8M   280  1.8M    1% /run
tmpfs            1.8M    13  1.8M    1% /sys/fs/cgroup
/dev/xvdb        2.4M    11  2.4M    1% /mnt
# xfs_db -r "-c freesp -s" /dev/xvda1
   from      to extents  blocks    pct
      1       1      60      60   0.00
     64     127       1      81   0.00
    128     255       1     186   0.00
    512    1023       3    2317   0.00
   1024    2047       2    2538   0.00
   2048    4095       1    2310   0.00
   4096    8191       1    8001   0.01
   8192   16383       2   25782   0.03
 262144  524224     189 99059740  99.96
total free extents 260
total free blocks 99101015
average free extent size 381158

ルートとしても、新しいファイルやディレクトリを作成することはできません。

編集3:追加の要求された情報:

# xfs_info /dev/xvda1
meta-data=/dev/xvda1             isize=256    agcount=201, agsize=524224 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=104855999, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
4
BamaPookie

あなたが投稿したものを考えると、この問題を引き起こす可能性のあるXFSの場所はあとわずかです。ここに2つあります:

  • クォータ。これらを誤ってオンにするのは簡単ではありませんが、他に何も結果が得られないかどうかを確認する価値のあるもう1つの領域です。 uquotamount-optionを探します。それでも疑わしい場合は、オプションとしてnoquotaがすべてに割り当てを停止するように指示します。
  • マウントオプション。マウントオプションにはinode64が必要です。これは、64ビットのiノード割り当てを使用するようにカーネルに指示するマウントフラグです。これがない場合、新しいファイルやディレクトリを作成しようとすると、カーネルがENOSPC(スペース不足)をスローする可能性があります。あなたのパーティションはこれが問題になるほど大きくはありませんが、現時点では簡単に確認することはできません。

XFS以外に、確認すべきことがもう1つあります。

  • ファイルを開く-Ulimitを処理するこれはrsyncが実行しているものである可能性があります。メモリの場合は、別のエラーが表示されます。
3
sysadmin1138