我在 FreeBSD-9.1 版本上使用 netatalk 服务器 3.0.1 时遇到了问题。Netatalk 是从 ports collection 安装的,并且正在通过网络共享一些目录。
更新Netatalk 3.0.2 版本在我的计算机上也存在同样的问题
配置文件
[Global]
; Global server settings
[Homes]
basedir regex = /home
home name = $f - $u 's Home
[testvolume]
path = /var/tmp
[Storage]
path = /tank
[Time Machine Backup]
path=/tank/TM_backup
vol size limit = 2000000
time machine = yes
/tank
在我的情况下是 ZFS 池的根,其下有不同的文件系统。我将一台运行 Mac OS X 10.7.5 的 Mac 连接到它,它可以完美地用作 Time Machine 设备。但是,如果我想使用存储共享在其上创建新的 Aperture 库,Aperture 就会停滞,无法在服务器上创建新的库。查看服务器日志,它输出以下内容:
服务器日志
Feb 17 20:09:09 glacier afpd[3501]: afp_disconnect: primary reconnect failed
Feb 17 20:09:09 glacier afpd[3210]: Terminated disconnected child[3229], client rebooted.
Feb 17 20:09:09 glacier afpd[3505]: AFP3.3 Login by towe
Feb 17 20:09:09 glacier kernel: pid 3501 (afpd), uid 501: exited on signal 6
Feb 17 20:09:09 glacier afpd[3505]: afp_disconnect: trying primary reconnect
Feb 17 20:09:09 glacier afpd[3210]: Reconnect: transfering session to child[3501]
Feb 17 20:09:09 glacier afpd[3210]: read: Bad file descriptor
Feb 17 20:09:09 glacier afpd[3210]: Reconnect: error sending DSI id to child[3501]
Feb 17 20:09:14 glacier afpd[3505]: afp_disconnect: primary reconnect failed
Feb 17 20:09:14 glacier afpd[3210]: Terminated disconnected child[3229], client rebooted.
Feb 17 20:09:14 glacier kernel: pid 3505 (afpd), uid 501: exited on signal 6
Feb 17 20:09:14 glacier afpd[3506]: AFP3.3 Login by towe
Feb 17 20:09:14 glacier afpd[3506]: afp_disconnect: trying primary reconnect
Feb 17 20:09:14 glacier afpd[3210]: Reconnect: transfering session to child[3505]
Feb 17 20:09:14 glacier afpd[3210]: read: Bad file descriptor
Feb 17 20:09:14 glacier afpd[3210]: Reconnect: error sending DSI id to child[3505]
因此服务器陷入了每 5 秒重复一次的重新连接循环中,并且总是失败。
这是该命令的输出zfs list
:
NAME USED AVAIL REFER MOUNTPOINT
tank 725G 4.62T 682K /tank
tank/Downloads 1.61G 4.62T 1.61G /tank/Downloads
tank/TM_backup 495G 4.62T 495G /tank/TM_backup
tank/movies 169G 4.62T 169G /tank/movies
tank/music 26.4G 4.62T 26.4G /tank/music
tank/pictures 24.3G 4.62T 24.3G /tank/pictures
我的问题
- 我该如何修复这个重新连接循环?
- 如何防止已挂载的 AFP 共享在一段时间不活动后被卸载?
更新 我现在发现,只有当我写入 RAIDZ 文件系统时才会出现问题。普通的 ZFS 卷可以正常工作。
答案1
我不确定您是否遇到了同样的问题,但我最近遇到了非常类似的问题(FreeBSD 8 + ZFS + Netatalk)。客户端在读取卷上的文件时断开连接并超时。
对我来说,修复方法是重新编译 netatalk 端口并禁用 netatalk 端口中的 SENDFILE 选项。如果您启用了 SENDFILE 选项,可能值得一试。