Jun 29, 2014

Disaster-Recovery Weblogic Servers διαμέσου του LXC

Σε περίπτωση που θέλουμε να σχεδιάσουμε μια αρχιτεκτονική υψηλής διαθεσιμότητας, βασισμένη στον Oracle Weblogic Server, σε ένα δευτερεύον σημείο πρόσβασης (disaster-recovery site) το πρώτο που θα κάνουμε είναι να διαβάσουμε την επίσημη τεκμηρίωση. Εκεί περιγράφεται κατά κύριο λόγο μια συμμετρική αρχιτεκτονική, όπου η ενημέρωση του μεσαίου επιπέδου (middleware) πραγματοποιείται με disc replication ή αλλιώς με τον συγχρονισμό των shared storages μεταξύ των δυο sites (production και disaster-recovery) που περιλαμβάνει τα Weblogic domains, εφαρμογές, κλπ.
Προκειμένου να επιβεβαιώσουμε μια τέτοιου είδους αρχιτεκτονική, μπορούμε είτε να την εφαρμόσουμε απευθείας σε ένα σύστημα (πχ με την χρήση virtualization software OVM ή VMWare) είτε με έναν πιο απλό τρόπο που είναι το lxc. Για παράδειγμα, έχω κατασκευάσει έναν Oracle Linux-based container (με το όνομα orasoa) στον οποίον εγκαθίσταται ένας Weblogic Server και γίνονται deployments εφαρμογών. Ας υποθέσουμε πως πρόκειται για τον production server. Η δημιουργία ενός αντιγράφου (clone)  είναι απλή υπόθεση για το lxc, απλά χρησιμοποιούμε την εντολή lxc-clone. Έτσι δημιουργείται μια δεύτερη μηχανή (πχ orasoaclone), με τα ίδια ακριβώς χαρακτηριστικά όπως στο production.
Τελικά, για να ελέγξουμε την τακτική ενημέρωση ενός DR site, ας προσομοιάσουμε την αντιγραφή των περιοχών shared storages ανάμεσα στα δυο sites, με την αντιγραφή σε επίπεδο host OS που φιλοξενεί τα lxc containers. Αν λοιπόν, όλοι μας οι containers βρίσκονται στην διαδρομή /var/lib/lxc (default για το Ubuntu) τότε απλά αρκούν εντολές σαν αυτές:

rsync -azv orasoa/rootfs/home/oracle/user_projects/prod_domain/servers/AdminServer/ orasoaclone/rootfs/home/oracle/user_projects/prod_domain/servers/AdminServer
rsync -azv orasoa/rootfs/home/oracle/user_projects/prod_domain/config/ orasoaclone/rootfs/home/oracle/user_projects/prod_domain/config

ώστε να μεταφερθούν καινούργιες εκδόσεις των εφαρμογών αλλά και εν γένει των Weblogic domains στο δευτερεύον site. Φυσικά, όπως αναφέρει και το documentation της Oracle, το δευτερεύον site δεν είναι ενεργό παρά μόνο για τις ανάγκες του switchover. Ωστόσο, το shared storage του DR θα πρέπει να είναι προσβάσιμο από το παραγωγικό σύστημα για τις ανάγκες του συγχρονισμού.

No comments: