Πώς να χωρέσετε τη «δωρεάν» PostgreSQL σε ένα σκληρό επιχειρηματικό περιβάλλον

Πολλοί άνθρωποι είναι εξοικειωμένοι με το PostgreSQL DBMS και έχει αποδειχθεί σε μικρές εγκαταστάσεις. Ωστόσο, η τάση προς τον Ανοιχτό Κώδικα γίνεται ολοένα και πιο ξεκάθαρη, ακόμη και όταν πρόκειται για μεγάλες εταιρείες και επιχειρηματικές απαιτήσεις. Σε αυτό το άρθρο θα σας πούμε πώς να ενσωματώσετε το Postgres σε ένα εταιρικό περιβάλλον και θα μοιραστούμε την εμπειρία μας από τη δημιουργία ενός συστήματος αντιγράφων ασφαλείας (BSS) για αυτήν τη βάση δεδομένων χρησιμοποιώντας το σύστημα δημιουργίας αντιγράφων ασφαλείας Commvault ως παράδειγμα.

Πώς να χωρέσετε τη «δωρεάν» PostgreSQL σε ένα σκληρό επιχειρηματικό περιβάλλον
Η PostgreSQL έχει ήδη αποδείξει την αξία της - το DBMS λειτουργεί εξαιρετικά, χρησιμοποιείται από μοντέρνες ψηφιακές επιχειρήσεις όπως η Alibaba και το TripAdvisor, και η έλλειψη τελών αδειοδότησης το καθιστά μια δελεαστική εναλλακτική σε τέτοια τέρατα όπως το MS SQL ή το Oracle DB. Αλλά μόλις αρχίσουμε να σκεφτόμαστε την PostgreSQL στο τοπίο του Enterprise, αντιμετωπίζουμε αμέσως αυστηρές απαιτήσεις: «Τι γίνεται με την ανοχή σφαλμάτων διαμόρφωσης; αντίσταση σε καταστροφές; που είναι η ολοκληρωμένη παρακολούθηση; Τι γίνεται με τα αυτοματοποιημένα αντίγραφα ασφαλείας; Τι γίνεται με τη χρήση βιβλιοθηκών ταινιών τόσο απευθείας όσο και σε δευτερεύουσα αποθήκευση;»

Πώς να χωρέσετε τη «δωρεάν» PostgreSQL σε ένα σκληρό επιχειρηματικό περιβάλλον
Από τη μία πλευρά, η PostgreSQL δεν διαθέτει ενσωματωμένα εργαλεία δημιουργίας αντιγράφων ασφαλείας, όπως τα "ενήλικες" DBMS, όπως το RMAN στο Oracle DB ή το SAP Database Backup. Από την άλλη, οι προμηθευτές εταιρικών εφεδρικών συστημάτων (Veeam, Veritas, Commvault) αν και υποστηρίζουν PostgreSQL, στην πραγματικότητα λειτουργούν μόνο με μια συγκεκριμένη (συνήθως αυτόνομη) διαμόρφωση και με ένα σύνολο διαφόρων περιορισμών.

Τα συστήματα δημιουργίας αντιγράφων ασφαλείας ειδικά σχεδιασμένα για PostgreSQL, όπως τα Barman, Wal-g, pg_probackup, είναι εξαιρετικά δημοφιλή σε μικρές εγκαταστάσεις του PostgreSQL DBMS ή όπου δεν χρειάζονται βαριά αντίγραφα ασφαλείας άλλων στοιχείων του τοπίου IT. Για παράδειγμα, εκτός από την PostgreSQL, η υποδομή μπορεί να περιλαμβάνει φυσικούς και εικονικούς διακομιστές, OpenShift, Oracle, MariaDB, Cassandra κ.λπ. Συνιστάται να δημιουργήσετε αντίγραφα ασφαλείας όλων αυτών με ένα κοινό εργαλείο. Η εγκατάσταση μιας ξεχωριστής λύσης αποκλειστικά για την PostgreSQL είναι κακή ιδέα: τα δεδομένα θα αντιγραφούν κάπου στο δίσκο και, στη συνέχεια, θα πρέπει να αφαιρεθούν στην ταινία. Αυτό το διπλό αντίγραφο ασφαλείας αυξάνει τον χρόνο δημιουργίας αντιγράφων ασφαλείας, και επίσης, πιο κρίσιμο, τον χρόνο ανάκτησης.

