LTSP fat clients σε 100 Mbps δίκτυο, με τοπική αντιγραφή του εικονικού δίσκου

Ξεκίνησε από alkisg, 15 Μαΐου 2013, 09:41:23 ΠΜ

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

alkisg

Θα ακολουθήσει πιο αναλυτικός οδηγός στο wiki, αλλά το γράφω εδώ μήπως κανείς θέλει να το δοκιμάσει στο μεταξύ.

Μέχρι τώρα λέγαμε ότι για να πάει καλά το LTSP, θέλει gigabit σύνδεση τουλάχιστον από το server ως το switch. Αυτό σημαίνει π.χ. 60 ευρώ για το switch και 10 για την κάρτα του server, και δημιουργούσε οικονομικό θέμα σε κάποια σχολεία.

Με την παρακάτω μέθοδο δεν χρειάζεται gigabit switch, εφόσον ένα εργαστήριο έχει μόνο fat clients. Βέβαια, δημιουργεί ένα φόρτο για την αντιγραφή του εικονικού δίσκου i386.img τοπικά στο C:\ των clients, π.χ. ανάλογα με το μέγεθος του δίσκου και τον αριθμό των clients μπορεί να χρειαστεί καμιά ώρα η αντιγραφή, οπότε αναγκαστικά η διαδικασία ενημέρωσης δίσκου και προώθησής του στους clients θα πρέπει να γίνεται πιο σπάνια από το κλασσικό LTSP.

Διαδικασία:
1) Μπουτάρουμε τους clients κανονικά μέσω δικτύου κι ας αργούν.
2) Ανοίγουμε Επόπτη, διαλέγουμε όσους clients θέλουμε, και δίνουμε τις παρακάτω εντολές (αδοκίμαστες, μπορεί να έχω κανά λαθάκι)
sudo mount /dev/sda1 /mnt
sudo mkdir -p /mnt/Boot/LTSP
sudo dd if=/dev/nbd0 of=/mnt/Boot/LTSP/i386.img && reboot
Όταν τελειώσει η αντιγραφή, οι clients θα κάνουν reboot.
3) Στο μεταξύ, από τα sch-scripts ανοίγουμε τις ρυθμίσεις του PXELinux, και αλλάζουμε τις γραμμές 14 και 15, από π.χ.:
Παράθεση από: /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
kernel vmlinuz-3.2.0-54-generic-pae
append ro initrd=initrd.img-3.2.0-54-generic-pae init=/sbin/init-ltsp quiet splash plymouth:force-splash vt.handoff=7 root=/dev/nbd0

σε:
Παράθεση από: /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
kernel vmlinuz
append ro initrd=initrd.img init=/sbin/init-ltsp root=/dev/sda1 rootflags=ro loop=/Boot/LTSP/i386.img

Έτσι από το επόμενο reboot και στη συνέχεια, οι clients θα χρησιμοποιούν το τοπικό αντίγραφο του C:\Boot\LTSP\i386.img, και θα πάνε πιο γρήγορα ακόμα και σε αργά δίκτυα.
Την ίδια διαδικασία κάνουμε και μετά από ενημερώσεις του εικονικού δίσκου, για να τον προωθήσουμε στους clients.

odysseas

Άλκη, να ρωτήσω κάτι: τα /home των χρηστών θα εξακολουθήσει ο κάθε client να τα βλέπει δικτυακά, έτσι; Αν καταλάβαίνω καλά ο server εξακολουθεί να είναι απαραίτητος, μειώνεται όμως δραματικά η κίνηση του δικτύου ώστε να μη χρειάζεται το gigabit δίκτυο, έτσι δεν είναι;

alkisg

Ακριβώς όπως τα είπες.
Μειώνεται δραματικά η κίνηση του δικτύου, αλλά κατά τα άλλα έχουμε όλα τα κλασσικά πλεονεκτήματα και μειονεκτήματα του LTSP: o server είναι απαραίτητος, οι λογαριασμοί και τα αρχεία χρηστών είναι στο server, οι μαθητές μπορούν να κάθονται σε όποιο PC θέλουν και να βλέπουν τα έγγραφά τους από εκεί, κλπ κλπ.
Όπως λέμε και στο wiki, για fat clients ο server δεν χρειάζεται να είναι πολύ σύγχρονος, π.χ. ένας Pentium 4 με 1 Gb RAM αρκεί.

