【BUG反馈】AFP备份文件损坏问题

有新想法或新功能要求吗?太好了!來這裡發表您的想法。

版主: bennetliuCrystal.Y@AST

回覆文章
jjm2473
文章: 7
youtube meble na wymiar Warszawa
註冊時間: 週一 1月 04, 2021 1:12 pm

【BUG反馈】AFP备份文件损坏问题

文章 jjm2473 »

机型:AS6602T
ADM版本:3.5.3.RBH1

现象:
参考此教程 ,NAS中启用AFP服务,Mac电脑使用某个共享文件夹作为TimeMachine备份磁盘,初次备份没问题,但是后续增量备份,当备份文件大于200G的时候,可能出现备份文件损坏。同时,如果以AFP协议访问共享文件,有些文件也会变得无法读取(原来能正常读取并且期间并未修改任何设置),重启Mac电脑并不能解决问题,得重启AFP服务才行,但是已损坏的备份文件无法再使用。
后来自己用Docker的方式部署了一个AFP服务,同样基于netatalk,就没再出现备份文件损坏的现象。

结论:
ADM 3.5.3.RBH1内置的AFP服务有BUG。
Shawn.S@AST
文章: 322
註冊時間: 週五 5月 25, 2012 3:10 pm

Re: 【BUG反馈】AFP备份文件损坏问题

文章 Shawn.S@AST »

谢谢您的回馈,我们之前都有试过 Time Machine 透过AFP 的备份,并没有问题发生。
请问您MacOS版本是?
在此同时,我们也会重新试Time Machine 的备份一次。
jjm2473
文章: 7
註冊時間: 週一 1月 04, 2021 1:12 pm

Re: 【BUG反馈】AFP备份文件损坏问题

文章 jjm2473 »

Shawn.S@AST 寫:谢谢您的回馈,我们之前都有试过 Time Machine 透过AFP 的备份,并没有问题发生。
请问您MacOS版本是?
在此同时,我们也会重新试Time Machine 的备份一次。
我的Mac版本是10.15.7

我这里初次备份也没问题,但是用了一两天以后,备份200G左右,就会出现损坏。我尝试把之前手动copy的备份文件覆盖回去,TimeMachine可以正常备份,但是备份几次以后又会出现损坏。
Shawn.S@AST
文章: 322
註冊時間: 週五 5月 25, 2012 3:10 pm

Re: 【BUG反馈】AFP备份文件损坏问题

文章 Shawn.S@AST »

谢谢,我们会照这样子来试看看,看会不会有同样的现象发生。
jjm2473
文章: 7
註冊時間: 週一 1月 04, 2021 1:12 pm

Re: 【BUG反馈】AFP备份文件损坏问题

文章 jjm2473 »

已经过去一周,现在Docker中的AFP也出现相同的问题了。

Mac上已经卸载了TimeMachine的磁盘,看了一下afpd的进程信息,发现其中有一些文件还没关闭。

代碼: 選擇全部

root@AS6602T-7445:/volume1/.@root # ps aux|grep afpd
19010 root       0:00 grep afpd
22160 admin      0:17 /usr/sbin/afpd -d -F /etc/netatalk/afp.conf
22724 root       0:01 /usr/sbin/afpd -d -F /etc/netatalk/afp.conf

root@AS6602T-7445:/volume1/.@root # cd /proc/22160/fd