Σε μια εταιρική λύση, η δημιουργία αντιγράφων ασφαλείας της εγκατάστασης πραγματοποιείται με έναν ορισμένο αριθμό κόμβων σε ένα αποκλειστικό σύμπλεγμα. Ταυτόχρονα, για παράδειγμα, το Commvault μπορεί να λειτουργήσει μόνο με ένα σύμπλεγμα δύο κόμβων, στο οποίο το Κύριο και το Δευτερεύον εκχωρούνται αυστηρά σε ορισμένους κόμβους. Και είναι λογικό να δημιουργείτε αντίγραφα ασφαλείας μόνο από το Primary, επειδή το backup από το Secondary έχει τους περιορισμούς του. Λόγω των ιδιαιτεροτήτων του DBMS, δεν δημιουργείται dump στο Secondary, και επομένως παραμένει μόνο η δυνατότητα δημιουργίας αντιγράφου ασφαλείας αρχείου.

Για να μειωθεί ο κίνδυνος διακοπής λειτουργίας, κατά τη δημιουργία ενός συστήματος ανοχής σε σφάλματα, δημιουργείται μια "ζωντανή" διαμόρφωση συμπλέγματος και η Κύρια μπορεί σταδιακά να μετεγκατασταθεί μεταξύ διαφορετικών διακομιστών. Για παράδειγμα, το ίδιο το λογισμικό Patroni εκκινεί το Primary σε έναν τυχαία επιλεγμένο κόμβο συμπλέγματος. Το IBS δεν έχει κανέναν τρόπο να το παρακολουθήσει από το κουτί και εάν αλλάξει η διαμόρφωση, οι διαδικασίες διακόπτονται. Δηλαδή, η εισαγωγή εξωτερικού ελέγχου εμποδίζει την αποτελεσματική λειτουργία του ISR, επειδή ο διακομιστής ελέγχου απλά δεν καταλαβαίνει από πού και ποια δεδομένα πρέπει να αντιγραφούν.

Ένα άλλο πρόβλημα είναι η υλοποίηση του backup στο Postgres. Είναι δυνατό μέσω dump και λειτουργεί σε μικρές βάσεις δεδομένων. Αλλά σε μεγάλες βάσεις δεδομένων, η απόρριψη διαρκεί πολύ, απαιτεί πολλούς πόρους και μπορεί να οδηγήσει σε αποτυχία της παρουσίας της βάσης δεδομένων.

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

Δεν υπάρχει πουθενά υποχώρηση! Οι προγραμματιστές της Μόσχας είναι πίσω!

Ωστόσο, πρόσφατα η ομάδα μας αντιμετώπισε μια δύσκολη πρόκληση: στο έργο για τη δημιουργία του AIS OSAGO 2.0, όπου δημιουργήσαμε την υποδομή πληροφορικής, οι προγραμματιστές επέλεξαν την PostgreSQL για το νέο σύστημα.

