From T3_KR_KNU
Revision as of 02:42, 23 September 2015 by Hanbi (Talk | contribs) (Storage Element (SE) Manual)

Jump to: navigation, search

1 Pre-requisites

KNU Tier-2를 이용하기 위해서는 Grid 환경에 접속하기 위한 인증서를 공식 인증 사이트를 통해 획득한 후 LCG VO에 등록하고 KNU Tier-2에 사용계획서 및 유저 등록을 통해 계정을 부여받는다.

1. CERN 및 CMS User 등록

 CERN & CMS User Registration

2. Certificate

 CERN 인증서 웹사이트에 접속하여 Certificate를 발급받는다.  
 Certificate가 발급되면 인증서를 개인 PC 웹브라우저에 Import 한 후, 
 Import된 인증서를 웹브라우저 설정 메뉴 중 Public key 관련탭에서 개인 PC로 Export할 수 있다. 
 (인증서를 Export할 시 확장자는 ".Pfx"로 선택하시기 바랍니다.) 
 Export된 인증서 파일은 cms UI(cms.knu.ac.kr)의 본인 디렉토리에 복사한 후
 아래의 순서대로 인증서와 키를 만들어 .globus 디렉토리에 넣으시기 바랍니다.
  $ mkdir .globus
  $ openssl pkcs12 -in usercert.pfx -clcerts -nokeys -out .globus/usercert.pem
  $ openssl pkcs12 -in usercert.pfx -nocerts -out .globus/userkey.pem
  $ chmod 644 .globus/usercert.pem
  $ chmod 400 .globus/userkey.pem

3. VO(Virtual Organisation) 등록

  CERN Certificate를 다운로드 받은 웹브라우저(인증서가 import 되어 있는)로
  LCG CMS VO에 접속하여 인증서를 등록. (참고: VO 등록방법 안내 자료)
  이메일등 신상 정보를 입력하고, role을 선택한 후 신청서를 제출하면, 담당자가 등록 결과를 이메일로 보내줌. CMS VO 등록 여부 확인 홈페이지

4. Getting KNU Tier-2 Account

   <<Account 발급 전, 자주 하는 질문>>
   Q : CMS에서 처음 일하게 되어 전반적인 연구 내용을 잘 모릅니다. 신청서 내용 작성에 어려움이 많습니다. 어떻게 하면 좋을까요?
   A : CMS 신규 사용자의 경우 연구 내용을 잘 모를 수 있고, 컴퓨팅 자원에 대한 지식이 부족할 수 있습니다.
       사용계획서 내의 예시를 보시고 작성하실 수 있는 부분을 간략히 적으시면 됩니다.
       잘 모르는 부분은 빈란으로 두셔도 되지만, 가능하다면 연구실 선임께 여쭤보시는 방법도 좋습니다.
  
   Q : 연구 계획서에서 앞으로 사용할 (CPU, Disk) 사용량을 적어 냈는데요, 반드시 이 범위 내에서만 사용해야 하나요?
   A : 연구를 진행하시면서 연구 계획이 구체화되고 이에 따라 자원의 필요량이 증가하시면, Tier-2 연락처를 통해 미리 말씀해 주시면 필요한 자원의 할당을 준비해 드리겠습니다.
       대량의 연구자원을 갑작스럽게 요청하시면 자원 할당에 시간이 다소 소요될 수 있습니다.
  
   Q : 초기에 제출한 전산자원 사용량을 초과하여 사용할 경우 불익이 있나요?
   A : 개인 용량을 다소 초과하셔도 불익은 없습니다. 다만 추가 사용량이 큰 경우 협의를 통해 조정하시기 바랍니다.
  
   Q : 연구의 내용이 확장되어 더 많은 자원을 필요로 합니다. 이런 경우 어떻게 해야 하나요?
   A : 연구계획 수정 내용을 추가로 작성/제출하시면 됩니다.
       Tier-2 에서 보유하고 있는 여유 전산자원에 따라, 필요하신 자원의 준비에 다소 시간이 소요될 수 있으니 시간적 여유를 두시고 신청해 주시면 감사하겠습니다.
  
   (기타 궁금하신 부분이 있으시면 언제든 연락 주시면 안내해 드리겠습니다.)
  1) KNU Account Registration 웹페이지에서 신청서를 작성, 제출한다.
  2) 사용계획서(hwp)를 작성하여 e-mail(lcg_knu@knu.ac.kr)로 발송한다.
  
  발급 받은 임시 비밀번호를 이용해 KNU Tier-2 UI에 접속한 후 그리드 프록시가 정상적으로 생성되는지 확인한다.
  (임시 비밀번호는 아래 안내문을 참고해서 반드시 변경하십시오)
  $ voms-proxy-init --voms cms
  Your identity: /DC=ch/DC=cern/OU=Organic Units/OU=Users/CN=XXXXXXXX    <--------- DN(distinguished name)

