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 16 drwxr-xr-x 2 root root 4096 Aug 15 13:57. drwx root root 4096 Feb 10 15:32.. -rw-r--r-- 1 root root 0 Mar usercert.pem -rw-r--r-- 1 root root 1322 Mar usercert_request.pem -rw root root 963 Mar 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 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ız Bir 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 Anahtar Subject: C=TR, O=TRGrid, OU=TUBITAK-ULAKBIM, CN=Onur Temizsoylu Issuer: C=TR, O=TRGrid, CN=TR- Grid CA Validity Not Before: Feb 5 10:05: GMT Not Before: Feb 5 10:05: GMT Not After : Feb 5 10:05: GMT Not After : Feb 5 10:05: GMT 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şkenleri Kullanı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 ) 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: = ; # 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 Nitelikleri JobType 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 Hikayesi LFC UI JDL LB WMS (RB) İş Gönderme ServisiSECE BDII İş Durumu Veri Bilgisi VOMS İş Gönderme İş Sorgulama İş Durumu Girdi torbası Girdi torbası + Planlama Bilgisi Globus RSL Çıktı Torbası Çıktı torbası İş Durumu voms-proxy-init Expanded JDL 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 İşinizin belli bir sitede çalışması için Requirement satırı ekliyebilirsiniz. Requirements = other.GlueCEUniqueID == "ce.ulakbim.gov.tr:2119/jobmanager-lcgpbs-sgdemo";
İş Göndermek glite-job-submit [-vo ] [-o ] -vo Sanal organizasyon, proxy oluşturulurken tanımlandı ise gerek yoktur -o Oluşacak JobID bu dosyaya yazılır glite-job-status –i (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 the default VO in your proxy credentials: "sgdemo" Selected Virtual Organisation name (from proxy certificate extension): sgdemo Connecting to host wms.ulakbim.gov.tr, port 7772 Logging 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: - JobID *********************************************************************************************
İş Göndermek glite-job-cancel Belirtilen işi iptal eder glite-job-status İş hakkında bilgi verir glite-job-output İşin çıktı torbasını getirir glite-job-logging-info İş hakkında detaylı bilgi verir, hata gidermek için yararlı bir komuttur
İş Durumları Durum Anlamı SUBMITTEDLB tarafından iş kabul edildi WAITKaynak planlaması yapılıyor READYSeçilen sitenin CE sunucusuna iş gidiyor SCHEDULEDSeçilen sitenin iş kuyruğunda iş bekliyor RUNNINGİş seçilen sitede çalışıyor DONEİş başarı ile tamamlandı CLEAREDİşin çıktı dosyaları alındı ABORTOrta 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 İşleri Paralel 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