root@AS6602T-7445:/proc/22160/fd # ll
total 0
dr-x------    2 root     root           0 Jan  8 13:31 ./
dr-xr-xr-x    8 admin    administ       0 Jan  8 01:13 ../
lrwx------    1 root     root          64 Jan  8 13:31 0 -> /dev/pts/0
lrwx------    1 root     root          64 Jan  8 13:31 1 -> /dev/pts/0
lrwx------    1 root     root          64 Jan  8 13:31 10 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/b6f*
lrwx------    1 root     root          64 Jan  8 13:31 11 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/30*
lrwx------    1 root     root          64 Jan  8 13:31 12 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/266*
lrwx------    1 root     root          64 Jan  8 13:31 13 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/3*
lrwx------    1 root     root          64 Jan  8 13:31 14 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/22d*
lrwx------    1 root     root          64 Jan  8 13:31 15 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/bcf
lrwx------    1 root     root          64 Jan  8 13:31 16 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/65*
lrwx------    1 root     root          64 Jan  8 13:31 17 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/4*
lrwx------    1 root     root          64 Jan  8 13:31 18 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/e19
lrwx------    1 root     root          64 Jan  8 13:31 19 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/bd1
lrwx------    1 root     root          64 Jan  8 13:31 2 -> /dev/pts/0
lrwx------    1 root     root          64 Jan  8 13:31 20 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/65*
lrwx------    1 root     root          64 Jan  8 13:31 21 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/235*
lrwx------    1 root     root          64 Jan  8 13:31 22 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/bd0
lrwx------    1 root     root          64 Jan  8 13:31 23 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/24f*
lrwx------    1 root     root          64 Jan  8 13:31 24 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/22b*
lrwx------    1 root     root          64 Jan  8 13:31 25 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/24f*
lrwx------    1 root     root          64 Jan  8 13:31 26 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/35*
lrwx------    1 root     root          64 Jan  8 13:31 27 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/bd3
lrwx------    1 root     root          64 Jan  8 13:31 28 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/30*
lrwx------    1 root     root          64 Jan  8 13:31 29 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/22b*
l-wx------    1 root     root          64 Jan  8 13:31 3 -> /volume1/debian_afp.log
lrwx------    1 root     root          64 Jan  8 13:31 30 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/132*
lrwx------    1 root     root          64 Jan  8 13:31 31 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/bd3
lrwx------    1 root     root          64 Jan  8 13:31 32 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/235*
lrwx------    1 root     root          64 Jan  8 13:31 33 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/132*
lrwx------    1 root     root          64 Jan  8 13:31 34 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/bd1
lrwx------    1 root     root          64 Jan  8 13:31 35 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/3*
lrwx------    1 root     root          64 Jan  8 13:31 36 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/bd0
lrwx------    1 root     root          64 Jan  8 13:31 37 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/35*
lrwx------    1 root     root          64 Jan  8 13:31 39 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/bcf
lr-x------    1 root     root          64 Jan  8 13:31 4 -> /dev/urandom
lrwx------    1 root     root          64 Jan  8 13:31 40 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/3f*
lrwx------    1 root     root          64 Jan  8 13:31 41 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/4*
lrwx------    1 root     root          64 Jan  8 13:31 42 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/e19
lrwx------    1 root     root          64 Jan  8 13:31 43 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/258*
lrwx------    1 root     root          64 Jan  8 13:31 44 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/b6f*
lrwx------    1 root     root          64 Jan  8 13:31 46 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/266*
lrwx------    1 root     root          64 Jan  8 13:31 47 -> /volume1/TimeMachine/MacBook Pro.backupbundle/bands/22d*
lrwx------    1 root     root          64 Jan  8 13:31 5 -> socket:[177578687]=
lrwx------    1 root     root          64 Jan  8 13:31 6 -> /volume1/TimeMachine/MacBook Pro.backupbundle/token*
lrwx------    1 root     root          64 Jan  8 13:31 7 -> /volume1/TimeMachine/MacBook Pro.backupbundle/mapped/3f*
lrwx------    1 root     root          64 Jan  8 13:31 8 -> socket:[177576781]=
尝试在Mac中挂载TimeMachine磁盘,可以挂载成功,但是afpd未关闭的文件在Mac中就无法读取了。

代碼: 選擇全部

[jjm@MacBook-Pro:/Volumes]$ cd TimeMachine/

[jjm@MacBook-Pro:/Volumes/TimeMachine]$ ls
MacBook Pro.backupbundle

[jjm@MacBook-Pro:/Volumes/TimeMachine]$ cd MacBook\ Pro.backupbundle/

[jjm@MacBook-Pro:/Volumes/TimeMachine/MacBook Pro.backupbundle]$ ll
total 56
-rwxrwxrwx  1 jjm  staff     500 12 30 15:43 Info.bckup
-rwxrwxrwx  1 jjm  staff     500 12 30 15:43 Info.plist
drwxrwxrwx  1 jjm  staff  111748  1  8 02:17 bands
-rwxrwxrwx  1 jjm  staff     516  1  8 13:24 com.apple.TimeMachine.MachineID.bckup
-rwxrwxrwx  1 jjm  staff     516  1  8 13:24 com.apple.TimeMachine.MachineID.plist
-rwxrwxrwx  1 jjm  staff    1111  1  8 02:17 com.apple.TimeMachine.Results.plist
-rwxrwxrwx  1 jjm  staff    5601  1  8 02:17 com.apple.TimeMachine.SnapshotHistory.plist
drwxrwxrwx  1 jjm  staff  111748  1  8 02:17 mapped
-rwxrwxrwx  1 jjm  staff       0 12 30 15:43 token

[jjm@MacBook-Pro:/Volumes/TimeMachine/MacBook Pro.backupbundle]$ dd if=token of=/dev/null bs=1 count=1
dd: token: Resource temporarily unavailable

[jjm@MacBook-Pro:/Volumes/TimeMachine/MacBook Pro.backupbundle]$ dd if=mapped/3f of=/dev/null bs=1 count=1
dd: mapped/3f: Resource temporarily unavailable

[jjm@MacBook-Pro:/Volumes/TimeMachine/MacBook Pro.backupbundle]$ dd if=mapped/123 of=/dev/null bs=1 count=1
1+0 records in
1+0 records out
1 bytes transferred in 0.000025 secs (39946 bytes/sec)
从上面两段命令可以看出:
tokenmapped/3f两个文件都是afpd没关闭的,所以都无法读取。而mapped/123未被打开,就能读取。

不知什么原因导致afpd锁定了一些文件,导致TimeMachine无法正常读写文件。
jjm2473
文章: 7
註冊時間: 週一 1月 04, 2021 1:12 pm

Re: 【BUG反馈】AFP备份文件损坏问题

文章 jjm2473 »

不过这次很幸运,把afpd进程重启以后,TimeMachine还能恢复正常状态,备份文件也没损坏
Shawn.S@AST
文章: 322
註冊時間: 週五 5月 25, 2012 3:10 pm

Re: 【BUG反馈】AFP备份文件损坏问题

文章 Shawn.S@AST »

谢谢你的回报,我们这边试了几天还没有试出这个状况,我们还会持续测试几天看会不会出现。
Shawn.S@AST
文章: 322
註冊時間: 週五 5月 25, 2012 3:10 pm

Re: 【BUG反馈】AFP备份文件损坏问题

文章 Shawn.S@AST »

我们测试到现在都还没有损坏的状况发生。会持续观察。
回覆文章