Ρύθμιση του DRBD για αναπαραγωγή αποθήκευσης σε δύο διακομιστές CentOS 7

Η μετάφραση του άρθρου ετοιμάστηκε την παραμονή της έναρξης του μαθήματος "Διαχειριστής Linux. Εικονικοποίηση και ομαδοποίηση".

Το DRBD (Distributed Replicated Block Device) είναι μια κατανεμημένη, ευέλικτη και καθολικά αναπαραγόμενη λύση αποθήκευσης για Linux. Αντικατοπτρίζει τα περιεχόμενα μπλοκ συσκευών όπως σκληρούς δίσκους, διαμερίσματα, λογικούς τόμους κ.λπ. μεταξύ διακομιστών. Δημιουργεί αντίγραφα δεδομένων σε δύο συσκευές αποθήκευσης, έτσι ώστε αν αποτύχει η μία, να μπορούν να χρησιμοποιηθούν τα δεδομένα της δεύτερης.

Θα μπορούσες να πεις ότι είναι κάτι σαν διαμόρφωση δικτύου RAID 1 με δίσκους αντιστοιχισμένους σε διαφορετικούς διακομιστές. Ωστόσο, λειτουργεί εντελώς διαφορετικά από το RAID (ακόμα και το RAID δικτύου).

Αρχικά, το DRBD χρησιμοποιήθηκε κυρίως σε συμπλέγματα υπολογιστών υψηλής διαθεσιμότητας (HA), ωστόσο, ξεκινώντας από την έκδοση XNUMX, μπορεί να χρησιμοποιηθεί για την ανάπτυξη λύσεων αποθήκευσης cloud.

Σε αυτό το άρθρο, θα εξηγήσουμε πώς να εγκαταστήσετε το DRBD στο CentOS και θα δείξουμε εν συντομία πώς να το χρησιμοποιήσετε για την αναπαραγωγή του χώρου αποθήκευσης (διαμέρισμα) σε δύο διακομιστές. Αυτό είναι το τέλειο άρθρο για να ξεκινήσετε με το DRBD στο Linux.

Περιβάλλον δοκιμής

Θα χρησιμοποιήσουμε ένα σύμπλεγμα δύο κόμβων για αυτήν τη ρύθμιση.

  • Κόμβος 1: 192.168.56.101 – tecmint.tecmint.lan
  • Κόμβος 2: 192.168.56.102 – server1.tecmint.lan

Βήμα 1: Εγκαταστήστε πακέτα DRBD

Το DRBD υλοποιείται ως λειτουργική μονάδα πυρήνα Linux. Είναι ένα πρόγραμμα οδήγησης για μια συσκευή εικονικού μπλοκ, επομένως βρίσκεται στο κάτω μέρος της στοίβας I/O του συστήματος.

Το DRBD μπορεί να εγκατασταθεί από την ELRepo ή την EPEL. Ας ξεκινήσουμε εισάγοντας το κλειδί υπογραφής πακέτου ELRepo και συνδέοντας το αποθετήριο και στους δύο κόμβους όπως φαίνεται παρακάτω.

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

Στη συνέχεια, πρέπει να εγκαταστήσετε τη μονάδα πυρήνα DRBD και τα βοηθητικά προγράμματα και στους δύο κόμβους χρησιμοποιώντας:

# yum install -y kmod-drbd84 drbd84-utils

Εάν έχετε ενεργοποιημένο το SELinux, πρέπει να διαμορφώσετε πολιτικές για να εξαιρείτε τις διεργασίες DRBD από τον έλεγχο SELinux.

# semanage permissive -a drbd_t

Επιπλέον, εάν το σύστημά σας εκτελεί ένα τείχος προστασίας (τείχος προστασίας), θα χρειαστεί να προσθέσετε τη θύρα DRBD 7789 για να επιτρέψετε το συγχρονισμό δεδομένων μεταξύ των δύο κόμβων.

Εκτελέστε αυτές τις εντολές για τον πρώτο κόμβο:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4"  source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

Στη συνέχεια εκτελέστε αυτές τις εντολές για τον δεύτερο κόμβο:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

Βήμα 2: Προετοιμάστε την αποθήκευση χαμηλού επιπέδου

