From T3_KR_KNU
(→root에서 SE Data 접근 방법) |
(→Storage Element Tutorial) |
||
Line 46: | Line 46: | ||
(참조 : http://xrootd.org/doc/prod/Syntax_config.htm) | (참조 : http://xrootd.org/doc/prod/Syntax_config.htm) | ||
+ | |||
+ | === dcap을 이용한 SE Data 접근 방법 === | ||
+ | * [[Dcap|dcap 을 이용하여 SE 사용하기]] | ||
=== root에서 SE Data 접근 방법 === | === root에서 SE Data 접근 방법 === |
Revision as of 04:30, 6 October 2016
Contents
- 1 Storage Element Tutorial
- 1.1 voms 인증
- 1.2 T2_KR_KNU의 Computing Resource 실시간 조회하기 (CPU, Disk 자원 조회)
- 1.3 SE(Storage Element)의 사용자 디렉토리 경로
- 1.4 test.file 파일의 SE 및 local 디렉토리로 복사하기
- 1.5 xrootd 를 활용한 SE Data 접근 방법
- 1.6 dcap을 이용한 SE Data 접근 방법
- 1.7 root에서 SE Data 접근 방법
- 1.8 복수의 파일을 동시에 전송하기
- 1.9 복사가 정상적으로 이루어졌는지 확인 또는 디렉토리의 목록 확인
- 1.10 파일 또는 디렉토리 삭제
- 1.11 gfal 명령어 사용 요약
- 1.12 crab3를 사용한 후 gfal-* 명령어들이 오류가 발생합니다
- 1.13 cmsenv 실행후 gfal 명령어들이 정상 동작 하지 않을때
- 1.14 no match 오류가 발생할때
- 1.15 srm*, lcg*, gfal* 주요 명령어 비교표
- 1.16 uberftp를 이용한 Storage Element 사용
- 1.17 Tier-2 저장공간(Disk) 활용 분류
Storage Element Tutorial
CRAB 등을 사용하여 얻은 데이터를 보관할 수 있는 저장 공간을 Storage Element (SE)라 한다. 이곳에 데이터를 저장하기 위해서는 몇가지 특수한 명령어를 사용해야 한다.
[주의 : tcsh, csh 등 에서 관련 명령어를 사용할 때, 경로 인자에 반드시 " " 를 사용해주시기 바랍니다.]
voms 인증
- voms 인증 후 사용할수 있다.
$ voms-proxy-init --voms cms
T2_KR_KNU의 Computing Resource 실시간 조회하기 (CPU, Disk 자원 조회)
- UI 에서 "knuinfo" 명령어를 실행합니다.
$ 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 -----------------------------------------------------------------------------------------
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를 사용해야 합니다.
- 만약에 본인의 디렉토리가 만들어져 있지 않는 경우에는 관리자에게 연락바랍니다.
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
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)
dcap을 이용한 SE Data 접근 방법
root에서 SE Data 접근 방법
- dcap 프로토콜을 이용
# 읽기 $ 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//pnfs/knu.ac.kr/data/cms/store/user/(username)/test.root", "CREATE"); root [1] f->Close(); root [2] TFile *f2 = TFile::Open("gsidcap://cluster142.knu.ac.kr//pnfs/knu.ac.kr/data/cms/store/user/(username)/test.root", "RECREATE"); root [3] f2->Close(); root [4] .q $
- xrootd 프로토콜을 이용
# 읽기 $ voms-proxy-init --voms cms $ TFile *f = TFile::Open("root://cluster142.knu.ac.kr//store/user/(username)/test.root"); $ # 쓰기 $ voms-proxy-init --voms cms $ root -l root [0] TFile *f = TFile::Open("root://cluster142.knu.ac.kr//store/user/(username)/test.root", "CREATE"); root [1] f->Close(); root [2] TFile *f2 = TFile::Open("root://cluster142.knu.ac.kr//store/user/(username)/test.root", "RECREATE"); root [3] f2->Close(); root [4] .q $
복수의 파일을 동시에 전송하기
$ /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는 기본적으로 복수파일 전송을 지원하지 않으나 원본경로 대상경로를 포함하는 목록 파일을 생성한뒤, 위의 스크립트를 사용하면 복수의 파일을 전송할수 있다.
복사가 정상적으로 이루어졌는지 확인 또는 디렉토리의 목록 확인
$ gfal-ls -Hl srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/(username)
파일 또는 디렉토리 삭제
$ 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
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)
crab3를 사용한 후 gfal-* 명령어들이 오류가 발생합니다
source /cvmfs/cms.cern.ch/crab3/crab.sh 실행후에 gfal-* 명령어들이 오류가 발생합니다.
$ gfal-ls -Hl srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/test/test.transfer -rw-r--r-- 1 2 2 Oct 12 02:17 4.8M srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/test/test.transfer
$ source /cvmfs/cms.cern.ch/crab3/crab.sh
$ gfal-ls -Hl srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/test/test.transfer Could not find platform independent libraries <prefix> Could not find platform dependent libraries <exec_prefix> Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>] 'import site' failed; use -v for traceback Traceback (most recent call last): File "/usr/bin/gfal-ls", line 8, in <module> from gfal2_util.shell import Gfal2Shell ImportError: No module named gfal2_util.shell
crab3 에서 사용하는 python 환경변수와 gfal-* 명령어들에 문제를 일으키기 때문입니다. gfal-* 명령어 앞에 " env --unset=LD_LIBRARY_PATH "을 넣어줌으로써 문제를 해결할 수 있습니다.
$ env --unset=LD_LIBRARY_PATH gfal-ls -Hl srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/test/test.transfer -rw-r--r-- 1 2 2 Oct 12 02:17 4.8M srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/test/test.transfer
cmsenv 실행후 gfal 명령어들이 정상 동작 하지 않을때
cmsenv 실행후에 다음과 같은 오류가 발생한다면
Failed to add IO tunnel (libgsiTunnel.so: cannot open shared object file: No such file or directory). Provider: [libgsiTunnel.so]. Error ( POLLIN) (with data) on control line [12] Failed to create a control line Failed open file in the dCache. gfal-copy: error: Input/output error
아래 명령을 먼저 실행해줌으로써 문제를 해결할 수 있습니다.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/dcap
no match 오류가 발생할때
- tcsh에서 ?는 wild card로 인식이 됩니다. 따라서 tcsh을 사용하고 있다면 srm 경로에 반드시 ""를 사용해야 합니다.
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 |
uberftp를 이용한 Storage Element 사용
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로 이동하여 주시기 바랍니다.