Next Previous Contents

10. Το NFS στο Linux 2.2

Καθώς γράφω το HowTo, η παρούσα έκδοση του πυρήνα του Linux είναι η 2.2.12 , και η χρήση NFS σ' αυτήν μπορεί να γίνει λίγο αγγαρεία. Μπορεί και όχι.

Δεν ξέρω τί θα γίνει με το NFS στο Linux 2.4 .

Το νέο σπουδαίο πράγμα με το Linux 2.2 είναι η υποστήριξη ενός nfs server demon που βρίσκεται μέσα στον πυρήνα, και ονομάζεται knfsd. Αυτός ο τρόπος υλοποίησης του nfsd έχει μερικά πλεονεκτήματα, το κυριότερο των οποίων είναι η ταχύτητα. Ένας Η/Υ με Linux 2.2 με τον knfsd είναι ένας αξιοσέβαστος nfs server. Ωστόσο, πάντα μπορείτε να χρησιμοποιήσετε τον παλιό nfsd με το Linux 2.2, και υπάρχουν επίσης μερικά πλεονεκτήματα σ' αυτή τη χρήση, το κυριότερο των οποίων είναι η απλότητα.

Αν χρησιμοποιείτε source πυρήνα ή binary πακέτο, φτιαγμένα από κάποια εταιρία σαν πχ την RedHat (έκδοση 6.0 και μετά), την SuSE (έκδοση 6.1 και μετά, νομίζω), ή κάποιον άλλον επαγγελματία κατασκευαστή διανομών, πιθανότατα έχουν συμπεριλάβει πλήρη λειτουργικότητα "knfsd" στον πυρήνα τους. Και δεν χρειάζεται να προβληματίζεστε, στις περισσότερες περιπτώσεις θα δουλέψει. Μέχρις ότου να σας έρθει να κάνετε compile έναν πυρήνα μόνοι σας. Αν χρησιμοποιείτε κάποιον από τους διαθέσιμους πυρήνες 2.2 του Linux (τουλάχιστον μέχρι και τον 2.2.12), ο knfsd θα σταματήσει να δουλεύει.

Γιά να τα καταφέρετε μόνοι σας να ξεπεράσετε το εμπόδιο, χρειάζεστε να βρείτε το πακέτο knfsd του H. J. Lu. Αυτό είναι μιά συλλογή patches και απαραίτητων utilities γιά τον πυρήνα 2.2, που ο Lu επιμελείται στον ελεύθερο χρόνο του. Μπορείτε να τη βρείτε από τον πλησιέστερο mirror γιά τους πυρήνες του Linux, με το κυρίως site να είναι το : ftp.kernel.org:/pub/linux/devel/gcc/. Τα παραπάνω δεν τα γράφω γιά "λαϊκή κατανάλωση". Αν αυτό το πακέτο σας μπερδέψει, μην προσπαθείτε να κάνετε compile τον πυρήνα μόνοι σας. Περιμένετε μέχρι να βγει ένα σχετικό πακέτο από τον αγαπημένο σας διανομέα του Linux (πχ RedHat, SuSE, κλπ).

Επίσης, μη μου στέλνετε e-mails με ερωτήσεις γι' αυτό το θέμα. Δεν μπορώ να σας βοηθήσω. Δεν έχω διαθέσιμους servers να τρέχουνε knfsd. Αν βρείτε σφάλματα ή παραλείψεις στην παρούσα τεκμηρίωση, παρακαλώ γράψτε μου, και θα διορθώσω αυτό το HOWTO και θα το ξαναδώσω στο αναγνωστικό κοινό.

Εξακολουθείτε να διαβάζετε; Ok. Ο H. J. Lu στέλνει τις νέες εκδόσεις του πακέτου του στη mailing list γιά τον πυρήνα του Linux. Επίσης, εκεί στέλνονται και άλλα θέματα σχετικά με το NFS σε πυρήνες 2.2 . Διαβάστε τα.

Υπάρχει ένα αξιοσημείωτο χαρακτηριστικό του πακέτου του knfsd : Ανακοινώνει ότι υποστηρίζει την έκδοση 3 του NFS. Ωστόσο, δεν την υποστηρίζει. Μπορείτε να δώσετε μία παράμετρο, γιά να σταματήσετε αυτήν την ανακοίνωση, ή να δώσετε "vers=2" στη λίστα επιλογών mount των clients.

10.1 Ο client