Τώρα που έχουμε εγκαταστήσει το DRBD και στους δύο κόμβους συμπλέγματος, πρέπει να παρέχουμε χώρους αποθήκευσης περίπου του ίδιου μεγέθους σε αυτούς. Αυτό θα μπορούσε να είναι ένα διαμέρισμα σκληρού δίσκου (ή ένας ολόκληρος φυσικός σκληρός δίσκος), μια συσκευή λογισμικού RAID, Λογικός όγκος LVM ή οποιουδήποτε άλλου τύπου συσκευής μπλοκ που βρίσκεται στο σύστημά σας.

Για αυτό το άρθρο, θα δημιουργήσουμε μια συσκευή δοκιμαστικού μπλοκ 2 GB χρησιμοποιώντας την εντολή dd.

# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024

Ας υποθέσουμε ότι πρόκειται για ένα αχρησιμοποίητο διαμέρισμα (/dev/sdb1) σε μια δεύτερη συσκευή μπλοκ (/dev/sdb) συνδεδεμένη και στους δύο κόμβους.

Βήμα 3. Διαμόρφωση DRBD

Κύριο αρχείο διαμόρφωσης DRBD − /etc/drbd.conf, και επιπλέον αρχεία διαμόρφωσης μπορούν να βρεθούν στον κατάλογο /etc/drbd.d.

Για να αναπαραγάγουμε το χώρο αποθήκευσης, πρέπει να προσθέσουμε τις απαραίτητες διαμορφώσεις στο αρχείο /etc/drbd.d/global_common.conf, το οποίο περιέχει καθολικές και γενικές ενότητες της διαμόρφωσης DRBD και πρέπει να ορίσουμε πόρους σε .res αρχεία.

Ας δημιουργήσουμε ένα αντίγραφο ασφαλείας του αρχικού αρχείου και στους δύο κόμβους και, στη συνέχεια, ανοίξτε το νέο αρχείο για επεξεργασία (χρησιμοποιήστε ένα πρόγραμμα επεξεργασίας κειμένου της επιλογής σας).

# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf 

Προσθέστε τις ακόλουθες γραμμές και στα δύο αρχεία:

global {
 usage-count  yes;
}
common {
 net {
  protocol C;
 }
}

Αποθηκεύστε το αρχείο και μετά κλείστε το πρόγραμμα επεξεργασίας.

Ας δούμε για λίγο τη γραμμή του πρωτοκόλλου C. Το DRBD υποστηρίζει τρεις διαφορετικούς τρόπους αναπαραγωγής (δηλαδή, τρεις βαθμούς συγχρονισμού αναπαραγωγής), και συγκεκριμένα:

  • Πρωτόκολλο Α: πρωτόκολλο ασύγχρονης αναπαραγωγής. χρησιμοποιείται συχνότερα σε σενάρια αναπαραγωγής μεγάλων αποστάσεων.
  • πρωτόκολλο Β: Πρωτόκολλο ημισύγχρονης αναπαραγωγής ή πρωτόκολλο σύγχρονης μνήμης.
  • Πρωτόκολλο C: χρησιμοποιείται συνήθως για κόμβους σε δίκτυα με μικρές αποστάσεις. Αυτό είναι μακράν το πιο συχνά χρησιμοποιούμενο πρωτόκολλο αναπαραγωγής στις ρυθμίσεις DRBD.

Είναι σημαντικό: Η επιλογή του πρωτοκόλλου αναπαραγωγής επηρεάζει δύο παράγοντες ανάπτυξης: την ασφάλεια και τον λανθάνοντα χρόνο. Αντίθετα, η απόδοση δεν εξαρτάται σημαντικά από το επιλεγμένο πρωτόκολλο αναπαραγωγής.

Βήμα 4: Προσθέστε έναν πόρο

Ο πόρος είναι ένας όρος-ομπρέλα που αναφέρεται σε όλες τις πτυχές ενός συγκεκριμένου αναπαραγόμενου συνόλου δεδομένων. Θα ορίσουμε τον πόρο μας στο αρχείο /etc/drbd.d/test.res.

Προσθέστε τα ακόλουθα στο αρχείο και στους δύο κόμβους (θυμηθείτε να αντικαταστήσετε τις μεταβλητές με τις πραγματικές τιμές για το περιβάλλον σας).

Δώστε προσοχή στα ονόματα κεντρικών υπολογιστών, πρέπει να καθορίσουμε το όνομα κεντρικού υπολογιστή δικτύου, το οποίο μπορεί να ληφθεί χρησιμοποιώντας την εντολή uname -n.

