Page tree
Skip to end of metadata
Go to start of metadata

Informacje wstępne

  • Przed przystąpieniem do pierwszych obliczeń, musimy wygenerować proxy.

Certyfikat użytkownika, którego klucz prywatny jest zabezpieczony hasłem, służy do wygenerowania i podpisania tymczasowego certyfikatu, zwanego proxy (z ang. pośrednik). Przeznaczeniem proxy jest umożliwienie identyfikacji użytkownika w gridzie. Ponieważ po generacji użwanie proxy nie wymaga hasła, ważnym jest aby plik go zawierający był jedynie do odczytu dla użytkownika (jest to ustawienie domyślnie). Aby zwiększyć bezpieczeństwo, proxy ma krótki okres życia, np. 12h, znacznie krótszy niż przeciętny certyfikat.

  • Tworzenie proxy

    $ voms-proxy-init --voms <VO>

    <VO> - wirtualna organizacja np. vo.plgrid.pl
    Powyższą komendą oprócz utworzenia proxy, można także przedłużyć już istniejący.

  • Tworzenie proxy na określony czas

    $ voms-proxy-init -valid <H:M>
    $ voms-proxy-init --voms <VO> -valid <H:M>

    <H:M> - czas godziny:minuty

Należy pamiętać, że im dłuższy okres życia proxy tym większe niebezpieczeństwo przechwycenia przez niepowołaną osobę.

  • Uzyskanie informacji o istniejącym proxy

    $ voms-proxy-info

    Dzięki tej komendzie, możemy dowiedzieć się jak długo jeszcze będzie żyć nasze proxy.

  • Niszczenie proxy po wykonaniu obliczeń

    $ voms-proxy-destroy

    Po zakończeniu pracy należy zniszczyć proxy, tak aby zmniejszć ryzyko przechwycenia przez niepowołaną osobę.

Wartym uwagi jest fakt, iż jeśli okres życia proxy skończy się, kiedy w gridzie mamy puszczone zadanie, nie zostanie ono wykonane.

Aby tego uniknąć należy:

  • odnowić proxy : voms-proxy-init
  • użyć długoterminowego proxy, tworzonego przy udziale serwera proxy

Uruchamianie zadań

W celu policzenia zadania na gridzie, możemy sprawdzić czy istnieją takie CE w naszej VO, które nam to umożliwią

$ glite-wms-job-list-match -a job.jdl

Connecting to the service https://rb1.cyf-kr.edu.pl:7443/glite_wms_wmproxy_server

==========================================================================

                     COMPUTING ELEMENT IDs LIST
 The following CE(s) matching your job requirements have been found:

        *CEId*
 - ce.cyf-kr.edu.pl:2119/jobmanager-pbs-gaussian
 - ce.reef.man.poznan.pl:2119/jobmanager-pbs-gaussian
 - ce.ulakbim.gov.tr:2119/jobmanager-lcgpbs-gaussian
 - grid01.erciyes.edu.tr:2119/jobmanager-lcgpbs-gaussian

==========================================================================

Możemy też wyświetlić wszystkie dostępne CE na VO (gaussian), wraz z informacją o powiązanych procesorach

$ lcg-infosites --vo gaussian ce
#CPU    Free    Total Jobs      Running Waiting ComputingElement
----------------------------------------------------------
  22      20       0              0        0    ce.ulakbim.gov.tr:2119/jobmanager-lcgpbs-gaussian
1792     908       0              0        0    ce.reef.man.poznan.pl:2119/jobmanager-pbs-gaussian
2312     487       0              0        0    ce.cyf-kr.edu.pl:2119/jobmanager-pbs-gaussian
  56      54       1              0        1    grid01.erciyes.edu.tr:2119/jobmanager-lcgpbs-gaussian
1792     914       0              0        0    creamce.reef.man.poznan.pl:8443/cream-pbs-gaussian

Podobnie możemy też uzyskać informacje o zasobach dyskowych (SE) dostępnych na VO

$ lcg-infosites --vo gaussian se
Avail Space(Kb) Used Space(Kb)  Type    SEs
----------------------------------------------------------
24394342856     4861111830      n.a     dpm.cyf-kr.edu.pl
n.a             n.a             n.a     grid02.erciyes.edu.tr
6320000000      2               n.a     se.reef.man.poznan.pl
2680000000      n.a             n.a     se.ulakbim.gov.tr

Wysyłamy zadanie

$ glite-wms-job-submit -a job.jdl

Connecting to the service https://rb1.cyf-kr.edu.pl:7443/glite_wms_wmproxy_server


