|
Poznańskie
Centrum Superkomputerowo - Sieciowe |
PROJEKT LDAP |
|
Projekt dystrybucji danych
między serwerami LDAP, opracowanie powiązań między serwerami : Serwery środowiskowe oraz
systemy GRID Jerzy Chochulski |
|
Poznań 2002 |
Spis treści
Pierwsza część opracowania
(rozdział drugi) dotyczy rozmieszczenia serwerów środowiskowych LDAP w
Poznańskim Centrum Superkomputerowo-Sieciowym.
Druga
część opracowania dotyczy budowy serwisów informacyjnych w systemach GRID.
Architektura serwisu informacyjnego w GRID musi
spełniać następujące wymagania :
1. serwis
informacyjny musi być budowany przy założeniu dużego rozproszenia komponentów
systemu informacyjnego,
2. serwis
informacyjny musi być skalowalny,
3. usterka
jakiegokolwiek komponentu systemu informacyjnego nie powinna blokować
możliwości otrzymania informacji o innych komponentach,
4. różnorodność
komponentów serwisu informacyjnego - mechanizmy odkrywania i zapytań powinny
uwzględniać wszelkiego rodzaju zasoby i serwisy.
Rozdział trzeci przedstawia
oprogramowanie do budowy serwisu informacyjnego GRID, które naszym zdaniem
spełnia z powyższe wymaganiami. Przedstawiona będzie także metoda
rozmieszczania serwerów LDAP w systemach GRID.
Docelowa
instalacja przewiduje postawienie dwóch serwerów LDAP :
ˇ
serwer
główny,
ˇ
serwer
pomocniczy.
Na serwerze głównym będzie
umieszczona baza "white pages". Na serwerze pomocniczym będzie umieszczona baza
wewnętrzna PCSS zawierająca informacje wykorzystywane przez portale oraz inne
udostępniane usługi. Istnieje także możliwość postawienia osobnego serwera GIIS
dla środowiska GRID na serwerze pomocniczym.
Baza danych "white pages" z
serwera głównego będzie replikowana na serwer pomocniczy (replikacja Single
Master - dane mogą być edytowane tylko na serwerze głównym, na serwerze
pomocniczym znajduje się replika tylko do odczytu).
Baza danych PCSS z serwera
pomocniczego będzie replikowana na serwer główny (replikacja Single Master -
dane mogą być edytowane tylko na serwerze pomocniczym, na serwerze głównym
znajduje się replika tylko do odczytu).
W ten sposób serwer
pomocniczy oprócz utrzymywania replik baz danych z serwera głównego, pełni rolę
serwera wydzielonego dla działalności wewnętrznej PCSS.
Najbardziej popularnym i najczęściej obecnie
wykorzystywanym oprogramowaniem służącym do budowy systemów GRID jest Globus
Toolkit. Jednym z jego składników jest serwis informacyjny MDS (Monitoring and
Discovery Service) służący do gromadzenia danych o zasobach, ich
charakterystyce oraz o ich stanie. Informacja ta jest wykorzystywana przez inne
składniki systemu GRID oraz przez jego użytkowników. Serwis informacyjny MDS
wykorzystuje serwer OpenLDAP (darmową implementację serwera LDAP) jako bazę
danych do przechowywania i udostępniania informacji. Dalej w rozdziale zajmować
się będziemy MDS w wersji 2.1 z Globus Toolkit w wersji 2.0.
Najświeższe
informacje o Globus Toolkit można znaleźć na stronie http://www.globus.org .
Pakiet Globus Toolkit jest
instalowany na każdym komputerze wchodzącym w skład systemu GRID. Tak więc na
każdym komputerze istnieje aktywny serwis informacyjny MDS z zainstalowanym i
uruchomionym serwerem OpenLDAP.
MDS w wersji 2.1 dostarcza
następujące komponenty :
Oba komponenty osadzone są
na pojedynczym serwerze LDAP (poprzednie wersje MDS-a instalowały dwa serwery
LDAP). Oba komponenty mogą występować pojedynczo lub razem, zależnie od roli
jaką pełni komputer, na którym są zainstalowane :
Między komponentami zachodzą
następujące relacje :
Powyższe relacje pozwalają
na budowę hierarchicznego drzewa GIIS, w którego liściach zawsze występują
komponenty GRIS. Co więcej, komponenty GRIS mogą przynależeć do więcej niż
jednego drzewa GIIS (komponent GRIS sam zarejestrowany jest w więcej niż jeden
komponentach GIIS lub też następuje rejestracji nadrzędnego komponentu GIIS w
innym komponencie GIIS należącym do innego drzewa), w takim przypadku zasoby
komputera mogą być prezentowane przez więcej niż jedno drzewo GIIS.
Rysunek przedstawia
hipotetyczne hierarchiczne drzewo GIIS. Każda para GRIS-GIIS oraz każdy GIIS
odpowiadają jednemu komputerowi z uruchomionym serwerem OpenLDAP.
Zapytania w MDS realizowane są za pomocą komendy grid-info-search
i mogą być skierowane zarówno do serwisu GRIS jak i GIIS. Parametry komendy -
między innymi - określają nazwę i port serwera MDS, do którego zapytanie jest
kierowane. Zapytania kierowane do serwisu GIIS w strukturze drzewa pozwalają
uzyskać informację o zasobach komputerowych znajdujących się poniżej w
hierarchii drzewa. Możliwości zapytań ilustruje poniższy rysunek.
W ramach komponentu GRIS dostarczane są programy
dostawców informacji, które uruchomione na komputerze zbierają dane o zasobach
i umieszczają je na serwerze OpenLDAP w bazie GRIS-a. Zarówno programy
dostawców informacji jak i komenda grid-info-search posługują się schematem MDS
klas i atrybutów. Poniższy rysunek obrazuje przepływ informacji.
MDS dostarcza dostawców
informacji zbierających następujące dane :
Uzyskane dane umieszczane są
w obiektach zdefiniowanych przez schemat MDS na serwerze OpenLDAP. Komenda
grid-info-search jako wynik działania zwraca zbiór obiektów w postaci LDIF.
DN tych obiektów
odzwierciedla hierarchię drzewa GIIS. Korzeniem drzewa jest zawsze o=grid.
Każdy komponent GRIS i GIIS ma swoją nazwę zapamiętaną w atrybucie Mds-Vo-name
(ze schematu MDS). Komponent GRIS zawsze nazywany jest local, natomiast
komponent GIIS najczęściej nazywany jest nazwą komputera lub pierwszym
składnikiem domeny.
Zapytanie 1
grid-info-search x h GIIS2.man.poznan.pl -p 2135 -b mds-vo-name=man,
o=grid
s sub (objectclass=*) MdsCpu
Rezultat
dn : Mds-Host-hn = Host1.man.poznan.pl, Mds-Vo-name=Host1,
Mds-Vo-name=man,
o=grid
[dane
obiektu]
Zapytanie 2
grid-info-search x h Host1.man.poznan.pl -p 2135 -b mds-vo-name=Host1,
o=grid
s sub (objectclass=*) MdsCpu
Rezultat
dn : Mds-Host-hn = Host1.man.poznan.pl, Mds-Vo-name=Host1, o=grid
[dane
obiektu]
Zapytanie 3
grid-info-search x h Host1.man.poznan.pl -p 2135 -b mds-vo-name=local,
o=grid
s sub (objectclass=*) MdsCpu
Rezultat
dn : Mds-Host-hn = Host1.man.poznan.pl, Mds-Vo-name=local, o=grid
[dane
obiektu]
MDS jest konfigurowany
poprzez wpisy w sześciu plikach konfiguracyjnych :
Poniższy przykład pokazuje
jak skonfigurować MDS na każdym komputerze tworzącym drzewo hierarchiczne GIIS.
Rysunek przedstawia drzewo grupujące komputery z dwóch oddalonych od siebie
ośrodków.
Komputer Host1.man.poznan.pl
Plik grid-info-slapd.conf
# baza GRIS
database: ldif
suffix: mds-vo-name=local, o=grid
# baza GIIS
database: giis
suffix: mds-vo-name= host1, o=grid
Plik grid-info-resource-register.conf
# zarejestruj lokalny GIIS w GIIS1.man.poznan.pl
dn: mds-vo-op-name=register,
mds-vo-name=giis1, o=grid
reghn: giis1.man.poznan.pl
regport: 2135
hn: host1.man.poznan.pl
port: 2135
rootdn: mds-vo-name=host1, o=grid
# zarejestruj lokalny GRIS w lokalnym GIIS
dn: mds-vo-op-name=register, mds-vo-name=host1, o=grid
reghn: host1.man.poznan.pl
regport: 2135
hn: host1.man.poznan.pl
port: 2135
rootdn: mds-vo-name=local, o=grid
Komputer Htext-indent:0cm;line-height:150%'>
Plik grid-info-slapd.conf
# baza GRIS
database: ldif
suffix: mds-vo-name=local, o=grid
# baza GIIS
database: giis
suffix: mds-vo-name= host2, o=grid
Plik grid-info-resource-register.conf
# zarejestruj lokalny GIIS w GIIS1.man.poznan.pl
dn: mds-vo-op-name=register,
mds-vo-name=giis1, o=grid
reghn: giis1.man.poznan.pl
regport: 2135
hn: host2.man.poznan.pl
port: 2135
rootdn: mds-vo-name=host2, o=grid
# zarejestruj lokalny GRIS w lokalnym GIIS
dn: mds-vo-op-name=register,
mds-vo-name=host2, o=grid
reghn: host2.man.poznan.pl
regport: 2135
hn: host2.man.poznan.pl
port: 2135
rootdn: mds-vo-name=local, o=grid
Komputer GIIS1.man.poznan.pl
Plik grid-info-slapd.conf
# tylko baza GIIS
database: giis
suffix: mds-vo-name=giis1, o=grid
Plik grid-info-site-policy.conf
# akceptuj komunikaty rejestrujące z trzech komputerów
(&(|(mds-service-hn=host1.man.poznan.pl)
(mds-service-hn=host2.man.poznan.pl)
(mds-service-hn=giis2.man.krakow.pl)
(mds-service-port=2135))
Komputer Host3.man.krakow.pl
Plik grid-info-slapd.conf
# tylko baza GRIS
database: ldif
suffix: mds-vo-name=local, o=grid
Plik grid-info-resource-register.conf
# zarejestruj host3.man.krakow.pl w GIIS2.man.krakow.pl
dn: mds-vo-op-name=register, mds-vo-name=giis2, o=grid
reghn: giis2.man.krakow.pl
regport: 2135
hn: host3.man.krakow.pl
port: 2135
rootdn: mds-vo-name=local, o=grid
Komputer Host4.man.krakow.pl
Plik grid-info-slapd.conf
# tylko baza GRIS
database: ldif
suffix: mds-vo-name=local, o=grid
Plik grid-info-resource-register.conf
# zarejestruj host4.man.krakow.pl w GIIS2.man.krakow.pl
dn: mds-vo-op-name=register,
mds-vo-name=giis2, o=grid
reghn: giis2.man.krakow.pl
regport: 2135
hn: host4.man.krakow.pl
port: 2135
rootdn: mds-vo-name=local, o=grid
Komputer GIIS2.man.krakow.pl
Plik grid-info-slapd.conf
# tylko baza GIIS
database: giis
suffix: mds-vo-name=giis2, o=grid
Plik grid-info-resource-register.conf
# zarejestruj GIIS2.man.krakow.pl w GIIS1.man.poznan.pl
dn: mds-vo-op-name=register, mds-vo-name=giis1, o=grid
reghn: giis1.man.poznan.pl
regport: 2135
hn: giis2.man.krakow.pl
port: 2135
rootdn: mds-vo-name=giis2, o=grid
Plik grid-info-site-policy.conf
# akceptuj komunikaty rejestrujące z dwóch komputerów
(&(|(mds-service-hn=host3.man.krakow.pl)
(mds-service-hn=host4.man.krakow.pl))
(mds-service-port=2135))
Projekt lokalizacji serwerów środowiskowych zapewnia
bezpieczeństwo dostępu do danych dzięki replikacji. Oprócz tego równoważy
obciążenie obu serwerów. Serwer główny udostępnia dane na zewnątrz, podczas gdy
serwer pomocniczy utrzymuje dane na wewnętrzne potrzeby PCSS.
Architektura komponentów
GRIS i GIIS w MDS spełnia pierwsze trzy wymagania przedstawione we wstępie.
Przede wszystkim pozwala na zbudowanie serwisu informacyjnego obejmującego
rozproszone środowisko komputerowe. Dodanie nowych elementów do drzewa GIIS
jest łatwe i nie wpływa na inne już istniejące elementy. Usterka i wykluczenie
jakiegokolwiek elementu nie wpływa na resztę systemu. Czwarte wymaganie
odnośnie uwzględnienia różnorodności zasobów komputerowych i serwisów jest
spełnione przy pomocy schematu klas i atrybutów dostarczanego przez MDS, co
jest tematem osobnego opracowania.
[ 1 ] |
Czajkowski, K., Fitzgerald, S., Foster, I. i Kesselman, C. "Grid
Information Services for Distributed Resource Sharing", 2001 |
[ 2 ] |
Fitzgerald, S., Foster, I.,
Kesselman, C., von Laszewski G., Smith W. i Tuecke S. "A Directory
Service for Configuring High-Performance Distributed Computations" |
[ 3 ] |
MDS 2.1 User's Guide, www.globus.org/mds/mdsusersguide.pdf |
[ 4 ] |
MDS 2.1 : Creating a Hierarchical GIIS, www.globus.org/mds/hierarchical_GIIS.pdf |
[ 5 ] |
OpenLDAP, www.openldap.org |
[ 6 ] |
The Anatomy of the Grid, www.globus.org/research/papers/anatomy.pdf |
[ 7 ] |
T.A.
Howes, M.C. Smith, G.S. Good
"Understanding and Deploying LDAP Directory Services", 1999 |