Повреждение журнала NFS

Мы подключили несколько серверов приложений WebSphere к центральному устройству NFS. В VMWare работают как серверы приложений, так и NFS-серверы, серверы приложений RHEL 5, а NFS-сервер Ubuntu 8.04. Все серверы, как минимум, подключены через гигабитный Ethernet. Мы наблюдаем случайное повреждение журналов, где в них будет много пустого пространства. Мы использовали для монтирования непосредственно на сервер NetApp, но перенесли на эту настройку.NETApp не имеет этой проблемы.

На сервере NFS я установил следующие команды sysctl:

sysctl -w net.ipv4.tcp_wmem="4096 87380 8388608"
sysctl -w net.ipv4.tcp_rmem="4096 87380 8388608"
sysctl -w net.ipv4.tcp_sack=0
sysctl -w net.ipv4.tcp_dsack=0
sysctl -w net.ipv4.tcp_max_syn_backlog=8192
sysctl -w net.ipv4.tcp_synack_retries=3
sysctl -w net.ipv4.tcp_retries2=5

Файловая система экспортируется с помощью этой команды в /etc/exports:

/srv/export/logs        192.168.0.0/255.255.255.0(rw,no_root_squash,no_all_squash,sync,no_subtree_check)

И смонтирован с помощью этой команды на серверах приложений:

mount -t nfs -o rsize=8192,wsize=8192 192.168.0.1:/srv/export/logs /webspherelogs/

2 ответа

У нас было похожее поведение, когда два приложения входили в один файл. Особенно, если одно приложение прокручивает файл журнала, в то время как другое приложение пытается записать в файл журнала, может случиться так, что они получат возможность перепутать файлы.

Поэтому убедитесь, что только один процесс записывает в каждый файл. Также избегайте, чтобы два разных потока в одном процессе записывали напрямую в файл. Это только просит проблемы, если два приложения пишут в тот же файл.

Я не уверен, что достаточно информации, чтобы ответить на этот вопрос. Вы пробовали записывать большие объемы данных с различных серверов в монтирование NFS, не повреждены ли эти файлы? Если нет, то это может быть проблема, связанная с веб-сферой, или взаимодействие между веб-сферой и NFS. Может быть, что-то в способе записи данных в файлы журнала....

В любом случае, я бы не рекомендовал входить в систему для монтирования NFS, если это вообще возможно, вам гораздо лучше использовать централизованный демон syslog-ng с регистрацией через tcp через локальный демон syslog. В общем, это было бы более гибким решением, позволяющим повысить избыточность и устранить большую часть сложности, присущей NFS.

Если это архитектурное изменение невозможно, я бы сначала исключил сам сервер NFS, прежде чем вводить Websphere в уравнение.

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