====================== glite-wms-job-submit Success ======================

The job has been successfully submitted to the WMProxy
Your job identifier is:

https://lb.grid.cyf-kr.edu.pl:9000/AgP9eWoJf0l4YMiESWrRow

==========================================================================

Sprawdzamy status wysłanego zadania, wykorzystując przydzielony identyfikator

$ glite-wms-job-status https://lb.grid.cyf-kr.edu.pl:9000/qn69-B5xUIl40yY5oP9f9Q


*************************************************************
BOOKKEEPING INFORMATION:

Status info for the Job : https://lb.grid.cyf-kr.edu.pl:9000/qn69-B5xUIl40yY5oP9f9Q
Current Status:     Waiting
Submitted:          Thu Jul 23 10:32:46 2009 CEST
*************************************************************

Powtarzając powyższą komendę, będziemy mogli zaobserwować zmieniający się status naszego zadania

Current Status:     Ready
Current Status:     Scheduled
Current Status:     Running

Ostatecznie powinniśmy otrzymać informację o prawidłowym zakończeniu obliczeń

$ glite-wms-job-status https://lb.grid.cyf-kr.edu.pl:9000/qn69-B5xUIl40yY5oP9f9Q


*************************************************************
BOOKKEEPING INFORMATION:

Status info for the Job : https://lb.grid.cyf-kr.edu.pl:9000/qn69-B5xUIl40yY5oP9f9Q
Current Status:     Done (Success)
Exit code:          0
Status Reason:      Job terminated successfully
Destination:        ce.cyf-kr.edu.pl:2119/jobmanager-pbs-gaussian
Submitted:          Thu Jul 23 10:32:46 2009 CEST
*************************************************************

Bardziej szczegółowe informacje o statusie zadania możemy uzyskać wykonując polecenie

glite-wms-job-status -v <verbosity_value> <jobId>

verbosity_value może przyjmować wartości [0|1|2|3]

Kiedy już zadanie się zakończy, możemy pobrać otrzymane wyniki do katalogu output

$ glite-wms-job-output --dir output https://lb.grid.cyf-kr.edu.pl:9000/qn69-B5xUIl40yY5oP9f9Q

Connecting to the service https://149.156.9.29:7443/glite_wms_wmproxy_server


================================================================================

                        JOB GET OUTPUT OUTCOME

Output sandbox files for the job:
https://lb.grid.cyf-kr.edu.pl:9000/qn69-B5xUIl40yY5oP9f9Q
have been successfully retrieved and stored in the directory:
/home/people/.../.../job1/output

================================================================================

$ cd output/
$ ls
job.err  job.out

Zapisywanie jobId do pliku i odczytywanie

Dzięki możliwości zapisania jobId do pliku, nie musimy go "pamiętać" podczas wykonywania poleceń z jego użyciem

  • Zapisanie podczas wysyłania zadania
$ glite-wms-job-submit -a -o jobId job.jdl
  • Odczytywanie, np.
$ glite-wms-job-status -i jobId

Zarządzanie dużymi plikami z wykorzystaniem Storage Elements

Ponieważ InputSandbox oraz OutputSandbox specyfikowane w deskrypcji zadania gridowego (pliku JDL) nie mogą być zbyt duże (łączna wielkość plików przesyłanych w ten sposób powinna być mniejsza niż 10-15 MB) dla większych plików przewidziano możliwość przechowywania ich na gridowych zasobach dyskowych zwanych Storage Elements i dostarczanie ich do zadań innymi metodami. Zostały one opisane poniżej.

Każda Wirtualna Organizacja (VO) posiada przestrzeń dyskową na jednym lub kilku specjalnych zasobach tzw. Storage Elements (SE). W celu łatwiejszego dostępu do plików istnieje dodatkowo tzw. LCG File Catalogue (LFC), który przypomina normalną strukturę katalogów na komputerze kontrolowanym przez system z rodziny Unix/Linux. Każdy plik znajdujący się w LFC posiada swoją własną unikalną nazwę w obrębie LFC zwaną Logical File Name (LFN) oraz unikalny identyfikator pliku - Global Unique Identifier (GUID). Ponieważ LFC jest warstwą przykrywającą warstwę Storege Elements (SE) każdy z plików w LFC może posiadać kilka replik w różnych SE. Każda replika jest opisana przez tzw. Storage URL (SURL), który zawiera informacje o o fizycznej lokalizacji repliki pliku.