5. SiteDB 등록

  CRAB 이용을 위한 필수 과정인 사용자 DN의 SiteDB 등록이 자동화 됨.
  - 관련 안내 자료
    SiteDB for CRAB: https://twiki.cern.ch/twiki/bin/view/CMS/SiteDBForCRAB
    사용자 DN 등록 자동화 안내 : https://twiki.cern.ch/twiki/bin/viewauth/CMS/SiteDBForCRAB#Adding_your_DN_to_your_profile

2 KNU Tier-2 Login

1. Linux 에서 접속하기

터미널을 열어서 원격로그인(SSH)으로 접속한다. 
ssh -X username@kcms-t2.knu.ac.kr( or username@cms.knu.ac.kr, username@cms01.knu.ac.kr)

2. Windows OS 에서 접속하기

Windows OS 에서 linux 서버로 접속하려면 원격 로그인을 사용할 수 있는 특정 프로그램이 필요하다.
   예) Putty(무료), SSH Secure Shell Client (프리웨어 또는 정식 서비스를 찾아 설치가능) - SSH Secure Shell Client 예시 화면
또한, Event display 및 ROOT을 사용하기 위해서는 다음과 같은 X 서버를 별도로 설치하여야 한다.
   예) Xming(무료), Cygwin/X(무료), Hummingbird(유료), Xmanager(유료)
  • 첫 로그인 후 개인 Password 및 shell 설정시 유의사항
1) 패스워드 변경시 passwd 명령을 사용.
$ passwd

[주의 : 비밀번호 변경은 더이상 yppasswd 명령을 사용하지 않습니다.]

2) Login Password는 알파벳, 숫자, 특수문자 등을 섞어서 사용하여 기억하기 쉬우면서도 길게 만드는 것이 해킹방지에 도움이 됩니다.
   (간단한 단어 또는 숫자만의 조합은 극히 위험함.)
3) 계정이 발급되었을때 처음 기본 쉘은 tcsh 이다. 기본 shell의 변경은 ypchsh 명령을 이용하여 bash 혹은 zsh 등의 자신이 선호하는 shell로 변경할 수 있다.
$ ypchsh

3. KNU UI 현황

대표 Hostname 세부 Hostname OS 비고
kcms-t2.knu.ac.kr cms.knu.ac.kr SL6 Tier2 UI
kcms-t2.knu.ac.kr cms01.knu.ac.kr SL6 Tier2 UI
kcms-t3.knu.ac.kr cms02.knu.ac.kr SL6 Tier3 UI
kcms-t3.knu.ac.kr cms03.knu.ac.kr SL5 Tier3 UI

3 CMSSW(CMS Software) Installation

  • CMSSW 을 설치하기 위해 먼저 설치 환경을 설정한다.
$ source /cvmfs/cms.cern.ch/cmsset_default.csh

bash shell을 사용한다면

$ source /cvmfs/cms.cern.ch/cmsset_default.sh

설치하고자 하는 버전의 CMSSW 를 확인한 후 개인 <working-directroy> 로 이동하여 설치한다. (x.y.z 는 버전을 나타낸다)

