Τρόπος εκτέλεσης λειτουργιών αυτοθεραπείας και εξισορρόπησης στο σύστημα αρχείων Gluster - Μέρος 2


Στο προηγούμενο άρθρο μου σχετικά με «Εισαγωγή στο GlusterFS (Σύστημα Αρχείων) και Εγκατάσταση – Μέρος 1» ήταν απλώς μια σύντομη επισκόπηση του συστήματος αρχείων και των πλεονεκτημάτων του, περιγράφοντας ορισμένες βασικές εντολές. Αξίζει να αναφερθούν τα δύο σημαντικά χαρακτηριστικά, η Αυτοίαση και η Επανεξισορρόπηση, σε αυτό το άρθρο, χωρίς τις οποίες η εξήγηση για το GlusterFS θα είναι καμία χρήση. Ας εξοικειωθούμε με τους όρους Αυτοίαση και Επανισορροπία.

Τι εννοούμε με τον όρο Self-heal on replicated volumes;

Αυτή η δυνατότητα είναι διαθέσιμη για τόμους που αναπαράγονται. Ας υποθέσουμε ότι έχουμε έναν αναπαραγόμενο τόμο [ελάχιστο πλήθος αντιγράφων 2]. Ας υποθέσουμε ότι λόγω κάποιων αστοχιών ένα ή περισσότερα τούβλα από τα αντίγραφα τουβλάκια πέφτουν για λίγο και ο χρήστης τυχαίνει να διαγράφει ένα αρχείο από το σημείο προσάρτησης το οποίο θα επηρεαστεί μόνο στο διαδικτυακό τούβλο.

Όταν το τούβλο εκτός σύνδεσης συνδεθεί αργότερα, είναι απαραίτητο να αφαιρεθεί αυτό το αρχείο από αυτό το τούβλο, δηλαδή πρέπει να γίνει ένας συγχρονισμός μεταξύ των αντίγραφων τούβλων που ονομάζεται healing. Το ίδιο συμβαίνει και με τη δημιουργία/τροποποίηση αρχείων σε τούβλα εκτός σύνδεσης. Το GlusterFS διαθέτει έναν ενσωματωμένο δαίμονα αυτοίασης για να φροντίζει αυτές τις καταστάσεις κάθε φορά που τα τούβλα γίνονται online.

Τι εννοούμε με τον όρο Re-balance;

Εξετάστε έναν κατανεμημένο όγκο με μόνο ένα τούβλο. Για παράδειγμα, δημιουργούμε 10 αρχεία στο σημείο προσάρτησης έντασης. Τώρα όλα τα αρχεία βρίσκονται στο ίδιο τούβλο αφού υπάρχει μόνο τούβλο στον τόμο. Όταν προσθέτουμε ένα ακόμη τούβλο στον τόμο, ίσως χρειαστεί να εξισορροπήσουμε ξανά τον συνολικό αριθμό αρχείων μεταξύ των δύο τούβλων. Εάν ένας τόμος διευρυνθεί ή συρρικνωθεί στο GlusterFS, τα δεδομένα πρέπει να εξισορροπηθούν εκ νέου μεταξύ των διαφόρων τούβλων που περιλαμβάνονται στον τόμο.

Εκτέλεση Αυτο-ίασης στο GlusterFS

1. Δημιουργήστε έναν αναπαραγόμενο τόμο χρησιμοποιώντας την ακόλουθη εντολή.

gluster volume create vol replica 2 192.168.1.16:/home/a 192.168.1.16:/home/b

Σημείωση: Η δημιουργία ενός αναπαραγόμενου τόμου με τούβλα στον ίδιο διακομιστή μπορεί να προκαλέσει μια προειδοποίηση για την οποία πρέπει να προχωρήσετε αγνοώντας την ίδια.

2. Ξεκινήστε και προσαρτήστε την ένταση.

gluster volume start vol
mount -t glusterfs 192.168.1.16:/vol /mnt/

3. Δημιουργήστε ένα αρχείο από το σημείο προσάρτησης.

touch /mnt/foo

4. Επαληθεύστε το ίδιο σε δύο αντίγραφα τούβλα.

ls /home/a/
foo
ls /home/b/
foo

5. Τώρα στείλτε ένα από τα τούβλα εκτός σύνδεσης σκοτώνοντας τον αντίστοιχο δαίμονα glusterfs χρησιμοποιώντας το PID που ελήφθη από τις πληροφορίες κατάστασης όγκου.

