Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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

    Code Block
    $ 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

    Code Block
    $ voms-proxy-init -valid <H:M>
    Code Block
    $ 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

    Code Block
    $ 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ń

    Code Block
    $ 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.

...

  • 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ą

Code Block

$ 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

Code Block

$ 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

Code Block

$ 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

Code Block

$ 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

Code Block

$ 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

Code Block

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

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

Code Block

$ 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
*************************************************************

...

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

Code Block

$ 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

...

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
Code Block

...

$ glite-wms-job-submit -a -o jobId job.jdl
  • Odczytywanie, np.

 

 

 

Code Block

...

$ glite-wms-job-status -i jobId

Zarządzanie dużymi plikami z wykorzystaniem Storege 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.

...

Przykład dla VO vo.plgrid.pl:
Code Block

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

...

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

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

    Code Block
    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

    Code Block
    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ą:

    Code Block
    $ 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

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

     

    Stworzyć i zapisać proxy długoterminowe:

    Code Block
    $ 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:

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

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

<html>
<style type="text/css">

a.naw {
width:100px;
display:inline; /* change to inline for horizontal menu */
margin-left:5px; /*indents left margin; change for horiz. menu */
margin-top:0px; /* change to 1 or 2px for top space between
buttons*/
padding: 2px 5px 2px 5px;
/* padding numbers = top : right : bottom :
left ; */
text-decoration:none;
/font-family:arial;/
font-weight:bold;
text-align:center;
background-color: #F0F0F0;
color: MidnightBlue;
font-size:9pt;
border: 1px MidnightBlue ridge;
}
a.naw:hover {
border: 1px orange ridge;
}
</style>
<a class=naw onClick="javascript:history.back();" target="_self">
Powrót
</a>
<a class=naw href="/doku.php?id=pakiet5:nowy_podrecznik" target="_self">
Spis treści
</a>

...