FW: problem s NFS

Daniel Staněk Daniel.Stanek na mius.cz
Sobota Srpen 26 13:43:25 CEST 2006


> 
> mam problem s NFS, ktory sa uz dlhsie snazim vyriesit. 
> prejavuje sa to v tom, ze pokial na primountovanom zvazku zacnem 
> vykonavat nejaku narocnu I/O operaciu (rozumejme pracu so subormi, 
> ktore maju 100+ MB, trebars rozbalenie nejakeho tarballu so zalohami, 
> atd...), spojenie sa asi po
> 5-6 minutach prerusi (to som zistil za pomoci "nfsstat -ns" 
> na serveri, ktory mi exportuje adresare) a klientska masina ide pomaly 
> do kelu, I/O wait je 100% a nemozem s tym nic spravit, len reboot 
> klienta :-(
> 
> je mi jasne, ze kvoli tomuto preruseniu spojenia a opatovnemu 
> nenadviazaniu sa tam vlastne caka na dokoncenie I/O operacie a preto 
> to dojde do takeho stavu.
> 
> ako prve som upodozrieval OpenVPN, pretoze nad tym to bezi, co sa mi 
> ale neskor potvrdilo, ze to s tymto problemom nema nic spolocne, 
> pretoze sa rovnaky problem deje i ked to bezi priamo.
> 
> rovnako sa to chova aj pri TCP/UDP, nezavisle na tom, ci to bezi nad 
> OpenVPN. NFS pouzivame verziu 3. skusal som aj menit rozne nastavenia 
> pri mountovani NFS zvazkov (rsize,wsize,soft|hard,timeo,...), ale nic 
> nepomohlo. na timeout spravu sa vobec nedockam. HW tych masin by nemal 
> byt problem, su to relativne silne stroje.
> 
> nevedel by ma niekto z vas nakopnut tym spravnym smerom ako tento stav 
> vyriesit?

zdravim,

nenapsal si na jakem jadre/distribuci/architekture se problem vyskytuje. ale
jinak s jadry 2.6.x a nfsv3 mame problemy porad. bud nam tuhne klientska
aplikace ve stavu D (disk wait) pri vyssi zatezi (hlavne na SMP) nebo pri
delsi dobe neccinosti trva pomerne dlouho (radove desitky sekund) nez server
poprve odpovi. vypada to na spoustu chyb v jadre :(


zkus:

- aplikovat opravne patche znamych chyb - odkaz bude na nfs.sourceforge.net

- aplikovat tento patch pokud mas jadro 2.6.x a SMP system:

--- linux.orig/fs/nfs/inode.c   2005-07-06 11:08:27.000000000 -0700
+++ linux/fs/nfs/inode.c        2005-07-06 11:20:19.000000000 -0700
@@ -1153,10 +1155,12 @@ void nfs_end_data_update(struct inode *i

    if (!nfs_have_delegation(inode, FMODE_READ)) {
        /* Mark the attribute cache for revalidation */
+               lock_kernel();
        nfsi->flags |= NFS_INO_INVALID_ATTR;
        /* Directories and symlinks: invalidate page cache too */
        if (S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode))
            nfsi->flags |= NFS_INO_INVALID_DATA;
+               unlock_kernel();
    }
    nfsi->cache_change_attribute ++;
    atomic_dec(&nfsi->data_updates);

- nekde sem cetl ze nfsv3 funguje jakztakz az od verze 2.6.16 a vejs (?)

- zkus prejit na nfsvers=2, ten zda se funguje bez problemu (pokud ti nevadi
jeho principielni omezeni)

- jinak taky echo t > /proc/sysrq-trigger a prozkoumat stack trace tech
tvych procesu


v kazdym pripadku budu rad kdyz se ozve nekdo kdo s tim ma nejake zkusenosti
nebo komu se to podarilo vyresit.

dan





Další informace o konferenci Linux