Netatalk 3.0.1 отключается с помощью файлового дескриптора Bad во FreeBSD

У меня проблемы с моим сервером netatalk 3.0.1 на FreeBSD-9.1 RELEASE. NETatalk был установлен из коллекции портов и использует несколько каталогов по сети.

Обновление также Netatalk версии 3.0.2 имеет те же проблемы на моей машине

afpd.conf

[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 с Mac OS X 10.7.5, и он отлично работает как устройство 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

Мои вопросы

  1. Как я могу исправить эту петлю переподключения?
  2. Как предотвратить отключение подключенного общего ресурса AFP после некоторого времени бездействия?

ОБНОВЛЕНИЕ То, что я теперь узнал, - то, что проблема возникает, только если я пишу в файловую систему RAIDZ. Простой том ZFS работает.

1 ответ

Я не уверен, что у вас возникла та же проблема, но у меня была очень похожая проблема в недавнем прошлом (FreeBSD 8 + ZFS + Netatalk). Клиенты отключались и время ожидания при чтении файлов на томе.

Для меня исправлением была перекомпиляция порта netatalk и отключение опции SENDFILE в порту netatalk. Если у вас включена опция SENDFILE, возможно, стоит попробовать.

Другие вопросы по тегам