Przykład dla VO vo.plgrid.pl:
lfn:/grid/vo.plgrid.pl/user01/test.txt
lfn:/grid/vo.plgrid.pl/user03/podkatalog/test.txt
lfn:/grid/vo.plgrid.pl/user10/podkatalog/podkatalog2/duzyplik.tgz

surl://dpm.cyf-kr.edu.pl/dpm/cyf-kr.edu.pl/home/vo.plgrid.pl/generated/2012-06-13/file7fe84ed8-1c9e-4be3-88e5-ac943c2c4bde
surl://se.reef.man.poznan.pl/dpm/reef.man.poznan.pl/home/vo.plgrid.pl/generated/2012-06-13/fileba95a559-21eb-4ffc-b154-14d2b706c488

Konfigurowanie dostępu do LFC na komputerze dostępowym (UI)

Informacje o dostępnych serwisach katalogujących pliki (serwerach LFC) dostępnych w danej VO można sprawdzić komendą:

lcg-infosites --vo <VO> lfc 
Przykład dla VO vo.plgrid.pl:
$ lcg-infosites --vo vo.plgrid.pl lfc
lfc.grid.cyf-kr.edu.pl

Korzystanie z LFC wymaga ustawienia zmiennej środowiskowej LFC_HOST na serwer obsługujący serwis katalogujący pliki (serwerach LFC) dostępnych w danej VO. W tym celu należy wykonać polecenie:

export  LFC_HOST=`lcg-infosites --vo <VO> lfc`
Przykład dla VO vo.plgrid.pl:
export  LFC_HOST=`lcg-infosites --vo vo.plgrid.pl lfc`

Informacje o dostępnych serwisach dyskowych (SE)

Informacje o dostępnych serwisach dyskowych (SE) dostępnych w danej VO można sprawdzić komendą:

lcg-infosites --vo <VO> se 
Przykład dla VO vo.plgrid.pl:
$ lcg-infosites --vo vo.plgrid.pl se 
 Avail Space(kB)  Used Space(kB)  Type 	SE
------------------------------------------
       292295225       137201503  SRM  	darkmass.wcss.wroc.pl
     29928427150     20872410458  SRM  	dpm.cyf-kr.edu.pl
      1071025899        11233691  SRM  	se.grid.task.gda.pl
       265041106       286414563  SRM  	se.polgrid.pl
             n.a        25093075  SRM  	se.polgrid.pl
             n.a      4778672492  SRM  	se.polgrid.pl
     15586307152      6834952586  SRM  	se.reef.man.poznan.pl

Informacje o najbliższym SE dla danego CE (Computing Element):

lcg-infosites --vo  <VO> se 
Przykład dla VO vo.plgrid.pl:
$ lcg-infosites --vo vo.plgrid.pl closeSE 
Name of the CE: ce.reef.man.poznan.pl:2119/jobmanager-pbs-plgrid
	se.reef.man.poznan.pl

Name of the CE: ce1.grid.icm.edu.pl:8443/cream-pbs-plgrid

Name of the CE: ce1.grid.icm.edu.pl:8443/cream-pbs-plgrid-long

Name of the CE: ce9.grid.icm.edu.pl:8443/cream-pbs-plgrid
	se.polgrid.pl
....

Użytkowanie LFC

Listowanie katalogów w LFC

Listę katalogów dostępnych w LFC można sprawdzić komendą:

 lfc-ls <nazwa_katalogu_w_LFC> 
Przykład
$ lfc-ls /grid
alice
atlas
belle
bgtut
gaussian
sbelledev
vo.nedm.cyfronet.pl
vo.neugrid.eu
vo.plgrid.pl
vo.turbomole.cyfronet.pl

Polecenie lfc-ls można wykonać również z flagą -l:

$ lfc-ls -l <nazwa_katalogu_w_LFC>  
Przykład
$ lfc-ls -l /grid 
drwxrwxr-x   0 root     125                       0 Mar 18  2010 alice
drwxrwxr-x   1 root     126                       0 Mar 18  2010 atlas
drwxrwxr-x   0 root     127                       0 Mar 18  2010 belle
drwxrwxr-x  39 root     102                       0 Nov 25  2009 bgtut
drwxrwxr-x   6 root     101                       0 Mar 07 18:07 gaussian
drwxrwxr-x   0 root     105                       0 Jun 02  2009 sbelledev
drwxrwxr-x   3 root     112                       0 Dec 10  2009 vo.nedm.cyfronet.pl
drwxrwxr-x   1 root     128                       0 May 03  2010 vo.neugrid.eu
drwxrwxr-x 248 root     103                       0 Jun 13 13:10 vo.plgrid.pl
drwxrwxr-x   1 root     113                       0 Nov 10  2009 vo.turbomole.cyfronet.pl
Tworzenie katalogów w LFC