Είναι πολύ πιο εύκολο για τους μεγάλους προγραμματιστές λογισμικού να χρησιμοποιούν «μοντέρνες» λύσεις ανοιχτού κώδικα. Το Facebook έχει αρκετούς ειδικούς για να υποστηρίξει τη λειτουργία αυτού του DBMS. Και στην περίπτωση του RSA, όλα τα καθήκοντα της «δεύτερης ημέρας» έπεσαν στους ώμους μας. Μας ζητήθηκε να εξασφαλίσουμε ανοχή σφαλμάτων, να συγκεντρώσουμε ένα σύμπλεγμα και, φυσικά, να δημιουργήσουμε αντίγραφο ασφαλείας. Η λογική της δράσης ήταν η εξής:

  • Μάθετε στο SRK να δημιουργεί αντίγραφα ασφαλείας από τον Κύριο κόμβο του συμπλέγματος. Για να γίνει αυτό, το SRK πρέπει να το βρει - πράγμα που σημαίνει ότι απαιτείται ενσωμάτωση με τη μία ή την άλλη λύση διαχείρισης συμπλέγματος PostgreSQL. Στην περίπτωση της RSA, χρησιμοποιήθηκε λογισμικό Patroni για αυτό.
  • Αποφασίστε για τον τύπο του αντιγράφου ασφαλείας με βάση τον όγκο των δεδομένων και τις απαιτήσεις ανάκτησης. Για παράδειγμα, όταν χρειάζεται να επαναφέρετε σελίδες με λεπτομερή ανάλυση, χρησιμοποιήστε μια ένδειξη ένδειξης και εάν οι βάσεις δεδομένων είναι μεγάλες και δεν απαιτείται λεπτομερής επαναφορά, εργαστείτε σε επίπεδο αρχείου.
  • Επισυνάψτε τη δυνατότητα δημιουργίας αντιγράφων ασφαλείας μπλοκ στη λύση για να δημιουργήσετε ένα αντίγραφο ασφαλείας σε λειτουργία πολλαπλών νημάτων.

Ταυτόχρονα, ξεκινήσαμε αρχικά να δημιουργήσουμε ένα αποτελεσματικό και απλό σύστημα χωρίς μια τερατώδη πλεξούδα πρόσθετων εξαρτημάτων. Όσο λιγότερα δεκανίκια, τόσο λιγότερος φόρτος εργασίας για το προσωπικό και τόσο μικρότερος είναι ο κίνδυνος αποτυχίας του IBS. Αποκλείσαμε αμέσως προσεγγίσεις που χρησιμοποιούσαν Veeam και RMAN, επειδή ένα σύνολο δύο λύσεων υποδηλώνει ήδη την αναξιοπιστία του συστήματος.

Λίγη μαγεία για την επιχείρηση

Έτσι, χρειαζόταν να εγγυηθούμε αξιόπιστο αντίγραφο ασφαλείας για 10 συμπλέγματα των 3 κόμβων το καθένα, με την ίδια υποδομή να αντικατοπτρίζεται στο κέντρο δεδομένων αντιγράφων ασφαλείας. Τα κέντρα δεδομένων από την άποψη της PostgreSQL λειτουργούν με την αρχή της ενεργητικής-παθητικής. Το συνολικό μέγεθος της βάσης δεδομένων ήταν 50 TB. Οποιοδήποτε σύστημα ελέγχου σε εταιρικό επίπεδο μπορεί εύκολα να αντιμετωπίσει αυτό. Αλλά η προειδοποίηση είναι ότι αρχικά η Postgres δεν έχει ιδέα για πλήρη και βαθιά συμβατότητα με εφεδρικά συστήματα. Επομένως, έπρεπε να αναζητήσουμε μια λύση που αρχικά είχε τη μέγιστη λειτουργικότητα σε συνδυασμό με την PostgreSQL και να βελτιώσουμε το σύστημα.

