Overview
Με τον όρο high availability αναφερόμαστε στην πρακτική χρήση των τεχνολογιών αυτών που θα μας εξασφαλίσουν αδιάλειπτη λειτουργία των υπηρεσιών που προσφέρουμε.
Με τον όρο disaster recovery αναφερόμαστε στην πρακτική χρήση των τεχνολογιών αυτών που μας εξασφαλίζουν την συνέχεια της παροχής των υπηρεσιών που προσφέρουμε μετά από μια ολική καταστροφή με ενδεχόμενο την πιθανή μερική απώλεια δεδομένων.
Planning HADR
Αν και οι ορισμοί είναι ξεκάθαροι, η σημασία τους για τον κάθε οργανισμό είναι ένα μεγάλο θέμα συζήτησης που πρέπει όχι αβασάνιστα ο καθένας να απαντήσει. Η αβίαστη απάντηση του 24Χ7 ή του 99,999 και όλα είναι κρίσιμα για τον οργανισμό δεν με καλύπτει καθώς αμέσως κάτι τέτοιο αλλάζει τα δεδομένα του κόστους για την υλοποίηση ενός HADR.
Ακόμα και σε ένα οργανισμό υπάρχουν διαφορετικές ανάγκες για κάθε σύστημα και αυτό σημαίνει πολύ καλό planning για την υλοποίηση της επιθυμητής λύσης.
Υπάρχουν αρκετοί παράγοντες που πρέπει να συνυπολογιστούν πριν καταλήξουμε στην επιθυμητή λύση HADR, όπως το πόσο χρόνο αντέχουμε να μην είναι διαθέσιμη η υπηρεσία, τι είναι αποδεκτό σε περίπτωση καταστροφή σε απώλεια δεδομένων. Ουσιαστικά θα πρέπει να βρούμε το RTO (Recovery Time Objective) και RPO (Recovery Point Objective).
Μπορεί αυτοί οι δύο να είναι οι δημοφιλέστεροι δείκτες και να μπορείς με αυτούς να κάνεις αρκετά σοβαρή και σωστή δουλειά αλλά υπάρχουν και άλλοι για όσους είναι επαγγελματίες σε υπερθετικό βαθμό, φυσικά αναφέρομαι στους RTA (Recovery Time Actual) και RCO (Recovery Consistency Objective) .
Για όποιον λοιπόν θέλει να προσφέρει high availability (HA) και disaster recovery (DR) (HADR) θα πρέπει να απαντήσει στους παραπάνω δείκτες ειλικρινά και με βάση πάντα το κόστος σε χρήμα που απαιτείται για την υλοποίηση του HADR.
'Ενας ακόμα παράγοντας είναι το failover unit δηλαδή ποια είναι η μονάδα που θέλουμε να προστατέψουμε. Ένα HADR θα πρέπει ιδεατά να καλύπτει όλα όσα αποτελούν το περιβάλλον στο οποίο θα εγκατασταθεί ο SQL Server όπως hardware failures, Windows Server OS failures, SQL Server failures, Individual database failures. Αυτό όμως δεν είναι πάντα ο στόχος καθώς μπορεί η μονάδα αυτή να είναι μια συγκεκριμένη database. Ανάλογα λοιπόν θα πρέπει να επιλέξουμε και το τι θα υλοποιήσουμε μέσα από την γκάμα των επιλογών που μας δίνει ο SQL Server.
Options for HADR in SQL Server
Στο SQL Server υπάρχουν πολλές επιλογές για HADR που κάθε μία μπορεί να καλύψει τις ανάγκες του κάθε οργανισμού είτε μεμονωμένα είτε συνδυαστικά πάντα φυσικά με το τι έχει απαντήσει στους παραπάνω δείκτες
Log shipping
Με το log shipping συντηρούνται αντίγραφα της database σε πολλαπλούς SQL Servers. Ο βασικός (primary) έχει το ενεργό αντίγραφο της και οι άλλοι (secondaries) έχουν standby αντίγραφα. Σε αυτή την λύση δεν έχω automatic failover και ούτε εγγυάται ότι δεν θα υπάρξει απώλεια δεδομένων, επίσης απαιτείται χρόνος για να έρθει η database σε κατάσταση online.
Database mirroring
Το database mirroring παρέχει HA σε επίπεδο database με το να συντηρεί ένα αντίγραφο της database που υπάρχει στο βασικό (principal) server σε ένα άλλο server (mirror). Η συγκεκριμένη δυνατότητα είναι πλέον σε κατάσταση απόσυρσης (εμφανίστηκε για πρώτη φορά στο SQL server 2008 και υπάρχει σήμερα μόνο στη standard edition). Παρέχει automatic failover μέσω ενός Witness Server ο οποίος είναι υπεύθυνος για το database health και failover management.
AlwaysOn Failover Cluster instances
Το AlwaysOn Failover Cluster instance (FCI) είναι ένα cluster instance του SQL Server σε WSFC cluster το οποίο παρέχει HA σε επίπεδο server instance. Ένα WSFC αποτελείται από πολλαπλά server nodes κάτω από την ομπρέλα ενός FCI. Όλα τα nodes έχουν πρόσβαση σε shared storage (SAN). Μπορεί να ανταποκριθεί σε μια ευρεία γκάμα καταστροφών όπως hardware failures, OS failures, service failures. Δεν είναι DR και για αυτό θα πρέπει να έχει γίνει πρόβλεψη καθώς έχει single point of failure που είναι το SAN.
AlwaysOn Availability Groups
Το AlwaysOn Availability Groups εκμεταλλεύεται τα πλεονεκτήματα της τεχνολογίας του WSFC και παρέχει ΗΑ σε επίπεδο database. Στην γενική του μορφή είναι παρόμοιο σαν το database mirroring εντούτοις παρέχει ένα πολύ περισσότερο σοβαρό και σταθερό τρόπο για να προστατέψουμε databases συν ότι παρέχονται περισσότερες δυνατότητες. Με το WSFC έχουν την υποστήριξη που χρειαζόμαστε για το health monitoring και failover management. Επίσης δεν υπάρχει η απαίτηση για common storage καθώς κάθε SQL Server instance είναι αυτόνομο.
SQL Server Database Replication
Υλοποιώντας replication μιας database σε κάποιον άλλον server επιτυγχάνεται ένα περιορισμένων δυνατοτήτων ΗΑ σενάριο και αυτό διότι η database είναι διαθέσιμη σε κάποιον άλλον SQL server όμως δεν υπάρχει automatic failover.
Choosing a SQL Server high availability solution matrix
Planning High Availability and Disaster Recovery matrix
Conclusion
Εσκεμμένα σε αυτό δεν έχω κάνει αναφορά στην τεχνική υλοποίηση των δυνατοτήτων που υπάρχουν. Ο λόγος για αυτό είναι γιατί πρέπει όλοι να καταλάβουμε ότι δεν κρίνουμε αυτές με το βαθμό ευκολίας ή δυσκολίας στην υλοποίηση, αλλά ούτε με το κόστος, ούτε με το τι έχει κάνει ο διπλανός μας.
Αυτό που πρέπει να κάνουμε είναι να μελετήσουμε πολύ καλά τους παραπάνω πίνακες. Να κατανοήσουμε τις πραγματικές μας ανάγκες και φυσικά την τσέπη μας.
/*antonch*/