Katalogi tworzy się komendą:

lfc-mkdir <scieżka_katalogu_do_utworzenia> 
Przykład
lfc-mkdir /grid/vo.plgrid.pl/$USER 
Informacje o prawach dostępu do katalogu/pliku:

Do wyświetlania praw dostępu do katalogów/plików w LFC służy komenda:

lfc-getacl <ścieżka i nazwa pliku lub katalogu>
Przykład
$ lfc-getacl /grid/vo.plgrid.pl/$USER/testFile.txt
# file: /grid/vo.plgrid.pl/<login>/testFile.txt
# owner: /C=PL/O=GRID/O=<nazwa_organizacji>/CN=<nazwa_uzytkownika>
# group: vo.plgrid.pl
user::rw-
group::rw-		#effective:rw-
other::r--
Kopiowanie plików do LFC

Kopiowanie pliku na SE i jego jednoczesna rejestracja w katalogu na LFC wykonuje się komendą:

 lcg-cr -l lfn:<ścieżka i nazwa pliku w LFC> file://<ścieżka i nazwa pliku na dysku lokalnym> 
  • flaga –l pozwala na specyfikacje docelowego miejsca pliku w LFC jako lfn:
  • flaga –d pozwala na wybranie SE, na którym zamierzamy składować plik
  • flaga -v daje dodatkowe informacje o przesyłanym pliku
  • flaga -n <liczba_strumieni> pozwala na szybsze przesyłanie dużych plików przez przesyłanie ich przez wiele strumieni danych jednocześnie.

Uwaga: Nadpisywanie plików nie jest możliwe. W celu podmiany pliku należy najpierw skasować plik z LFC i następnie wgrać nową wersję pliku.

Przykład
$ lcg-cr -l lfn:/grid/vo.plgrid.pl/$USER/testFile.txt file://$HOME/tutorial/test.txt
guid:0721ab19-3e73-40f4-bbec-f92c6a772423
Wylistowywanie istniejących replik pliku

Każdy z plików przechowywanych w LFC jest tak na prawdę przechowywany w jednej lub wielu kopiach na poszczególnych SE. Kopie te zwane są replikami. W przypadku dużych plików dobrze jest posiadać repliki na SE bliskich CE gdzie będą się wykonywały obliczenia z wykorzystaniem tych plików. Do listowania wszyskich replik danego pliku służy polecenie:

$ lcg-lr lfn:<ścieżka i nazwa pliku> 
Przykład
$ lcg-lr lfn:/grid/vo.plgrid.pl/$USER/testFile.txt 
srm://dpm.cyf-kr.edu.pl/dpm/cyf-kr.edu.pl/home/vo.plgrid.pl/generated/2012-06-13/file7fe84ed8-1c9e-4be3-88e5-ac943c2c4bde
srm://se.reef.man.poznan.pl/dpm/reef.man.poznan.pl/home/vo.plgrid.pl/generated/2012-06-13/fileba95a559-21eb-4ffc-b154-14d2b706c488
Tworzenie repliki pliku na innym SE

Do tworzenia nowej repliki pliku na innym SE służy komenda:

$ lcg-rep -d <SE> lfn:<ścieżka i nazwa pliku>
  • flaga –d pozwala na wybranie SE, na którym zamierzamy składować plik
Przykład
$ lcg-rep -d se.reef.man.poznan.pl lfn:/grid/vo.plgrid.pl/$USER/testFile.txt 
Pobieranie pliku z LFC

Do pobierania pliku z LFC na lokalny dysk twardy (np. na WN, gdzie wykonuje się zadanie) służy komenda:

$ lcg-cp lfn:<ścieżka i nazwa pliku> 
Przykład
$ lcg-cp lfn://grid/vo.plgrid.pl/$USER/testFile.txt file://$HOME/tutorial/dowloaded.txt 
Usuwanie pliku

Do usuwania pliku z LFC służy komenda:

lcg-del -a  lfn:<ścieżka i nazwa pliku>
Przykład
$ lcg-del -a  lfn:/grid/vo.plgrid.pl/$USER/testFile.txt 
Tworzenie aliasu

Do tworzenia skrótu do pliku w LFC służy komenda:

