Δημοσιεύτηκε: 18 Αύγ 2008, 13:03
από Dimitris
Πώς στήνεται ένα cluster;

ΠΡΟΣΟΧΗ: Αυτά που ακολουθούν είναι για γερά νεύρα. Μπορεί να περιέχουν λάθη, ασάφειες και ατέλειες ή απλώς να μην ισχύουν για όλα τα συστήματα. Δεν ευθύνομαι για τυχόν λάθη ή βλάβες που θα δημιουργηθούν. Ακολουθήστε με δική σας ευθύνη.

1. Εισαγωγή

Ένα cluster είναι ένα δίκτυο από υπολογιστές, σχεδιασμένοι να λειτουργούν από κοινού ώστε να λύσουν ένα πρόβλημα. Clusters χρησιμοποιούνται συνήθως αλλά όχι μόνο σε τομείς της υπολογιστικής μηχανικής, φυσικής, κρυπτογραφίας, δημιουργίας ταινιών κ.α. αλλά και για οποιαδήποτε εφαρμογή απαιτεί πολλη υπολογιστική ισχύ. Θα μπορούσε να χρησιμοποιηθεί και ως desktop αλλά ένα έτοιμο desktop κάνει καλύτερα τη δουλειά και με λιγότερο κόπο. Η ιδέα πισω από το parallel computing είναι η εξής: χωρίζω το πρόβλημά μου σε μικρότερα υποπροβλήματα τα οποία λύνονται πιο γρήγορα σε έναν υπολογιστή και έπειτα ανασυνθέτω τη λύση από τα επιμέρους στοιχεία. Για να τρέξει ένα πρόγραμμα σε ένα cluster πρέπει να προγραμματιστεί σε mpi (υπάρχουν βιβλιοθήκες τουλάχιστον για fortran, C, C++ ). Η μετατροπή ενός υπάρχοντος προγράμματος είναι πολύ δύσκολη και είναι προτιμότερο να ξαναγραφεί από την αρχή, μιας και η αρχή λειτουργίας είναι τελείως διαφορετική.

Δύο πακέτα που περιλαμβάνουν σχεδόν όλα όσα χρειαζόμαστε είναι το oscar και το rocks. Το oscar εγκαθίσταται σε ένα υπάρχον λειτουργικό - υποστηρίζει fedora, mandriva, suse, redhat, scientific linux, centos - ενώ το rocks εγκαθιστά και περιλαμβάνει το red hat. Είναι φυσικά δυνατόν να στηθεί ένα cluster πάνω σε οποιαδήποτε διανομή, αλλά αυτά είναι που διατίθενται έτοιμα και λειτουργούν με τον ελαχιστο κόπο.

Αυτό το μέρος θα ασχοληθεί με το καθαρά τεχνικό κομμάτι. Δηλαδή φυσική συναρμολόγηση του cluster. Έπειτα θα ακολουθήσει η εγκατάσταση του λειτουργικού, με όλα τα απαραίτητα προγράμματα και βιβλιοθήκες. Προς το παρόν αυτός ο οδηγός θα ασχοληθεί μόνο με red hat ως λειτουργικό. Τέλος θα δωθεί μια μικρή εισαγωγή σε προγραμματισμό με mpi.

2. Ασφάλεια

Πριν τη δημιουργία ενός cluster είναι απαραίτητο να γνωρίζουμε που βρίσκονται οι ασφάλειες της ηλεκτρικής εγκατάστασης. Επίσης πρέπει να ξέρουμε αν η ηλεκτρική μας εγκατάσταση αντέχει την ισχύ που θα εγκατασταθεί. (Μπορεί με 2 υπολογιστές να είναι αμελητέα, αλλά με 4 αρχίζουν και σοβαρεύουν τα πράματα.) Πρέπει επίσης να ξέρουμε ότι το σύστημα θα παραγει θερμότητα και το καλοκαίρι στην Ελλάδα είναι αρκετά επιφορτισμένο. Οπότε καλό είναι να σκεφτούμε και λίγο το περιβάλλον. (Εγω τα δοκιμάζω όλα αυτά κάπου στην κεντρική Ευρώπη με μέγιστη θερμοκρασία 25 βαθμούς.)

3. Προαπαιτούμενα

Τι θα χρειαστεί (ελάχιστα προαπαιτούμενα);

1 υπολογιστής (από δω και πέρα θα ονομάζεται master) με:
* 2 κάρτες δικτύου
* 1 GB ram
* 20 GB σκληρό δίσκο
* cdrom

2 υπολογιστές (από δω και πέρα θα ονομάζονται slave, και μπορούν να είναι και περισσότεροι) με:
* 1 κάρτα δικτύου
* 1 GB ram
* 20 GB σκληρό δίσκο
* cdrom ή PXE κάρτα δικτύου (με cdrom είναι πιο εύκολα)

1 ethernet switsch

4 καλώδια δικτύου ethernet

1 πολύμπριζο με διακόπτη (αν η μπρίζα του τοίχου δεν αντέχει την ισχύ τότε θα πρέπει να χρησιμοποιηθούν περισσότερες μπρίζες)

Οθόνη, πληκτρολόγιο, ποντικί είναι απαραίτητα μόνο για την αρχική εγκατάσταση. Έπειτα η διαχείρηση του cluster θα γίνεται απομακρυσμένα από το τοπικό δίκτυο (αν υπάρχει). Σε περίπτωση που δεν υπάρχει τοπικό δίκτυο τότε χρειάζονται μόνο στον master.

Η παρακάτω εγκατάσταση θα σβήσει όλα τα δεδομένα των υπολογιστών.

4. Συναρμολόγηση

Η βασική διάταξη που θα χρησιμοποιηθεί είναι όλοι οι υπολογιστές του cluster συνδέονται με όλους. Αυτό θα γίνει στο ethernet switch. Eπιπλέον ο master με τη δεύτερη κάρτα δικτύου θα συνδεθεί στο εξωτερικό τοπικό δίκτυο. Υπάρχουν φυσικά και άλλοι τρόποι συνδεσμολογίας, που για πολλούς υπολογιστές ελαχιστοποιούν τη χρήση καλωδιών και ethernet switch αλλά δε θα ασχοληθούμε με αυτούς.


Bιβλιογραφία
1. High Performance Linux Clusters: with OSCAR, ROCKs, openMosix & MPI, J. D. Sloan
2. Beowulf
3. Oscar
4. Rocks

ΥΓ. Το παραπάνω σύστημα δε χρησιμοποιεί ubuntu, αλλά red hat.