Η κίνηση στο /home δεν είναι μεγάλη και έτσι τοπικό /home δε νομίζω να χρειαστεί ποτέ κανείς, εκτός ίσως αν έχει μάθημα για επεξεργασία βίντεο... σ' αυτήν την περίπτωση ας μου πει να γράψω ένα how-to.

mk

Ωραία ιδέα τουλάχιστον μέχρι την πιθανή αναβάθμιση σε gigabit. Μερικές απορίες:

1) προφανώς αφού ολοκληρωθεί η διαδικασία συνεχίζουμε να bootάρουμε τους clients μέσω δικτύου.
2) αν στην συνέχεια θέλουμε να προσθέσουμε και 2 thin ή κάνουμε αναβάθμιση σε gigabit πως αντιστρέφουμε τη διαδικασία (για να μην χρησιμοποιούν το τοπικό αντίγραφο);
3) στα πλαίσια πειραματισμού, επειδή αναφέρεις ότι οι εντολές είναι αδοκίμαστες, αν κάτι δεν πάει καλά πως επανέρχομαι;

Ευχαριστώ για την συμπαράσταση..

alkisg

1) Ναι, φορτώνουν λίγα πράγματα από το δίκτυο (kernel και initramfs) και τα υπόλοιπα τοπικά.
2) Οι thins θα παίξουν κανονικά, δεν θέλουν ειδική μεταχείριση. Θα χρησιμοποιήσουν τον τοπικό δίσκο μέχρι την οθόνη σύνδεσης. Μετά, θα δουλεύουν με το δίσκο του server όπως κάνουν πάντα οι thin clients. Ο λόγος που αναφέρθηκα μόνο σε fat, είναι ότι οι thin clients θα συνεχίσουν να απαιτούν αρκετό bandwidth, οπότε ΟΚ μέχρι 2-3 θα είναι ανεκτά τα πράγματα, αλλά με π.χ. 8 thin clients και 100 Mbps δίκτυο το LTSP θα αρχίσει να σέρνεται.
3) Η γραμμή στο PXELinux είναι η μόνη ουσιαστική αλλαγή, οπότε για να επαναφέρεις τα πράγματα όπως ήταν, την γυρνάς όπως ήταν πριν την αλλαγή. Μάλιστα με τα βήματα που έγραψα παραπάνω, μετά από κάθε ενημέρωση εικονικού δίσκου θα επαναφέρεται μόνη της στην αρχική της τιμή. Επίσης, αν θες να αδειάσεις το χώρο από τους σταθμούς εργασίας, σβήνεις και το φάκελο C:\Boot\LTSP είτε από τον Επόπτη είτε από τα Windows.

Τέλος, αν κάποιος έχει π.χ. 50 fat clients σε έναν μόνο server, ακόμα κι αν έχει gigabit δίκτυο, μπορεί να χρησιμοποιήσει την παραπάνω μέθοδο για να λειτουργούν αρκετά γρηγορότερα.

elf

Ευχαριστούμε! Έχω 3 χρόνια ltsp με 100mbps και κάποιες φορές προκύπτει ένα θέμα με την ταχύτητα του δικτύου.

mk

Στους clients έχω λογαριασμούς guest (με user/pass: guest). Οταν δοκιμάζω τις εντολές από τον επόπτη δεν μου κάνει mount το δίσκο (ζητάει κωδικούς υπερχρήστη. και δεν δεχεται το pass guest). μπορω να το παρακάμψω; ή χρειάζεται να αλλάξω σε users τους λογαριασμούς;

alkisg

Μην κάνεις Εκτέλεση → Άνοιγμα κονσόλας → Χρήστη, τοπικά,
αλλά Εκτέλεση → Εκτέλεση (τον διάλογο εκτέλεσης εντολών δηλαδή και όχι το τερματικό),
γιατί από το διάλογο εντολών μπορείς να τα τρέξεις σε πολλούς clients μαζί.

Αν για κάποιο λόγο θες να τα κάνεις μέσα από τερματικό, κάνε Άνοιγμα κονσόλας διαχειριστή, και όχι άνοιγμα κονσόλας χρήστη.

attila