lcg-aa   --vo vo.plgrid.pl <GUID> lfn:/<ścieżka i nazwa pliku>
Przykład
$ lcg-aa   --vo vo.plgrid.pl guid:0721ab19-3e73-40f4-bbec-f92c6a772423 lfn:/grid/vo.plgrid.pl/$USER/testFile.alias 
Uzyskiwanie GUID dla zadanego LFN lub SURL

Do uzyskania GUID dla zadanego LFN lub SURL służy komenda:

lcg-lg lfn:<ścieżka i nazwa pliku>
Przykład
$ lcg-lg lfn:/grid/vo.plgrid.pl/$USER/testFile.txt
guid:cc50581f-9604-4cd2-b599-ed384be533c3

Podgląd wybranych plików wynikowych zadania przed zakończeniem działania zadania

Po wysłaniu zadania na grid utrudniony jest dostęp do plików generowanych poprzez obliczenia. Do ich podglądu specjalny mechanizm tzw. perusal. By z niego skorzystać należy:

  • do pliku JDL opisującego zadanie dodać PerusalFileEnable = true; oraz PerusalTimeInterval = czas_sekundach; (np. PerusalTimeInterval = 1800; - jest to czas pomiędzy wysyłaniem przez zadania kolejnych uaktualnień pliku na WMS)
  • po wysłaniu zadania na grid należy uruchomić mechanizm "podglądania" plików komendą (oczywiście wymieniając tylko te pliki, których podgląd jest pożądany):

    glite-wms-job-perusal --set -f <file1> -f <file2>  <jobId>
  • do zobaczenia aktualnego stanu podglądanego pliku należy użyć komendy:

    glite-wms-job-perusal --get -f <file>  <jobId>
    • Wypunktowanieprzydatne opcje:
      • -all zczytuje cały plik od początku. Domyślnie pobierana jest tylko część pliku zmieniona po ostatnim użyciu komendy glite-wms-job-perusal --get -f <file> <jobId>
      • --dir <dir> zapisuje podglądany plik do podkatalogu <dir> katalogu, z którego wywołana została komenda. Standardowo plik jest zapisywany w katalogu /tmp/<jobId>
  • Gdy podglądanie pliku przestaje być potrzebne należy wyłączyć mechanizm perusal poleceniem

    glite-wms-job-perusal --unset <jobId>

    Ważne: Opisany mechanizm w przypadku bardzo dużych plików może nadmiernie obciążać serwer WMS. Prosimy o stosowanie z rozwagą.

Tworzenie długoterminowego proxy i jego przechowywanie na serwerze MyProxy

Podczas uruchamiania długo wykonujących się zadań, zalecane jest skorzystanie z długoterminowego proxy. W tym celu należy:

  1. Ustawić zmienną MYPROXY_SERVER_DN na "/C=PL/O=GRID/O=Cyfronet/CN=myproxy.grid.cyf-kr.edu.pl" np. używając powłoki bash komendą:

    $ export MYPROXY_SERVER_DN="/C=PL/O=GRID/O=Cyfronet/CN=myproxy.grid.cyf-kr.edu.pl"
  2. Wygenerować standardowe proxy ważne przynajmniej przez 45 minut

    $ voms-proxy-init --voms <VO>

     

    Stworzyć i zapisać proxy długoterminowe:

    $ myproxy-init -s myproxy.grid.cyfronet.pl -d -n --voms <VO>

    gdzie:
    -s  – specyfikuje hostname maszyny gdzie jest uruchomiony serwer MyProxy;
    -d – powoduje, że serwer pośredniczący (serwer proxy) kojarzy DN użytkownika z ustanawianym pośrednikiem (proxy);
    -n – powoduje pominięcie użycia hasła dostępu do długoterminowego proxy, dzięki czemu odnawianie proxy może następować automatycznie.
    -voms <VO> – dodaje rozszerzenie VO do proxy

  3. W pliku opisu zadania (jdl) powinna być zawarta linia MyProxyServer = ”myproxy.grid.cyf-kr.edu.pl”, dzięki której System WMS będzie czasowo odnawiał proxy dla uruchomionego zadania.

Dodatkowo, do obsługi MyProxy przydatne są poniższe komendy:

  • Informacje na temat utworzonego długoterminowego proxy:

    $ myproxy-info -s myproxy.grid.cyfronet.pl -d
  • Po zakończeniu zadania, proxy długoterminowe może zostać usunięte komendą:

    $ myproxy-destroy -s myproxy.grid.cyf-kr.edu.pl -d

Co dalej?

W zasadzie - nic więcej, tylko liczyć. W razie pytań lub problemów warto zajrzeć na stronę Gdzie szukać pomocy?

 

  • No labels