$ scramv1 list CMSSW
$ cd <working-directory>
$ scramv1 project CMSSW CMSSW_x_y_z

4 CRAB(CMS Remote Analysis Builder) 활용

1. CMS Crab 사용 가이드를 참고 바랍니다.

CRAB online manual and tutorial


2. 아래의 간편 예제를 참고하여 CRAB 실행을 연습해 보세요.

 [ 주의 : bash 기준으로 작성되었습니다. 아래 예제의 스크립트 중 자신의 shell에 맞는 스크립트를 사용하시면 됩니다. (ex: csh 사용자는 source /cvmfs/cms.cern.ch/cmsset_default.csh 을 활용) ]
$ cd /cvmfs/cms.cern.ch/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_2_1/   ### CVMFS 에서 제공하는 CMS S/W 중 자신이 활용하고 싶은 아키텍쳐 및 CMS S/W 버전이 있는지 확인합니다.
$ set SCRAM_ARCH=slc6_amd64_gcc481   ### 아키텍쳐를 설정합니다.
$ source /cvmfs/cms.cern.ch/cmsset_default.sh   ### CMS S/W 기본 설정을 로드합니다.
$ cmsenv   ### CMS 작업 환경을 로드합니다.
$ cd ~/   ### 자신의 홈디렉토리로 이동합니다.
$ scramv1 list CMSSW   ### 자신이 사용하고 싶은 CMSSW를 검색합니다.
$ scramv1 project CMSSW CMSSW_7_2_1   ### 검색 결과 중 한 가지의 버전을 선택/설정합니다. (자동으로 해당 버전의 CMSSW 작업 폴더가 생성됩니다.)
$ cd CMSSW_7_2_1/src   ### 생성한 작업 폴더로 이동합니다.
$ vi crab3config.py   ### crab 설정 파일을 생성합니다. (아래의 crab3config.py 예제 참조)
$ vi myConfig.py   ### 실행할 작업 명시 파일을 생성합니다 (아래의 myConfig.py 예제 참조)
$ source /cvmfs/cms.cern.ch/crab3/crab.sh   ### crab 사용을 설정합니다.
$ crab submit -c crab3config.py   ### 실제 작업을 생성합니다.
$ crab status   ### 작업 진행 상황을 수시로 모니터링 합니다. (CMS 데시보드에서는 보다 다양한 형태로 자신의 작업 상황을 조회할 수 있습니다. http://dashboard.cern.ch/cms/)

3. 2. 항목 완료 후, 같은 환경에서 추가 작업을 진행하실 때는 아래의 항목만을 진행하시면 됩니다.

# 환경 설정
$ cd CMSSW_7_2_1/src
$ source /cvmfs/cms.cern.ch/cmsset_default.sh   
$ cmsenv
$ source /cvmfs/cms.cern.ch/crab3/crab.sh
# 작업 내용 정리
$ vi crab3config.py
$ vi myConfig.py
# 작업 실행 및 조회
$ crab submit -c crab3config.py
$ crab status


  • 예제 : crab3config.py
  from WMCore.Configuration import Configuration
  config = Configuration()
  config.section_('General')
  config.General.transferOutputs = True
  config.section_('JobType')
  config.JobType.psetName = 'myConfig.py'
  config.JobType.pluginName = 'Analysis'
  config.JobType.outputFiles = ['outfileName.root']
  config.section_('Data')
  config.Data.inputDataset = '/WplusToENu_CT10_13TeV-powheg-pythia8/Spring14miniaod-PU20bx25_POSTLS170_V5-v1/MINIAODSIM'
  config.Data.unitsPerJob = 500
  config.Data.splitting = 'LumiBased'
  #config.Data.splitting = 'FileBased'
  config.Data.publication = False
  config.section_('User')
  config.section_('Site')
  config.Site.whitelist = ['T2_KR_KNU']
  config.Site.storageSite = 'T2_KR_KNU'
  • 예제 : myConfig.py
  import FWCore.ParameterSet.Config as cms
  process = cms.Process('Slurp')
  process.source = cms.Source("PoolSource", fileNames = cms.untracked.vstring())
  process.maxEvents = cms.untracked.PSet( input       = cms.untracked.int32(10) )
  process.options   = cms.untracked.PSet( wantSummary = cms.untracked.bool(True) )
  process.output = cms.OutputModule("PoolOutputModule",
   outputCommands = cms.untracked.vstring("drop *", "keep recoTracks_*_*_*"),
   fileName = cms.untracked.string('outfileName.root'),
  )
  process.out_step = cms.EndPath(process.output)