Μια επιπλέον ερώτηση: υπάρχει η δυνατότητα το /home να βρίσκεται σε έναν υπολογιστή διαφορετικό από το server και να γίνεται mount είτε απευθείας από τους clients είτε "μέσω" του server; Σας ευχαριστώ

alkisg

Ας πούμε τον έναν ltsp-server και τον άλλον home-server. 2 τρόποι:

1) Προσαρτείς με NFS το /home του home-server (αρχείο: /etc/exports) στον ltsp-server (αρχείο: /etc/fstab).

2) Χρησιμοποιείς τον home-server ως login server. Βάζεις στο lts.conf:
LDM_SERVER=home-server-ip
LDM_SSHOPTIONS="-o Ciphers=arcfour128 -o StrictHostKeyChecking=no -o CheckHostIP=no -o LogLevel=silent"
Σ' αυτήν την περίπτωση, οι λογαριασμοί χρηστών θα πρέπει να έχουν δημιουργηθεί στον home-server, και να έχει εγκατασταθεί και υπηρεσία SSH. Δεν χρειάζεται όμως ο home-server να έχει κανένα από τα ltsp* πακέτα εγκατεστημένο, και φυσικά σ' αυτήν την περίπτωση δεν χρειάζεται NFS.

elf

Μπορώ να αντιγράψω σε κάποιος client με φλασάκι τον εικονικό σκληρό; Και οι 13 μαζί δεν βλέπω να τα καταφέρνουν από το δίκτυο.

alkisg

Δεν χρειάζεται να τους κάνεις όλους μαζί, μπορείς π.χ. να τρέξεις τις παραπάνω εντολές έχοντας επιλεγμένους μόνο 2 υπολογιστές...

Αλλά ναι, γίνεται και με φλασάκι,
στον LTSP server, αντίγραψε το αρχείο /opt/ltsp/images/i386.img σε ένα φλασάκι,
και στους clients, μέσα στα Windows φτιάξε ένα φάκελο C:\Boot\LTSP και βάλε το i386.img εκεί.

elf

Παράθεση από: alkisg στις 24 Μαΐου 2013, 11:11:23 ΠΜ
Δεν χρειάζεται να τους κάνεις όλους μαζί, μπορείς π.χ. να τρέξεις τις παραπάνω εντολές έχοντας επιλεγμένους μόνο 2 υπολογιστές...
Α, ναι, οκ :-)

Όσα έφτιαξα έπαιξαν εντάξει, εκτός από μια μικρή αλλαγή στο PXELinux σε
append ro initrd=initrd.img-3.2.0-41-generic-pae init=/sbin/init-ltsp root=/dev/sda1 rootflags=ro loop=/Boot/LTSP/i386.img

markakis

Πολύ ενδιαφέρουσα πρόταση, τη δοκίμασα και λέω να συνεχίσω να τη χρησιμοποιώ μια και switch και κάρτες δικτύου στα PC είναι 100 Mbps και δεν αναμένεται να αλλάξουν.

Μάλιστα έκανα μια μικρή παραλλαγή: Χρησιμοποιώ ένα μικρό partition στους client (sda2) όπου έχω το Grub και το GPXE για να ξεκινούν καθώς δεν υποστηρίζουν bοοt from lan. Έκανα resize στο partition αυτό ώστε να χωράει και τον εικονικό δίσκο i386.img και τον έβαλα εκεί. Έτσι βρίσκονται όλα στο sda2 και δεν μπερδεύομαι καθόλου με το partition που έχει τα windows (sda1).

alkisg

Αν υπάρχει διαθέσιμο εξτρά partition, ο εικονικός δίσκος μπορεί να γραφεί απευθείας εκεί...
Δηλαδή, μέσα από τον Επόπτη, δίνουμε μόνο:
sudo dd if=/dev/nbd0 of=/dev/sda2 && reboot
και το command line γίνεται:
append ro initrd=initrd.img-3.2.0-41-generic init=/sbin/init-ltsp root=/dev/sda2 rootflags=ro

...βέβαια, στην περίπτωσή σου θα έπρεπε να είχες βάλει το win32loader.exe μέσα στα Windows, αντί του grub σε ξεχωριστό partition.
Btw είδες τελικά παρατηρήσιμη βελτίωση στην πράξη;