Πραγματοποιήσαμε 3 εσωτερικά «χάκαθον» - εξετάσαμε περισσότερες από πενήντα εξελίξεις, τις δοκιμάσαμε, κάναμε αλλαγές σε σχέση με τις υποθέσεις μας και τις δοκιμάσαμε ξανά. Αφού εξετάσαμε τις διαθέσιμες επιλογές, επιλέξαμε Commvault. Από το κουτί, αυτό το προϊόν θα μπορούσε να λειτουργήσει με την απλούστερη εγκατάσταση συμπλέγματος PostgreSQL και η ανοιχτή αρχιτεκτονική του δημιούργησε ελπίδες (οι οποίες δικαιώθηκαν) για επιτυχημένη ανάπτυξη και ενσωμάτωση. Το Commvault μπορεί επίσης να δημιουργήσει αντίγραφα ασφαλείας των αρχείων καταγραφής PostgreSQL. Για παράδειγμα, το Veritas NetBackup από την άποψη της PostgreSQL μπορεί να δημιουργήσει μόνο πλήρη αντίγραφα ασφαλείας.

Περισσότερα για την αρχιτεκτονική. Οι διακομιστές διαχείρισης Commvault εγκαταστάθηκαν σε καθένα από τα δύο κέντρα δεδομένων σε μια διαμόρφωση CommServ HA. Το σύστημα αντικατοπτρίζεται, διαχειρίζεται μέσω μιας κονσόλας και, από την άποψη HA, πληροί όλες τις εταιρικές απαιτήσεις.

Πώς να χωρέσετε τη «δωρεάν» PostgreSQL σε ένα σκληρό επιχειρηματικό περιβάλλον
Παρουσιάσαμε επίσης δύο διακομιστές φυσικών πολυμέσων σε κάθε κέντρο δεδομένων, στους οποίους συνδέσαμε συστοιχίες δίσκων και βιβλιοθήκες ταινιών που προορίζονται ειδικά για δημιουργία αντιγράφων ασφαλείας μέσω SAN μέσω Fiber Channel. Οι εκτεταμένες βάσεις δεδομένων κατάργησης διπλότυπων εξασφάλιζαν την ανοχή σφαλμάτων των διακομιστών πολυμέσων και η σύνδεση κάθε διακομιστή σε κάθε CSV επέτρεψε τη συνεχή λειτουργία σε περίπτωση αποτυχίας κάποιου στοιχείου. Η αρχιτεκτονική του συστήματος επιτρέπει τη συνέχιση της δημιουργίας αντιγράφων ασφαλείας ακόμη και αν πέσει ένα από τα κέντρα δεδομένων.

Ο Patroni ορίζει έναν Πρωτεύοντα κόμβο για κάθε σύμπλεγμα. Μπορεί να είναι οποιοσδήποτε ελεύθερος κόμβος στο κέντρο δεδομένων - αλλά μόνο ως επί το πλείστον. Στο αντίγραφο ασφαλείας, όλοι οι κόμβοι είναι δευτερεύοντες.

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

Σε γενικές γραμμές, η διαδικασία μοιάζει με αυτό:

Ο Patroni επιλέγει Primary → Keepalived λαμβάνει το σύμπλεγμα IP και εκτελεί το σενάριο → ο παράγοντας Commvault στον επιλεγμένο κόμβο συμπλέγματος λαμβάνει μια ειδοποίηση ότι αυτός είναι ο Primary → Commvault διαμορφώνει αυτόματα το αντίγραφο ασφαλείας εντός του ψευδο-πελάτη.

Πώς να χωρέσετε τη «δωρεάν» PostgreSQL σε ένα σκληρό επιχειρηματικό περιβάλλον
Το πλεονέκτημα αυτής της προσέγγισης είναι ότι η λύση δεν επηρεάζει τη συνέπεια, την ορθότητα των αρχείων καταγραφής ή την ανάκτηση του στιγμιότυπου Postgres. Είναι επίσης εύκολα επεκτάσιμο, επειδή δεν είναι πλέον απαραίτητο να διορθώσετε τους κόμβους Commvault Primary και Secondary. Αρκεί το σύστημα να καταλάβει πού είναι το Primary και ο αριθμός των κόμβων μπορεί να αυξηθεί σε σχεδόν οποιαδήποτε τιμή.