5 Setting Environment

$ source /cvmfs/cms.cern.ch/cmsset_default.csh
  • CMSSW 5_X_X 버전(64 bit)을 사용하기 위해서는 아래 환경설정을 추가로 입력
$ set SCRAM_ARCH=slc5_amd64_gcc462
  • 환경 설정시 필수 유의사항
1. CMSSW 환경 설정은 반드시 CMSSW_x_y_z directory 아래에서 시행되어야한다. 
2. CRAB을 사용하는 경우 환경 설정 순서는 반드시 CMSSW 환경설정을 우선하여 시행한다.

CMSSW 환경 설정

$ cd /cvmfs/cms.cern.ch/slc5_amd64_gcc462/cms/cmssw/CMSSW_x_y_z
$ cmsenv (= eval `scramv1 runtime -csh`)

6 Starting GRID Job Submission

1. Grid Ticket 생성

$ cd <working-directory>/CMSSW_x_y_z/src/<data-directory>
$ voms-proxy-init --voms cms
     예)Your proxy is valid until Tue Apr 22 06:03:51 KST 2014
 

2. CRAB 작업 실행

CRAB3 사용 및 간단한 명령어
$ crab submit -c crab3config.py   (Grid job 생성 및 submit) 
$ crab status           (수행중인 job 의 상태 확인)

Software Guide on CRAB

7 How to use KNU Tier-3

1. KNU Tier-3 이용

  Tier-3 Farm은 Tier-2 에 비해서 상대적으로 작은 연산자원을 가지고 있습니다. 많은 양의 job 혹은 무거운 job의 실행은 Tier-2를 이용해 주시기 바랍니다.
  추후 자원 증설 예산을 최대한 반영하여 자원 확보에 노력하겠습니다.

2. Grid 환경에서 작업 실행하기

  기본적인 작업 실행 방법은 기존 Tier-2의 방법과 동일합니다.
  다만, Crab 설정에서
  [GRID]
  ce_white_list = cluster118.knu.ac.kr
  을 추가해 주시면 Tier-3 Farm에 작업이 할당됩니다.
  

3. 배치 작업(Torque) 실행하기

  1) Tier-3 UI 접속하기
    터미널을 열어서 원격로그인(SSH)으로 접속한다. 
    ssh -X username@kcms-t3.knu.ac.kr( or username@cms02.knu.ac.kr)
  2) 작업 실행하기
    ① 쉘을 bash로 전환한다.
       bash
    ② SCRAM_ARCH를 slc5로 설정한다.
       export SCRAM_ARCH=slc5_ia32_gcc434
    ③ cms 환경을 설정한다.
       source /cvmfs/cms.cern.ch/cmsset_default.csh
    ④ 자신이 작업하고자 하는 CMSSW이 설치된 폴더로 이동한다.
       cd CMSSW_version/src
    ⑤ 실행할 파일을 확인한다.
       scram runtime -sh
    ⑥ 자신에게 맞는 CMSW 버전, 작업 디렉토리, 결과 저장 디렉토리, 이메일 주소 등을 job_template_cmssw에 기록한다. (job_template_cmssw 파일은 작업 할당 폴더에 위치 시킨다.)
       참조 : http://www.physics.purdue.edu/Tier2/files/job_template_cmssw.txt
    ⑦ createjobs 파일을 생성하고 읽기, 쓰기, 실행 권한을 부여한다.
       참조 : http://www.physics.purdue.edu/Tier2/files/createjobs.txt
    ⑧ 작업을 실행(submit)한다.
       ./createjobs.sh jobname #event #job #submitjob cfgfilename nameofcluster
    ⑨ 실행(submit)한 작업의 상태를 관찰한다.
       qstat cms
  ※주의 : 배치 작업(Torque) 실행은 Tier-3에서만 가능합니다.