Ο client είναι σχετικά απλός. Γιά καλό locking, πρέπει να κάνουμε compile τον statd (από το πακέτο του knfsd), να τον εγκαταστήσουμε, και να τον εκκινήσουμε από τα scripts εκκίνησης. Κάντε ακριβώς έτσι. Γιά να δουλέψει ο statd, χρειάζεται ένα directory με όνομα /var/lib/nfs, διαφορετικά σταματάει χωρίς κανένα μήνυμα λάθους, άρα πριν τον τρέξουμε, πρέπει να φτιάξουμε το συγκεκριμένο dir.

Όταν ξεκινήσει ο statd να τρέχει, μπορείτε να χρησιμοποιήσετε το πρόγραμμα testlk (στο tools/locktest), γιά να δοκιμάσετε αν δουλεύει το locking ενός αρχείου σ' ένα NFS filesystem. Λογικά, δουλεύει. Αν δείτε μήνυμα No locks available, ο statd δεν δουλεύει.

Στην πραγματικότητα, μπορείτε ν' αποφύγετε τελείως το locking (όχι πως συνιστώ κάτι τέτοιο), δίνοντας "nolock" στη λίστα επιλογών του mount.

Σύμφωνα με όσα γνωρίζω, αυτά είναι όλα όσα χρειάζονται, γιά να δουλέψει ένας client.

Εάν έχετε Sparc ή Alpha NFS server, θα διαπιστώσετε ότι ο nfs client του Linux 2.2 είναι τελείως χάλια. Ο ρυθμός μετάδοσης δεδομένων από και προς τον server είναι τόσο ελεεινός, που δεν μπορείτε να φανταστείτε. Είναι πολύ χειρότερος απ' ό,τι στο Linux 2.0 . Πολύ. Αλλά, φυσικά, υπάρχει και η θεραπεία της κατάστασης αυτής : Η σειρά πυρήνων 2.2 του Alan Cox (που είναι λιγάκι πιο πειραματικοί από τους νορμάλ πυρήνες 2.2 του Linus) έχει ένα patch γιά ανέβασμα της απόδοσης του Linux 2.2 με τους Alpha και Sparc servers. Αν θέλετε να χρησιμοποιήσετε τους πυρήνες 2.2 του Alan Cox, πρέπει να παρακολουθείτε τη mailing list γιά τους πυρήνες του Linux. Και αν το κάνετε αυτό, ήδη θα ξέρετε πού μπορεί να βρεθεί το συγκεκριμένο patch : Το home site του είναι το http://www.uio.no/~trondmy/src/, σε περίπτωση που θέλετε να δοκιμάσετε να το βάλετε σε διαθέσιμο πυρήνα 2.2 . Αυτό το patch πιθανότατα δεν θα περιλαμβάνεται ούτε στο Linux 2.4, επειδή απαιτεί πάρα πολλές αλλαγές στον πυρήνα, γιά να γίνει αποδεκτό στον παρόντα κύκλο ανάπτυξης. Να περιμένετε το Linux 2.5 .

Το trondmy επίσης διαθέτει patches που κάνουν το Linux να χρησιμοποιεί την έκδοση 3 του NFS, κι επίσης θα σας δώσει τη δυνατότητα να χρησιμοποιείτε το tcp γιά μεταφορά αρχείων, αντί του UDP. Ο NFS v. 3 είναι πολύ καλός γιά μεγάλα δίκτυα, ή δίκτυα όπου η απώλεια πακέτων δεν είναι μηδενική, ή οι χρόνοι αναμονής είναι μεγάλοι.

Ο λόγος που πρέπει να παρακολουθείτε τη mailing list γιά τους πυρήνες του Linux, προκειμένου να χρησιμοποιήσετε αυτά τα patches, είναι ότι μερικές φορές υπάρχουν άσχημα bugs μέσα τους. Bugs που διαλύουν τα αρχεία σας. Συνεπώς, παρακαλώ να προσέχετε.

10.2 Ο server

Ο nfs server demon του Linux 2.2 και των μεταγενεστέρων ονομάζεται "knfsd", και θέλει πονηρές ρυθμίσεις. Λυπάμαι, αλλά αυτές πρέπει ή να τις βρείτε μόνοι σας, ή να μείνετε προσκολλημένοι σε ό,τι βγάζουν η SuSE, η RedHat, και οι υπόλοιποι, σαν πακέτα του πυρήνα 2.2 . Ωστόσο, και με το Linux 2.2 μπορείτε πάντα να χρησιμοποιήσετε τον παλιό nfsd. Είναι αργός, αλλά εύκολος να τον ρυθμίσεις.


Next Previous Contents