LTSP εύκολα στο σχολικό εργαστήριο

Ξεκίνησε από dsofos, 08 Μαΐου 2009, 04:22:16 ΜΜ

« προηγούμενο - επόμενο »

dsofos

Γειά σας,
Στα πλαίσια μιας αυτόνομης προσπάθειας δημιουργήσαμε μια λύση μηδενικής δικτυακής παρέμβασης για υλοποίηση LTSP στα σχολικά εργαστήρια ή ακόμα και στο σπίτι. Χωρίς στατικές IP, χωρίς αλχημειες στους router και απρόβλεπτα προβλήματα συγκρούσεων dhcp.
Εμπλέκει τη χρήση εναλλακτικών θυρών DHCP και λύνει όλα τα άλλα προβλήματα.
Έχει ήδη εφαρμοστεί σε αρκετά σχολεία στο Ν. Αιτ/νίας με 100% επιτυχία. Λειτουργεί παράλληλα με την υπάρχουσα δομή αφήνοντας τη δυνατότητα πειραματισμού από τους καθηγητές χωρίς κίνδυνο εφόσον είναι πλήρως αναστρέψιμη διαδικασία.
Αποτελέσματα παρουσιάστηκαν στη Διημερίδα καθηγητών πληροφορικής στο Αλεξ/πολη και στο 5ο Πανελλήνιο Συνέδριο των Εκπαιδευτικών για τις ΤΠΕ στην Εκπαίδευση στη Σύρο, 8-9-10 Μαίου 2009.
Επειδή αποτελεί μια ανεξάρτητη δράση (εκτος Linux Greek Teachers κλπ), θα ήθελα πολύ να ακούσω τη γνώμη σας.
Οδηγιές υπάρχουν υπό μορφή wiki στο παρακάτω:
http://users.sch.gr/dsofos

alkisg

dsofos, καταρχάς καλώς ήρθες και μπράβο για την προσπάθεια.

Το είχα δοκιμάσει, αλλά δε μου άρεσε για τους παρακάτω λόγους:
1) Δεν παίζει με κάρτες που υποστηρίζουν εκκίνηση από το δίκτυο (χωρίς δισκέτα / cd κτλ).
2) Δεν παίζει με την καινούργια έκδοση του etherboot που λέγεται gpxe, αλλά μόνο με την παλιά που δεν υποστηρίζεται πλέον και δεν θα παρέχει drivers για νέες κάρτες.
3) Δεν παίζει με νέες εκδόσεις του Ubuntu χωρίς αλλαγές στο initramfs (σε παλιότερες έπαιζε).
4) Δεν θα παίζει από την 9.10 και μετά που θα χρησιμοποιείται από προεπιλογής το udhcpc αντί του ipconfig.

Έτσι προτίμησα τα παρακάτω:
3) Κανονικός dhcp server που απαντά μόνο στους ltsp-clients - τους ξεχωρίζει από το vendor identifier (προτείνεται από το εγχειρίδιο εγκατάστασης Ubuntu0810LTSP)
2) Patched gpxe που υποστηρίζει scripting για τη ρύθμιση του δικτύου: https://alkisg.mysch.gr/steki/index.php?topic=1451.0
1) Proxydhcp - παρακάλεσα τον developer του dnsmasq και υλοποίησε τη δυνατότητα να δίνει boot filename χωρίς ip lease - έτσι θα παίζει τελείως διάφανα. Αυτή είναι η σωστότερη μέθοδος, νεώτερα μόλις βγει η επόμενη έκδοση του dnsmasq που θα το υποστηρίζει επίσημα.

dsofos

Άλκη ευχαριστώ για το "μπράβο" αν και δεν φαίνεται να κοίταξες αυτό που προτείνω.
Έχω να διευκρινίσω τα εξής για τους λόγους 1-4 που παραθέτεις:
1) Σωστό , αν και μικρής σημασίας σε ένα σχολικό εργαστήριο. Όμως δεν αποκλείεται η παράλληλη χρήση του.
2) Λάθος. Χρήσιμοποιεί το gpxe και μάλιστα αλλαγμένο για να δουλεύει λίγο πιο γρήγορα.
3) Σωστό , αν και μικρής σημασίας. Η αλλαγή στο initramfs χρειάζεται να γίνει μια φορά γιατί εκεί γίνεται η δεύτερη κλήση dhcp.
4) Λάθος. Λειτουργεί άψογα και με udhcpc.

Από την επαφή μας με τους καθηγητές φάνηκε πολύ πιο άμεση η εφαρμογή της, κυρίως λόγω:
1)της αποφυγής ρυθμίσεων στο ρουτερ.
2)της αποφυγής τοπικών δικτυακών ρυθμίσεων στους σταθμούς εργασίας.
2)της ευκολίας του ενός κεντρικού κοινού μενού ανεξάρτητα από τη χρήση ή όχι gpxe.
3) Της αβεβαιότητας που αφήνει η σελίδα 55 του εγχειριδίου του ΙΤΥ :(

Η διαδικασία είναι τόσο σύντομη που δεν χάνει κανείς τίποτα να τη δοκιμάσει!

alkisg

Το είχα δοκιμάσει ακριβώς όπως το κάνατε με τη διαφορά ότι δεν είχα χρησιμοποιήσει pxegrub αλλά pxelinux επειδή ο pxegrub έχει προβλήματα.

2) Το etherboot είχε επιλογή για διαφορετική port. Το gpxe δεν έχει, χρειάζεται patching, αυτό εννοώ ότι δεν το υποστηρίζει.
4) Το udhcpc δεν υποστηρίζει διαφορετικό port:
alkisg@alkis:~$ udhcpc --help
udhcpc: unrecognized option '--help'
Usage: udhcpc [OPTIONS]

  -c, --clientid=CLIENTID         Client identifier
  -H, --hostname=HOSTNAME         Client hostname
  -h                              Alias for -H
  -F, --fqdn=FQDN                 Client fully qualified domain name
  -f, --foreground                Do not fork after getting lease
  -b, --background                Fork to background if lease cannot be
                                  immediately negotiated.
  -i, --interface=INTERFACE       Interface to use (default: eth0)
  -n, --now                       Exit with failure if lease cannot be
                                  immediately negotiated.
  -p, --pidfile=file              Store process ID of daemon in file
  -q, --quit                      Quit after obtaining lease
  -r, --request=IP                IP address to request (default: none)
  -s, --script=file               Run file at dhcp events (default:
                                  /etc/udhcpc/default.script)
  -v, --version                   Display version


