Model systemu zarządzania zwirtualizowanymi zasobami Grid
4.1.2. Model statyczny wirtualnego Gridu
Podstawowe elementy VG (ang. Virtual Grid ) tworzące infrastrukturę wykonania aplika-cji rozproszonych, możemy przedstawić za pomocą modelu mnogościowego określającego składowe poszczególnych komponentów a także interakcje pomiędzy nimi.
Przedstawiona w rozdziale 1 definicja wirtualnego Gridu zakłada powiązanie aplika-cji z zasobami za pomocą dedykowanego środowiska. Środowisko to umożliwia zasłonię-cie przed aplikacją szczegółów związanych z działaniem mechanizmów alokacji zasobów. Przedstawiając model działania systemu należało zatem wyjść od znalezienia i określenia możliwych interakcji komponentów realizujących grupowanie zasobów. Definicje te po-zwolą na sformułowanie pierwszej statycznej wersji modelu wirtualnego Gridu, gdyż nie będą one uwzględniać możliwych zmian w czasie odnośnie wymagań aplikacji oraz mody-fikacji konfiguracji zasobów.
Komponenty, których definicje oraz powiązania zostaną przestawione (za pomocą no-tacji mnogościowej) w tym modelu to:
• Elementy udostępniające zasoby obliczeniowe infrastruktury, czyli zbiór fizycznych węzłów — PH (4.1),
• Wirtualne kontenery zasobów takie jak wirtualne komputery — VM (4.5) i wirtu-alna sieć — VN (4.11),
• Statyczny Wirtualny Grid — V GS(4.21) czyli element grupujący zasoby wraz z okre-śleniem wymaganych reguł.
Grupowanie zasobów do kontenerów
Mając do dyspozycji pewną infrastrukturę obliczeniową możemy określić ją za pomocą zbioru PH niezależnych urządzeń hi (komputerów) o określonych i niezmiennych w czasie właściwościach:
PH := {hi : i = 1, . . . , I} (4.1)
Właściwości te w niniejszym modelu będą reprezentowane za pomocą zestawu para-metrów (4.2) określających zasoby.4
P :=
paramj : j = 1, . . . , J
(4.2)
param := (N ame, T ype, V alue) (4.3)
T ype := { required , optional , unspec , unknown }
gdzie:
4
Parametry te to np. właściwości sprzętowe takie jak typ czy zegar procesora lub ilość dostępnej pamięci oraz parametry związane z oprogramowaniem, czyli atrybuty opisujące konfigurację systemu operacyjnego i zainstalowanego oprogramowania.
N ame — symboliczna nazwa jednoznacznie identyfikującą dany
para-metr,
T ype — oznaczenie operacji określenia właściwości danej zmiennej
(tabela 4.2),
V alue — ilościowe określenie danego parametru wraz z dopuszczalną
wartością pustą (Null ),
P — zbiór wszystkich możliwych parametrów.
Modyfikator Znaczenie
optional parametr jest opcjonalny
required parametr jest wymagany
unspec wartość parametru jest nieokreślona
unknown wartość parametru jest nieznana
Tabela 4.2. Modyfikatory znaczenia parametrów konfiguracyjnych
Również definicja maszyny wirtualnej VM może być przedstawiona jako zestaw para-metrów i odpowiadających im wartości5 określających dostępność oraz sposób wykorzy-stania zasobów przez daną instancję maszyny wirtualnej — VM:
Nazwa parametru Typ parametru
identification/uuid statyczny
resident on host statyczny
kernel file statyczny
memory/dynamic max size dynamiczny memory/dynamic min size dynamiczny
virtual block device statyczny
virtual network interface statyczny
name/description dynamiczny
VCPU/params dynamiczny
VCPU/max number dynamiczny
monitoring metrics statyczny
VCPU/at startup number statyczny
Tabela 4.3. Przykładowa lista parametrów konfiguracyjnych VM
VM := nparamk(1), . . . , paramk(vm)o (4.4)
VZ := {VM ∈ 2P: k = 1, . . . , 2J} (4.5) Zbór VZ reprezentuje wszystkie możliwe zestawy parametrów opisujących maszyny wir-tualne.
Mając dwa komponenty systemu w postaci zasobów fizycznych (4.1) oraz zestawu kon-figuracji wirtualnych maszyn (4.5) jako kontenerów grupujących i określających dostępność
5Parametry te określają konfigurację alokacji zasobów dla danej wirtualnej maszyny a także jej aktualny stan.
zasobów, konieczne jest określenie funkcji umożliwiającej odwzorowanie elementów tych zbiorów — czyli procedury r dokonującej rozmieszczenia wykonania wirtualnych maszyn na fizycznym sprzęcie:
r : VZ → 2PH, r(VM) :=
hi∈ P H : Cap(hi)(1)≡ Req(VM)
(4.6) gdzie:
r(VM) — funkcja tworząca zbiór maszyn fizycznych, dla których
do-stępność i konfiguracja zasobów spełnia wymagania maszyny wirtualnej VM,
Cap(hi) — zasoby (4.7) maszyny fizycznej hi,
Req(VM) — wymagania (4.8) maszyny wirtualnej VM,
(1)
≡ — oznacza relację (procedurę) weryfikacji dostępności zasobów
fizycznego węzła hi na poziomie przedstawionym w specyfi-kacji wirtualnej maszyny VM.
Cap : PH → 2P, Cap(hi) :=nparamp(1), . . . , paramp(hi)o (4.7) gdzie:
p(hi) — liczba parametrów opisujących węzeł hi.
Req : VZ → 2P, Req(VM) :=nparamp(1), . . . , paramp(vm)o (4.8) Działanie funkcji r sprowadza się do wyboru z pośród dostępnych elementów infra-struktury tylko tych, które spełniają wymagania danej maszyny wirtualnej. Przez PH(i) oznaczony zostanie zbiór fizycznych elementów infrastruktury spełniających wymagania maszyny wirtualnej VM, czyli:
PH(i):= r(VM) (4.9)
Dodatkowo konieczne jest określenie funkcji s (4.10), która dla zbioru PH(i) wybierze jeden fizyczny element infrastruktury hi, na którym dana maszyna zostanie stworzona i uruchomiona.
s : PH(i)→ PH(i), sPH(i):= hj : hj ∈ PH(i) (4.10) Różne możliwe algorytmy rozmieszczenia maszyny wirtualnej są możliwe poprzez zmianę działania funkcji s.
Grupowanie zasobów wirtualnej sieci
Wirtualna sieć VN (4.11) czyli zestaw wirtualnych połączeń sieciowych definiujący topo-logię dla komunikacji w obrębie VG składa się z następujących elementów:
VN := (D, L) (4.11)
D — zbiór (wirtualnych) urządzeń sieciowych (elementów
infra-struktury) oraz urządzeń końcowych (wirtualnych kompute-rów).
L — zbiór wirtualnych połączeń (4.14).
d := nparamd(1), . . . , paramd(di)o (4.12)
D := {d ∈ 2P: m = 1, . . . , 2J} (4.13) Element d oznacza wirtualne urządzanie sieciowe (wirtualny switch, wirtualny router), którego funkcjonalność i wymagania określone są poprzez zestaw parametrów (4.12).
L ⊆
li,j = (di, dj) : di, dj ∈ D
(4.14)
Rysunek 4.3. Przykład topologii fizycznej wirtualnego Gridu
Wirtualne połączenie posiada również określony dla niego zestaw parametrów charak-teryzujący jego właściwości:
li,j :=nparaml(1), . . . , paraml(li,j)o (4.15)
Nazwa parametru Typ parametru
lista interfejsów fizycznych statyczny
parametry interfejsów fizycznych statyczny
lista wirtualnych interfejsów dynamiczny
połączenia pomiędzy interfejsami dynamiczny
rodzaj powiązania interfejsów dynamiczny
metoda separacji komunikacji dynamiczny
konfiguracja adresacji IP dynamiczny
parametry QoS połączeń dynamiczny
konfiguracje routigu i NAT dynamiczny
rozmieszczenie wirtualnych routerów dynamiczny
(. . . ) (. . . )
Tabela 4.4. Przykładowa lista parametrów konfiguracyjnych VN
Pełne określenie wirtualnej topologii wymaga dodatkowo zdefiniowania reguł rozmiesz-czenia wirtualnych komponentów w obrębie fizycznych zasobów. Wybór elementu infra-struktury, podobnie jak przy instancjonowaniu wirtualnych węzłów wymagać będzie
okre-ślenia funkcji n (4.16) weryfikującej dostępność zasobów danego węzła pod kątem wymagań wirtualnego komponentu topologii.
n : D → 2PH, n(di) :=
hj ∈ PH : Cap(hj)(2)≡ Req(di)
(4.16) gdzie:
n(di) — funkcja tworząca zbiór maszyn fizycznych, dla których do-stępność i konfiguracja zasobów spełnia wymagania ele-mentu di,
Cap(hj) — zasoby maszyny fizycznej hj,
Req(di) — wymagania elementu topologii sieciowej di. (2)
≡ — oznacza relację weryfikacji dostępności zasobów fizycznego
węzła hj na poziomie przedstawionym w specyfikacji kom-ponentu di.
Dodatkowo określić należy funkcję weryfikującą zasoby ścieżki fizycznej (łączącej dwa komputery fizyczne), pod kątem wymagań tworzonego nad nią połączenia logicznego. We-ryfikacja ta wymagana jest w sytuacji gdy połączenie logiczne jest realizowane pomiędzy wirtualnymi węzłami uruchomionymi na dwóch różnych6 fizycznych węzłach.
w : D → 2PH, w(di) := hi ∈ P H : ^ dj∈D:li,j∈l(di) hk=h(di) hl=h(dj)
Capl(hk, hl)(3)≡ Req(li,j)
(4.17) gdzie:
w(di) — funkcja tworząca zbiór maszyn fizycznych, które mogą ob-sługiwać element di powodując iż możliwe będzie spełnienie wymagań wszystkich wirtualnych połączeń z tego elementu,
Capl(hk, hl)— zasoby ścieżki fizycznej pomiędzy elementami hk i hl,
Req(li,j) — wymagania połączenia logicznego l,
l(di) — zbiór połączeń logicznych (4.18) wykorzystywanych przez element di,
(3)
≡ — oznacza relację weryfikacji dostępności zasobów ścieżki l(hk, hl) na poziomie przedstawionym w specy-fikacji połączenia logicznego li,j.
l : D → 2L, l(di) := [ dj∈D li,j = (di, dj) : li,j ∈ L (4.18) l(di) ⊆ L
6Przyjęto bowiem, iż zasoby komunikacji sieciowej w obrębie jednego fizycznego węzła są nieskończone — dlatego weryfikacja ich dostępności nie jest konieczna.
Przez P Hl(i) oznaczony zostanie zbiór fizycznych elementów infrastruktury, spełniają-cych wymagania wirtualnego elementu di, czyli:
PHl(i):= n(di) ∪ w(di) (4.19)
Dodatkowo konieczne jest określenie funkcji e (4.20), która dla zbioru P Hl(i) wybierze jeden fizyczny komponent infrastruktury hi, na którym dany element wirtualnej topologii zostanie stworzony i uruchomiony.
e : PHl(i)→ P H, ePHl(i):= hj : hj ∈ PHl(i) (4.20)
Statyczny Wirtualny Grid
Wirtualny Grid możemy przedstawić jako złożenie (4.21) zbioru maszyn fizycznych (4.1), zbioru maszyn wirtualnych (4.5), funkcji dokonujących rozmieszczenia wirtualnych kom-ponentów (4.10) i elementów topologii sieciowej (4.20) określonej za pomocą definicji (4.11) wraz z zestawem funkcji wykonujących weryfikacji rozmieszczenia elementów sieciowych. Określenie takie będzie definiowało wirtualny Grid jako statyczną infrastrukturę, w której rozmieszczenie i konfiguracje elementów nie będzie zmieniane podczas działania aplikacji.7
V GS := nPH, VZ, r, s, VN, n, w, eo (4.21)
Powyższy zestaw definicji przestawia w sposób uproszczony zależności pomiędzy ele-mentami składowymi wirtualnego Gridu. Zestaw ten pozwala na stworzenie architektury środowiska, której opis został przedstawiony w sekcji 5.2 a szczegóły implementacyjne zawiera rozdział 6.