Raid

mv 在 btrfs 文件系統上無限期掛起

  • November 12, 2016

mv我最近開始在我的 ReadyNAS 312 系統上執行時遇到問題。似乎呼叫立即阻塞,即當我在它上面執行strace時,它似乎在做很多事情之前就卡住了:

open("[...]", O_RDONLY|O_NOFOLLOW) = 3
fstat(3, {st_mode=S_IFREG|0666, st_size=287873154, ...}) = 0
open("[...]", O_WRONLY|O_CREAT|O_EXCL, 0600) = 4
fstat(4, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
ioctl(4, BTRFS_IOC_CLONE^C^C^Z
[1]  + 7789 suspended  strace mv  .

完整strace輸出在

$$ 0 $$. 相反,一個cp沒有問題的作品(輸出在

$$ 1 $$). 雖然mv掛起,但top根據ps r -A它的執行情況,它確實使用了 100% 的 CPU:

% ps r -A
 PID TTY      STAT   TIME COMMAND
2490 ?        R      0:45 [btrfs-transacti]
20257 pts/0    R+     1:15 mv [...]
21097 pts/1    R+     0:00 ps r -A

但是,如上所示,幾秒鐘後,該過程

$$ btrfs-transacti $$加入它(也使用 100% CPU)。 的輸出cat /proc/20257/status

% cat /proc/20257/status
Name:   mv
State:  R (running)
Tgid:   20257
Ngid:   0
Pid:    20257
PPid:   20254
TracerPid:  20254
Uid:    0   0   0   0
Gid:    0   0   0   0
FDSize: 64
Groups: 0 
NStgid: 20257
NSpid:  20257
NSpgid: 20254
NSsid:  4613
VmPeak:    24084 kB
VmSize:    24084 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:      1616 kB
VmRSS:      1616 kB
VmData:      220 kB
VmStk:       136 kB
VmExe:       124 kB
VmLib:      2516 kB
VmPTE:        64 kB
VmPMD:        12 kB
VmSwap:        0 kB
Threads:    1
SigQ:   0/7915
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 0000000180000000
CapInh: 0000000000000000
CapPrm: 0000003fffffffff
CapEff: 0000003fffffffff
CapBnd: 0000003fffffffff
Cpus_allowed:   f
Cpus_allowed_list:  0-3
Mems_allowed:   1
Mems_allowed_list:  0
voluntary_ctxt_switches:    308
nonvoluntary_ctxt_switches: 467

隨著非自願上下文切換的數量緩慢上升,而自願上下文切換保持不變。

磁碟系統是 Netgear 所說的 X-RAID,但它基本上是 RAID-1。核心是

% uname -a
Linux readynas312 4.1.30.x86_64.1 #1 SMP Thu Sep 22 16:30:32 PDT 2016 x86_64 GNU/Linux

如果我應該提供更多資訊,請告訴我。

$$ 0 $$ https://gist.github.com/dinyar/6e32fae19d38fd66f942dd70ee6cda8c $$ 1 $$ https://gist.github.com/dinyar/4c40ff7bc0fca986a1ea875287810928

我搜尋了更多,我相當確定我遇到了中描述的錯誤

$$ 0 $$. $$ 0 $$ http://permalink.gmane.org/gmane.comp.file-systems.btrfs/46877

引用自:https://serverfault.com/questions/814255