Mechanizmy zapewnienia wysokiej dostępności

Transkrypt

Mechanizmy zapewnienia wysokiej dostępności
Materiały konferencyjne
Bazy Danych i Business Intelligence
Mechanizmy zapewnienia wysokiej dostępności aplikacji
wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL
Dr inż. Jacek Markus
Warszawska Wyższa Szkoła Informatyki
1
[email protected]
Mechanizmy zapewnienia wysokiej dostępności aplikacji
Mechanizmy
zapewnienia
wysokiej
dostępności
wielowarstwowych
korzystających
z relacyjnych
baz danychaplikacji
Microsoft
SQL.
wielowarstwowych korzystających
z relacyjnych baz danych
Microsoft
SQL.with relational databases
High availability in multi-layer
application
Microsoft SQL.
High availabilityDrininż.multi-layer
application with relational dataJacek Markus ([email protected])
Warszawska
Wyższa Szkoła Informatyki
bases Microsoft
SQL.
Streszczenie: Dostępność aplikacji firmowych jest krytyczna, a ich niedostępność może
powodować straty zarówno finansowe jak i prestiżu, które w wielu przypadkach mogą
nawet
doprowadzić
firmy.
Dostępność
aplikacji
firmowychdo
jestupadku
krytyczna,
a ich niedostępność może powodować straty zarówno finansowe jak i prestiStreszczenie
żu, które w wielu przypadkach mogą nawet doprowadzić do upadku firmy.
Słowa kluczowe: aplikacje wielowarstwowe, wysoka dostępność, przetwarzanie w
Słowa kluczowe:
wielowarstwowe,
wysoka dostępność,
przetwarzanie
w chmurze, replikacja, mirroring,
chmurze,aplikacje
replikacja,
mirroring, always-on,
Microsoft
SQL
always-on, Microsoft SQL
Abstract: High availability of corporate applications is critical, and their unavailability
can
Abstract cause loss of both financial and prestige, which in many cases may even lead to the
collapse of the company.
High availability of corporate applications is critical, and their unavailability can cause loss of both financial and prestige,
which inKeywords:
many cases may
even lead to application
the collapse of ,thehigh
company.
multi-layer
availability, cloud computing, replication,
mirroring, always-on, Microsoft SQL
Keywords: multi-layer application , high availability, cloud computing, replication, mirroring, always-on, Microsoft SQL
1. Aplikacje wielowarstwowe.
Większość
obecnie tworzonych
1. Aplikacje
wielowarstwowe.
aplikacji
biznesowych
ma
budowę
wielowarstwową.
Większość obecnie
tworzonych
aplikacji
biznesowych
ma budowę
wielowarstwową.
Najbardziej
zewnętrzna
warstwa
prezentacji
bardzo
często wykorzystuje
Najbardziej
zewnętrzna
warstwa
prezentacji
bardzo
często
wykorzystuje
technologię
co pozwala
technologię webową, co pozwala wykorzystać w wielu przypadkach webową,
jako klienta
wykorzystać
w wielu przypadkach
jako internetową.
klienta standardową
przeglądarkę
internetową.
Warstwa aplikacji
standardową
przeglądarkę
Warstwa
aplikacji
przetwarzająca
dane przetwarzająca
dane
biznesowe
w
mniejszych
systemach
bywa
w
dużym
stopniu
zintegrowana
z
warstwą
biznesowe w mniejszych systemach bywa w dużym stopniu zintegrowana warstwąprezentacji i warstwą
bazodanową
dzięki wykorzystaniu
procedur składowanych
i obiektów
CLR.
prezentacji
i warstwą
bazodanową wyzwalaczy,
dzięki wykorzystaniu
wyzwalaczy,
procedur
składowanych i obiektów CLR.
Klient –
przeglądarka
internetowa
Klient –
Klient –
przeglądarka
Klient –
przeglądarka
internetowa
Klient –
przeglądarka
internetowa
Klient –
przeglądarka
internetowa
Klient –
przeglądarka
internetowa
Klient –
przeglądarka
internetowa
Klient –
przeglądarka
internetowa
Klient –
przeglądarka
internetowa
Klient –
przeglądarka
internetowa
Klient –
przeglądarka
internetowa
przeglądarka
internetowa
internetowa
Warstwa
prezentacji
– serwer
WWW
Rys.1. Architektura aplikacji
wielowarstwowej
Rys.1. Architektura
aplikacji wielowarstwowej
Baza danychwarstwa
bazodaniowa
106
Bazy Danych i Business Intelligence
Mechanizmy zapewnienia wysokiej dostępności aplikacji
wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL
W systemach biznesowych krytyczna jest warstwa bazodanowa, której spójność i bezpieczeństwo
przechowywanych danych jest najwyższym priorytetem. Dane te muszą być chronione przed nieautoryzowanym dostępem przy jednoczesnym zapewnieniu ich pełnej dostępności.
2. Wysoka dostępność warstwy prezentacji i aplikacji.
Większość mechanizmów zapewnienia wysokiej dostępności jest związane z wprowadzeniem nadmiarowości prowadzących do wyeliminowania punktów pojedynczej awarii. W sytuacji jeśli dostępność aplikacji zależy od jednego dysku w serwerze, jednego zasilacza, jednego procesora itp., awaria pojedynczego
elementu doprowadza do braku dostępności aplikacji. Podniesienie prawdopodobieństwa bezawaryjnej
pracy komponentu na wyższy poziom powoduje często logarytmiczny wzrost kosztów wdrożenia i nigdy nie pozwala na pełną gwarancję niezawodności. Wprowadzenie nadmiarowości pozwala często uzyskać obniżenie prawdopodobieństwa niedostępności na wyższym poziomie i często niższym kosztem niż
podnoszenie jakości składowych ponad pewien poziom. W przypadku dysków wprowadza się macierze
dyskowe z wykorzystaniem różnych poziomów RAID, które związane z nadmiarowymi dyskami, pozwalają na dalszą pracę systemu w razie awarii jednego z dysku, a w niektórych konfiguracjach nawet kilku
dysków do czasu wymiany uszkodzonego dysku. W składnicach danych wprowadza się dodatkowo pulę
dysków awaryjnych, które automatycznie zastępują uszkodzone dyski. Należy również zwrócić uwagę, że
nie zawsze wprowadzenie dwóch komponentów pozwala na wyeliminowanie pojedynczego punktu awarii
np. zamontowanie w serwerze o poborze mocy 1KW dwóch zasilaczy o mocy 0,75 KW, awaria jednego
z nich spowoduje, że jeden zasilacz nie dostarczy komponentom serwera odpowiedniego zasilania. Analogicznie wprowadzenie dwóch linii dostępu do Internetu, gdy światłowody są poprowadzone obok siebie do
dostawców internetu w przypadku uszkodzenia jednego ze światłowodów np. w czasie pracy koparki łączy
się z bardzo wysokim prawdopodobieństwem awarii drugiego. Pierwszym etapem zapewnienia wysokiej
dostępności jest wyeliminowanie pojedynczych punktów awarii.
Istnieje wiele mechanizmów zapewnienia wysokiej dostępności warstwy biznesowej i warstwy prezentacji z wykorzystaniem nadmiarowych serwerów.
Najłatwiejszym w implementacji jest wykorzystanie DNS round robin (RRDNS). Polega na utworzeniu na serwerze DNS kilku rekordów DNS wskazujących dla tej samej nazwy hosta kilka rekordów
DNS. Lista tych rekordów jest przesyłana po otrzymaniu zapytania posortowana w określonej kolejności. Kolejne zapytanie otrzymuję powyższą listę ze zmienioną kolejnością: pierwszy rekord z poprzed3 zapytania jest przesortowany na koniec listy.
niego
Wynik zapytania
z wykorzystaniem round robin
Rys.2. Wynik zapytania zRys.2.
wykorzystaniem
round robin
Dodatkowo
Dodatkowomożna
możnaużyć
użyćnetmask
netmaskordering
orderingpolegającego
polegającego na
na grupowaniu
grupowaniu adresów
adresów zz jednej
jednej klasy i sortowaklasy
i
sortowaniu
w
obrębie
grupy.
Dzięki
temu
klient
otrzymuje
na
„górze
listy”
adresy
niu w obrębie grupy. Dzięki temu klient otrzymuje na „górze listy” adresy z „bliższego” adresu sieciowego.
z „bliższego” adresu sieciowego.
Rys.2. Wynik zapytania z wykorzystaniem round robin
Mechanizmy zapewnienia wysokiej dostępności aplikacji
Dodatkowo można użyć netmask ordering polegającego na grupowaniu
adresów z jednej
wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL
Bazy Danych i Business Intelligence
klasy i sortowaniu w obrębie grupy. Dzięki temu klient otrzymuje na „górze listy” adresy
z „bliższego” adresu sieciowego.
107
Rys.3. Wynik zapytania
z wykorzystaniem
round robin i netmask
Rys.3. Wynik
zapytania z wykorzystaniem
roundordering
robin i netmask ordering
RRDNS pozwala na rozłożenie obciążenia na wiele serwerów, jednak awaria jednego z
RRDNS4powoduje,
pozwala nażerozłożenie
obciążenia
na wiele serwerów,
serwerów
część zapytań
trafia na niedziałający
serwer. jednak awaria jednego z serwerów
powoduje,
że część
zapytań
trafia narozłożyć
niedziałający
serwer.
Mechanizmem
DNS
pozwalającym
zapytania
na wiele serwerów z równoczesną
Mechanizmem
DNS pozwalającym
rozłożyć
zapytania
wiele
serwerów
z równoczesną obsługa
obsługa
awarii jednego
lub kilku z nich
jest użycie
dnS na
Load
Balancing
(dnSLB).
Mechanizm
tenz nich
wykorzystuje
SrVBalancing
do zdefiniowania
preferencji
rozłożenia
awarii jednego
lub kilku
jest użycierekordy
DNS Load
(DNSLB).
Mechanizm
ten wykoobciążenia
na
wiele
serwerów.
Jedną
z
bardziej
znanych
usług
korzystających
z tego
rzystuje rekordy SRV do zdefiniowania preferencji rozłożenia obciążenia na wiele serwerów.
Jedną
mechanizmu
jest
usługa
Active
Direktory.
Z
uproszczonej
wersji
tego
mechanizmu
z bardziej znanych usług korzystających z tego mechanizmu jest usługa Active Direktory. Z uproszczoopartego
o rekordy
MX korzysta
również
usługa również
SMTP, usługa
z którejSMTP,
korzystają
wszystkie
nej wersji tego
mechanizmu
opartego
o rekordy
MX korzysta
z której
korzystają
współczesne
i
popularne
systemy
pocztowe
(są
oczywiście
rozwiązania
niszowe,
wszystkie współczesne i popularne systemy pocztowe (są oczywiście rozwiązania niszowe, którektóre
wykowykorzystują inne mechanizmy). Rekord SRV odwołuje się do odpowiedniego hosta
rzystują inne mechanizmy). Rekord SRV odwołuje się do odpowiedniego hosta poprzez definicję jego
poprzez definicję jego IP lub wskazanie rekordu A albo rekordu CNAME. Rekord SRV
IP lub wskazanie rekordu A albo rekordu CNAME. Rekord SRV wskazuje usługę protokół TCP, UDP,
wskazuje usługę protokół TCP, UDP, TLS… i port na którym usługa pracuje na
TLS… i port na którym usługa pracuje na podstawie zarejestrowanych mapowań nazwy usługi oraz
podstawie zarejestrowanych mapowań nazwy usługi oraz aliasów jej nazwy na port w
aliasów jejpliku
nazwy
na port w pliku %systemroot%\System32\drivers\etc\services.
%systemroot%\System32\drivers\etc\services.
Rys.4. Rekordy SRV
Rys.4. Rekordy SRV
Kolejność przesortowania rekordów określa priorytet, który grupuje rekordy, czyli rekord
Kolejność przesortowania rekordów określa priorytet, który grupuje rekordy, czyli rekord o prioryteo priorytecie 0 obsługuje cały ruch, jeśli wszystkie serwery wskazane przez rekordy o
cie 0 obsługuje cały ruch, jeśli wszystkie serwery wskazane przez rekordy o priorytecie O są niedostęppriorytecie O są niedostępne, aplikacja odpytuje serwery usługi wskazane przez rekordy
ne, aplikacja odpytuje serwery usługi wskazane przez rekordy o priorytecie 1… Waga określa proporcje
o priorytecie 1… Waga określa proporcje rozłożenia ruchu pomiędzy serwery o tym
rozłożenia samym
ruchu pomiędzy
serwery o tym samym priorytecie.
priorytecie.
Wykorzystanie DNSLB
nie tylko
do rozłożenia
na wiele
serwerów,
ale również
z obsługą
Wykorzystanie
DNSLB
nie tylkoobciążenia
do rozłożenia
obciążenia
na wiele
serwerów,
ale
również z obsługą awarii jednego lub kilku z nich jest związane z możliwościami
aplikacji klienckich, które po przekroczeniu czasu oczekiwania odpowiedzi z serwerów
wskazanych przez pierwszy rekord z listu odpytują kolejny oraz wbudowaniem w
Kolejność przesortowania rekordów określa priorytet, który grupuje rekordy, czyli r
o priorytecie 0 obsługuje cały ruch, jeśli wszystkie serwery wskazane przez reko
priorytecie O są niedostępne, aplikacja odpytuje serwery usługi wskazane przez rek
Mechanizmy zapewnienia wysokiej dostępności aplikacji
o priorytecie wielowarstwowych
1… Waga określa
proporcje rozłożenia ruchu pomiędzy serwery o
korzystających z relacyjnych baz danych Microsoft SQL
Bazy
Danych
i
Business
Intelligence
108
samym priorytecie.
Wykorzystanie DNSLB nie tylko do rozłożenia obciążenia na wiele serwerów
awarii jednego lub kilku z nich
jest związane
z możliwościami
klienckich,
po przekrorównież
z obsługą
awarii jednegoaplikacji
lub kilku
z nich które
jest związane
z możliwoś
czeniu czasu oczekiwania odpowiedzi
z
serwerów
wskazanych
przez
pierwszy
rekord
z
listu
odpytują
aplikacji klienckich, które po przekroczeniu czasu oczekiwania odpowiedzi z serw
kolejny oraz wbudowaniem w
aplikację mechanizmów
automatycznego
wznawiania
Choć
wiele
wskazanych
przez pierwszy
rekord z listu
odpytują sesji.
kolejny
oraz
wbudowanie
aplikacji klienckich oraz usługaplikację
aplikacyjnych
obsługuje
mechanizm
DNSLB,
to
obecnie
popularne
przemechanizmów automatycznego wznawiania sesji. Choć wiele apl
glądarki internetowe go nie obsługują.
klienckich oraz usług aplikacyjnych obsługuje mechanizm DNSLB, to obecnie popu
Alternatywą jest użycie. Wprzeglądarki
klastrze NLB
jest kilka go
hostów,
które korzystają ze wspólnej wirtualnej
internetowe
nie obsługują.
Alternatywą jest użycie network Load Balancing (nLB). W klastrze NLB
karty sieciowej.
kilka hostów, które korzystają ze wspólnej wirtualnej karty sieciowej.
Rys.5. Wykorzystanie
NLB
Rys.5. Wykorzystanie
NLB
Zaletą rozwiązanie jest taki sam adres IP na wszystkich hostach w klastrz
Zaletą rozwiązanie jest taki sam adres IP na wszystkich hostach w klastrze, co uniezależnia rówuniezależnia równoważenie obciążenia od usługi DNS, a obsługę awarii jedne
noważenie obciążenia od usługi DNS, a obsługę awarii jednego z hostów w klastrze NLB od aplikahostów w klastrze NLB od aplikacji klienckiej. Rozwiązanie pomimo, że jest stosun
cji klienckiej. Rozwiązanie pomimo, że jest stosunkowo tanie w implementacji (np. wersje serwerowe
tanie w implementacji (np. wersje serwerowe Windows poczynając od 2003 Stand
5 Standard i Web Edition go obslugująm jak również jego obsługa może
Windows poczynając od 2003
Web Edition go obslugująm jak również jego obsługa może być wkompilowana w
być wkompilowana w jądro dystrybucji
dystrybucji Linux)
Przy
Linux) ii nie
niewymaga
wymagazwykle
zwykleinwestycji
inwestycjiwwdrogi
drogisprzęt.
sprzęt.
Przy konfig
konfiguracji NLB należy pamiętać,
że wszystkie
korzystają
z wirtualnej
sieciowekarty
o adresie
NLB należy
pamiętać,hosty
że wszystkie
hosty
korzystająkarty
z wirtualnej
sieciowe o adr
MAC i IP wspólnym dla całego
NLB. Dlatego
należy
pamiętać
odpowiedniej
MAC iklastra
IP wspólnym
dla całego
klastra
NLB.oDlatego
należy konfiguracji
pamiętać o odpowied
przełącznika, aby do wszystkich
portów
obsługujących
hosty
z
klastra
NLB
przypisać
statyczniehosty
MACz klastra N
konfiguracji przełącznika, aby do wszystkich portów obsługujących
adres klastra, w przeciwnym
przypadkustatycznie
przełącznik
automatycznie
zapamięta
port,przypadku
z którego przełącz
przypisać
MAC
adres klastra,
w pierwszy
przeciwnym
otrzymał odpowiedź i cały automatycznie
ruch będzie kierowany
tylko
na
jednego
z
hostów
w
klastrze
NLB.
Klaster
zapamięta pierwszy port, z którego otrzymał odpowiedź
i cały ruch będ
NLB skonfigurowany w trybie
unicast
korzysta
z
adresu
MAC
w
postaci
02:BF:
+
szesnastkowo
zapikierowany tylko na jednego z hostów w klastrze NLB. Klaster NLB skonfigurowan
sany adres IP klastra NLB. trybie unicast korzysta z adresu MAC w postaci 02:BF: + szesnastkowo zapisany ad
IP klastra NLB.
Rys.6. Ustawienie
klastra
NLB - równoważenia
sieciowego
Rys.6. Ustawienie
klastra NLB
- równoważenia
obciążeniaobciążenia
sieciowego
W trybie unicast jest wymagana dodatkowa karta sieciowa w każdym z hostów klastra
W trybie unicast jest wymagana dodatkowa karta sieciowa w każdym z hostów klastra do komunikakomunikacji pomiędzy hostami niezbędnej do negocjacji, który host ma obsłu
cji pomiędzy hostami niezbędnej do negocjacji, który host ma obsłużyć przychodzące połączenie oraz
przychodzące połączenie oraz wykrycie hosta, który uległ awarii. W przypadku br
wykrycie hosta, który uległ awarii. W przypadku braku możliwości zestawienia komunikacji pomiędzy
możliwości zestawienia komunikacji pomiędzy hostami klastra NLB na dodatkow
hostami klastra NLB na dodatkowych
sieciowych,
można
użyć
trybu multicast,
gdzie adres
MAC sklastrowa
interfejsachinterfejsach
sieciowych,
można użyć
trybu
multicast,
gdzie MAC
adres sklastrowanej mechanizmem
NLB MAC
karty
sieciowej
jest ukrywany,
wirtualna karta
mechanizmem
NLBadres
MAC
adres
karty nie
sieciowej
nie jestaukrywany,
a wirtualna k
sieciowa NLB ma adres z prefiksem
03:BF.
sieciowa NLB ma adres z prefiksem 03:BF.
komunikacji pomiędzy hostami niezbędnej do negocjacji, który host ma obsłuży
przychodzące połączenie oraz wykrycie hosta, który uległ awarii. W przypadku brak
możliwości zestawienia komunikacji pomiędzy hostami klastra NLB na dodatkowyc
Mechanizmy zapewnienia wysokiej dostępności aplikacji
interfejsach sieciowych, można użyć trybuBazy
multicast,
gdzie MAC adres sklastrowane
wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL
Danych i Business Intelligence 109
mechanizmem NLB MAC adres karty sieciowej nie jest ukrywany, a wirtualna kart
sieciowa NLB ma adres z prefiksem 03:BF.
6
Rys.7. Ustawienie
portu
Rys.7.roli
Ustawienie
roli portu
W trybie
host preferencję
użycia
serwerów
w klastrze
określają prio
W trybie single host preferencję
użyciasingle
serwerów
w klastrze NLB
określają
priorytety.
DlaNLB
danego
Dla danego protokołu, portu TCP/UDP lub zakresu portów cały ruch obsługuje
protokołu, portu TCP/UDP lub zakresu portów cały ruch obsługuje host o najniższym priorytecie, w ranajniższym priorytecie, w razie jego awarii ruch obsługuje aktywny host o ak
zie jego awarii ruch obsługuje aktywny host o aktualnie najniższym priorytecie. Jeśli zdefiniujemy tryb
najniższym priorytecie. Jeśli zdefiniujemy tryb pracy Multiple host (najc
pracy Multiple host (najczęściej stosowany, ponieważ pozwala na dynamiczne równoważenie obciążestosowany, ponieważ pozwala na dynamiczne równoważenie obciążenie) z
nie) zamiast priorytetu definiujemy
wagę,definiujemy
ruch jest rozkładany
na jest
wszystkie
aktywne
hosty w klastrze
priorytetu
wagę, ruch
rozkładany
na wszystkie
aktywne hosty w k
NLB proporcjonalnie do przypisanej
do hosta wagi. do przypisanej do hosta wagi.
NLB proporcjonalnie
Rys.8. WagaRys.8.
portu Waga portu
Domyślnie dla trybu Multiple host jest ustawienie Equal, czyli równomierne roz
Domyślnie dla trybu Multiple host jest ustawienie Equal, czyli równomierne rozłożenie sesji pomięsesji pomiędzy serwery w klastrze NLB. Przychodzące połączenie obsługuje
dzy serwery w klastrze NLB. Przychodzące połączenie obsługuje host w klastrze, który „zadeklaruje”
klastrze, który „zadeklaruje” najniższy koszt przyjęcia połączenia. Trochę jak w
najniższy koszt przyjęcia połączenia. Trochę jak w życiu, dodatkową pracę otrzymuje zwykle ten, kto
dodatkową pracę otrzymuje zwykle ten, kto najmniej broni się przed jej przy
najmniej broni się przed jej przyjęciem
(najniższy
koszt przyjęcia).
(najniższy
koszt przyjęcia).
W przypadku równoważenia obciążenia
na podstawie
wag problemem
mogłyby
protokoły
W przypadku
równoważenia
obciążenia
na być
podstawie
wagz zaproblemem m
bezpieczeniem transmisji poprzez
SSL
lub
TLS
(zwłaszcza
wielosesyjne
jak
http,
https).
W
trakcie
negobyć protokoły z zabezpieczeniem transmisji poprzez SSL lub TLS (zw
cjowania połączenia klient otrzymuje
od serwera
wykorzystuje
do zaszyfrowania
wielosesyjne
jak klucz
http, publiczny,
https). W który
trakcie
negocjowania
połączenia klient otrzym
symetrycznego klucza sesji. Zaszyfrowany
kluczem
publicznym
symetryczny
klucz
sesji
jest wysyłany
serwera klucz publiczny, który wykorzystuje do zaszyfrowania
symetrycznego
do serwera, który za pomocą klucza
prywatnego
dokonuje
deszyfracji
symetrycznego
klucza
sesji.sesji
Dal-jest wysył
sesji. Zaszyfrowany kluczem publicznym symetryczny klucz
sza komunikacja pomiędzy klientem
i serwerem
szyfrowana
pomocą symetrycznego
klucza sesji,
serwera,
który zajest
pomocą
kluczaza
prywatnego
dokonuje deszyfracji
symetrycznego
który „zna” klient i serwer- jeden
z serwerów
klastrze NLB.
Gdyby sesja
została
przeniesiona
inny
sesji.
Dalsza w
komunikacja
pomiędzy
klientem
i serwerem
jestnaszyfrowana
za p
serwer w klastrze NLB, który nie
posiada aktualnego
sesjii nastąpiłoby
zerwanie
symetrycznego
kluczaklucza
sesji, symetrycznego
który „zna” klient
serwer- jeden
z serwerów w k
sesji. Przed takimi zdarzeniami zabezpiecza
Affinity:
serwerna
w inny
klastrze
NLBwzapamiętuje
IP który nie p
NLB. Gdybymechanizm
sesja została
przeniesiona
serwer
klastrze NLB,
aktualnego
sesji nastąpiłoby
zerwanie
sesji. Przed
klienta, który z nim nawiązał połączenie
(IP klucza
klienta –symetrycznego
w domyślnym ustawieniu
Single Host,
a w szczezdarzeniami
zabezpiecza
mechanizm
Affinity:
w klastrze
NLB zapamię
gólnej konfiguracji pierwsze trzy
bajty adresu
IPv4 - Klasy
C, stosowanej
gdy serwer
obsługujemy
klientów
klienta, który z nim nawiązał połączenie (IP klienta – w domyślnym ustawieniu
Host, a w szczególnej konfiguracji pierwsze trzy bajty adresu IPv4 - Klasy C, stos
gdy obsługujemy klientów łączących się zza Array Proxy) i deklaruje dla niego na
koszt przyjęcia połączenia (0). W takim przypadku sesja zostanie przeniesiona n
serwer w klastrze NLB wyłącznie w przypadku awarii serwera dotychczas obsługu
110
Bazy Danych i Business Intelligence
Mechanizmy zapewnienia wysokiej dostępności aplikacji
wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL
łączących się zza Array Proxy) i deklaruje dla niego najniższy koszt przyjęcia połączenia (0). W takim
przypadku sesja zostanie przeniesiona na inny serwer w klastrze NLB wyłącznie w przypadku awarii
serwera dotychczas obsługującego połączenie. Implementacja NLB monitoruje na serwerach Windows
pracę usługi WLBS, która weryfikuje dostępność hosta w klastrze NLB, ale nie monitoruje pracy usług.
Niezależnymi mechanizmami, należy również zapewnić spójność zawartości witryn i ustawień aplikacji. Z klastra NLB mogą korzystać aplikacje korzystające wyłącznie z protokołów TCP i UDP. Inne
protokoły nie mogą korzystać z NLB, np. niestosowane już od bardzo dawna w nowych aplikacjach
NetBT, to jednak z powodu zaszłości historycznych spotykany w wielu firmach (był cenny w czasach,
gdy używano w sieciach różnych protokołów IPX/SPX, NetBEUI, Appletalk, a protokół TCPIP jeszcze
nie pozwolił na stworzenie globalnego i powszechnie dostępnego internetu, ponieważ uniezależniał
aplikacje klient-serwer od podanych przykładów protokołów transportowych, wystarczyło użycie do7
datkowej warstwy NETBIOS).
Rys.9. Równoważenie
ładowania aplikacji
Rys.9. Równoważenie
ładowania aplikacji
Na rynku
dostępne są rozwiązania
Aplication
Load(ALB)
Balancing
(ALB)wstosowane
w celu
Na rynku dostępne
są rozwiązania
Aplication Load
Balancing
stosowane
celu rozłożeobciążenia
i obsługę
awarii
serwerów
warstwyrozwiązań
aplikacji. polega
Działanie
rozwiązań
nia obciążenia irozłożenia
obsługę awarii
serwerów
warstwy
aplikacji.
Działanie
zwykle
na
polega zwykle na odpytywaniu usługi z listy serwerów w klastrze aplikacyjnym i
odpytywaniu usługi z listy serwerów w klastrze aplikacyjnym i sortowanie tej listy według rosnących
sortowanie tej listy według rosnących czasów odpowiedzi. „Na górze” listy jest więc
czasów odpowiedzi. „Na górze” listy jest więc serwer, który najszybciej odpowiedział, więc najprawdoserwer, który najszybciej odpowiedział, więc najprawdopodobniej jest najmniej
podobniej jest najmniej obciążony w stosunku do posiadanych zasobów. Jest to stosunkowo efektywne
obciążony w stosunku do posiadanych zasobów. Jest to stosunkowo efektywne
rozwiązanie, które
w przeciwieństwie
do NLB monitoruje
pracę monitoruje
usługi (jeślipracę
usługausługi
z serwera
od- z
rozwiązanie,
które w przeciwieństwie
do NLB
(jeślinie
usługa
powiedziała, to nie
ma go
liście serwerówtodonie
odpytania
dlaliście
warstwy
prezentacji,
pojawi się,
na
serwera
nienaodpowiedziała,
ma go na
serwerów
do odpytania
dlagdy
warstwy
kolejne zapytanie
usługa odpowie
zdefiniowanym
przedziale
czasu.usługa odpowie w zdefiniowanym
prezentacji,
pojawiw się,
gdy na kolejne
zapytanie
przedziale czasu.
Rys. 10. Sprzętowe równoważenie obciążenia HLB
Oprócz rozwiązań softwarowych jest dostępnych na rynku wiele rozwiązań sprzętowych
Hardware Load Balancing (HLB), które pozwalają zarówno na wykorzystanie
serwer, który najszybciej odpowiedział, więc najprawdopodobniej jest najmniej
obciążony w stosunku do posiadanych zasobów. Jest to stosunkowo efektywne
rozwiązanie, które w przeciwieństwie do NLB monitoruje pracę usługi (jeśli usługa z
Mechanizmy zapewnienia wysokiej dostępności aplikacji
serwera nie zodpowiedziała,
to nie
ma goSQL
na liście serwerów
odpytania
dla warstwy
wielowarstwowych korzystających
relacyjnych baz danych
Microsoft
Bazy Danychdo
i Business
Intelligence
111
prezentacji, pojawi się, gdy na kolejne zapytanie usługa odpowie w zdefiniowanym
przedziale czasu.
Rys. 10. Sprzętowe
równoważenie
obciążenia obciążenia
HLB
Rys. 10. Sprzętowe
równoważenie
HLB
Oprócz rozwiązań softwarowych jest dostępnych na rynku wiele rozwiązań sprzętowych
Oprócz rozwiązań softwarowych jest dostępnych na rynku wiele rozwiązań sprzętowych Hardware
Hardware Load Balancing (HLB), które pozwalają zarówno na wykorzystanie
Load Balancing (HLB), które pozwalają zarówno na wykorzystanie mechanizmów NLB jak ALB zamechanizmów NLB jak ALB zależnie od wybranego modelu urządzenia. Rozwiązanie
leżnie od wybranego
modelu
urządzenia.
Rozwiązanie
sprzętowe
pozwalają
na użycie
równoważenia
sprzętowe
na użycie
równoważenia
obciążenia
usług
dla aplikacji,
które nie
8 pozwalają
obciążenia usługobsługują
dla aplikacji,
które
nie
obsługują
NLB
np.
pula
enterprise
serwerów
FrontEnd
NLB np. pula enterprise serwerów FrontEnd Office CommunicationOffice
Server,
8
Communicationalbo
Server,
albo
Lync2010
(Lync
2010 obsługuje
dla protokołu
ale nie HTTPS).
Lync
(Lync
obsługuje
DNSLBDNSLB
dla protokołu
SIP, ale SIP,
nie HTTPS).
W warstwach prezentacji i aplikacyjnej
rzadziej
stosuje się
usługi klastrowe
cluster
services
(CS), klastrowe
W warstwach
prezentacji
i aplikacyjnej
rzadziej
stosuje
się usługi
W rozwiązaniach
warstwach
prezentacji
i
aplikacyjnej
rzadziej
stosuje
się
usługi
klastrowe
ponieważ w wielu
są
to
klastry
niezawodnościowe
failover
pracujące
w
modelu
sharedcluster services (cS), ponieważ w wielu rozwiązaniach są to klastry niezawodnościowe
services
(cS),wponieważ
ww
wielu
rozwiązaniach
sąjednym
to klastry
niezawodnościowe
nothing,cluster
gdzie grupa
zasobów
tym
klastrowana
usługa
pracuje na
węźle
klastra.
W razie
jegoklastrowana
failover
pracujące
modelu
shared-nothing,
gdzie
grupa
zasobów
w tym
failover
pracujące
w
modelu
shared-nothing,
gdzie
grupa
zasobów
w
tym
klastrowana
awarii jest
przenoszona
na
inny
węzeł
klastra,
podobnie
jak
NLB
w
trybie
single
host.
Usługi
klastrowe
usługa pracuje na jednym węźle klastra. W razie jego awarii jest przenoszona na inny
usługaczęściej
pracuje stosuje
na
jednym
klastra. jak
W NLB
razie jego
awarii
jest host.
przenoszona
na inny
zdecydowanie
się
dowęźle
zapewnienia
wysokiej
dostępności
warstwy
bazodanowej,
o czym
węzeł
klastra,
podobnie
w trybie
single
Usługi klastrowe
zdecydowanie
węzeł
klastra,
podobnie
jak
NLB
w
trybie
single
host.
Usługi
klastrowe
zdecydowanie
później. W rozwiązaniachczęściej
wysokiej
dostępności
stosuje się wirtualizację.
stosuje
się do zapewnienia
wysokiej dostępności warstwy bazodanowej, o czym
częściej stosuje się
do zapewnienia
wysokiej
dostępności
warstwy
bazodanowej,
o czym
później.
W rozwiązaniach
wysokiej
dostępności
stosuje
się wirtualizację
później. W rozwiązaniach wysokiej dostępności stosuje się wirtualizację
.
.
Rys. 11. Wirtualizacja
Rys. 11. Wirtualizacja
Rys. 11. Wirtualizacja
Wirtualna
usługa
lub cała
wirtualna
maszyna
pracuje hypervizora,
na jednym z serwerów
Wirtualna
usługausługa
lub cała
wirtualna
maszyna
pracuje
na jednym
z serwerów
w przypad-hypervizora
Wirtualna
lub
cała wirtualna
maszyna
pracuje
na jednym
z serwerów
hypervizora,
w
przypadku
jego
awarii
lub
przeciążenia
wirtualna
maszyna
lub
wirtualna
ku jego awarii
lub przeciążenia
wirtualna
maszyna lub
wirtualnamaszyna
usługa jest
przenoszona
na inny
serwer usługa jes
w przypadku
jego
awarii
lub
przeciążenia
wirtualna
lub
wirtualna
usługa
jest
przenoszona na inny serwer hypervizora. Dostępne są rozwiązania pozwalające na
hypervizora.
Dostępnena
są inny
rozwiązania
naDostępne
przeniesienie
wirtualnej usługi
lub maszyny
przenoszona
serwer pozwalające
hypervizora.
są rozwiązania
na bez
przeniesienie
wirtualnej
usługi
lub maszyny
bez jej pozwalające
restartu – Live
Migration. Do
jej restartu
– Live Migration.
Do dominujących
na rynkubez
rozwiązań
można
VMware.Do
Microprzeniesienie
wirtualnej
usługinalub
maszyny
jej restartu
– zaliczyć:
Live
Migration.
dominujących
rynku
rozwiązań można
zaliczyć:
VMware.
Microsoft Hyper-V, Citrix
soft Hyper-V,
Citrix XenServer.
dominujących
naXenServer.
rynku rozwiązań można zaliczyć: VMware. Microsoft Hyper-V, Citrix
XenServer.
Rys. 12. Chmura obliczeniowa
Rys. 12. Chmura obliczeniowa
Rys. 12. Chmuraobciążenia
obliczeniowa
Do zrównoważenia
oraz zapewnienia wysokiej dostępności coraz
Do zrównoważenia
obciążenia
oraz
zapewnienia
wysokiej
dostępności
częściej wykorzystuje się usługi
w chmurze
obliczeniowej
cloudcoraz
computing, będące
częściej wykorzystuje
się usługi
w chmurzeDo
obliczeniowej
cloudnależą
computing,
będąceCloud computing
rozwinięciem
wirtualizacji.
bardziej znanych
rozwiązania
rozwinięciem wirtualizacji.
Do bardziej
znanych
należą rozwiązania
firm: Amazon,
Rackspace,
Salesforce,
Microsoft, Cloud
IBM, computing
Google. Wykorzystywana
firm: Amazon, chmura
Rackspace,
Salesforce,
IBM,
Google. na
Wykorzystywana
obliczeniowa
możeMicrosoft,
być prywatna,
zbudowana
sprzęcie będącym w posiadaniu
chmura obliczeniowa
być prywatna, zbudowana
na sprzęcie
będącym w
firmymoże
lub wydzierżawionym
albo publiczna,
korzystająca
zeposiadaniu
sprzętu dostawcy chmury
112
Bazy Danych i Business Intelligence
Mechanizmy zapewnienia wysokiej dostępności aplikacji
wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL
Do zrównoważenia obciążenia oraz zapewnienia wysokiej dostępności coraz częściej wykorzystuje się usługi
w chmurze obliczeniowej Cloud Computing, będące rozwinięciem wirtualizacji. Do bardziej znanych należą
rozwiązania Cloud computing firm: Amazon, Rackspace, Salesforce, Microsoft, IBM, Google. Wykorzystywana chmura obliczeniowa może być prywatna, zbudowana na sprzęcie będącym w posiadaniu firmy lub wydzierżawionym albo publiczna, korzystająca ze sprzętu dostawcy chmury obliczeniowej. Planując użycie chmury
do równoważenia obciążenia i zapewnienia wysokiej dostępności usług, szczególnie w modelu hybrydowym,
9
gdzie szczytowe i zasobożerne obliczenia wykonywane są w chmurze publicznej (np. przeliczanie grup miar),
a dane słownikowe (np. hierarchie9 wymiarów) na serwerach firmowych, należy uwzględnić wyeliminowanie
pojedynczych punktów awarii połączenia do internetu oraz jego odpowiednią przepustowość.
3. Wysoka dostępność warstwy bazodanowej
warstwy składowania
danych
jest krytyczna dla
3. Wysoka dostępność warstwy
3. Dostępność
Wysokabazodanowej
dostępność
warstwy
bazodanowej
działania a
biznesowych. Omówione wcześniej rozwiązania zapewnienia wysokiej dost
Dostępność warstwy składowania danych
jest krytyczna
działania aplikacji
Dostępność
warstwydla
składowania
danych biznesowych.
jest krytycznaOmódla działania a
warstw prezentacji i aplikacji zwykle nie mają zastosowania dla warstwy bazod
wione wcześniej rozwiązania zapewnienia
wysokiej
dostępności
warstw
prezentacji zapewnienia
i aplikacji zwykle
biznesowych.
Omówione
wcześniej
rozwiązania
wysokiej dost
ze względu na konieczność zapewnienia spójności danych, której utrzymanie
nie mają zastosowania dla warstwy
bazodanowej,
względuzwykle
na konieczność
zapewnienia spójności
warstw
prezentacji izeaplikacji
nie mają zastosowania
dla warstwy bazod
klastrze NLB w wielu przypadkach może być bardziej kosztowne od korzyśc
zeklastrze
względu
na wkonieczność
zapewnienia
spójności
danych,
którejodutrzymanie
danych, której utrzymanie np. wkażde
NLB
wielu
przypadkach
może
być
bardziej
kosztowne
wdrożenie należy rozpatrywać indywidualnie. Umieszczenia
baz dan
klastrze
NLB w wielu
przypadkach Umieszczenia
może być bardziej
kosztowne
korzyśc
korzyści, choć każde wdrożenieserwerach
należy rozpatrywać
indywidualnie.
danych
ser-od ma
aplikacyjnych
pracujących w klastrzebazNLB
lubnaALB
naj
każde
wdrożenie
należy
rozpatrywać
indywidualnie.
Umieszczenia
baz dan
werach aplikacyjnych pracujących
w
klastrze
NLB
lub
ALB
ma
najczęściej
zastosowanie,
gdy
bazy
są
zastosowanie, gdy bazy są w trybie do odczytu, zasilane z serwera cent
serwerach
aplikacyjnych
pracującychlokalny
w klastrze
lub ALB ma naj
w trybie do odczytu, zasilane zalternatywą
serwera centralnego,
alternatywą
serwer, NLB
na są
którym
jest lokalny
serwer, najest
którym zapisywane
dane zapipochodzące z
zastosowanie,
gdy bazya następnie
są w trybie
do odczytu,
zasilane
z serwera cent
sywane są dane pochodzące z aplikacyjnego,
serwera aplikacyjnego,
replikowane
z centralną
składnicą
a następnie replikowane
z centralną
składnicą
danych. Wadą
alternatywą
jestopóźnienia
lokalny serwer,
na którym baz
zapisywane
są zdane
pochodzące z
danych. Wadą takiego rozwiązania
mogą być
w synchronizacji
lokalnych
centralną
rozwiązania
mogą być opóźnienia
w synchronizacji
baz lokalnych
z centralną sk
aplikacyjnego, a następniesą replikowane
z centralną składnicą
danych. Wadą
składnicą danych, jednak ze względów
stosowane.
Alternatywnym
danych, wydajnościowych
jednak ze względów
wydajnościowych
sąrozwiązaniem
stosowane. Alternat
rozwiązania
być zapewnia
opóźnieniausługa
w synchronizacji
baz lokalnych
z centralną sk
jest użycie transakcji rozproszonych,
którychmogą
spójność
Microsoft Distributed
Transrozwiązaniem
jest użycie
transakcji rozproszonych,
których spójność
zapewnia
danych,
jednak rozważyć
ze względów
są wydłużenia
stosowane. Alterna
action Coordinator (MsDTC).Microsoft
Należy jednak
efekt w wydajnościowych
postaci
potencjalnego
distributed transaction
coordinator
(Msdtc).
Należy jednak ro
rozwiązaniem
jest co
użycie
rozproszonych,
których spójność zapewnia
czasu trwania transakcji, zwiększoną
blokad,
możetransakcji
prowadzić
do spadku
efekt ilość
w postaci
potencjalnego
wydłużenia
czasuwydajności.
trwania transakcji, zwiększon
Microsoft distributed transaction coordinator (Msdtc). Należy jednak ro
blokad, co może prowadzić do spadku wydajności.
efekt w postaci potencjalnego wydłużenia czasu trwania transakcji, zwiększon
blokad, co może prowadzić do spadku wydajności.
Koordynator
tranzakcji
rozproszonychMicrosoft
Rys.13.Rys.13.
Koordynator
tranzakcji
rozproszonychMicrosoft
Rys.13. Koordynator tranzakcji rozproszonychMicrosoft
Jest dostępna wersja Microsoft SQL Azure, który jest składnicą danych przechow
Jest dostępna wersja Microsoft SQL Azure, który jest składnicą danych przechowywaną w chmurze.
w chmurze. W wielu rozwiązaniach może to być dobry wybór zapewniający
W wielu rozwiązaniach może toJest
byćdostępna
dobry wybór
wysoką
dostępność,
gdy przechow
wersjazapewniający
Microsoft SQL
Azure,
który jestszczególnie,
składnicą danych
dostępność, szczególnie, gdy warstwa aplikacji i prezentacje są umieszczone w c
warstwa aplikacji i prezentacje są
chmurze.
w umieszczone
chmurze. Wwwielu
rozwiązaniach może to być dobry wybór zapewniający
dostępność, szczególnie, gdy warstwa aplikacji i prezentacje są umieszczone w c
Rys.14. SQL Azure
Rys.14. SQL
AzureSQL Azure
Rys.14.
Należy jednak
pamiętać, że nie jest to silnik Microsoft SQL 2012 uruchom
chmurze, tylko niezależny produkt i przeniesienie składnicy danych ze „zw
Należy jednak pamiętać, że nie jest to silnik Microsoft SQL 2012 uruchom
Microsoft SQL Server do SQL Azure może wymagać istotnych zmian zarówno
chmurze, tylko niezależny produkt i przeniesienie składnicy danych ze „zw
danych jak i aplikacji, która z tej bazy korzysta.
Microsoft SQL Server do SQL Azure może wymagać istotnych zmian zarówno
danych jak i aplikacji, która z tej bazy korzysta.
Mechanizmy zapewnienia wysokiej dostępności aplikacji
wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL
Bazy Danych i Business Intelligence
113
Należy jednak pamiętać, że nie jest to silnik Microsoft SQL 2012 uruchomiony w chmurze, tylko nie10
10
zależny produkt i przeniesienie składnicy danych ze „zwykłego” Microsoft SQL Server do SQL Azure
może wymagać istotnych zmian zarówno w bazie danych jak i aplikacji, która z tej bazy korzysta.
Jednym z bardziej znanych
sposobów
zapewnienia
dostępności
bazy
danych
jest
instalacja
Microsoft
Jednym
z bardziej
znanych
sposobów
dostępności
bazy
danych
jest ba
Jednym
z bardziejzapewnienia
znanych
sposobów
zapewnienia
dostępności
instalacjaklastrowych
Microsoftinstalacja
Serwer
na usługach
klastrowych
- Microsoft
clustering
Microsoft
SQL
Serwer
na usługach
klastrowych
- Micros
SQL Serwer na usługach
-SQL
Microsoft
Clustering
Services
(MSCS).
Services (MScS). Services (MScS).
Rys.15. SQL na Rys.15.
usłudze
klastrowej
Rys.15.
SQL
na usłudze
klastrowej
SQL
na usłudze
klastrowej
W klasycznym rozwiązaniu
klastrowym
pomiędzy
węzłami klastra
jestwęzłami
współdzielona
W klasycznym
rozwiązaniu
pomiędzy
W klasycznym rozwiązaniu klastrowym
pomiędzy węzłami
klastraklastrowym
jest współdzielona
magistrala,
doklastra jest
magistrala, do którejmagistrala,
podpięte do
są składnice
danych.są Najczęściej
wykorzystywane
której podpięte
składnice danych.
Najczęściejsą wyko
której podpięte są składnice danych. Najczęściej wykorzystywane są technologie Fibre Chanel i iSCSI.
technologie Fibre Chanel
i iSCSI.
Bazy
danych
i logiBazy
transakcyjne
się na
technologie
Fibre
Chanel
i iSCSI.
danych iznajdują
logi transakcyjne
z
Bazy danych i logi transakcyjne znajdują się na macierzach na magistrali współdzielonej.
macierzach na magistrali
współdzielonej.
macierzach
na magistrali współdzielonej.
Rys.16. Baza na magistrali
klastra
Rys.16.współdzielonej
Baza na magistrali
współdzielonej klastra
Rys.16. Baza na magistrali współdzielonej klastra
W przypadku awariiW
węzła
klastra,awarii
na którym
SQL pracuje
Server (iusługa
inne usługi
przypadku
węzłapracuje
klastra,usługa
na którym
SQL Serve
W przypadku awarii
węzła
klastra, na
którym pracuje usługa
SQL
Server
(i innewęźle
usługi klastra.
SQL), wPrzy
wyni-starcie
SQL),
w wyniku
failover
usług
na innym
SQL), następuje
w wynikurestart
failover
następuje
restart usług
na innym węźle
klastr
ku failover następuje
restart
usług
na
innym
węźle
klastra.
Przy
starcie
bazy
i
logi
są
montowane
z
dysku
bazy i logi są montowane
dysku
współdzielonego.
Wwspółdzielonego.
trakcie startu następuje
naprawa
bazy izlogi
są montowane
z dysku
W trakcie
startu nas
współdzielonego. W
trakcie
startu następuje
bazy.
Po failover
SQL jest
dostępna
bazy.
Po failover
instancja
SQL
jest
dostępna
pod
tąinstancja
samądostępna
nazwą
ipod
tym
adresem
bazy.naprawa
Po
failover
instancja
SQL
jest
tąsamym
samą pod
nazwą
i tym s
tą samą nazwą i tym
samym
adresem
IP.
Jednak
czas
przełączenia
po
failover,
zależny
od
czasu
startu
IP. Jednak czas przełączenia
poczas
failover,
zależny po
od failover,
czasu startu
usługi,
tym startu
naprawy
IP. Jednak
przełączenia
zależny
od wczasu
usługi, w
usługi, w tym naprawy
baz danych.
baz danych.
baz danych.
W przypadku użycia mirroringu
baz użycia
czasyWprzełączenia
przypadku
awarii liczone
są wprzełączenia
milise-awariiw prz
W przypadku
mirroringu
baz
czasy
przełączenia
przypadku
przypadku wużycia
mirroringu
baz w
czasy
kundach. W przeciwieństwie
do
usług
klastrowych
mirrorowana
nie
jest
cała
instancja,
a
jedynie
liczone są w milisekundach.
klastrowychdomirrorowana
nie
liczone sąWwprzeciwieństwie
milisekundach. do
W usług
przeciwieństwie
usługbaza
klastrowych
m
użytkowników. Niezależnie
należy
zapewnić
spójność
informacji
przechowywanych
w
bazie
master
jest cała instancja, a jest
jedynie
użytkowników.
Niezależnie
należy zapewnić
spójność
cała baza
instancja,
a jedynie baza
użytkowników.
Niezależnie
należy zap
np. loginów. Przy zastosowaniu
mirroringu
w trybie
synchronicznym
można
użyć
dodatkowego
serwera
informacji przechowywanych
wprzechowywanych
bazie
master np. loginów.
Przy
zastosowaniu
mirroringu
informacji
w bazie
master
np. loginów.
Przy zastosowa
świadka (Witness Server)
monitorującego
pracy
baz
i wdodatkowego
razie awarii
przełączającego
w trybie
synchronicznym
można
użyć
serwera
świadka
(Witness
w stan
trybie
synchronicznym
możnaautomatycznie
użyć dodatkowego
serweraServer)
świadka (W
monitorującego
pracy
baz i wdorazie
awarii
automatycznie
przełączającego
bazy.
Po
bazy. Po failover następuje
zmianastan
nazwy
instancji
której
łączybaz
sięi aplikacja.
Zapewnia
to Native
monitorującego
stan
pracy
w razie awarii
automatycznie
przełączaj
failoverstring
następuje
zmiana
nazwy
doi awaryjnego
której łączy
się do
aplikacja.
Zapewnia
to
failover
następuje
zmiana
nazwy
instancji
której łączy
się aplikacja
Client, gdy w connection
podamy
połączenie
doinstancji
głównego
serwera
np.
Native Client, gdy wNative
connection
połączenie
głównego
i awaryjnego
Client,string
gdy wpodamy
connection
string do
podamy
połączenie
do głównego
serwera
np.
serwera
np.
Data Source=myServerAddress;
Data Source=myServerAddress;
Data Source=myServerAddress;
Failover Partner=myMirrorServerAddress;
Failover
Partner=myMirrorServerAddress;
Failover Partner=myMirrorServerAddress;
Initial Catalog=myDataBase;Integrated Security=True;
Initial Catalog=myDataBase;Integrated
Security=True;
Initial Catalog=myDataBase;Integrated
Security=True;
114
Bazy Danych i Business Intelligence
11
11
Mechanizmy zapewnienia wysokiej dostępności aplikacji
wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL
Rys.17. Mirroring
Rys.17. Mirroring
Rys.17. Mirroring
W mirroringu transakcje zachodzą w bazie principal i są replikowane do
W mirroringu
transakcje
zachodzą
w bazie
principal
i są replikowane
do bazy
danych
ma więc
swoją pełną
kopię
namirror.
drugim
serwerze,
W mirroringu transakcje zachodzą Baza
w bazie
principal
i są replikowane
do
bazy
Baza
danychczyli należy
Baza danych
ma
więc
swoją
pełną
kopię
na
drugim
serwerze,
czyli
należy
prze
macierze
dyskowe.
Mirroringdwie
może
pracować
w trybie
ma więc swoją pełną kopię na drugimdwie
serwerze,
czyli należy
przewidzieć
macierze
dyskowe.
Mir- asynchron
dwie macierze
Mirroring
może pracować
w trybie aasynchroniczny
transakcja dyskowe.
jestgdy
zamykana
natychmiast
w bazie
principal,
zmiany są re
roring może pracować w trybietransakcja
asynchronicznym,
transakcja
jest w
zamykana
natychmiast
w bazie
jest
zamykana
natychmiast
bazie
principal,
a zmiany
są replikow
bazy
mirror.
Użycie
trybu
asynchronicznego,
który
choć
jest
szybszy,
może
principal, a zmiany są replikowane
do
bazy
mirror.
Użycie
trybu
asynchronicznego,
który
choć
jest
bazy mirror.
Użycie
trybu
asynchronicznego,
który
choć
jest
szybszy,
może
dopro
wawarii
razie awarii
do utraty
części
transakcji
w bazie
mirror,
które
zostały zamk
szybszy, może doprowadzić wwrazie
części
transakcji
w bazie
bazie
mirror,
którezostały
zostały
razieprincipal.
awariido
do utraty
utraty
części
transakcji
w
mirror,
które
zamknięte
Ponadto
w
trybie
asynchronicznym
zachodzi
zamknięte w bazie principal. Ponadto
w trybie
asynchronicznym
zachodzi
konieczność
ręcznegokonieczność
prze- konieczno
principal.
Ponadto
w
trybie
asynchronicznym
zachodzi
przełączenie
w pracy
razie transakcja
awarii. Przy
synchronicznym
trybie
pracy transarę
łączenie w razie awarii. Przy synchronicznym
trybie
w
bazie
principal
jest
zamykana
przełączenie
w jest
raziezamykana
awarii. Przy
synchronicznym
trybie pracy transakcja
principal
po zreplikowaniu
logu do sew
po zreplikowaniu skompresowanego
logu
do serwera
z bazą
mirror
(od wersji
SQLskompresowanego
2008, w SQL
2005
principal
jest
zamykana
po
zreplikowaniu
skompresowanego
logu
do
serwera
mirror (od wersji SQL 2008, w SQL 2005 dopiero po zamknięciu
trans
dopiero po zamknięciu transakcji
w
bazie
mirror,
ponadto
transmitowany
log
nie
był
kompresowany).
mirrormirror,
(od wersji
SQLtransmitowany
2008, w SQL log
2005niedopiero
po zamknięciu W
transakcji
ponadto
był kompresowany).
przypadkw
W przypadku mirroringu (SQL mirror,
2008/2008R2/2012
Enterprice Edition)
podniesiona również
odponadto
transmitowany
log niezostała
byłEdition)
kompresowany).
W przypadku
mir
(SQL
2008/2008R2/2012
Enterprice
została podniesiona
również
porność na uszkodzenie stron danych.
Wykryta
uszkodzona
strona
danych
w
bazie
principal
jest
auto(SQL uszkodzenie
2008/2008R2/2012
Enterprice
Edition)uszkodzona
została podniesiona
również
odpor
stron danych.
Wykryta
strona danych
w bazie
matycznie naprawiana poprzezuszkodzenie
skopiowanie
z
bazy
mirror,
a
uszkodzona
strona
danych
w
bazie
mirstron
danych.
Wykryta
uszkodzona
strona
danych
w
bazie
automatycznie naprawiana poprzez skopiowanie z bazy mirror, a princi
uszko
automatycznie
naprawiana
poprzez
z problem
bazy mirror,
a principal.
uszkodzona
ror naprawiana poprzez skopiowanie
z bazy principal.
Mechanizm
tenskopiowanie
minimalizuje
związany
danych
w bazie
mirror
naprawiana
poprzez skopiowanie
z bazy
M
danych
w bazie mirror
naprawiana
poprzez
skopiowanie
z bazy
principal. Mechan
z czasochłonnym naprawianiem
uszkodzonych
stron
danychzwiązany
poprzez
odzyskiwanie
bazy
z backupu,
minimalizuje
problem
z czasochłonnym
naprawianiem
uszkod
problem
związany
z baza
czasochłonnym
naprawianiem
w czasie którego grupa plików zminimalizuje
uszkodzoną
danych
lub cała
jest niedostępna
produkcyjnie.
danych stroną
poprzez
odzyskiwanie
bazy
z backupu,
w czasie uszkodzonyc
którego gru
poprzezbaza
odzyskiwanie
bazy
z backupu,
czasie którego
grupa plW
W mirroringu biorą udział dwiedanych
bazy, uszkodzoną
z których
mirror
nie jest
dostępna
dla użytkowników
wprost.
stroną
danych
lub
cała
baza
jestwniedostępna
produkcyjnie.
uszkodzoną
stroną
danych
lub
cała
baza
jest
niedostępna
produkcyjnie.
Istnieje możliwość wykonania na bazie
mirror
snapshotu,
który zjestktórych
dostępny
produkcyjnie
trybie
do Wdlamir
biorą
udział
dwie bazy,
baza
mirror niewjest
dostępna
u
biorą
udział
bazy,
z których
baza mirror
nie jest
dostępna
dla użytkow
odczytu i może być wykorzystany
do wprost.
robieniadwie
raportów.
Istnieje
możliwość
wykonania
na bazie
mirror
snapshotu,
który
Istnieje
bazie
mirror
snapshotu,
który jestrapo
d
Mechanizmem znanym już wwprost.
SQLprodukcyjnie
2000
był możliwość
logwshipping.
primary
mabyć
wprowadzony
backup
trybie wykonania
do Baza
odczytu
ina
może
wykorzystany
do robienia
wbazach
trybie do
odczytu
i może
robienia
raportów.
logów transakcyjnych, które są produkcyjnie
odtwarzane naMechanizmem
secondary.
znanym
jużbyć
w wykorzystany
SQL 2000 byłdolog
shipping.
Baza
Mechanizmem
znanym
już
w
SQL
2000
był
log
shipping.
Baza
prim
wprowadzony backup logów transakcyjnych, które są odtwarzane na baza
wprowadzony backup logów transakcyjnych, które są odtwarzane na bazach sec
Rys.18.
Log Log
shipping
Rys.18.
shipping
Rys.18. Log
shipping
Baz secondary może być kilka. Opóźnienia w odtworzeniu transakcji w bazach secondary mogą być
liczone w minutach w stosunku do bazy primary. W log shippingu brak mechanizmu automatycznego
przełączenia bazy i przełączenie w razie awarii musi być wykonywane ręcznie. Bazy secondary w czasie odtwarzania logu są niedostępne produkcyjne, poza odtworzeniami mogą być dostępne w trybie do
mogąmoże
być być
liczone
minutach w odtworzeniu
stosunku dotransakcji
bazy primary.
W seconda
log sh
Baz secondary
kilka.wOpóźnienia
w bazach
mechanizmu
automatycznego
przełączenia
bazy
i
przełączenie
w
razie
mogą być liczone w minutach w stosunku do bazy primary. W log shippinguawa
br
wykonywane
ręcznie.
Bazy secondary
w czasie odtwarzania
logu
sąb
mechanizmu
automatycznego
przełączenia
bazy
i
przełączenie
w
razie
awarii
musi
Mechanizmy zapewnienia wysokiej dostępności aplikacji
produkcyjne,
poza SQL
odtworzeniami
mogą i być
dostępne
w trybie
do odczy
Bazy
secondary Bazy
w Danych
czasie
odtwarzania
logu
są niedostęp
wielowarstwowych korzystającychwykonywane
z relacyjnych
bazręcznie.
danych Microsoft
Business
Intelligence
115
rozpoczęciu
odtwarzania mogą
backupu
połączenia
są zrywane,
ponadto
zw
produkcyjne,
poza odtworzeniami
byćlogu
dostępne
w trybie
do odczytu,
ale pr
opóźnienia
bazbackupu
secondary
stosunku sądozrywane,
primaryponadto
wynikające
z ocz
rozpoczęciu
odtwarzania
loguwpołączenia
zwiększają
odczytu, ale przy rozpoczęciu
odtwarzania
logu w
połączenia
są do
zrywane,
ponadto
zwiększają
się
zamknięcia
połączeń
i przełączenia
bazy
przed
rozpoczęciem
odtwa
opóźnienia
bazbackupu
secondary
stosunku
primary
wynikające
z oczekiwania
opóźnienia baz secondary w
stosunkutransakcyjnego.
do
primary iwynikające
z oczekiwania
na zamknięcia
połączeń
zamknięcia
połączeń
przełączenia
bazy przed
rozpoczęciem
odtwarzania lo
i przełączenia bazy przed rozpoczęciem
odtwarzania
transakcyjnego.
Jeśli nie logu
chcemy
synchronizować całej bazy użytkownika można rozw
transakcyjnego.
Jeśli nie chcemy synchronizować
całej
bazy
użytkownika
możnacałej
rozważyć
użycie replikacji.
Przy
replikacji.
Przy
definiowaniu
publikacji
można
wybrać
obiekty
do replik
Jeśli
nie chcemy
synchronizować
bazy użytkownika
można
rozważyć
uży
definiowaniu publikacji można
wybrać
obiekty
do
replikacji,
ponadto
wybrane
tablice
(lub
widoki)
wybrane
tablice
(lub
widoki)
można
odfiltrować
zarówno
poziomo
jak
i
replikacji. Przy definiowaniu publikacji można wybrać obiekty do replikacji, ponad
można odfiltrować zarównowybrane
poziomotablice
jak
i
pionowo.
W
replikacji
bierze
udział:
publisher
–
serwer
na
replikacji
udział:
publisher
– serwer
na którym
jestjak
baza,
z której
(lubbierze
widoki)
można
odfiltrować
zarówno
poziomo
i pionowo.
którym jest baza, z której udostępniana
jest
publikację,
distributor
–
na
udostępniona
jest
publijest
publikację,
distributor
–
na
którym
udostępniona
jest
publikacja,
częs
replikacji bierze udział: publisher – serwer na którym jest baza, z której udostępnia
kacja, często jest na tej samej
co publisher
–udostępniona
który
pobierajest
publikację
do bazy.
samej
instancjioraz
co–subscriber
publisher
subscriber
– publikacja,
który pobiera
publikację
jestinstancji
publikację,
distributor
na którymoraz
często
jest na
wyboru
kilka sposobów
replikacji.– który pobiera publikację do bazy.
Do wyboru jest kilka sposobów
samejreplikacji.
instancji
cojest
publisher
oraz subscriber
wyboru jest kilka sposobów replikacji.
Rys.19. Typy replikacji
Rys.19. Typy Rys.19.
replikacji
Typy replikacji
Replikacja snapshot polega na wykonaniu kopii i załadowaniu
subskryberów.
poprzedzana
jestsubskryberów.
czyszczeniem
baz subskryberów.
Replikacja
snapshot
polega
na
wykonaniu
kopii i załadowaniu
Replikacja snapshot polega na wykonaniu
kopii
i Zwykle
załadowaniu
jej do
baz
Zwykle
po- jej do b
Replikacja
merge jest
pozwala
na dwustronną
replikację asynchroniczn
subskryberów.
Zwykle
poprzedzana
czyszczeniem
baz
subskryberów.
przedzana jest czyszczeniem baz subskryberów.
wykorzystana
synchronizacji
danych replikację
z SQL CEasynchroniczną.
zabezpieczonej protoko
Replikacja
mergedopozwala
na dwustronną
Może b
Replikacja merge pozwala na dwustronną replikację asynchroniczną. Może być wykorzystana do
Cechą
mergedanych
jest konieczność
do każdejprotokołem
replikowanej
tab
wykorzystana
do replikacji
synchronizacji
z SQL CEdodania
zabezpieczonej
HTTP
synchronizacji danych z SQL CE zabezpieczonej protokołem HTTPS. Cechą replikacji merge jest koz typem
danych
rowguid. Jestdodania
on wykorzystywany
do rozwiązywania
kon
Cechą replikacji
merge
jest konieczność
do każdej replikowanej
tablicy kolum
nieczność dodania do każdej replikowanej
z typemzmieniony
danych rowguid.
Jestsubscryberach,
on wykorzy- lub sub
wiersztablicy
zostałkolumny
jednocześnie
nadokilku
z typem danych
rowguid.
Jest on wykorzystywany
rozwiązywania
konfliktów, g
stywany do rozwiązywaniawiersz
konfliktów,
gdy
wiersz zostałzmieniony
jednocześnie
na kilku subscrybepublischerze.
został
jednocześnie
na zmieniony
kilku subscryberach,
lub subscryberach
rach, lub subscryberach i publischerze.
Replikacja transakcyjna jest replikacją synchroniczną, szczególni
publischerze.
Replikacja transakcyjna jest replikacją
synchroniczną,
szczególnie
efektywną,
gdy
chcemy
zmniej- zmiany
gdy chcemy
zmniejszyć
ilość
replikowanych
danych,
ponieważ
są
Replikacja
transakcyjna
jest
replikacją
synchroniczną,
szczególnie
efektyw
szyć ilość replikowanych danych,
ponieważ
zmiany
są
replikowane
na
podstawie
logu
transakcyjnego
na zmniejszyć
podstawie logu
gdy chcemy
ilośćtransakcyjnego
replikowanych danych, ponieważ zmiany są replikowa
Szczególnym przypadkiem
jest replikacja
Peerreplikacji
to Peer, wprowadzona
Mi-replikacja p
przypadkiem
transakcyjnej wjest
na replikacji
podstawietransakcyjnej
loguSzczególnym
transakcyjnego
crosoft SQL 2008. Pozwala ona naSzczególnym
transakcyjną,
synchroniczną
replikację
wielostronną,
replikowane
wprowadzona
w Microsoft
SQL 2008.
Pozwalajestona
na transakcyjną,
przypadkiem
replikacji
transakcyjnej
replikacja
peer to pes
mogą być nie tylko zmianywprowadzona
z bazy publishera,
ale
również
zmiany
z baz
subscryberów.
replikację
wielostronną,
replikowane
mogą
tylko zmiany
z bazy pu
w Microsoft
SQL
2008.
Pozwala
onabyć
nanie
transakcyjną,
synchronicz
również
zmiany
z
baz
subscryberów.
replikację wielostronną, replikowane mogą być nie tylko zmiany z bazy publishera,
również zmiany z baz subscryberów.
Rys.20.Replkacja
Rys.20.
Replkacjapeer
peerto
topeer
peer
Rys.20.Replkacja peer to peer
W Microsoft SQL 2012 wprowadzony kolejny mechanizm zapewnienia wysokiej dostępności always
-on. Technologia ta łączy zalety mirroringu, replikacji i MSCS, którego komponenty podobnie jak DAG
Exchange 2010 wykorzystuje do obsługi faiklover. W always-on Microsoft SQL 2012 definiowana jest
AlwaysOn Availability Group, w obrębie której jest podstawowa replika bazy primary replica w trybie zapisu i odczytu, oraz do czterech dodatkowych replik secondary replica, które mogą być udostępnione w trybie tylko do odczytu i backupowane. Jest obsługiwany zarówno automatyczny, jak manualny
planowany lub wymuszony failover. Usługa Availability group listeners pozwala na przekierowanie
żądania aplikacji w zależności od typu zapytania do primary replica, która jest w trybie zapisu lub secondary replica w trybie odczytu. Listener zapewnia również szybki failover w razie awarii poprzez
zamianę jednej z secondary replika w primary replika. Failover jest definiowana w failover policy.
group listeners pozwala na przekierowanie żądania aplikacji w zależności o
zapytania do primary replica, która jest w trybie zapisu lub secondary replica w
odczytu. Listener zapewnia również szybki failover w razie awarii poprzez z
Mechanizmy zapewnienia wysokiej dostępności aplikacji
jednej
z
secondary
replika
w primary
replika. baz
Failover
jest definiowana
w
wielowarstwowych
korzystających
z relacyjnych
danych Microsoft
SQL
Bazy
Danych
i
Business
Intelligence
116
policy.
Rys.21. Always-on
Rys.21. Always-on
Analogicznie do mirroringu następuje automatyczne detekcja i naprawa uszkodzonych stron danych.
Analogicznie do mirroringu następuje automatyczne detekcja i n
Replikacja pomiędzy primary auszkodzonych
secondary replika
i szyfrowanie.
Always-on
w sto- replika
stronwspiera
danych.kompresję
Replikacja
pomiędzy primary
a secondary
sunku do mirroringu wyróżnia się
dwoma
istotnymi
zaletami:
zamiast
jednej
bazy
mirror
można
kompresję i szyfrowanie. Always-on w stosunku do mirroringuużyć
wyróżnia się
od jednej do czterech secondaryistotnymi
replika, ponadto
te repliki
dostępne
w trybie
potrzeby
zaletami:
zamiastsajednej
bazy
mirrorodczytu
możnabez
użyć
od jednej do c
robienia snspshotu.
secondary replika, ponadto te repliki sa dostępne w trybie odczytu bez potrzeby
snspshotu.
4. Podsumowanie
Jest dostępny cały szereg mechanizmów pozwalających podnieść parametry wysokiej dostępności za4. podsumowanie
równo warstwy prezentacji i aplikacji jak i szczególnie nas interesującej warstwy bazodanowej. Wybór
Jest dostępny
szereg
mechanizmów
parametry w
odpowiedniego mechanizmu podyktowany
jestcały
zarówno
potrzebami
danegopozwalających
wdrożenia jak podnieść
i budżetem.
dostępności
zarówno
warstwy
prezentacji
i aplikacji
jak i szczególnie
Planując wysoką dostępność należy
zadać sobie
pytanie,
jakie będą
konsekwencje
niedostępności
apli- nas inter
warstwy
bazodanowej.
Wybór
odpowiedniego
mechanizmu
podyktowany
jest z
kacji. Istnieje wiele aplikacji, które przetwarzają dane w trybie asynchronicznym i niedostępność warpotrzebami
danego
wdrożenia
budżetem.
Planując
wysoką
dostępność należ
stwy bazodanowej owocuje przyrostem
długości
kolejek
czy tojak
w iMsMQ,
service
broker,
czy katalogu
sobie
pytanie,
jakie
będą
konsekwencje
niedostępności
aplikacji.
Istnieje wiele a
na dysku oraz późniejszym przetworzeniem zgromadzonych danych. W takich przypadkach niedostępktóre przetwarzają dane w trybie asynchronicznym i niedostępność w
ność warstwy bazodanowej jest akceptowalna przez czas niezbędny do odtworzenia serwera bazodanobazodanowej owocuje przyrostem długości kolejek czy to w MsMQ, service bro
wego, który uległ awarii i można uznać, że koszty wdrożenia wysokiej dostępności są wyższe od potenkatalogu na dysku oraz późniejszym przetworzeniem zgromadzonych danych. W
cjalnych strat wynikających z awarii pojedynczego serwera bazodanowego, zwłaszcza gdy nie grozi to
kompromitacją w oczach klienta. Jednak istnieje wiele systemów, w których brak dostępności składnicy
danych nawet przez krótki czas może spowodować nie tylko olbrzymie straty finansowe np. w wyniku
wstrzymania sprzedaży w internetowym kanale dystrybucji, ale co często istotniejsze kompromitację
w oczach klientów. Planując aplikacje biznesowe oprócz uwzględnienia mechanizmów wysokiej dostępności należy uwzględnić bezpieczeństwo danych. Mechanizmy wysokiej dostępności minimalizują
konsekwencje pojedynczej awarii sprzętowej, czy aplikacyjnej, nie zapobiegają jednak wszystkim błędom użytkownika, czy złośliwym atakom w tym wirusom, które mogą być przyczyna skasowania lub
podmiany danych. Należy więc rozważyć użycie dodatkowych mechanizmów kontrolnych takich jak
np. logowanie transakcji za pomocą wyzwalaczy, cdc czy audytu w tym C2. Dodatkowo należy pamiętać o ryzyku zagłodzeniu instancji SQL przez zasobożerne zapytanie. Problem ten można zminimalizować poprzez użycia Resorce Governor.
Innym problemem może być atak DDOS na warstwę prezentacji, który może doprowadzić do zablokowania usług poprzez przeciążenie zasobów. Masowy atak może być problemem nawet dla dużych
farm serwerów, teoretycznie można użyć cloud computing, dzięki czemu potrzebne zasoby do obsłużenia ogromnej liczby zapytań mogą zostać dynamicznie przydzielone, należy jednak pamiętać, że w tym
przypadku płacimy za zużytą moc obliczeniową, analogicznie jak płacimy wysoki rachunek za energię
Mechanizmy zapewnienia wysokiej dostępności aplikacji
wielowarstwowych korzystających z relacyjnych baz danych Microsoft SQL
Bazy Danych i Business Intelligence
117
elektryczną po długotrwałym używaniu silnika wysokiej mocy, czy elektrycznym ogrzewaniu. Przy
planowaniu rozwiązań o wysokiej dostępności należałoby uwzględnić detekcję takich ataków i ograniczenie przesyłania pakietów na ruterach brzegowych pochodzących od puli podejrzanych adresów IP.
Np. dla aplikacji, gdzie zwykle dominują zapytania z Polski przy niewielkim udziale zapytań z UE nagle
pojawiają się duże ilości pakietów z chińskich adresów IP. Planując wysoką dostępność aplikacji należy
wiec uwzględnić bardzo wiele czynników. Wybrane mechanizmy zostały zaprezentowane w niniejszej
pracy, które można uwzględnić przy projektowaniu nowych wdrożeń i modernizacji istniejących systemów.

Podobne dokumenty