resource test {
        on tecmint.tecmint.lan {
 		device /dev/drbd0;
       		disk /dev/sdb1;
        		meta-disk internal;	
                	address 192.168.56.101:7789;
        }
        on server1.tecmint.lan  {
		device /dev/drbd0;
        		disk /dev/sdb1;
        		meta-disk internal;
                	address 192.168.56.102:7789;
        }
}
}

όπου:

  • στο όνομα κεντρικού υπολογιστή: Η ενότητα on στην οποία ισχύει η ένθετη δήλωση διαμόρφωσης.
  • δοκιμή: Αυτό είναι το όνομα του νέου πόρου.
  • συσκευή /dev/drbd0: Υποδεικνύει μια νέα συσκευή εικονικού μπλοκ που διαχειρίζεται το DRBD.
  • δίσκος /dev/sdb1: Αυτό είναι ένα διαμέρισμα μπλοκ συσκευής που αποτελεί εφεδρική συσκευή για τη συσκευή DRBD.
  • μετα-δίσκος: Καθορίζει πού αποθηκεύει το DRBD τα μεταδεδομένα του. Εσωτερικό σημαίνει ότι το DRBD αποθηκεύει τα μεταδεδομένα του στην ίδια φυσική συσκευή χαμηλού επιπέδου με τα πραγματικά δεδομένα στην παραγωγή.
  • διεύθυνση: Υποδεικνύει τη διεύθυνση IP και τον αριθμό θύρας του αντίστοιχου κόμβου.

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

Για παράδειγμα, η παραπάνω διαμόρφωση θα μπορούσε να αναδομηθεί σε:

resource test {
	device /dev/drbd0;
	disk /dev/sdb1;
        	meta-disk internal;	
        	on tecmint.tecmint.lan {
 		address 192.168.56.101:7789;
        	}
        	on server1.tecmint.lan  {
		address 192.168.56.102:7789;
        		}
}

Βήμα 5. Εκκινήστε και ξεκινήστε τον πόρο

Για να αλληλεπιδράσουμε με το DRBD θα χρησιμοποιήσουμε τα ακόλουθα εργαλεία διαχείρισης (τα οποία αλληλεπιδρούν με τη λειτουργική μονάδα πυρήνα για τη διαμόρφωση και τη διαχείριση πόρων DRBD):

  • drbdadm: Εργαλείο διαχείρισης υψηλού επιπέδου DRBD.
  • drbdsetup: Ένα εργαλείο διαχείρισης χαμηλότερου επιπέδου για τη σύνδεση συσκευών DRBD με τις εφεδρικές συσκευές τους, τη διαμόρφωση ζευγών συσκευών DRBD ώστε να αντικατοπτρίζουν τις εφεδρικές συσκευές τους και για την επαλήθευση της διαμόρφωσης των εκτελούμενων συσκευών DRBD.
  • Drbdmeta: Εργαλείο διαχείρισης μεταδεδομένων.

Αφού προσθέσουμε όλες τις αρχικές διαμορφώσεις πόρων, πρέπει να καλέσουμε τον πόρο και στους δύο κόμβους.

# drbdadm create-md test

Ρύθμιση του DRBD για αναπαραγωγή αποθήκευσης σε δύο διακομιστές CentOS 7
Εκκίνηση του χώρου αποθήκευσης μεταδεδομένων

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

# drbdadm up test

Τώρα αν εκτελέσετε την εντολή lsblk, θα παρατηρήσετε ότι η συσκευή DRBD/τόμος drbd0 σχετίζεται με τη συσκευή δημιουργίας αντιγράφων ασφαλείας /dev/sdb1:

# lsblk

Ρύθμιση του DRBD για αναπαραγωγή αποθήκευσης σε δύο διακομιστές CentOS 7
Λίστα μπλοκ συσκευών

Για να απενεργοποιήσετε έναν πόρο, εκτελέστε:

# drbdadm down test

Για να ελέγξετε την κατάσταση ενός πόρου, εκτελέστε την ακόλουθη εντολή (σημειώστε ότι η κατάσταση των δίσκων αναμένεται σε αυτό το σημείο Ασυνεπής/Ασυνεπής):

# drbdadm status test
OR
# drbdsetup status test --verbose --statistics 	#for  a more detailed status

Ρύθμιση του DRBD για αναπαραγωγή αποθήκευσης σε δύο διακομιστές CentOS 7
Έλεγχος της κατάστασης ενός πόρου σε
κακό

Βήμα 6: Ορίστε τον κύριο πόρο/αρχική πηγή συγχρονισμού συσκευής

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

Εκτελέστε την ακόλουθη εντολή σε έναν μόνο κόμβο για να ξεκινήσετε τον αρχικό πλήρη συγχρονισμό:

# drbdadm primary --force test
# drbdadm status test

Ρύθμιση του DRBD για αναπαραγωγή αποθήκευσης σε δύο διακομιστές CentOS 7
Ρύθμιση του πρωτεύοντος κόμβου ως αρχικής συσκευής
Μόλις ολοκληρωθεί ο συγχρονισμός, η κατάσταση και των δύο μονάδων δίσκου θα πρέπει να είναι UpToDate.

Βήμα 7: Δοκιμή της ρύθμισης DRBD

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

Πρέπει να δημιουργήσουμε ένα σύστημα αρχείων στη συσκευή χρησιμοποιώντας την ακόλουθη εντολή στον κόμβο όπου ξεκινήσαμε τον αρχικό πλήρη συγχρονισμό (ο οποίος έχει έναν πόρο με τον πρωτεύοντα ρόλο):

# mkfs -t ext4 /dev/drbd0

Ρύθμιση του DRBD για αναπαραγωγή αποθήκευσης σε δύο διακομιστές CentOS 7
Δημιουργία συστήματος αρχείων στον τόμο Drbd

Στη συνέχεια τοποθετήστε το όπως φαίνεται (μπορείτε να δώσετε στο σημείο τοποθέτησης ένα κατάλληλο όνομα):

# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/

Τώρα αντιγράψτε ή δημιουργήστε μερικά αρχεία στο παραπάνω σημείο προσάρτησης και κάντε μια μεγάλη λίστα με ls εντολές:

# cd /mnt/DRDB_PRI/
# ls -l 

Ρύθμιση του DRBD για αναπαραγωγή αποθήκευσης σε δύο διακομιστές CentOS 7
Καταχωρίστε τα περιεχόμενα του κύριου τόμου Drbd

Στη συνέχεια, αποπροσαρτήστε τη συσκευή (βεβαιωθείτε ότι η προσάρτηση δεν είναι ανοιχτή, αλλάξτε τον κατάλογο μετά την αποπροσάρτηση για να αποφύγετε σφάλματα) και αλλάξτε τον ρόλο του κόμβου από κύριο σε δευτερεύον:

# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary test

Κάντε τον άλλο κόμβο (που έχει έναν πόρο με δευτερεύοντα ρόλο) πρωτεύοντα και, στη συνέχεια, συνδέστε μια συσκευή σε αυτόν και εκδώστε μια μακρά λίστα σημείων προσάρτησης. Εάν η ρύθμιση λειτουργεί καλά, όλα τα αρχεία που είναι αποθηκευμένα στον τόμο θα πρέπει να είναι εκεί:

# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls  -l 

Ρύθμιση του DRBD για αναπαραγωγή αποθήκευσης σε δύο διακομιστές CentOS 7
Έλεγχος της ρύθμισης DRBD που εκτελείται στον δευτερεύοντα κόμβο.

Για περισσότερες πληροφορίες, ανατρέξτε στις σελίδες βοήθειας εργαλείων διαχείρισης:

# man drbdadm
# man drbdsetup
# man drbdmeta

Βοήθεια: Εγχειρίδιο χρήστη DRBD.

Περίληψη

Το DRBD είναι εξαιρετικά ευέλικτο και ευέλικτο, καθιστώντας το μια λύση αναπαραγωγής αποθήκευσης κατάλληλη για την προσθήκη HA σε σχεδόν οποιαδήποτε εφαρμογή. Σε αυτό το άρθρο, δείξαμε πώς να εγκαταστήσετε το DRBD στο CentOS 7 και δείξαμε εν συντομία πώς να το χρησιμοποιήσετε για αναπαραγωγή αποθήκευσης. Μη διστάσετε να μοιραστείτε τις σκέψεις σας μαζί μας χρησιμοποιώντας την παρακάτω φόρμα σχολίων.

Μάθετε περισσότερα για το μάθημα.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο