Konsolidacja baz danych – moda czy konieczność?
Transkrypt
Konsolidacja baz danych – moda czy konieczność?
XIV Konferencja PLOUG Szczyrk Październik 2008 Konsolidacja baz danych – moda czy konieczność? Agnieszka Czuchryta Telekomunikacja Polska S.A. e-mail: [email protected] Abstrakt. Współcześnie wymagane jest od informatyków nie tylko administrowanie wysokodostępnymi systemami informatycznymi, ale również obniżanie kosztów utrzymania infrastruktury. „Wirtualizacja”, „Ekologiczna informatyka” - to wiodąca dzisiaj tematyka konferencji informatycznych i specjalistycznych artykułów. W referacie zostaje podjęta dyskusja na temat nie tyle, czy warto i dlaczego, ale przede wszystkim w jaki sposób konsolidować środowiska informatyczne. Czy konsolidacja ułatwia, czy utrudnia administrowanie bazami danych? Czy łatwo jest taką operację przeprowadzić? Swoimi doświadczeniami w tej dziedzinie dzielą się specjaliści baz danych z Telekomunikacji Polskiej S.A. Informacja o autorze. Autorka referatu pracuje na stanowisku Głównego Administratora w Telekomunikacji Polskiej S.A. Konsolidacja baz danych – moda czy konieczność? 101 1. Projekt C17 W Grupie France Telekom wśród wielu realizowanych projektów w 2007 roku rozpoczęto przedsięwzięcie konsolidacji infrastruktury. Program obejmuje również Telekomunikację Polską S.A. Podejście do zagadnienia konsolidacji infrastruktury jest w omawianym przeze mnie przypadku kompleksowe i zgodne z zasadami sztuki prowadzenia zmian informatycznych. Programowi nadano krótką nazwę C17 i tak też jest on nazywany w tej prezentacji. W programie C17 jasno zdefiniowano cele biznesowe: – zmniejszenie kosztów hostingu i utrzymania infrastruktury – zmniejszenie kosztów zakupu i utrzymania wykorzystywanych licencji oprogramowania Wskazano metody, dzięki którym wyznaczone cele będą osiągnięte. Są to: – konsolidacja – partycjonowanie – wirtualizacja – standaryzacja (hardwaru, narzędzi i procesów) – racjonalizacja (wdrażania, utrzymania i procesów) Wytypowano obszary infrastruktury które mają być objęte działaniami w ramach C17. Obszary te to: – storage, – serwery z systemem operacyjnym AIX, – serwery z systemem operacyjnym Solaris, – serwery z systemem operacyjnym HP-UX, – x86 VMware, – obszar baz danych. W ramach projektu, przygotowano PRZYDATNE ! dokumenty, opisujące ogólne zasady działań w projekcie jak i szczegółowe rozwiązania np. jak migrować bazę Oracle 10.2.0.4 z Solaris na AIX. 2. Wirtualizacja Termin wirtualizacja jest modny, ale często używany nie precyzyjnie. Pod pojęciem wirtualizacji kryje się wiele rozwiązań działających na różnym poziomie abstrakcji i różnym sposobie separacji. Środowiska wirtualne charakteryzuje „separacja” między sobą oraz „współdzielenie” sprzętu. Dla sprecyzowania pojęć przyjmuję następujące wyjaśnione poniżej nazewnictwo. Na dużych serwerach Unix wirtualizacja kryje się pod pojęciem partycjonowania. Partycja to część dużego serwera UNIXowego (Solaris, AIX, HP-UX) która ma swój adres IP, swój system operacyjny, swój przydział mocy i pamięci oraz dedykowaną dla siebie sieć. Partycja jest serwe- 102 Agnieszka Czuchryta rem logicznym. Na serwerach SUN takie rozwiązania to kontenery czy inaczej zony. Na serwerach AIX partycje to LPARy. Na serwerach HP: NPARy i VPARy. Odseparowane od siebie serwery logiczne z charakteryzującymi je: IP, pamięć, sieć, CPU, utworzone na innych niż UNIX systemach operacyjnych (Windows, Linux) to rozwiązania wirtualne typu VMware czy Linux VServer. Z punktu widzenia informatyka, można powiedzieć, że administrator zajmuje się zwirtualizowanym środowiskiem informatycznym gdy na dużych serwerach ma wyodrębnione serwery logiczne. Patrząc z biznesowego poziomu na infrastrukturę można powiedzieć, że firma ma zwirtualizowaną infrastrukturę informatyczną gdy formą rozliczenia się działu IT z biznesem jest nie koszt serwera, sieci, energii czy też licencji tylko udostępniona z uzgodnioną dostępnością funkcjonalność systemu informatycznego. Dobrym przykładem takiej definicji jest hosting domen internetowych. Właściciel domeny absolutnie nie musi wiedzieć na jakim systemie operacyjnym pracuje jego aplikacja i w jakiej bazie danych są jego dane. 3. Konsolidacja a migracja Konsolidacją jest taka zmiana dla bazy danych, która nie pociąga za sobą ani zmiany systemu operacyjnego ani wersji serwera bazy danych. Migracja natomiast to takie działanie, w którym dla bazy danych zmieniana jest albo wersja serwera Oracle, albo platforma na której serwer bazy danych pracuje np. z Windows na Solaris, albo następują obie te zmiany jednocześnie. Z naszego doświadczenia więcej jest przypadków migracji baz niż konsolidacji. Przy okazji zmiany platformy podnosimy również wersje Oracle z 9i a nawet 8i do 10g. 4. Teoria Modeli Dla administratorów baz danych Oracle zbudowano teorię modeli konsolidacji i migracji baz danych. Poniższe przykłady dotyczą tylko rozwiązań nieklastrowych. 4.1. Model 0 Model 0 to taka architektura systemu w której mamy: 1 serwer fizyczny, na nim 1 system operacyjny, na nim zainstalowany 1 serwer Oracle (1 binaria = 1 ORACLE_HOME ). Utworzona jest tam 1 baza danych, jest 1 instancja i 1 schemat. Należy tutaj wyjaśnić, że 1 schemat jest rozumiany jako 1 główny schemat aplikacyjny. Konsolidacja baz danych – moda czy konieczność? 103 Rys. 1.Schemat serwerów i baz danych w modelu 0 4.2. Model 1 Model 1 to taka architektura systemu w której mamy: 1 serwer fizyczny, na nim 1 system operacyjny, na nim zainstalowany wiele serwerów Oracle (wiele różnych binarii = wiele ORACLE_HOME), pracuje wiele baz danych ale zawsze 1 dla 1 ORACLE_HOME, jest wiele instancji i oczywiście wiele schematów. Rys. 2 .Schemat serwerów i baz danych w modelu 1 4.3. Model 2 Model 2 to taka architektura systemu w której mamy: 1 serwer fizyczny, na nim 1 system operacyjny, na nim zainstalowany 1 serwer Oracle (1 binaria = 1ORACLE_HOME ), pracuje wiele baz danych, jest wiele instancji i oczywiście wiele schematów. 104 Agnieszka Czuchryta Rys. 3. Schemat serwerów i baz danych w modelu 2 4.4. Model 3 Model 3 to taka architektura systemu w której mamy: 1 serwer fizyczny, na nim 1 system operacyjny, na nim zainstalowany 1 serwer Oracle (1 binaria = 1ORACLE_HOME ), jest 1 baza danych, jest 1 instancja i w bazie wiele schematów. Rys. 4. Schemat serwerów i baz danych w modelu 3 4.5. Model 4 Model 4 jest dopełnieniem tej klasyfikacji. Model 4 to taka architektura systemu w której mamy: 1 serwer fizyczny, na nim 1 system operacyjny, na nim zainstalowany 1 serwer Oracle, jest 1 baza danych, jest 1 instancja i 1 schemat. Model 4 jest architekturą czysto teoretyczną nie stosowaną w praktyce. 105 Konsolidacja baz danych – moda czy konieczność? Rys. 5. Schemat serwerów i baz danych w modelu 4 Podsumowując zdefiniowane modele otrzymujemy następujące architektury: Tabela 1. Charakterystyka modeli Model 0 serwer fiziczny system operacyjny ORACLE_HOME Baza instancja schemat =aplikacja 1 1 1 1 1 1 Model 1 Model 2 Model 3 1 1 wiele wiele wiele wiele 1 1 1 wiele wiele wiele 1 1 1 1 1 wiele Model 4 1 1 1 1 1 1 Czy są to już wszystkie przypadki? Okaże się niebawem. Wiele z istniejących już w naszej firmie rozwiązań infrastruktury bazodanowej odpowiadało któremuś z powyższych modeli lub w bardziej złożonych przypadkach było ich kombinacją np. jedna z większych baz TP to 25 TB baza Oracle na 1 serwerze (model 0). Z pewnością nie podlegająca procesowi migracji. Omawiane przeze mnie na zeszłorocznej konferencji PLOUG rozwiązanie to serwery z wydzielonymi partycjami – model 0.5 . Dlaczego nie model 1? Gdyż w takiej architekturze każda partycja posiada swój osobny system operacyjny. Ponadto na każdej partycji jest zainstalowany jeden serwer Oracle który „obsługuje” 2 lub 3 bazy (model 2). Na dodatek jest to rozwiązanie klastrowe -RAC. Dla innego systemu mamy infrastrukturę w modelu 2 na serwerach w klastrze active – passive z oprogramowaniem Application Rollover Facility. Na jednym serwerze, w jednym ORACLE_HOME, mamy w najliczniejszym przypadku 16 baz. 5. Ograniczenia i wymagania modeli Decydując się na migrację baz do modelu 0,1,2 lub 3 należy rozważyć konsekwencje jakie niesie taka zmiana w kontekście bezpieczeństwa danych jak i codziennych czynności administratorskich. Należy zastanowić się jaki wpływ ma każda z architektur na systemy informatyczne przy awarii hardwaru lub patchowaniu softwaru . Być może po migracji lub konsolidacji będą musiały ulec zmianie scenariusze backupu i odtwarzania. Bardzo ważnym elementem staje się zarządzanie 106 Agnieszka Czuchryta mocą i pamięcią serwera zarówno fizycznego jak i logicznego. Niezbędna staje się głęboka znajomość narzędzi do zarządzania workload: SO Resource Manager i Data Base Resource Manager. W przypadku wszystkich modeli od 0 do 3 restart serwera fizycznego wymaga zamknięcia wszystkich instancji baz danych na nim pracujących. Zaaplikowanie patch’y na system operacyjny wymaga również w modelach od 0 do 3 zamknięcia wszystkich instancji. Wyjątek stanowi model 0.5 (LPARy na AIX). W tym przypadku patchowanie systemu operacyjnego może być niezależne dla każdej partycji. Sytuacja jest bardziej różnorodna w przypadku upgrade serwera Oracle lub wgrywania one-off patch na serwery Oracle. W modelu 1 zmiana na serwerze Oracle ma swój impakt tylko dla bazy pracującej na tym serwerze. W przypadku, gdy na jednym serwerze logicznym pracuje wiele instancji ważne jest właściwe zarządzanie przydzielaną im mocą i pamięcią. Z pewnością posłużą do tego narzędzia Workload Manager. Jednocześnie w każdej bazie możemy mieć skonfigurowanego Resource Managera. Należy być bardzo ostrożnym w stosowaniu obu tych narzędzi jednocześnie tym bardziej, że według sugestii supportu Oracle nie należy ich używać równocześnie. Problem nie jest banalny. Poniżej cytuję w oryginale stanowisko Oracle. Cytat pochodzi z dokumentacji „20080625_ORCL_FT_Workshop_v1.0” OS Resource Manager Vs Database Resource Manager • OS Resource Manager should not be used with the Database Resource Manager because neither of them are aware of each other's existence – Database Resource Manager – distribute resource with database – OS Resource Manager – distribute resource with multiple instance • Use OS Resource Manager – Each instance should be assigned to OS resource group. – All instance process run at one priority and no process priority • Guidelines for using OS Resource Control • If you want to control resource distribution within an instance, use the Resource Manager and turn off OS resource control. • If you have multiple instances on a node and you want to distribute resources among them, use OS resource control, not the Resource Manager Note: Oracle Database currently does not support the use of both tools simultaneously. If you decide to use an OS resource manager concurrently with Oracle Database Resource Manager, you must ensure that all of the following conditions are met: – Each database instance must be assigned to a dedicated operating-system resource manager group or managed entity. – The dedicated entity running all the instance's processes must run at one priority (or resource consumption) level – The CPU resources assigned to the dedicated entity cannot be changed more frequently than once every few minutes. – Process priority management must not be enabled. Konsolidacja baz danych – moda czy konieczność? 107 If resource management decisions are made by operating system, it can lead to problems such as: – Excessive overhead resulting from operating system context switching of Oracle database server processes when the number of server processes is high – Suspension of a database server processes that is holding a latch – Unequal distribution of resources among all Oracle database processes, and an inability to prioritize one task over another – Inability to manage database-specific resources, such as parallel execution servers and active sessions”. Koniec cytatu. Równie ciekawym i złożonym tematem jak zarządzanie mocą i pamięcią serwera jest organizacja backupu i odtwarzania baz (schematów) w modelach od 1 do 3. Wydaje się, że model 3 oprócz backupu technikami kopii macierzowych czy też RMANem z pewnością wymaga wykonywania dumpów poszczególnych schematów. O wymienionych wyżej elementach codziennej pracy administratorów myśleć należy już na początku decyzji o migracji (konsolidacji) bazy danych do danego modelu. Pamiętajmy, że budujemy dla naszego klienta biznesowego środowisko bezpieczne i odseparowane. Nie może być mowy o tym, aby odtworzenie jednej bazy wymuszało cofnięcie w czasie innego niezależnego systemu. 6. Infrastruktura na początku procesu W tak dużej firmie jak Telekomunikacja Polska, firmie z długoletnim doświadczeniem informatycznym, infrastruktura systemów informatycznych jest różnorodna: są bardzo nowoczesne rozwiązania klastrowe, ale i stosunkowo niewielkie środowiska. Przy czym nie jest regułą, że małe serwery większych pełnia mniejsza rolę niż duże środowiska. Pod względem „wieku” infrastruktura jest młoda, ale jest i taka, która wymaga wymiany. Sposób budowania systemów informatycznych w przeszłości był taki, że poszczególne system informatyczne miały swój serwer i swoje bazy. Takie podejście, jak się okazało w czasie realizacji projektu C17, poskutkowało problemami przy konsolidacji serwerów i migracji baz danych. Często największym problemem okazuje się nie problem techniczny – lecz problem psychologiczny związany z uzyskanie zgody na zmianę infrastruktury . Właściciele biznesowi patrząc jedynie przez pryzmat realizacji swych usług nie dostrzegają faktu, że zmiany winno się przeprowadzać wówczas gdy kryzys dotyczący dostarczenie usługi jeszcze nie nastąpił, nie chcąc prowokować ewentualnych problemów wolą pozostać przy posiadanych rozwiązaniach często kosztem pewnych kompromisów w sferze funkcjonalności czy wydajności. Wydłuża to proces uzgodnień i w efekcie wydłuża realizację projektu. 7. Zadania administratorów Na potrzeby projektu, w natłoku zwykłych prac administratorskich ( kreowanie baz, odtwarzanie, strojenie, itp. ), administratorzy Oracle musieli znaleźć czas na: – zdefiniowanie standardów implementacji Oracle dla systemów informatycznych, – zbudowanie „wymarzonej” infrastruktury, – przedstawienie swojego pomysłu właścicielom biznesowym istniejących systemów, – namówienie ich na zmianę z udowodnieniem korzyści jakie osiągną, – zbudowanie środowisk testowych i przeprowadzenie testów. 108 Agnieszka Czuchryta Marzenia o modelu 3, o tym, że można mieć jeden duży serwer fizyczny, jeden serwer Oracla, jedną bazę i z nowymi projektami (aplikacjami) będzie się uzgadniało tylko, aby ich aplikacyjni użytkownicy (schematy) byli różni między sobą, okazały się nieprzystające do możliwości realizacji w tak rozbudowanej infrastrukturze baz danych jaką zajmujemy się w TP. Czy rozwiązanie w modelu 3 jest realne w przypadku systemów produkcyjnych? Z pewnością jest to wyzwanie. 8. Wybór rozwiązań dla procesu migracji i konsolidacji W ramach prac C17 zdecydowano się na budowę m.in. następujących środowisk, które będą stanowiły przyszłą zestandaryzowaną podstawę infrastrukturalną dla baz danych Oracle migrowanych i nowo tworzonych. 8.1. Środowisko Solaris zone Dwa serwery fizyczne Sun Fire E25K. Na każdym 16 GB pamięci i 4 procesory. Na każdej zonie lokalnej zainstalowany serwer baz danych Oracle EE 10.2.0.4. Zasoby klastrowe Oracle active – passive. Środowisko zgodne z modelem 1. Mozliwość rozbudowy pionowej przez zwiększanie ilości procesorów. Rys. 6. Schemat środowiska opartego o zony Konsolidacja baz danych – moda czy konieczność? 109 8.2. Środowisko Grid Computing Jest ono zgodne z modelem 2. Składa się z 4 serwerów serwery IBM x3950. SO Linux Redhat. Serwer Oracle to EE 10.2.0.4 RAC. Mozliwość rozbudowy poziomej. W najbliższym czasie planowana jest rozbudowa o kolejne 2 serwery. Rys. 7. Schemat środowiska opartego o Oracle Grid Computing 9. Realizacja procesu migracji W procesie konsolidacji i migracji baz danych dość łatwo jest wybrać nową infrastrukturę, wytypować bazy do migracji. Łatwo jest przygotować środowisko testowe i przeprowadzić testy. Udaje się również z właścicielem biznesowym systemu ustalić termin migracji produkcyjnej. Te etapy przygotowań trwają, z naszego doświadczenia, od 6 do 12 miesięcy. Natomiast o wiele trud- 110 Agnieszka Czuchryta niej jest doprowadzić do zamknięcia systemu na starej infrastrukturze. Często coś stoi na przeszkodzie: release, stabilizacja po nim, nowy release. W praktyce okazało się, że całkiem inne problemy pojawiają się w przypadku konsolidacji/migracji baz danych, a inne w przypadku definiowania standardów infrastruktury baz danych dla przyszłych systemów. Migracje baz danych wiążą się ściśle z testami aplikacji. Od możliwości wykonania zmian w aplikacji zależy „prawie wszystko”. Standaryzacja jest znacznie prostsza: wystarczy wybrać najbardziej odpowiadającą wymaganiom infrastrukturę (stabilną, bezpieczną, nowoczesną, elastyczną), zbudować ją i udostępnić nowym projektom. W nowych grupach projektowych obserwuje się większe zainteresowanie architekturą Grid Computing niż przygotowanymi przez nas również dla nowych systemów partycjami Unix. Znajduje zrozumienie nasza argumentacja, że architektura Grid Computing ma duży potencjał rozwoju i jest stosunkowo tania w rozbudowie poziomej. Wydaje się, że rozwiązanie to może w znacznym stopniu przyczynić się do unowocześnienia infrastruktury informatycznej w TP S.A. 10. Podsumowanie Z technicznego punktu widzenia w wyniku realizacji prac w ramach programu C17 uzyskaliśmy: – nową, „młodą” infrastrukturę informatyczną, – nowoczesny i elastyczny system administrowania infrastrukturą, – zagwarantowaną wysoką dostępność danych (klastry dużych maszyn). Projekt C17 dostarczył firmie taką infrastrukturę informatyczną, która znacząco zmniejsza czas wdrożenia nowych funkcjonalności biznesowych, zwiększa bezpieczeństwo i dostępność danych oraz poprawia poziom świadczonych przez IT usług. Pojawiają się oczywiście nowe wyzwania związane z zarządzaniem tak skomplikowanymi środowiskami i ich tuningiem. Podsumowując dla biznesu mamy przygotowane urozmaicone, ale stabilne rozwiązania, gotowe do uruchomienia nowych procesów . Dla siebie mamy zagwarantowany komfort pracy administratorskiej.