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

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

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

alkisg

Σε κάποιον client μέσα από τον Επόπτη κάνε άνοιγμα κονσόλας, διαχειριστή, τοπικά, και δώσε:
Κώδικας: Bash
ls /dev/disk/by-*


Θα εμφανίσει κάτι υποκαταλόγους by-id, by-label, και by-uuid. Είναι 3 ακόμη τρόποι να προσδιορίσουμε ένα δίσκο αντί του /dev/sdXY.

Άρα τελικά, μια προτεινόμενη λύση είναι να ονομάσεις την κατάτμηση που θες με συγκεκριμένο όνομα, ας πούμε LTSP, αδιαφορώντας αν βρίσκεται στο sda1 ή στο sda2. Πάλι μέσα από τον Επόπτη,
Κώδικας: Bash
# Έτσι βλέπεις την υπάρχουσα ετικέτα:
$ ntfslabel /dev/sda1
Vista

# Έτσι την αλλάζεις:
$ ntfslabel /dev/sda1 LTSP


Τελικά στο pxelinux.cfg/default, αντί για root=/dev/sda1, βάζεις root=LABEL=LTSP

Δημήτρης Γκίνης


thaaanos

Αν κάνω αυτό
στα clients
> mount /dev/sda1 /mnt && nc -lu 1386 > /mnt/i386.img
και μετά αυτό στο server
> socat - UDP-DATAGRAM:10.71.153.255:1386,broadcast < /opt/ltsp/images/i386.img

θα ήμουνα εντάξει; γιατι δεν το βλέπω να μου δουλεύει... :(
η κάνω κάτι λάθος;


alkisg

Να υποθέσω ότι ο λόγος που δεν ακολουθείς τις οδηγίες που υπάρχουν στο πρώτο μήνυμα του παρόντος θέματος,
είναι επειδή προσπαθείς να κάνεις multicasting για μεγαλύτερη ταχύτητα;
Καλή ιδέα, το έψαχνα παλιότερα για βίντεο multicasting, αλλά για αρχεία θα είναι πιο εύκολο...

Δεν έχω δοκιμάσει multicasting με το socat οπότε προς το παρόν δεν έχω να πω κάτι, αλλά ρίξε μια ματιά και στο flamethrower που υπάρχει στα αποθετήρια, μήπως διευκολύνει την κατάσταση...

thaaanos

Παράθεση από: alkisg στις 29 Ιαν 2014, 04:23:32 ΜΜ
Να υποθέσω ότι ο λόγος που δεν ακολουθείς τις οδηγίες που υπάρχουν στο πρώτο μήνυμα του παρόντος θέματος,
είναι επειδή προσπαθείς να κάνεις multicasting για μεγαλύτερη ταχύτητα;
Καλή ιδέα, το έψαχνα παλιότερα για βίντεο multicasting, αλλά για αρχεία θα είναι πιο εύκολο...

Δεν έχω δοκιμάσει multicasting με το socat οπότε προς το παρόν δεν έχω να πω κάτι, αλλά ρίξε μια ματιά και στο flamethrower που υπάρχει στα αποθετήρια, μήπως διευκολύνει την κατάσταση...

Ναι βαριέμαι να περιμένω κάθε φορά που θα ενημερώνω πακέτα:)
θα το κοιτάξω από βδομάδα τώρα, μήπως με socat και στα 2 άκρα δουλέψει...

αυτό που αναρωτιέμαι είναι πόσο εύκολο είναι να χαθεί κανα πακέτο, ειδικά με το hubακι να τερματίζει, tespa αν δουλέψει θα κάνω και ένα md5sum για να είμαι σίγουρος...

θα επανέλθω.





thaaanos

Λοιπόν συνέχεια...
1 Flamethrower
appent to /etc/flamethrower/flamethrower.conf
Κώδικας: bash
[i386.img]
PORTBASE=10000
DIR=/opt/ltsp/images

Κώδικας: bash
@server> sudo /etc/init.d/flamethrower restart
@client> flamethrower --module i386.img --directory /mnt --portbase 10000


με το που γεμίζει το /tmp ~300MB σκάει... κρίμα γιατί είναι υποσχόμενο και worryfree toolακι, υπάρχει workaround για να βάλουμε το /tmp στον τοπικό δίσκο; ή να πούμε στο flamethrower να αλλάξει working directory;

2 socat

περίπου τα μισά πακέτα πρέπει να τα έτρωγε η μαρμάγκα αφού περίπου 2.5Gb φτάνανε μόνο στην άλλη άκρη, το hub να τερματίζει και το colision να αναβοσβήνει.

με pv -L datarate, με throttling στο 1mb/sec κάτι γίνεται, αλλά δίνει ETA 1:30h, ίδωμεν :

Κώδικας: bash
@server> pv -L 1m /opt/ltsp/images/i386.img | socat -u - UDP-DATAGRAM:10.71.153.255:1386,broadcast
@clients> sudo ionice -c 1 socat -u udp-recv:1386,broadcast - > /mnt/i386.img

alkisg

thaaanos επειδή σε βλέπω προχωρημένο, αν υλοποιήσω κάτι βασισμένο στο http://en.wikipedia.org/wiki/Dm-cache, είσαι για δοκιμές;

Η θεωρία με αυτό πάει ως εξής, δεν γίνεται πλήρη αντιγραφή του εικονικού δίσκου τοπικά, αλλά μερική αντιγραφή δυναμικά,
δηλαδή όταν ο client π.χ. χρειαστεί να φορτώσει το libreoffice, τότε τα ...sectors που διαβάστηκαν από το δίκτυο, αποθηκεύονται και στον τοπικό δίσκο του client,
και όταν σε κάποια επόμενη στιγμή (ακόμα και μετά από reboot) το χρειαστεί, τα διαβάζει από εκεί.
Άρα οι clients θα αργούν μόνο την πρώτη φορά μετά από ενημέρωση εικονικού δίσκου, ενώ τις επόμενες θα πάνε γρήγορα αφού θα τα διαβάζουν όλα από τον τοπικό τους δίσκο.

Αυτή η μέθοδος μπορεί να φανεί χρήσιμη και σε ασύρματα δίκτυα που δεν βολεύει το multicasting, ή σε περιπτώσεις με full gigabit δίκτυο αλλά πάρα πολλούς clients, ή αν έχουμε πολύ γρήγορους τοπικούς δίσκους, κλπ κλπ.
Θα χρειαστούν κάποιες αλλαγές στο LTSP και κάποιες χειρωνακτικές ρυθμίσεις στην αρχή, οι οποίες εφόσον δούμε ότι πάει καλά στην πράξη, θα αυτοματοποιηθούν...

thaaanos

Παπάρια και με το socat...
1 client active, 1mb/sec throttling, fail :(, χωρίς forward error correction δεν γίνεται δουλεία, αν υπάρχει κανα φιλτράκι encoder/decoder πειτε μου.

Άλκη θα κάνω μια τελευταία (απέλπιδα) προσπάθεια με udpcast : udp-sent, udp-recieve και μετά είμαι δικό σου :P

Δεν φαίνεται δύσκολο (famous last words) o local για read only cache-device.
dm-cache ή bcache που έχει και readahead?

apapakL

Ενδιαφέρον πρότζεκτ  :D! Κάνοντας μια μικρή έρευνα έπεσα πάνω στο torrent πρωτόκολλο που αρκετοί το προτείνουν σαν λύση για large file deployment σε LAN. Έχεις μεν έναν seeder στην αρχή αλλά στη συνέχεια οι leechers κάνουν τη διαφορά. Το ελπιδοφόρο είναι οτι κολοσσοί το χρησιμοποιούν ---> http://torrentfreak.com/bittorrent-makes-twitters-server-deployment-75-faster-100716/:D Και έχεις και δυνατότητα resume και μεγάλη αξιοπιστία.

thaaanos

λες για το murder εε; μου φάνηκε λίγο overkill-resource inefficient για lan deployment... και δεν κάνω cp?
Αλλά αν έχουμε 1 image για όοολα τα εργαστήρια, μπορεί να έχει νόημα σαν λύση

apapakL

Δε ξέρω μπορεί να αξίζει ακόμα και για lan deployment... Ένα σενάριο δοκιμής: ρύθμιση LTSP Server ως torrent tracker, δημιουργία σχετικού torrent file, κατάλληλες οδηγίες στους clients -που να βρουν το torrent file, να το ανοίξουν με transmission, που να αποθηκεύσουν- λογικά μαζικά σε όλους μέσα από τον επόπτη...

Βασίλης Κασαπίδης

Αγαπητοί συνάδελφοι, πολύ ωραία όλα αυτά! Προχωρημένα... Μια ερώτηση. Έχω φτιάξει τα τοπικά αντίγραφα με τις οδηγίες του thread. Μπορώ να πω ότι είδα βελτίωση ιδίως κατά την εκκίνηση των εφαρμογών (libre office, gimp κλπ).  Μια ερώτηση. Επειδή τα clients του εργαστηρίου έχουν SSDs έλεγα μήπως έχει νόημα, τώρα που διαβάζουν το image τοπικά, να ενεργοποιηθεί το TRIM των SSDs; Διάβασα κάτι σχετικά: http://askubuntu.com/questions/18903/how-to-enable-trim/19480#19480 αλλά δεν το τολμάω στο setup μου... το έχει δοκιμάσει κανείς; 

alkisg

Το TRIM αφορά τις διαγραφές, ενώ στην τοπική αντιγραφή του εικονικού δίσκου έχουμε μόνο μια αρχική εγγραφή ενός τεράστιου αρχείου και πολλές μετέπειτα αναγνώσεις του, καμία διαγραφή.
ΟΚ υπάρχει κάποια ειδική περίπτωση που μπορεί η μία αρχική εγγραφή να χρειαστεί TRIM, αλλά δε νομίζω ότι αξίζει να ασχοληθούμε με αυτή...

Πέτρος Κ.

Παράθεση από: alkisg στις 15 Μαΐου 2013, 09:41:23 ΠΜ
Διαδικασία:
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.

Κάμποσες ερωτήσεις: α) μπορώ ακολουθόντας τα παραπάνω σε μερικούς Η/Υ του εργαστηρίου να έχω τοπικό εικονικό δίσκο ενώ άλλοι να τραβάνε από τον server? To ρωτάω διότι με αυτόν τον τρόπο θα μπορούσα να εκμεταλευτώ κάτι laptopάκια και το wifi.
β) Θα μπορούσε να αυτοματοποιηθεί η διαδικασία με κανά κουμπάκι, στην Διαχείρηση ΣΕΠΕΗΥ ή οπουδήποτε αλλού;

apapakL