Είτε με το patched gpxe, είτε με το dhcpd.conf της σελίδας 55, δεν χρειάζονται ρυθμίσεις στο router, ούτε είναι απαραίτητες οι δικτυακές ρυθμίσεις στους σταθμούς εργασίας... btw, γιατί λες ότι η σελίδα 55 αφήνει αβεβαιότητα; Παίζει σε πολύ περισσότερες περιπτώσεις από ότι το gpxe.

Για το μενού σύμφωνοι, αλλά είναι διαφορετικό θέμα, δεν έχει σχέση με την εκκίνηση μέσω δικτύου, και κατά τη γνώμη μου καλύτερα να χρησιμοποιηθεί το pxelinux που χρησιμοποιεί το pxe stack και επομένως υποστηρίζει *όλες* τις κάρτες δικτύου και όχι ο pxegrub γιατί αυτός χρησιμοποιεί μια πολύ παλιά έκδοση του gpxe και επομένως υποστηρίζει πολύ λιγότερες κάρτες (και μάλιστα έχει και αρκετά bugs).

...είχα φάει πολλές πολλές μέρες να τα ψάχνω, μέχρι και bugfixes έφτασα να στείλω στο ipconfig (αλλά είναι τόσο απαράδεκτο που *ευτυχώς* τελικά θα το αντικαταστήσουν με το udhcpc), γι' αυτό τα έγραψα λίγο ...με bullet style, ελπίζω να μην ακούστηκα αρνητικός!  :-[ :)

dsofos

To συγκεκριμένο pxegrub ειναι φυσικά patched για να δουλεύει για όλες τις κάρτες (παλιες και νέες) χωρίς προβλήματα. Έχει δοκιμαστεί σε acer netbook, [microsoft virtual pc 2007] και αλλού όπου το gpxe + pxelinux κολλαγε.
Η χρήση patching, που είδα ότι χρησιμοποιείται και από την ομάδα σας, είναι η "χαρά" του λινουξά, οπότε μην το κατηγορείς.
Όσο για την αβεβαιότητα του εγχειριδίου(επίσης, δικτυακές παρεμβάσεις):

[..]Εάν το προτεινόμενο dhcpd.conf δεν δουλέψει στην περίπτωσή σας, και δεν καταφέρετε
να επιλύσετε αλλιώς το πρόβλημα
, μπορείτε είτε να πάτε στη λύση του ξεχωριστού switch
για το LTSP εργαστήριο, είτε να απενεργοποιήσετε τον DHCP server του router σας

Σε κάθε περίπτωση, θα χαρώ πολύ να το δοκιμάσει κάποιος και να ποστάρει αρνητικό αποτέλεσμα!

alkisg

Κι εγώ θα χαρώ να δοκιμάσετε το dhcpd.conf του εγχειριδίου και να βρείτε κάποια περίπτωση που να μην παίζει. Εγώ δεν έχω βρει ακόμα καμία, παίζει ακόμα και με κάρτες που δεν υποστηρίζονται από το gpxe, όπως π.χ. του laptop μου:
08:00.0 Ethernet controller [0200]: Broadcom Corporation NetLink BCM5787M Gigabit Ethernet PCI Express [14e4:1693] (rev 02)

Και δεν χρειάζεται και patching πουθενά... Αν και συμφωνώ στο ότι το patching είναι η χαρά του λινουξά, όπου μπορούμε όμως γιατί να μην το αποφεύγουμε, ώστε να μη χρειάζεται συντήρηση σε κάθε update; :)

Σας εύχομαι καλή δύναμη, χρειάζεται σε όλους μας που μας αρέσει το ...ψαχούλεμα!  ;)

alkisg

Παράθεση από: alkisg στις 09 Μαΐου 2009, 09:50:07 ΜΜ
1) Proxydhcp - παρακάλεσα τον developer του dnsmasq και υλοποίησε τη δυνατότητα να δίνει boot filename χωρίς ip lease - έτσι θα παίζει τελείως διάφανα. Αυτή είναι η σωστότερη μέθοδος, νεώτερα μόλις βγει η επόμενη έκδοση του dnsmasq που θα το υποστηρίζει επίσημα.

Για reference, έχει υλοποιηθεί πλέον πλήρως αυτή η δυνατότητα. Δηλαδή:

Στη συνηθισμένη περίπτωση των σχολικών εργαστηρίων, όπου ο router παίζει ρόλο DHCP server, η εγκατάσταση LTSP με μία μόνο κάρτα δικτύου δεν χρειάζεται καμία παρέμβαση στο δίκτυο και κανένα patching σε προγράμματα.

Αρκεί να ακολουθηθεί η παράγραφος 4.3.4. "Αντικατάσταση του dhcp3-server με το dnsmasq" του οδηγού εγκατάστασης Ubuntu0904LTSP.
Η εγκατάσταση ΚΑΙ η ρύθμιση του dnsmasq γίνεται τελείως αυτόματα μέσα από το σχετικό μενού των sch-scripts.