Η λύση δεν προσποιείται ότι είναι ιδανική και έχει τις δικές της αποχρώσεις. Το Commvault μπορεί να δημιουργήσει αντίγραφα ασφαλείας μόνο για ολόκληρο το στιγμιότυπο και όχι μεμονωμένες βάσεις δεδομένων. Επομένως, δημιουργήθηκε μια ξεχωριστή παρουσία για κάθε βάση δεδομένων. Οι πραγματικοί πελάτες συνδυάζονται σε εικονικούς ψευδο-πελάτες. Κάθε ψευδο-πελάτης Commvault είναι ένα σύμπλεγμα UNIX. Οι κόμβοι συμπλέγματος στους οποίους είναι εγκατεστημένος ο παράγοντας Commvault για Postgres προστίθενται σε αυτό. Ως αποτέλεσμα, όλοι οι εικονικοί κόμβοι του ψευδο-πελάτη δημιουργούνται αντίγραφα ασφαλείας ως μία παρουσία.

Μέσα σε κάθε ψευδο-πελάτη, υποδεικνύεται ο ενεργός κόμβος του συμπλέγματος. Αυτό ορίζει η λύση ενσωμάτωσης για το Commvault. Η αρχή της λειτουργίας του είναι αρκετά απλή: εάν μια IP συμπλέγματος ανυψωθεί σε έναν κόμβο, το σενάριο ορίζει την παράμετρο "ενεργός κόμβος" στο δυαδικό αρχείο Commvault agent - στην πραγματικότητα, το σενάριο θέτει "1" στο απαιτούμενο τμήμα της μνήμης . Ο πράκτορας μεταδίδει αυτά τα δεδομένα στο CommServe και το Commvault δημιουργεί ένα αντίγραφο ασφαλείας από τον επιθυμητό κόμβο. Επιπλέον, η ορθότητα της διαμόρφωσης ελέγχεται σε επίπεδο σεναρίου, συμβάλλοντας στην αποφυγή σφαλμάτων κατά την εκκίνηση ενός αντιγράφου ασφαλείας.

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

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

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

Πώς να χωρέσετε τη «δωρεάν» PostgreSQL σε ένα σκληρό επιχειρηματικό περιβάλλον
Επί του παρόντος, το IBS δεν επηρεάζει τις υπηρεσίες παραγωγικότητας, αλλά εάν αλλάξει η κατάσταση, το Commvault μπορεί να ενεργοποιήσει τον περιορισμό φορτίου.

Είναι καλό? Καλός!

Έτσι, λάβαμε όχι απλώς ένα λειτουργικό, αλλά και ένα πλήρως αυτοματοποιημένο αντίγραφο ασφαλείας για μια εγκατάσταση συμπλέγματος PostgreSQL και πληροί όλες τις απαιτήσεις για εταιρικές κλήσεις.

Οι παράμετροι RPO και RTO της 1 ώρας και 2 ωρών καλύπτονται με περιθώριο, πράγμα που σημαίνει ότι το σύστημα θα συμμορφωθεί με αυτές ακόμη και με σημαντική αύξηση του όγκου των αποθηκευμένων δεδομένων. Σε αντίθεση με πολλές αμφιβολίες, η PostgreSQL και το εταιρικό περιβάλλον αποδείχθηκαν αρκετά συμβατά. Και τώρα γνωρίζουμε από τη δική μας εμπειρία ότι η δημιουργία αντιγράφων ασφαλείας για τέτοια DBMS είναι δυνατή σε μια μεγάλη ποικιλία διαμορφώσεων.

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

Έχετε δοκιμάσει να εργαστείτε με την PostgreSQL σε εταιρικό περιβάλλον;

Συγγραφείς:

Oleg Lavrenov, μηχανικός σχεδιασμού συστημάτων αποθήκευσης δεδομένων, Jet Infosystems

Dmitry Erykin, μηχανικός σχεδιασμού συστημάτων υπολογιστών στην Jet Infosystems

Πηγή: www.habr.com

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