gluster volume status vol
Δείγμα εξόδου
Status of volume: vol
Gluster process					Port	Online	Pid 
------------------------------------------------------------------------------ 
Brick 192.168.1.16:/home/a			49152	  Y	3799 
Brick 192.168.1.16:/home/b			49153	  Y	3810 
NFS Server on localhost				2049	  Y	3824 
Self-heal Daemon on localhost			N/A	  Y	3829

Σημείωση: Δείτε την παρουσία δαίμονα αυτοίασης στον διακομιστή.

kill 3810
gluster volume status vol
Δείγμα εξόδου
Status of volume: vol 
Gluster process					Port	Online	Pid 
------------------------------------------------------------------------------ 
Brick 192.168.1.16:/home/a			49152	  Y	3799 
Brick 192.168.1.16:/home/b			N/A	  N	N/A 
NFS Server on localhost				2049	  Y	3824 
Self-heal Daemon on localhost			N/A	  Y	3829

Τώρα το δεύτερο τούβλο είναι εκτός σύνδεσης.

6. Διαγράψτε το αρχείο foo από το σημείο προσάρτησης και ελέγξτε τα περιεχόμενα του τούβλου.

rm -f /mnt/foo
ls /home/a
ls /home/b
foo

Βλέπετε το foo είναι ακόμα εκεί στο δεύτερο τούβλο.

7. Τώρα επαναφέρετε το τούβλο στο διαδίκτυο.

gluster volume start vol force
gluster volume status vol
Δείγμα εξόδου
Status of volume: vol 
Gluster process					Port	Online	Pid 
------------------------------------------------------------------------------ 
Brick 192.168.1.16:/home/a			49152	  Y	3799 
Brick 192.168.1.16:/home/b			49153	  Y	4110 
NFS Server on localhost				2049	  Y	4122 
Self-heal Daemon on localhost			N/A	  Y	4129

Τώρα το τούβλο είναι online.

8. Ελέγξτε τα περιεχόμενα των τούβλων.

ls /home/a/
ls /home/b/

Το αρχείο έχει αφαιρεθεί από το δεύτερο τούβλο από τον δαίμονα αυτο-θεραπείας.

Σημείωση: Σε περίπτωση μεγαλύτερων αρχείων, μπορεί να χρειαστεί λίγος χρόνος για να ολοκληρωθεί με επιτυχία η επέμβαση αυτο-ίασης. Μπορείτε να ελέγξετε την κατάσταση επούλωσης χρησιμοποιώντας την ακόλουθη εντολή.

gluster volume heal vol info

Εκτέλεση Re-balance στο GlusterFS

1. Δημιουργήστε έναν κατανεμημένο τόμο.

gluster create volume distribute 192.168.1.16:/home/c

2. Ξεκινήστε και προσαρτήστε την ένταση.

gluster volume start distribute
mount -t glusterfs 192.168.1.16:/distribute /mnt/

3. Δημιουργήστε 10 αρχεία.

touch /mnt/file{1..10}
ls /mnt/
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

ls /home/c
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

4. Προσθέστε ένα άλλο τούβλο στον τόμο διανομή.

gluster volume add-brick distribute 192.168.1.16:/home/d
ls /home/d

5. Κάντε εκ νέου ισορροπία.

gluster volume rebalance distribute start

volume rebalance: distribute: success: Starting rebalance on volume distribute has been successful.

6. Ελέγξτε τα περιεχόμενα.

ls /home/c
file1  file2  file5  file6  file8 

ls /home/d
file10  file3  file4  file7  file9

Τα αρχεία εξισορροπήθηκαν ξανά.

Σημείωση: Μπορείτε να ελέγξετε την κατάσταση επανεξισορρόπησης εκδίδοντας την ακόλουθη εντολή.

gluster volume rebalance distribute status
Δείγμα εξόδου
Node           Rebalanced-files     size          scanned    failures    skipped   status	run time in secs 
---------      -----------          ---------     --------   ---------   -------   --------     ----------------- 
localhost          5                0Bytes           15          0         0       completed         1.00 
volume rebalance: distribute: success:

Με αυτό σκοπεύω να ολοκληρώσω αυτήν τη σειρά στο GlusterFS. Μην διστάσετε να σχολιάσετε εδώ με τις αμφιβολίες σας σχετικά με τις λειτουργίες Self-heal and Re-balance.