sobota, 1 czerwca 2013

Debugowanie serwera NFS


    Czy pamiętacie pierwsze wersje NFS-a? Miały sporo błędów, z których najgorszy był taki który w losowym momencie potrafił zawiesić jądro. Wyrobiło to złą opinie o NFS, ale na szczęście te czasy odeszły już do lamusa.

    Inny problem przy współdzielonym systemie plików (pomiędzy wiele maszyn) jest taki, że serwer NFS loguje bardzo mało informacji. Nie dowiemy się z niego która maszyna jakie operacje wykonywała.

Poziom logowania zwiększamy np takimi poleceniami:

# echo $(( 0x10 | 0x0400 )) > /proc/sys/sunrpc/nfsd_debug
# echo $(( 0x0008 | 0x0100 )) > /proc/sys/sunrpc/rpc_debug

Wyłączamy:

# echo 0 > /proc/sys/sunrpc/nfsd_debug
# echo 0 > /proc/sys/sunrpc/rpc_debug

Po włączeniu logowania jądro zapisuje komplet informacji (zazwyczaj do /var/log/messages), czyli wszystkie wywołania systemowe (wykonywane poprzez RPC) oraz adresy ip klientów.

Przy takim poziomie logowania, log może oczywiście bardzo szybko przyrastać obciążając dodatkowo maszynę pod względem operacji I/O ;)