Pouziti parametru noac u nfs

Dan Ohnesorg Dan na feld.cvut.cz
Pátek Leden 13 22:24:00 CET 2006


Dne Fri, Jan 13, 2006 at 12:52:25PM +0000, garabik-news-2005-05 na kassiopeia.juls.savba.sk napsal:
> Dan Ohnesorg <Dan na feld.cvut.cz> wrote:
> > Zdravim,
> > 
> > 
> > Vim ze na gigovem ethernetu se nesmi pouzivat nfs pres udp, ale toto ten
> 
> a to preco? iba preto ze by karta na klientovej strane nestihala?
> ja tu mam siet kde mountujem /home asi pre 20 klientov, Gb ethernet, a
> pouzivam UDP, lebo ked som s tym experimentoval, TCP viedlo k obcasnym
> zatuhnutiam (asi tak v priemere 1x denne), ktore sa dali riesit len
> vypnutim sietoveho rozhrania, zhodenim nfs, umountom a nahodenim toho
> vsetkeho v opacnom poradi. S udp probelmy nie su.

Protoze manova stranka pise:

WARNINGS
       Using NFS over UDP on high-speed links such as Gigabit can cause
silent data corruption.

       The  problem  can  be  triggered  at high loads, and is caused by
problems in IP fragment reassembly. NFS read and writes typically transmit
UDP
       packets of 4 Kilobytes or more, which have to be broken up into
several fragments in order to be sent over the Ethernet link, which limits
pack-
       ets to 1500 bytes by default. This process happens at the IP network
layer and is called fragmentation.

       In order to identify fragments that belong together, IP assigns a
16bit IP ID value to each packet; fragments generated from the same UDP
packet
       will have the same IP ID. The receiving system will collect these
fragments and combine them to form the original UDP packet.  This  process
is
       called  reassembly.  The  default  timeout  for  packet reassembly is
30 seconds; if the network stack does not receive all fragments of a given
       packet within this interval, it assumes the missing fragment(s) got
lost and discards those it already received.

       The problem this creates over high-speed links is that it is possible
to send more than 65536 packets within 30 seconds. In fact, with heavy NFS
       traffic one can observe that the IP IDs repeat after about 5 seconds.

       This  has serious effects on reassembly: if one fragment gets lost,
another fragment from a different packet but with the same IP ID will arrive
       within the 30 second timeout, and the network stack will combine
these fragments to form a new packet. Most of the time, network layers above
IP
       will  detect  this mismatched reassembly - in the case of UDP, the
UDP checksum, which is a 16 bit checksum over the entire packet payload,
will
       usually not match, and UDP will discard the bad packet.

       However, the UDP checksum is 16 bit only, so there is a chance of 1
in 65536 that it will match even if the packet payload is completely  random
       (which very often isn't the case). If that is the case, silent data
corruption will occur.

       This  potential  should  be  taken  seriously, at least on Gigabit
Ethernet.  Network speeds of 100Mbit/s should be considered less
problematic,
       because with most traffic patterns IP ID wrap around will take much
longer than 30 seconds.

       It is therefore strongly recommended to use NFS over TCP where
possible, since TCP does not perform fragmentation.

zdravim
dan


Další informace o konferenci Linux