Εδώ βρισκόμαστε στην ενότητα των συχνών ερωτήσεων (FAQs). Η ενότητα αυτή βασίζεται κατά ένα μέρος σε ένα παλιό κείμενο του Alan Cox, με FAQs γιά το NFS.
Αν έχετε κάποιο πρόβλημα στο να κάνετε mount ένα filesystem, παρακαλώ κοιτάξτε μήπως το πρόβλημά σας περιέχεται στην προηγούμενη ενότητα, τη "λίστα πιθανών προβλημάτων στο mounting του NFS".
Αυτά τα προξενεί κάποιο bug μερικών παλιών εκδόσεων του nfsd. Το πρόβλημα διορθώθηκε από τον nfs-server2.2beta16 και μετά.
can't register with portmap: system error on send
(Δηλ. "Δεν συμφωνεί η καταγραφή στον portmapper, σφάλμα κατά την αποστολή")
Πιθανότατα χρησιμοποιείτε τη διανομή Caldera. Υπάρχει ένα bug στα rc scripts. Παρακαλώ, επικοινωνήστε με την Caldera, γιά να σας δώσει τα διορθωμένα αρχεία.
Η αιτία είναι ότι ο nfsd βάζει στη μνήμη cache τα "ανοιχτά" χρησιμοποιούμενα αρχεία (open file handles), γιά να επιτύχει καλύτερη απόδοση (και θυμηθείτε, τρέχει στον χώρο του χρήστη). Όσο ο nfsd κρατάει ένα αρχείο ανοιχτό (όπως πχ στην περίπτωση που μόλις έχει γράψει κάτι σ' αυτό), ο πυρήνας δεν θα σας αφήσει να το εκτελέσετε. Οι nfsds που είναι νεώτεροι από εκδόσεις (περίπου) άνοιξης του 1995, ελευθερώνουν τα ανοιχτά αρχεία μετά από λίγα δευτερόλεπτα. Οι παλιότεροι κολλάνε σ' αυτά γιά μέρες.
Ο NFS server με Linux πάει εξ ορισμού σε κατάσταση μόνον ανάγνωσης.
Παρακαλώ, διαβάστε τις ενότητες "Οι mountd και nfsd", και
"Κάνοντας export σε filesystems", σ' αυτό εδώ το HOWTO, και
δείτε τις σελίδες man γιά τα exports και τον nfsd. Θα χρειαστεί ν'
αλλάξετε το αρχείο /etc/exports
.
ls
δουλεύει, δεν μπορώ να διαβάσω ή να γράψω αρχεία.
Σε παλιότερες εκδόσεις του Linux, πρέπει να φορτώσετε τον NFS server
με : rsize=1024,wsize=1024
.
Επομένως, μην το κάνετε. Αυτό δεν συμβαίνει με τους πυρήνες 2.0 και 2.2 . Και, αν δεν με απατά η μνήμη μου, δεν υπάρχει πρόβλημα ούτε με τον πυρήνα 1.2 .
Όχι προς το παρόν.
Βεβαιωθείτε ότι οι χρήστες σας μετέχουν σε 8 ή λιγότερες ομάδες. Οι παλιότεροι servers το ζητάνε αυτό οπωσδήποτε.
ΜΗΝ κάνετε unmount σε NFS servers μετά την επανεκκίνηση ή τον
τερματισμό λειτουργίας του Η/Υ, απλά αγνοήστε τους. Δεν θα πειράξει τίποτε,
αν δεν τους κάνετε unmount. Η σχετική εντολή είναι : umount -avt nonfs
.
Οι εγγραφές στο NFS συνήθως είναι σύγχρονες. (Αυτό, βέβαια, μπορείτε να το απενεργοποιήσετε, αν δεν σας πειράζει να κινδυνέψετε να χάσετε δεδομένα.) Ακόμη χειρότερα, οι πυρήνες που βασίζονται στο BSD μάλλον αδυνατούν να δουλεύουν σε μικρά blocks. Έτσι, όταν γράφετε 4 kB δεδομένων (από έναν Η/Υ με Linux) σε πακέτα του 1 kB που χρησιμοποιεί το BSD, το τελευταίο κάνει το εξής :
διάβασε τη σελίδα των 4 kB
άλλαξε το 1 kB
ξαναγράψε τα 4 kB στον δίσκο
διάβασε τη σελίδα των 4 kB
άλλαξε το 1 kB
ξαναγράψε τα 4 kB στον δίσκο
κ. ο. κ.
Το πρωτόκολλο NFS χρησιμοποιεί τμηματικά (fragmented) πακέτα UDP. Ο
πυρήνας έχει ένα όριο στο πόσα τμήματα ανολοκλήρωτων πακέτων μπορεί να
σηκώσει, πριν αρχίσει να τα αγνοεί. Στον πυρήνα 2.2, αυτό ρυθμίζεται σε
χρόνο runtime μέσω του /proc filesystem :
/proc/sys/net/ipv4/ipfrag_high_thresh
και
ipfrag_low_thresh
. Στον 2.0 , αυτές οι παράμετροι είναι σταθερές
κατά την compilation του πυρήνα, και ορίζονται στα :
.../linux/net/ipv4/ip_fragment.c
, IPFRAG_HIGH_THRESH
,
και IPFRAG_LOW_THRESH
. Η σημασία αυτών των τιμών, είναι ότι άπαξ
και η απαιτούμενη μνήμη των ανολοκλήρωτων κομματιών UDP φτάσει το άνω
όριό της ("ipfrag_high_thresh") σε bytes (256 kB εξ ορισμού
στους πυρήνες 2.2.3 και 2.0.36), αυτόματα πέφτει στο κάτω της όριο
("ipfrag_low_tresh"). Αυτό γίνεται με σβήσιμο κομματιών.
Αυτή η κατάσταση ισοδυναμεί σχεδόν με απώλεια κομματιών, και τη στιγμή
που η μνήμη φτάνει το άνω της όριο, η απόδοση του server σας πέφτει πολύ.
Τα 256 kB είναι αρκετά γιά περίπου 30 clients. Αν έχετε 60, διπλασιάστε τα. Και διπλασιάστε επίσης το κάτω όριο.
Ο knfsd ανακοινώνει ότι υλοποιεί την έκδοση 3 του NFS, αλλά δεν το
κάνει. Υπάρχει μιά επιλογή, να τον σταματήσετε να βγάζει αυτό το μήνυμα.
Χρησιμοποιείστε την. 'Η, μπορείτε να θέσετε "vers=2"
στη
λίστα με τις παραμέτρους του mount στους clients.
mount: 1831-011 access denied for server:/dir
mount: 1831-008 giving up on:
server:/dir
The file access permissions do not allow the specified action.
(Δηλ. : "Δεν δίδεται άδεια γιά τον server", "εγκαταλείπω το server:/dir", "Οι άδειες πρόσβασης στα αρχεία δεν επιτρέπουν τη δραστηριότητα που ζητάτε.")
ή κάτι παρόμοιο.
Το AIX 4.2 χρησιμοποιούσε ρεζερβέ ports (κάτω από το 1024) γιά το NFS. Τα AIX 4.2.1 και 4.3 δεν περιορίζονται στα ρεζερβέ ports. Επίσης, τα AIX AIX 4.2.1 και 4.3 προσπαθούν να κάνουν mount με χρήση του NFS3, μετά του NFS/TCP, και τελικά του NFS/UDP.
Προσθέτοντας
nfso -o nfs_use_reserved_ports=1
στο τέλος του rc.tcpip
, θα το αναγκάσει να ξαναχρησιμοποιήσει τα
ρεζερβέ ports. (Αυτό το κόλπο μου το έδωσε ο Brian Gorka.)