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

 

 

1       Wstęp. 3

2       Serwery środowiskowe. 4

2.1     Bazy danych i replikacja.. 4

3       Systemy GRID.. 5

3.1     MDS. 5

3.2     Przykład.. 10

4       Podsumowanie.. 14

Bibliografia.. 15

 

 


1         Wstęp

 

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.

 


2         Serwery środowiskowe.

 

Docelowa instalacja przewiduje postawienie dwóch serwerów LDAP :

ˇ         serwer główny,

ˇ         serwer pomocniczy.

 

2.1      Bazy danych i replikacja

 

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.


 

3         Systemy GRID

 

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 .

 

3.1      MDS

 

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 :

 


 

3.2      Przykład

 

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))

 

 


4         Podsumowanie

 

            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.


Bibliografia

 

[ 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