8 CRAB Feedback & CMS Computing Manual

  • CRAB 사용시 발생하는 문제점 및 해결방법은 아래 사이트를 참조
https://hypernews.cern.ch/HyperNews/CMS/get/crabFeedback.html
  • CMS Computing Manual
https://twiki.cern.ch/twiki/bin/view/CMSPublic/WorkBook

9 Storage Element (SE) Manual

CRAB 등을 사용하여 얻은 데이터를 보관할 수 있는 저장 공간을 Storage Element (SE)라 한다. 이곳에 데이터를 저장하기 위해서는 몇가지 특수한 명령어를 사용해야 한다.

[주의 : tcsh, csh 등 에서 관련 명령어를 사용할 때, 경로 인자에 반드시 " " 를 사용해주시기 바랍니다. ]


0) voms 인증 후 사용할수 있다.

$ voms-proxy-init --voms cms

1) T2_KR_KNU의 Computing Resource 실시간 조회하기 (CPU, Disk 자원 조회)

$ /d/cms/bin/knuinfo
$
-----------------------------------------------------------------------------------------
   CPU    Free Total Jobs      Running Waiting ComputingElement
   161      99         62           62       0 cluster118.knu.ac.kr:8443/cream-pbs-cms
   496     127        368          368       0 cluster50.knu.ac.kr:8443/cream-pbs-cms
-----------------------------------------------------------------------------------------
 Avail Space(kB)  Used Space(kB)  Type  SE
    125508644406    644170969874  SRM   cluster142.knu.ac.kr
-----------------------------------------------------------------------------------------


2) SE(Storage Element)의 사용자 디렉토리 경로

$ srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/(username)/.../SrcFile
$ dcap://cluster142.knu.ac.kr/pnfs/knu.ac.kr/data/cms/store/user/(username)/.../SrcFile
$ gsidcap://cluster142.knu.ac.kr:22128/pnfs/knu.ac.kr/data/cms/store/user/(username)/.../SrcFile

참고사항: - 위의 예시에서 username은 향후 publish 할 경우를 고려해서 경북대 ID가 아니라 CERNID를 사용해야 합니다. - 만약에 본인의 디렉토리가 만들어져 있지 않는 경우에는 관리자에게 연락바랍니다.

3) test.file 파일의 SE 및 local 디렉토리로 복사하기

$ gfal-copy srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/(username)/.../SrcFile     srm://cluster142/.../DestFile
$ gfal-copy srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/(username)/.../SrcFile     file:////u/user/(username)/.../DestFile
$ gfal-copy gsidcap://cluster142.knu.ac.kr:22128/pnfs/knu.ac.kr/data/cms/store/user/(username)/.../SrcFile     file:////u/user/(username)/.../DestFile

4) xrootd 를 활용한 SE Data 접근 방법

$ xrdcp root://cluster142.knu.ac.kr//store/user/(username)/test.file /some/local/path/test.file
  (참조 : http://xrootd.org/doc/prod/Syntax_config.htm)

5) root에서 SE Data 접근 방법

# 읽기
$ TFile *f = TFile::Open("dcap://cluster142.knu.ac.kr//pnfs/knu.ac.kr/data/cms/store/user/(username)/test.root");
$
# 쓰기
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/dcap
$ root -l
root [0] TFile *f = TFile::Open("gsidcap://cluster142.knu.ac.kr:22128//pnfs/knu.ac.kr/data/cms/store/user/(username)/test.root", "RECREATE");
root [1] f->Close();
root [2] .q
$

6) 복수의 파일을 동시에 전송하기

