Назад | Перейти на главную страницу

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

Несколько серверов приложений WebSphere ведут журнал на центральном монтировании NFS. И серверы приложений, и сервер NFS работают в VMWare, серверы приложений - это 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/

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

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

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

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

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