Predykcja wymaga« na zasoby sprz¦towe dla zada«
Transkrypt
Predykcja wymaga« na zasoby sprz¦towe dla zada«
Predykcja wymaga« na zasoby sprz¦towe dla zada« w heterogenicznej chmurze obliczeniowej Tomasz Zióªkowski Streszczenie Zarz¡dzanie chmur¡ obliczeniow¡ wymaga rozwi¡zania nowych problemów zwi¡zanych z zapewnieniem wysokiej wydajno±ci, oszacowaniem niezb¦dnych zasobów, optymalizacj¡ kosztu wykonania zada« oraz automatyzacj¡ procesu przydzielania zasobów. Przedstawiono now¡ metod¦ przewidywania wymaga« na zasoby sprz¦towe dla zada« uruchamianych w heterogenicznych chmurach obliczeniowych w modelu Infrastructure as a Service (IaaS ). Do modelu chmury dodano kolejn¡ warstw¦ abstrakcji, dynamicznie wyznaczaj¡c¡ wymagania na podstawie wysokopoziomowych parametrów funkcjonalnych zada«. Opisano sposób implementacji i integracji z istniej¡cym ±rodowiskiem chmurowym, oparty o sztuczne sieci neuronowe uczone danymi zbieranymi w trakcie pracy chmury przez dedykowane agenty monitoruj¡ce. Podkre±lono tak»e konieczno±¢ strojenia systemu do charakterystyki konkretnego ±rodowiska chmurowego w celu osi¡gni¦cia maksymalnej efektywno±ci dziaªania. 1 Wst¦p Jedn¡ z podstawowych zalet chmur obliczeniowych jest wykorzystanie usªugowego modelu dostarczania funkcjonalno±ci, dzi¦ki czemu do procesu wytwarzania i wdra»ania aplikacji wprowadzone zostaj¡ dodatkowe warstwy abstrakcji separuj¡ce ró»ne sfery kompetencji. I tak w modelu Infrastructure as a Service (IaaS ), klient chmury mo»e zleca¢ wykonanie pewnych zada« (zazwyczaj w formie maszyn wirtualnych), nie zajmuj¡c si¦ jednocze±nie administracj¡ infrastruktur¡ sprz¦tow¡, na której owe zadania s¡ wykonywane. Dzi¦ki temu mo»e budowa¢ zaawansowane aplikacje o praktycznie dowolnej skali i funkcjonalno±ci, nie posiadaj¡c wªasnego, kosztownego w utrzymaniu, centrum danych (ang. data center ). Przekªada si¦ to bezpo±rednio na korzy±ci nansowe i wi¦ksz¡ elastyczno±¢ na poziomie biznesowym. Pewn¡ wad¡ typowo spotykanych chmur IaaS jest jednak to, »e klient uru- chamiaj¡cy zadanie musi samodzielnie wyspecykowa¢ wielko±ci wymaganych zasobów sprz¦towych (np. liczba wirtualnych procesorów, rozmiar pami¦ci RAM). Dokªadne okre±lenie takich wymaga« mo»e by¢ dla klienta kªopotliwe i wymaga 1 od niego przeprowadzenia analizy wykonywanych zada« na poziomie konkretnej infrastruktury sprz¦towej, od czego model IaaS miaª go w zaªo»eniu izolowa¢. Dodatkowo, liczba mo»liwych konguracji sprz¦towych chmury jest praktycznie nieograniczona, a na ka»dej z konguracji wydajno±¢ konkretnego zadania mo»e by¢ nieco inna (np. w zale»no±ci od modelu procesora, ta sama liczba wirtualnych CPU mo»e przekªada¢ si¦ na inn¡ faktycznie dost¦pn¡ moc obliczeniow¡). W efekcie podana przez klienta chmury oszacowanie wymaga« sprz¦towych mo»e by¢ zbyt niskie (co pogorszy jako±¢ ±wiadczonych usªug) lub zbyt wysokie (co oznacza nieefektywne wykorzystanie przydzielonych zasobów, poci¡gaj¡ce za sob¡ niepotrzebne koszty nansowe). W niniejszym artykule prezentujemy now¡ metod¦ predykcji obci¡»enia dla zada« w chmurze IaaS, której celem jest przygotowywanie wymaga« na za- soby sprz¦towe na podstawie wysokopoziomowych charakterystyk funkcjonalnych przetwarzanych zada«. Dzi¦ki temu osi¡gana jest lepsza separacja funkcjonalno±ci dost¦pnej dla klienta, który chce uruchamia¢ zadania, i tej wykorzystywanej przez operatora chmury, zajmuj¡cego si¦ zarz¡dzaniem infrastruktur¡ IT. Rozwi¡zanie to pozwala elastycznie dopasowywa¢ uruchamiane zadania do konkretnych konguracji sprz¦towych dost¦pnych w danej chmurze. Poni»ej zaprezentowano przegl¡d tre±ci zwi¡zanych z omawianym zagadnieniem. W dalszej cz¦±ci opisano problem i jego proponowane rozwi¡zanie. Na zako«czenie podsumowano potencjalne korzy±ci pªyn¡ce z zastosowania przedstawionych koncepcji i krótko opisano problemy zwi¡zane z ich ocen¡ i wdro»eniem w rzeczywistych ±rodowiskach chmurowych. 2 Zarz¡dzanie wykorzystaniem zasobów w chmurach IaaS Opisywany w niniejszym artykule problem jest cz¦±ci¡ ogólnego zagadnienia zarz¡dzania zasobami w systemach komputerowych. Poni»ej opisujemy krótko wyniki prowadzonych na ±wiecie bada« zwi¡zanych z optymalizacj¡ wykorzystania zasobów, koncentruj¡c si¦ na zadaniach w chmurach IaaS. Gªówne wyzwania w tej dziedzinie mo»na podzieli¢ na nast¦puj¡ce cztery kategorie: 1. analiza wydajno±ci systemu, 2. przewidywanie wielko±ci niezb¦dnych zasobów, 3. optymalizacja kosztu wykonania zada«, 4. automatyzacja procesu przydzielania zasobów. Przegl¡d zagadnie« zwi¡zanych z zarz¡dzaniem zasobami w chmurach IaaS mo»na znale¹¢ w [1]. Autorzy publikacji deniuj¡ dwie klasy zasobów: zyczne (np. procesor, pami¦¢ RAM, pami¦¢ masowa) oraz logiczne (np. system operacyjny, energia, interfejs aplikacji). Wymieniaj¡ tak»e gªówne problemy dotycz¡ce 2 dostarczania, przydzielania, mapowania i adaptacji zasobów oraz ich rozwi¡zania. Dodatkowo sformuªowana zostaªa lista otwartych problemów badawczych, które powinny zosta¢ zaadresowane w przyszªo±ci. 2.1 Analiza wydajno±ci systemu Z zarz¡dzaniem zasobami zwi¡zane jest bezpo±rednio zagadnienie analizy wydajno±ci systemów komputerowych, zarówno na poziomie sprz¦towym, jak i w warstwie oprogramowania. Tworzone s¡ przy tym realistyczne generatory obci¡»enia, które s¡ niezwykle przydatne przy ocenianiu wydajno±ci systemu, w szczególno±ci jego architektury i poprawno±ci dziaªania pod obci¡»eniem. Artykuª [2] prezentuje metod¦ statystycznej analizy i modelowania zada« chmurowych. Opracowane modele pozwoliªy autorom stworzy¢ realistyczny symulator ±rodowiska chmurowego. Autorzy przewiduj¡, i» taki symulator mo»e zosta¢ wykorzystany do optymalizacji algorytmów zarz¡dzania zasobami w chmurach oraz identykowania interferencji przy wspóªdzieleniu zasobów przez wiele maszyn wirtualnych. W publikacji [3] opisana zostaªa metoda przewidywania wymaga« na zasoby dla chmurowych zada« typu analizy danych. Autorzy stwierdzaj¡, »e wykorzystywane wcze±niej metody estymacji wymaga« nie s¡ adekwatne do zastosowania dla tego typu zada«. Zaproponowano nowe podej±cie wykorzystuj¡ce parametry funkcjonalne takie jak na przykªad rodzaj i cz¦stotliwo±¢ oczekiwanych zapyta« od u»ytkowników. Innym interesuj¡cym tematem badawczym jest okre±lanie w jaki sposób parametry zada« (takie jak liczba zgªosze« do serwera na sekund¦ lub typ wykonywanych oblicze«) skorelowane s¡ z wymaganiami na zasoby sprz¦towe. Artykuª [4] przedstawia metod¦ okre±lania korelacji mi¦dzy wysokopoziomowymi charakterystykami zada« a wzorcami zachowa« u»ytkowników, przy wykorzystaniu sztucznych sieci neuronowych i analizy szeregów czasowych. Metoda pozwala na wczesne wykrywanie nadchodz¡cych narusze« umowy Level Agreement ) SLA (ang. Service- o gwarantowanym poziomie ±wiadczenia usªug. W [5] autorzy przedstawiaj¡ wykorzystanie teorii szarych systemów do modelowania dynamiki zada« w ±rodowisku chmurowym, w którym maszyny wirtualne konkuruj¡ o wspóªdzielone zasoby. Zaprezentowane podej±cie zostaªo wykorzystane do analizy zada« typu wideo na »yczenie (ang. VoD ) Video-on-Demand, i pozwoliªo autorom zidentykowa¢ w¡skie gardªa w dost¦pie do zaso- bów. 2.2 Przewidywanie wielko±ci niezb¦dnych zasobów Du»a cz¦±¢ bada« zwi¡zanych z analiz¡ wykorzystania zasobów w chmurach obliczeniowych koncentruje si¦ na przewidywaniu zmian obci¡»enia generowanego przez zadania. W tym zagadnieniu kluczowe jest analizowanie nast¦puj¡cych w czasie zmian w zachowaniu zada« w chmurze, dzi¦ki czemu mo»liwe jest przewidywanie zmienno±ci obci¡»enia zasobów. 3 Dogª¦bna analiza istniej¡cych metod przewidywania zasobów niezb¦dnych dla zada« chmurowych znajduje si¦ w [6]. Autorzy przedstawili wyczerpuj¡ce uzasadnienie dla konieczno±ci stosowania zaawansowanych metod prolowania zada«. Opisano tak»e kluczowe wyzwania zwi¡zane z tym zagadnieniem oraz zaprezentowano podstawy podej±cia opartego o model autonomicznego systemu komputerowego MAPE-K (ang. Monitor, Analyze, Plan, Execute Knowledge, tj. Monitorowanie, Analiza, Planowanie, Wykonanie Wiedza) [7]. Artykuª zawiera równie» dogª¦bny przegl¡d istniej¡cych metod prolowanie zada«. Problem przewidywania wykorzystania zasobów w chmurach IaaS jest blisko zwi¡zany z zagadnieniem autoskalowania aplikacji, opisanym szczegóªowo w [8]. 2.3 Optymalizacja kosztu wykonania zada« Kolejnym problemem w dziedzinie zarz¡dzania zasobami jest minimalizacja kosztu wykonania zbioru zada« poprzez optymalne przydzielenie im dost¦pnych zasobów. W artykule [9] autorzy analizuj¡ relacj¦ mi¦dzy zu»yciem energii przez zadanie, obci¡»eniem zasobów sprz¦towych oraz wydajno±ci¡. Zaobserwowano, i» osi¡gni¦cie 100% obci¡»enia zasobów mo»e w rzeczywisto±ci prowadzi¢ do zwi¦kszenia kosztu wykonania zada«. Autorzy zwracaj¡ równie» uwag¦ na fakt, »e caªkowite obci¡»enie generowane przez zbiór konkuruj¡cych o zasoby zada« nie jest prost¡ sum¡ wymaga« na zasoby ka»dego z zada« ze zbioru. W publikacji [10] zaproponowany zostaª algorytm konsolidacji (tj. rozmieszczania na jak najmniejszej liczbie zycznych w¦zªów chmury) maszyn wirtualnych priorytetyzuj¡cy zadania o stabilnych wymaganiach na zasoby. Autorzy stwierdzaj¡, »e takie podej±cie do konsolidacji pozwala zminimalizowa¢ liczb¦ migracji maszyn wirtualnych przeprowadzanych w systemie. [11] prezentuje przel¡d praktycznych zagadnie« zwi¡zanych z konsolidacj¡ maszyn wirtualnych. Autorzy zaobserwowali, »e cho¢ konsolidacja prowadzi do zredukowania zu»ycia energii, mo»e te» skutkowa¢ pogorszeniem wydajno±ci. Spowodowane jest to interferencj¡ mi¦dzy zadaniami wspóªdziel¡cymi zasoby. Problem konsolidacji maszyn zostaª równie» dokªadnie opisany w [12]. 2.4 Automatyzacja procesu przydzielania zasobów By¢ mo»e najbardziej zªo»onym problemem dotycz¡cym zarz¡dzania zasobami jest automatyzacja procesu przydzielania zasobów w ±rodowiskach o zªo»onej architekturze, takich jak chmury obliczeniowe. Ciekawy model automatycznej alokacji zasobów mo»na znale¹¢ w [13]. Autorzy prezentuj¡ podej±cie hybrydowe, ª¡cz¡ce model kolejkowy z algorytmami uczenia ze wzmocnieniem. Wykorzystywany jest przy tym wspomniany wcze±niej model MAPE-K. [14] opisuje system zarz¡dzania chmur¡ ª¡cz¡cy przewidywanie wykorzystania zasobów, konsolidacj¦ maszyn wirtualnych oraz automatyczne przydzielanie zasobów. W systemie zastosowane s¡ dwa kooperuj¡ce rodzaje kontrolerów: (1) 4 kontroler proaktywny odpowiedzialny za dynamiczn¡ migracj¦ maszyn wirtualnych oraz (2) kontroler reaktywny, wyª¡czaj¡cy i wª¡czaj¡cy odpowiednie cz¦±ci zycznej infrastruktury w zale»no±ci od aktualnego obci¡»enia. W publikacji [15] opisano wykorzystanie algorytmów genetycznych i regresj¦ wektorów no±nych do alokacji zasobów w chmurze. Wektory no±ne zostaªy u»yte do estymacji zapotrzebowania na zasoby, natomiast algorytm genetyczny odpowiedzialny jest za okre±lanie optymalnego przydziaªu zasobów. [16] przedstawia wyczerpuj¡cy przegl¡d metod dynamicznego zarz¡dzania zasobami w chmurach obliczeniowych. Autorzy zwracaj¡ uwag¦ na niski stopie« wykorzystania infrastruktury sprz¦towej obserwowany w wielu centrach danych. Ró»ne algorytmy dynamicznej realokacji maszyn wirtualnych zostaªy opisane i porównane. 3 Predykcja wymaganych zasobów dla zada« w chmurze Podstawowym czynnikiem decyduj¡cym o efektywno±ci dziaªania chmury obliczeniowej typu IaaS jest odpowiedni przydziaª dost¦pnych zasobów sprz¦to- wych dla uruchamianych zada«. Podstawowym zasobem s¡ tu w¦zªy chmury, tzn. odpowiednio skongurowane serwery komputerowe dziaªaj¡ce pod kontrol¡ wybranego ±rodowiska wirtualizacji pozwalaj¡cego na uruchamianie maszyn wirtualnych. Ze wzgl¦du na rodzaj dost¦pnych w¦zªów, chmury mo»emy podzieli¢ na dwie kategorie: Chmury homogeniczne, w których wszystkie w¦zªy maj¡ tak¡ sam¡ kon- guracj¦ sprz¦tow¡. Chmury heterogeniczne, w których wyst¦puj¡ grupy w¦zªów o ró»nych kon- guracjach. W typowej chmurze heterogenicznej mo»na znale¹¢ kilka rodzajów w¦zªów ró»ni¡cych si¦ parametrami technicznymi zainstalowanych w nich komponentów. Niekiedy wyst¦puj¡ równie» w¦zªy wyposa»one w dodatkowe moduªy, np. specjalizowane akceleratory oblicze«. Ogólny schemat procedury uruchamiania zada« w chmurze typu IaaS przed- stawiony jest na rys. 1. Chc¡c uruchomi¢ nowe zadanie, klient chmury musi okre±li¢: • nazw¦ obrazu maszyny wirtualnej, który ma zosta¢ uruchomiony w ramach zadania, • specykacj¦ maszyny wirtualnej, zawieraj¡c¡ jej wymagania na zasoby sprz¦towe (np. 2 wirtualne CPU, 8 GB RAM, dysk 20 GB). Na podstawie tych danych oprogramowanie zarz¡dzaj¡ce chmury dokonuje wyboru w¦zªa, na którym przydzielone zostaj¡ odpowiednie zasoby, a nast¦pnie uruchomiona jest maszyna wirtualna realizuj¡ca dane zadanie. Zarz¡dca 5 węzły chmury zadanie obraz maszyny specyfikacja maszyny zarządca chmury Rysunek 1: Standardowa procedura uruchamiania zada« w chmurze typu IaaS : dla wykonania ka»dego zadania zarz¡dca chmury alokuje odpowiednie zasoby na konkretnym w¦¹le chmury i uruchamia tam maszyn¦ wirtualn¡ z zadaniem mo»e stosowa¢ przy tym ró»ne priorytety przydziaªu zasobów, np. równowa»enie obci¡»enia lub konsolidacja maszyn na jak najmniejszej liczbie w¦zªów. Taki schemat uruchamiania zada« mo»na znale¹¢ np. w oprogramowaniu gdzie specykacj¦ maszyny wirtualnej okre±la si¦ jako jej odmian¦ OpenStack, avor ). (ang. Podstawowym czynnikiem decyduj¡cym o efektywno±ci przydzielania zasobów w opisanym modelu jest dokªadno±¢ oszacowania zapotrzebowania na zasoby sprz¦towe okre±lonego przez klienta chmury w specykacji maszyny wirtualnej. Je±li podane zostan¡ warto±ci zbyt wysokie, zarz¡dca chmury przydzieli maszynie zbyt du»¡ ilo±¢ zasobów, z których cz¦±¢ pozostanie niewykorzystana. Je±li natomiast oszacowanie b¦dzie zbyt niskie, maszyna otrzyma zasoby niewystarczaj¡ce do jej poprawnego dziaªania. Precyzyjne okre±lenie specykacji maszyny wirtualnej mo»e by¢ jednak bardzo trudne. Po pierwsze, uruchamiaj¡cy zadanie klient nie musi posiada¢ eksperckiej wiedzy w dziedzinie architektur sprz¦towych, ani te» zna¢ szczegóªów implementacyjnych wykorzystywanych przez siebie aplikacji. Z tych wzgl¦dów kompetentne okre±lenie przewidywanego obci¡»enia zasobów sprz¦towych mo»e wymaga¢ od klienta chmury du»ego nakªadu pracy, co przekªada si¦ bezpo±rednio na dodatkowe koszty i potencjalne opó¹nienie wdro»enia aplikacji (o czas przeznaczony na testy obci¡»enia). Po drugie, w przypadku heterogenicznej chmury rzeczywiste obci¡»enie zale»y od konguracji sprz¦towej wybranego w¦zªa. Klient mo»e przy tym nie wiedzie¢ z góry, na jakim w¦¹le zostanie uruchomiona maszyna. Co wi¦cej, oprogramowanie chmury cz¦sto ignoruje heterogeniczno±¢ ±rodowiska na poziomie specykacji maszyny. Na przykªad OpenStack pozwala okre±li¢ jedynie liczb¦ wirtualnych CPU przydzielonych maszynie. Ka»dy wirtualny CPU odpowiada jednemu w¡tkowi obliczeniowemu zycznego procesora, niezale»nie od jego rzeczywistej wydajno±ci. Z tego wzgl¦du maszyna, której specykacja okre±la wy- 6 zadanie konfiguracja sprzętu obraz maszyny agent predykcji obciążenia kategoria zadania specyfikacja maszyny parametry zadania dane kalibracyjne Rysunek 2: Ogólny schemat dziaªania agenta predykcji obci¡»enia: dla ka»dego przeznaczonego do wykonania zadania, agent predykcji przygotowuje specykacj¦ maszyny wirtualnej zawieraj¡c¡ przewidywane wielko±ci wymaganych zasobów maganie 4 wirtualnych CPU, mo»e dysponowa¢ ró»n¡ faktyczn¡ moc¡ obliczeniow¡, zale»nie od tego, na jakim w¦¹le chmury zostanie uruchomiona przez system zarz¡dzaj¡cy. 4 Agent predykcji obci¡»enia Proponowanym przez nas rozwi¡zaniem powy»szego problemu jest rozszerze- nie procedury uruchamiania zada« w chmurze o dedykowanego agenta predykcji obci¡»enia, którego zadaniem jest przygotowywanie specykacji maszyny wirtualnej adekwatnej dla danego zadania i ±rodowiska sprz¦towego. Ogóln¡ zasad¦ dziaªania agenta przedstawia rys. 2. Deniowanymi przez klienta chmury parametrami zadania s¡: 1. obraz maszyny wirtualnej, 2. kategoria zadania w ramach powi¡zanych prac badawczych wyró»niono sze±¢ kategorii funkcjonalnych zada« w chmurach obliczeniowych, tj. big data, pami¦¢ podr¦czna danych tymczasowych, przetwarzanie transakcyjne, strumieniowanie multimediów, obliczenia naukowe oraz serwery stron WWW [17], 3. parametry funkcjonalne zadania, zale»ne od kategorii, np. rozmiar danych wej±ciowych lub szacowana liczba klientów na godzin¦. Agent predykcji korzysta ponadto z nast¦puj¡cych danych dotycz¡cych obsªugiwanego ±rodowiska chmurowego: 1. konguracja sprz¦towa dost¦pnych w¦zªów chmury, 7 2. dane kalibracyjne zebrane w trakcie pracy wcze±niej wykonywanych zada«. Rezultatem dziaªania agenta predykcji obci¡»enia jest przygotowanie specykacji maszyny wirtualnej dla uruchamianego zadania. Specykacja dostosowywana jest ka»dorazowo do konguracji sprz¦towej w¦zªów chmury. W przypadku chmur heterogenicznych, oddzielna specykacja wyznaczana jest dla ka»dej z dost¦pnych konguracji w¦zªów. Nale»y podkre±li¢, »e dzi¦ki takiemu rozwi¡zaniu klient chmury nie musi specykowa¢ charakterystyki uruchamianych przez siebie zada« na poziomie zasobów sprz¦towych. Okre±la on jedynie pewne cechy funkcjonalne, tj. kategori¦ zadania i jego wysokopoziomowe parametry. Zadaniem agenta predykcji jest przeªo»enie tych informacji na specykacj¦ maszyny wirtualnej, tzn. konkretne wymagania na zasoby sprz¦towe odpowiadaj¡ce dost¦pnym architekturom w¦zªów chmury. Klient nie musi ju» wi¦c analizowa¢ wydajno±ci dziaªania swoich zada« na odpowiednich konguracjach sprz¦towych, »eby prawidªowo okre±li¢ wymagane wielko±ci zasobów. Dodatkowo, dzi¦ki takiemu podej±ciu uzyskujemy nowy poziom izolacji mi¦dzy funkcjonaln¡ charakterystyk¡ uruchamianych zada« a technicznymi szczegóªami budowy chmury, co zwi¦ksza przeno±no±¢ specykacji zada« pomi¦dzy ró»nymi ±rodowiskami wykonania. 5 Implementacja agenta predykcji Rol¦ agenta predykcji obci¡»enia w procesie uruchamiania zada« przedstawia rys. 3. Agent predykcji analizuje specykacj¦ zadania i przy wykorzystaniu wewn¦trznych modeli przygotowuje odpowiedni¡ specykacj¦ maszyny wirtualnej dla zarz¡dcy chmury. Specykacja maszyny okre±la przy tym przewidywane wielko±ci wymaganych zasobów, dzi¦ki czemu zarz¡dca mo»e przydzieli¢ zadanie do odpowiedniego w¦zªa chmury. Jak mo»na zaobserwowa¢ na tym rysunku, do poprawnego integracji agenta agenty monitoruj¡ce. Odpowiedni agent monitoruj¡cy instalowany jest na ka»dym w¦¹le predykcji ze ±rodowiskiem chmurowym wymagany jest dodatkowy element: chmury. Jego zadaniem jest monitorowanie rzeczywistego zu»ycia zasobów przez uruchomione na w¦¹le zadania. W praktyce proces ten sprowadza si¦ do okresowego odczytywania niskopoziomowych statystyk udost¦pnianych przez platform¦ sprz¦tow¡, system operacyjny oraz oprogramowanie wirtualizacji. Przykªadami takich statystyk s¡ np. liczba operacji dyskowych, wykorzystane pasmo transmisji sieciowej czy liczba odwoªa« do pami¦ci podr¦cznej procesora. Dane te magazynowane s¡ w dedykowanej bazie danych wydajno±ciowych, a nast¦pnie wykorzystywane do kalibracji wewn¦trznych modeli agenta predykcji. Wykorzystywane do predykcji modele zada« zaimplementowane zostaªy jako sztuczne sieci neuronowe o jednej warstwie ukrytej i dynamicznie wyznaczanej liczbie neuronów (w zale»no±ci od liczby parametrów zadania). Sieci uczone s¡ przy pomocy próbek danych zebranych przez agenty monitoruj¡ce w bazie danych wydajno±ciowych. Zapis wykonania pojedynczego zadania jest interpretowany jako jedna próbka. Wyró»nione zostaªy przy tym dwa poziomy modeli: 8 węzły chmury zadanie konfiguracja sprzętu obraz maszyny kategoria zadania agent predykcji obciążenia obraz maszyny specyfikacja maszyny zarządca chmury parametry zadania dane kalibracyjne agenty monitorujące baza danych wydajnościowych Rysunek 3: Rola agenta predykcji w procesie uruchamiania zada« 1. modele ogólne, tworzone dla ka»dej z sze±ciu kategorii zada«, 2. modele specjalizowane, tworzone dla konkretnych obrazów maszyn wirtualnych. Modele ogólne stanowi¡ podstawowe narz¦dzie wyznaczania predykcji obci¡»enia. Wykorzystywane s¡ w nich sztuczne sieci neuronowe. Danymi wej±ciowymi w procesie uczenia sieci neuronowych s¡ wszystkie dost¦pne w bazie próbki zawieraj¡ce zmierzonego warto±ci obci¡»enia dla wcze±niej wykonywanych zada« odpowiednich kategorii. Modele specjalizowane dotycz¡ natomiast indywidualnych obrazów maszyn. Przyj¦to przy tym zaªo»enie, »e ka»dy obraz nale»y do dokªadnie jednej kategorii, co wynika po±rednio z denicji aplikacja u»ytkowa zainstalowana w ramach obrazu determinuje kategori¦ zadania, np. zadania uruchamiane z obrazu z aplikacj¡ Apache Hadoop b¦d¡ zawsze nale»e¢ do kategorii big data. Nale»y równie» przypuszcza¢, »e pomi¦dzy zadaniami wykorzystuj¡cymi jedn¡ konkretn¡ aplikacj¦ b¦d¡ wyst¦powaªy mniejsze ró»nice w charakterystyce wykorzystania zasobów, ni» w przypadku zbioru wszystkich zada« nale»¡cych do danej kategorii. Z tego wzgl¦du modele specjalizowane mog¡ osi¡ga¢ potencjalnie wi¦ksz¡ dokªadno±¢ predykcji, jednak do ich konstrukcji wymagana jest wi¦kszy zbiór danych ucz¡cych. Modele specjalizowane tworzone s¡ wtedy, kiedy dla danego obrazu maszyny zebrano co najmniej 10 próbek danych wydajno±ciowych z uruchomie« poprzednich zada«. Nowe modele mog¡ by¢ tworzone na ró»nych etapach cyklu »ycia agenta predykcji: 1. podczas instalacji agenta, na podstawie domy±lnego zestawu danych ucz¡cych, 9 2. na bezpo±rednie »¡danie administratora systemu w dowolnym momencie dziaªania agenta, 3. podczas obsªugi nowego zadania, je±li wymagany model nie jest dost¦pny w bazie. Podczas instalacji tworzony jest startowy zestaw modeli ogólnych, wystarczaj¡cy do przeprowadzania podstawowej predykcji w obr¦bie zdeniowanych kategorii zada«. Do poprawnego dziaªania systemu zalecane jest okresowe (np. raz na dob¦) uruchamianie procedury tworzenia modeli przez administratora chmury. Istniej¡ce modele s¡ w takim wypadku aktualizowane o dane zebrane od czasu ostatniego wywoªania procedury, tworzone s¡ równie» nowe modele szczegóªowe. Tym samym jako±¢ predykcji zwracanych przez agenta wzrasta z czasem, w miar¦ gromadzenia nowych danych. Je±li w trakcie swojej pracy agent predykcji otrzymuje »¡danie obsªu»enia zadania, dla którego nie istnieje gotowy model, model taki mo»e zosta¢ stworzony dynamicznie, je±li tylko w bazie danych wydajno±ciowych znajduje si¦ wystarczaj¡cy zbiór próbek. Dynamiczne tworzenie modelu znacznie wydªu»a czas obsªugi »¡dania, jednak ze wzgl¦du na niewielki rozmiar wykorzystywanych sieci neuronowych oraz sporadyczno±¢ wyst¦powania sytuacji braku gotowego modelu, negatywny wpªyw na ogólne dziaªanie ±rodowiska pozostaje nieznaczny. Podstawow¡ procedur¦ obsªugi »¡dania predykcji obci¡»enia dla nowego zadania przedstawiono na rys. 4. 6 Podsumowanie Przedstawiona metoda predykcji wymaga« na zasoby sprz¦towe dla zada« w chmurze dodaje do standardowego modelu chmury typu IaaS now¡ warstw¦ abstrakcji, oddzielaj¡c specykacj¦ funkcjonaln¡ uruchamianych przez klientów zada« od architektury sprz¦towej i wydajno±ci w¦zªów chmury te zadania wykonuj¡cych. Potencjalnymi korzy±ciami wynikaj¡cymi z takiego rozwi¡zania s¡: • lepsza alokacja zasobów sprz¦towych dla zada«, zmniejszaj¡ca ryzyko wyst¡pienia niedoboru zasobów, i w konsekwencji zwi¦kszaj¡ca jako±¢ ±wiadczonych usªug, • mniejsze prawdopodobie«stwo przydzielenia nadmiarowych zasobów, prowadz¡ce do zwi¦kszenia efektywno±ci wykorzystania infrastruktury, • elastyczne dopasowywanie ró»nych typów zada« do konguracji sprz¦towej w¦zªów chmury, • znacz¡ce uniezale»nienie specykacji zadania od szczegóªów budowy wykonuj¡cego je ±rodowiska, • skrócenie czasu potrzebnego do wdro»enia nowego zadania. 10 żądanie predykcji obciążenia obraz maszyny kategoria zadania T parametry zadania sieć predyktora dla obrazu maszyny jest dostępna? N T ≥10 próbek dostępnych dla obrazu maszyny? N T sieć predyktora dla kategorii zadania jest dostępna? N T ≥10 próbek dostępnych dla kategorii zadania? N błąd wczytaj sieć predyktora wyucz sieć predyktora zapisz sieć predyktora sieć predyktora wylicz znormalizowaną predykcję obciążenia pobierz kolejną konfigurację znormalizowana predykcja obciążenia konfiguracja węzła wylicz predykcję obciążenia dla wybranej konfiguracji węzła predykcja obciążenia dla konfiguracji węzła przygotuj specyfikację maszyny specyfikacja maszyny więcej konfiguracji? T N odpowiedź z predykcją obciążenia Rysunek 4: Procedura wyznaczania predykcji obci¡»enia i specykacji maszyny wirtualnej 11 Korzy±ci te s¡ szczególnie istotne dla chmur heterogenicznych, poniewa» pozwalaj¡ zminimalizowa¢ wpªyw ró»nych konguracji w¦zªów chmury na proces uruchamiania zada« przez klientów. Najwi¦kszym wyzwaniem w kontek±cie prezentowanego rozwi¡zania jest formalne okre±lenie jego skuteczno±ci. Trudno posªu»y¢ si¦ w tym celu jakimikolwiek syntetycznymi testami, poniewa» nie s¡ one w stanie realistycznie odtworzy¢ warunków panuj¡cych w rzeczywistych ±rodowiskach. Charakterystyki zada« zale»¡ w bardzo du»ym stopniu od specyki danej chmury obliczeniowej, tote» pomi¦dzy ±rodowiskami mog¡ wyst¦powa¢ du»e ró»nice w skuteczno±ci agenta predykcji. Z tego powodu do werykacji przedstawionego rozwi¡zania nale»aªoby wykorzysta¢ dane wydajno±ciowe z konkretnego, produkcyjnego ±rodowiska chmurowego. Niestety tego typu dane s¡ w wi¦kszo±ci wªasno±ci¡ prywatnych korporacji zarz¡dzaj¡cych chmurami, i z tego wzgl¦du dost¦p do nich jest bardzo trudny. Dlatego te» nast¦pnym krokiem w rozwoju opisywanego rozwi¡zania powinno by¢ wdro»enie go w wersji testowej na rzeczywistym ±rodowisku chmurowym, gdzie mo»na byªoby dokªadnie oceni¢ zalety wynikaj¡ce z zastosowania predykcji obci¡»enia. Literatura Resource management for Infrastructure as a Service (IaaS) in cloud computing: A survey. Journal of Network and [1] Manvi S. S., Shaym G. K.: Computer Applications, vol. 41, Elsevier, 2014. Analysis, Modeling and Simulation of Workload Patterns in a Large-Scale Utility Cloud. Cloud Com- [2] Moreno I. S., Garraghan P., Townend P., Xu J.: puting, IEEE Transactions on, vol. 2, no. 2, IEEE, 2014. [3] Mian R., Martin P., Vazquez-Poletti J. L.: kloads in a cloud. Provisioning data analytic wor- Future Generation Computer System, vol. 29, no. 6, Elsevier, 2013. [4] Kousiouris G., Menychtas A., Kyriazis D., Gogouvitis S., Varvarigou T.: Dynamic, behavioral-based estimation of resource provisioning based on high-level application terms in Cloud platforms. Future Generation Computer Systems, vol. 32, Elsevier, 2014. Workload modeling for virtual machine-hosted application. Expert Systems with Applications, vol. [5] Zhang W., Liu J., Liu C., Zheng Q., Zhang W.: 42, no. 4, Elsevier, 2015. Cloud resource management: A survey on forecasting and proling models. Journal of Network [6] Weingärtner R., Bräscher G. B., Westphall C. B.: and Computer Applications, vol. 47, Elsevier, 2015. [7] Kephart J. O., Chess D. M.: The vision of autonomic computing. Computer, vol. 36, no. 1, IEEE, 2003. 12 A Review of Auto-scaling Techniques for Elastic Applications in Cloud Environments. Journal of Grid [8] Lorido-Botran T., Miguel-Alonso J., Lozano J. A.: Computing, vol. 12, no. 4, Springer Netherlands, 2014. [9] Srikantaiah S., Kansal A., Zhao F.: Computing. Energy Aware Consolidation for Cloud Proceedings of the 2008 Conference on Power Aware Compu- ting and Systems, USENIX Association, 2008. [10] Ferreto T. C., Netto M. A. S., Calheiros R. N., De Rose C. A. F.: consolidation with migration control for virtualized data centers. Server Future Generation Computer Systems, vol. 27, no. 8, Elsevier, 2011. [11] Corradi A., Fanelli M., Foschini L.: OpenStack Cloud. VM consolidation: A real case based on Future Generation Computer Systems, vol. 32, Elsevier, 2014. VM3: Measuring, modeling and managing VM shared resources. Computer Networks, [12] Iyer R., Illikkal R., Tickoo O., Zhao L., Apparao P., Newell D.: vol. 53, no. 17, Elsevier, 2009. On the Use of Hybrid Reinforcement Learning for Autonomic Resource Allocation. Cluster Com- [13] Tesauro G., Jong N. K., Das R., Bennani M. N.: puting, vol. 10, no. 3, Springer US, 2007. Resource Pool Management: Reactive Versus Proactive or Let's Be Friends. Computer Networks, [14] Gmach D., Rolia J., Cherkasova L., Kemper A.: vol. 53, no. 17, Elsevier, 2009. [15] Huang C. J., Guan C. T., Chen H. M., Wang Y. W., Chang S. C., Li C. Y., Weng C. H.: An adaptive resource management scheme in cloud computing. Engineering Applications of Articial Intelligence, vol. 26, no. 1, Elsevier, 2013. Energy-Ecient Management of Virtual Machines in Data Centers for Cloud Computing. Department of Computing and Information [16] Beloglazov A.: Systems, The University of Melbourne, 2013. Categorization of Cloud Workload Types with Clustering. International Conference on Signal, [17] Orzechowski P., Procz J., Krawczyk H., Szyma«ski J.: Networks, Computing, and Systems 2016, Proceedings of, New Delhi, Indie, 2016. 13