Kullan ıcı Pratik Eğitimi
description
Transcript of Kullan ıcı Pratik Eğitimi
www.grid.org.tr
Kullanıcı Pratik Eğitimi
Kullanıcı Arayüzüne Erişim• Kullanıcı arayüzüne ssh ile bağlanın
ssh –l egitim(1-20) somon.ulakbim.gov.tr
• .globus dizininin varlığını kontrol edin
ls –laR .globus
.globus:total 16drwxr-xr-x 2 root root 4096 Aug 15 13:57 .drwx------ 31 root root 4096 Feb 10 15:32 ..-rw-r--r-- 1 root root 0 Mar 14 2006 usercert.pem-rw-r--r-- 1 root root 1322 Mar 14 2006 usercert_request.pem-rw------- 1 root root 963 Mar 14 2006 userkey.pem
• Pratik eğitim için gerekli örnek dosyaları kullanıcı dizininize açın:
cd ~tar zxvf /home/egitim.tar.gz
Çalışabileceğiniz Kaynakları Görüntülemek• Herhangi bir sanal organizasyon için o an geçerli çalışabileceğiniz kaynakları görüntülemek için:
lcg-infosites –vo <VO>
komutunu kullanabilirsiniz.
• sgdemo sanal organizasyonunda çalışılabilecek işlemcileri görmek için:
lcg-infosites –vo sgdemo ce
• sgdemo sanal organizasyonunda veri saklama alanını görmek için:lcg-infosites –vo sgdemo se
• Sorgulanabilecek diğer özellikleri görmek için:
Lcg-infosites –list-attrs
Kullanıcı SertifikanızBir X.509 sertifikası şu bilgileri içerir:
Kullanıcı açık anahtarı;
Kullanıcı hakkında bilgi;
Sertifika otoritesi bilgisi;
Geçerlilik süresi;
Sertifika otoritesinin imzası
Sertifikanızı incelemek için:openssl x509 –in usercert.pem –text
veya
grid-cert-info
Açık AnahtarAçık Anahtar
Subject: C=TR, O=TRGrid, Subject: C=TR, O=TRGrid, OU=TUBITAK-ULAKBIM, OU=TUBITAK-ULAKBIM, CN=Onur TemizsoyluCN=Onur Temizsoylu
Issuer: C=TR, O=TRGrid, CN=TR-Issuer: C=TR, O=TRGrid, CN=TR-Grid CAGrid CAValidityValidity Not Before: Feb 5 Not Before: Feb 5 10:05:58 2007 GMT10:05:58 2007 GMT Not After : Feb 5 Not After : Feb 5 10:05:58 2008 GMT10:05:58 2008 GMT
Sertifika Otoritesi İmzasıSertifika Otoritesi İmzası
Globus Grid Security Infrastructure (GSI)• GSI PKI kullanarak ortakatman yazılımları için bir güvenlik standardı oluşturur.
• Önemli bazı özellikler getirir:
• “Single sign-on”: Her seferinde şifre girmek gerekmez.
• Atama: Servisler kullanıcı adına çalışabilir.
• Proxy sertifikaları sayesinde çalışırlar.
GSI Çevre DeğişkenleriKullanıcı Sertifikaları:
Açık Anahtar: X509_USER_CERT ($HOME/.globus/usercert.pem)Özel Anahtar: X509_USER_KEY ($HOME/.globus/userkey.pem)Proxy: X509_USER_PROXY (/tmp/x509up_u<id>)
Sunucu Sertifikaları:
Açık Anahtar: X509_USER_CERT (/etc/grid-security/hostcert.pem)Özel Anahtar: X509_USER_KEY (/etc/grid-security/hostkey.pem)
Sertifika Otoriteleri: X509_CERT_DIR (/etc/grid-security/certificates)
Proxy Oluşturmak
• Çalışmak için proxy oluşturun:
voms-proxy-init --voms sgdemo
• Oluşturduğunuz proxy hakkında bilgi edinin
voms-proxy-info -all
• Oluşturduğunuz proxy’i yok edin
voms-proxy-destroy
İşinizi Çalıştırmadan Önce
• Bilmeniz gerekenler:
• Hangi programlar gönderilecek?
• Hangi veriye erişilecek, veri program ile birlikte mi gidecek?
• Herhangi bir işletim sistemi, kütüphane bağımlılığı var mı?
• Gönderdiğiniz uygulama:
• Bilinmeyen bir sistemde çalışabilmeli
• Çalışma dizini dışında yer alacak şekilde sabit olarak belirlenmiş dizinler ve dosyalar içermemelidir.
Grid Dünyasının Dili - JDL
• Job Description Language (JDL)
Condor ClassAd dili standardında geliştirilmiştir
• Bir JDL dosyası niteliklerle oluşturulur:
<nitelik> = <anahtar>;
• # ile JDL içine açıklama satırları yazılabilir.
• Nitelikler temel olarak ikiye ayrılabilir:
• İş nitelikleri, işin kendini tanımlar
• Kaynak nitelikleri, işe uygun kaynakların bulunmasını sağlar.
JDL Dosyası
• Bir JDL dosyası en azından aşağıdaki nitelikleri içerir:
• Çalışacak uygulamanın adı
• İşin standart çıktısının ve hatasının yazılacağı dosyaları
• Gerekli ise iş için gerekli argümanları
• Girdi ve çıktı torbalarında yer alacak dosyaları
ornek1.jdl
Executable = “ls”;StdError = “stderr.log”;StdOutput = “stdout.log”;Arguments = “-al”;OutputSandbox = {“stderr.log”, “stdout.log”};
JDL NitelikleriJobType Normal (basit, seri iş), Interactive, MPICH, Checkpointable
Executable – Çalıştırılacak komut
Arguments – Komuta verilecek argümanlar
StdInput, StdOutput, StdError – Standart girdi, çıktı ve hata dosyaları
Environment – Çevre değişkenleri
InputSandbox – Kullanıcı arayüzünden çalışacağı siteye gönderilecek dosyalar
OutputSandbox – İş bitiminde alınacak dosyalar
Requirements – Gerekli kaynak nitelikleri
Rank – Bulunan kaynakların sıralanması
JDL Dosyasıornek2.jdl
[ Executable = "/bin/sh";
Arguments = "HelloWorld.sh";
Stdoutput = "stdoutput";
StdError = "stderror";
InputSandbox = {"HelloWorld.c","HelloWorld.sh"};
OutputSandbox = {"stdoutput","stderror"};
Requirements = (other. GlueHostOperatingSystemName == “linux") && (other.GlueCEPolicyMaxWallClockTime > 10000);
Rank = other.GlueCEStateFreeCPUs;]
Bir İşin Hayat HikayesiLFCLFC
UIJDL
LB
WMS (RB)WMS (RB)
İş Göndermeİş GöndermeServisiServisi
SESE
CECE
BDIIBDII
İş Durumu
Veri Bilgisi
VOMS
İş G
önd
erme
İş S
orgulam
a
İş D
urum
u
Girdi torbası
Girdi torbası + Planlam
a Bilgisi
Globus RSL
Çıktı Torbası
Çıktı torbası
İş Durumu
vom
s-pr
oxy-
init
Exp
and
ed J
DL
SE & CE Bilgisi
İşi göndermeden önce• JDL dosyasında yer alan niteliklere göre işin çalışabileceği siteleri görebilirsiniz.
glite-job-list-match <job.jdl>
• İşinizin belli bir sitede çalışması için Requirement satırıekliyebilirsiniz.
Requirements = other.GlueCEUniqueID == "ce.ulakbim.gov.tr:2119/jobmanager-lcgpbs-sgdemo";
İş Göndermekglite-job-submit [-vo <VO>] [-o <dosya_ismi>] <job.jdl>
-vo Sanal organizasyon, proxy oluşturulurken tanımlandı ise gerek yoktur
-o Oluşacak JobID bu dosyaya yazılır
glite-job-status –i <dosya_ismi> (veya jobId)
-i İş gönderilirken verilen dosya ismi burada kullanılabilir
İş Göndermek glite-job-submit testJob.jdl
**** Warning: UI_VOMS_OVERRIDE ****The Virtual Organisation name "dteam" you have specified with the UI conf file will be overriden by thedefault VO in your proxy credentials: "sgdemo"
Selected Virtual Organisation name (from proxy certificate extension): sgdemoConnecting to host wms.ulakbim.gov.tr, port 7772Logging to host wms.ulakbim.gov.tr, port 9002
********************************************************************************************* JOB SUBMIT OUTCOME The job has been successfully submitted to the Network Server. Use glite-job-status command to check job current status. Your job identifier is:
- https://wms.ulakbim.gov.tr:9000/2n33HIg63quJXLKgHG2m-A JobID
*********************************************************************************************
İş Göndermekglite-job-cancel <jobid>
Belirtilen işi iptal eder
glite-job-status <jobid>
İş hakkında bilgi verir
glite-job-output <jobid>
İşin çıktı torbasını getirir
glite-job-logging-info <jobid>
İş hakkında detaylı bilgi verir, hata gidermek için yararlı bir komuttur
İş Durumları
DurumDurum Anlamı
SUBMITTED LB tarafından iş kabul edildi
WAIT Kaynak planlaması yapılıyor
READY Seçilen sitenin CE sunucusuna iş gidiyor
SCHEDULED Seçilen sitenin iş kuyruğunda iş bekliyor
RUNNING İş seçilen sitede çalışıyor
DONE İş başarı ile tamamlandı
CLEARED İşin çıktı dosyaları alındı
ABORT Orta katman tarafından iş iptal edildi
Olası İş Durumları
İnteraktif İşlerİnteraktif iş, standart girdi, çıktı ve hataları iş gönderilen istemciye yönlendiren iş tipidir:
• Kullanıcı JobType niteliğini interactive olarak ayarlamalıdır.
• Bir interaktif iş gönderildiğinde glite-job-submit komutu arka planda bir gölge konsol işi başlatır.
• Konsolun kullanacağı port, ListenerPort niteliği ile değiştirilebilir.
• DISPLAY çevre değişkeni düzgün ayarlanmalı veya –nogui parametresi kullanılmalıdır
• OutputSandbox niteliğini tanımlamaya gerek yoktur. İnteraktif pencereye çıktılar gelecektir.
MPICH İşleriParalel iş koşturmak için birçok kütüphane vardır. gLite orta katmanında MPICH tercih edilmiştir.
Kullanıcı JobType niteliğini MPICH olarak ayarlamalı ve NodeNumber niteliği ile gerekli işlemci sayısını ayarlamalıdır.
Bir sitede MPICH işi çalışması için sitenin uygun şekilde düzenlenmesi dışında:
• Sitenin MPICH desteklediğinin işaretlenmesi gerekmektedir
• İstenen işlemci miktarı sitedeki mevcut işlemci sayısından az olmalıdır
MPICH İşleri[JobType = “MPICH";Executable = "cpi";NodeNumber = 2;StdOutput = "test.out";StdError = "test.err";InputSandbox = {"cpi"};OutputSandbox = {"test.out","test.err"};]
• NodeNumber işin çalışacağı işlemci sayısını belirtir.• İşlemci sayısı arttıkça işin kuyrukta bekleme süresi de artacaktır