$ /usr/local/bin/lcgcp_copyfiles list.txt
$ cat  list.txt 
srm://myhost.mydomain.edu:8443//dir1/dir2/sh-copy1 file:///localdir/sh1
srm://myhost.mydomain.edu:8443//dir1/dir2/sh-copy2 file:///localdir/sh2
srm://myhost.mydomain.edu:8443//dir1/dir2/sh-copy3 file:///localdir/sh3
  • lcg_cp는 기본적으로 복수파일 전송을 지원하지 않으나 원본경로 대상경로를 포함하는 목록 파일을 생성한뒤, 위의 스크립트를 사용하면 복수의 파일을 전송할수 있다.


7) 복사가 정상적으로 이루어졌는지 확인 또는 디렉토리의 목록 확인

$ gfal-ls -Hl srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/(username)

8) 파일 또는 디렉토리 삭제

$ gfal-rm srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/(username)/test/test.file
$ gfal-rm srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/(username)/test
$ lcg-del -d srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/(username)/test


9) gfal 명령어 사용 요약

 $ voms-proxy-init --voms cms 로 proxy 생성후 아래 명령어를 수행하시면 됩니다.
 $ 조회 : gfal-ls -Hl srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/MyAccount/FolderName
 $ 복사 : gfal-copy srm://cluster142.knu.ac.kr:8443/.../FileNameSrc    srm://cluster142.knu.ac.kr:8443/.../FileNameDest
 $ 삭제 : gfal-rm srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/MyAccount/FolderName/FileName
 $ 디렉토리 삭제 : gfal-rm -R srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/MyAccount/FolderName
  • 명령어 뒤의 Option은 매뉴얼 페이지를 참고 바랍니다. (ex. man gfal-ls)
  • 1000개 이상의 파일 포함한 폴더 내용 보기 : (ex. 500번째 파일부터 700개의 파일을 보고 싶을 경우) lcg-ls --offset 500 --count 700 srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/(DestFoler)


10) no match 오류가 발생할때

  • tcsh에서 ?는 wild card로 인식이 됩니다. 따라서 tcsh을 사용하고 있다면 srm 경로에 반드시 ""를 사용해야 합니다.


11) srm*, lcg*, gfal* 주요 명령어 비교표

srm* lcg* gfal* 비고
srmls lcg-ls gfal-ls ls
srmcp lcg-cp gfal-copy cp
srmrm lcg-del gfal-rm rm
srmmkdir gfal-mkdir mkdir
srmrmdir lcg-del -d gfal-rm -R rmdir
gfal-cat cat


12) Tier-2 저장공간(Disk) 활용 분류

* Storage Element (srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/...)
 : 대용량 저장 공간으로 장기간 보관이 가능합니다.
  - PhEDEx를 통한 DataSet 저장
  - Analysis 이후의 결과파일 저장
 : 현재 약 830 TB의 공간을 마련하여 운영하고 있습니다.
 : 사용자의 데이터 저장으로 공간이 부족할 경우, 사전 설문을 통해 더 이상 사용하지 않는 과거 데이터의 삭제 요청을 드릴 수 있습니다. 
* User Home Directory (/u/user/...)
 : Tier-2 UI에 로그할 경우 기본적인 설정사항 등을 보관하는 장소입니다.
 : 약 9 TB 규모의 공간입니다.
 : 모든 사용자가 9 TB를 나누어 사용하므로 용량이 큰 데이터의 보관은 가급적 삼가해 주시기 바랍니다.
* Scratch Disk
 : UI에 총 4개의 임시 저장공간이 있습니다.
  - /d  : 2 TB single Disk
  - /d1 : 2 TB single Disk
  - /d2 : 2 TB single Disk
  - /d3 : Logical Volume ( 2 TB single Disk * 3)
 : scratch disk는 Storage Element와 User Home Directory 영역과 달리 Single Disk로 구성이 되어 있습니다.
 : 개별 Disk의 물리적 장애 발생 시, 데이터의 유실이 발생하므로 중요한 데이터 및 장기 보관 데이터는 반드시 Storage Element로 이동하여 주시기 바랍니다.
-