(→복사가 정상적으로 이루어졌는지 확인 또는 디렉토리의 목록 확인) |
(→no match 오류가 발생할때) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 314: | Line 314: | ||
=== 파일 또는 디렉토리 삭제 === | === 파일 또는 디렉토리 삭제 === | ||
− | $ gfal-rm | + | $ gfal-rm davs://cluster142.knu.ac.kr:2880/cms/store/user/(username)/test/test.file |
$ <strike>gfal-rm srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/(username)/test</strike> | $ <strike>gfal-rm srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/(username)/test</strike> | ||
− | $ lcg-del -d srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/(username)/test | + | $ <strike>lcg-del -d srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/(username)/test</strike> |
− | + | ||
=== gfal 명령어 사용 요약 === | === gfal 명령어 사용 요약 === | ||
$ voms-proxy-init --voms cms 로 proxy 생성후 아래 명령어를 수행하시면 됩니다. | $ voms-proxy-init --voms cms 로 proxy 생성후 아래 명령어를 수행하시면 됩니다. | ||
− | $ 조회 : gfal-ls -Hl | + | $ 조회 : gfal-ls -Hl davs://cluster142.knu.ac.kr:2880/cms/store/user/MyAccount/FolderName |
− | $ 복사 : gfal-copy | + | $ 복사 : gfal-copy davs://cluster142.knu.ac.kr:2880/cms/store/user/.../FileNameSrc davs://cluster142.knu.ac.kr:2880/cms/store/user/.../FileNameDest |
− | $ 삭제 : gfal-rm | + | $ 삭제 : gfal-rm davs://cluster142.knu.ac.kr:2880/cms/store/user/MyAccount/FolderName/FileName |
− | $ 디렉토리 삭제 : <strike>gfal-rm -R | + | $ 디렉토리 삭제 : <strike>gfal-rm -R davs://cluster142.knu.ac.kr:2880/cms/store/user/MyAccount/FolderName</strike> |
* 명령어 뒤의 Option은 매뉴얼 페이지를 참고 바랍니다. (ex. man gfal-ls) | * 명령어 뒤의 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) | + | * <strike>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)</strike> |
* gfal-copy에서 "-r" 옵션을 사용하면 디렉토리까지 복사가 가능합니다. | * gfal-copy에서 "-r" 옵션을 사용하면 디렉토리까지 복사가 가능합니다. | ||
− | |||
=== gfal-copy를 이용한 디렉토리 복사 === | === gfal-copy를 이용한 디렉토리 복사 === | ||
Line 334: | Line 332: | ||
gfal-copy에서 "-r" 옵션을 사용하면 서브 디렉토리까지 한번에 복사가 가능합니다. 다음과 같이 임의의 테스트 디렉토리를 만들었을때 | gfal-copy에서 "-r" 옵션을 사용하면 서브 디렉토리까지 한번에 복사가 가능합니다. 다음과 같이 임의의 테스트 디렉토리를 만들었을때 | ||
− | [ | + | [MyAccount@cms tmp5]$ ll |
total 0 | total 0 | ||
-rw-r--r-- 1 hanbi knu 0 Aug 26 17:21 aa | -rw-r--r-- 1 hanbi knu 0 Aug 26 17:21 aa | ||
Line 341: | Line 339: | ||
drwxr-xr-x 2 hanbi knu 24 Aug 26 17:22 dir1 | drwxr-xr-x 2 hanbi knu 24 Aug 26 17:22 dir1 | ||
− | -r 옵션을 적용해서 다음과 같이 실행하면 (로컬 디스크의 ~/ | + | -r 옵션을 적용해서 다음과 같이 실행하면 (로컬 디스크의 ~/MyAccount/tmp5 디렉토리를 SE의 hanbi/tmp5로 복사) |
− | gfal-copy -r file:////u/user/ | + | gfal-copy -r file:////u/user/MyAccount/tmp5 davs://cluster142.knu.ac.kr:2880/cms/store/user/MyAccount/tmp5 |
− | [ | + | [MyAccount@cms ~]$ gfal-copy -r file:////u/user/MyAccount/tmp5 davs://cluster142.knu.ac.kr:2880/cms/store/user/MyAccount/tmp5 |
− | Mkdir | + | Mkdir davs://cluster142.knu.ac.kr:2880/cms/store/user/MyAccount/tmp5 |
− | Copying file:////u/user/ | + | Copying file:////u/user/MyAccount/tmp5/aa [DONE] after 0s |
− | Copying file:////u/user/ | + | Copying file:////u/user/MyAccount/tmp5/bb [DONE] after 0s |
− | Copying file:////u/user/ | + | Copying file:////u/user/MyAccount/tmp5/cc [DONE] after 0s |
− | Mkdir | + | Mkdir davs://cluster142.knu.ac.kr:2880/cms/store/user/MyAccount/tmp5/dir1 |
− | Copying file:////u/user/ | + | Copying file:////u/user/MyAccount/tmp5/dir1/dd [DONE] after 0s |
− | Copying file:////u/user/ | + | Copying file:////u/user/MyAccount/tmp5/dir1/ee [DONE] after 0s |
아래와 같이 하부 디렉토리까지 스토리지 엘리먼트로 전부 전송이 되는 것을 확인 할 수 있습니다. | 아래와 같이 하부 디렉토리까지 스토리지 엘리먼트로 전부 전송이 되는 것을 확인 할 수 있습니다. | ||
− | [hanbi@cms ~]$ ll /pnfs/knu.ac.kr/data/cms/store/user/ | + | [hanbi@cms ~]$ ll /pnfs/knu.ac.kr/data/cms/store/user/MyAccount/tmp5 |
total 1 | total 1 | ||
-rw-r--r-- 1 hanbi cms 0 Aug 26 17:22 aa | -rw-r--r-- 1 hanbi cms 0 Aug 26 17:22 aa | ||
Line 365: | Line 363: | ||
물론 반대로 스토리지 엘리먼트에서 로컬 하드로 복사도 가능한데, 사용시 주의해야할 점은 SE의 소스 용량을 먼저 확인해서 전송을해야 로컬 하드디스크가 가득차는 것을 방지할 수 있습니다. | 물론 반대로 스토리지 엘리먼트에서 로컬 하드로 복사도 가능한데, 사용시 주의해야할 점은 SE의 소스 용량을 먼저 확인해서 전송을해야 로컬 하드디스크가 가득차는 것을 방지할 수 있습니다. | ||
− | gfal-copy -r | + | gfal-copy -r davs://cluster142.knu.ac.kr:2880/cms/store/user/MyAccount/tmp5 file:////u/user/MyAccount/tmp5 |
소스디렉토리의 크기를 확인하는 방법은 다음과 같이 확인할 수 있습니다. 다만 해당 디렉토리 아래의 크기가 매우 클 경우에는 결과가 나오는데 시간이 오래 결릴수 있습니다. | 소스디렉토리의 크기를 확인하는 방법은 다음과 같이 확인할 수 있습니다. 다만 해당 디렉토리 아래의 크기가 매우 클 경우에는 결과가 나오는데 시간이 오래 결릴수 있습니다. | ||
− | du -hs /pnfs/knu.ac.kr/data/cms/store/user/ | + | du -hs /pnfs/knu.ac.kr/data/cms/store/user/MyAccount/tmp5 |
===crab3를 사용한 후 gfal-* 명령어들이 오류가 발생합니다 === | ===crab3를 사용한 후 gfal-* 명령어들이 오류가 발생합니다 === | ||
Line 375: | Line 373: | ||
source /cvmfs/cms.cern.ch/crab3/crab.sh 실행후에 gfal-* 명령어들이 오류가 발생합니다. | source /cvmfs/cms.cern.ch/crab3/crab.sh 실행후에 gfal-* 명령어들이 오류가 발생합니다. | ||
− | $ gfal-ls -Hl | + | $ gfal-ls -Hl davs://cluster142.knu.ac.kr:2880/cms/store/user//test/test.transfer |
− | - | + | -rwxrwxrwx 0 0 0 4.8M Oct 12 2015 davs://cluster142.knu.ac.kr:2880/cms/store/user//test/test.transfer |
$ source /cvmfs/cms.cern.ch/crab3/crab.sh | $ source /cvmfs/cms.cern.ch/crab3/crab.sh | ||
− | $ gfal-ls -Hl | + | $ gfal-ls -Hl davs://cluster142.knu.ac.kr:2880/cms/store/user/test/test.transfer |
Could not find platform independent libraries <prefix> | Could not find platform independent libraries <prefix> | ||
Could not find platform dependent libraries <exec_prefix> | Could not find platform dependent libraries <exec_prefix> | ||
Line 392: | Line 390: | ||
crab3 에서 사용하는 python 환경변수와 gfal-* 명령어들에 문제를 일으키기 때문입니다. gfal-* 명령어 앞에 " env --unset=LD_LIBRARY_PATH "을 넣어줌으로써 문제를 해결할 수 있습니다. | crab3 에서 사용하는 python 환경변수와 gfal-* 명령어들에 문제를 일으키기 때문입니다. gfal-* 명령어 앞에 " env --unset=LD_LIBRARY_PATH "을 넣어줌으로써 문제를 해결할 수 있습니다. | ||
− | $ env --unset=LD_LIBRARY_PATH gfal-ls -Hl | + | $ env --unset=LD_LIBRARY_PATH gfal-ls -Hl davs://cluster142.knu.ac.kr:2880/cms/store/user/test/test.transfer |
− | -rw-r--r-- 1 2 2 Oct 12 02:17 4.8M | + | -rw-r--r-- 1 2 2 Oct 12 02:17 4.8M davs://cluster142.knu.ac.kr:2880/cms/store/user/test/test.transfer |
=== cmsenv 실행후 gfal 명령어들이 정상 동작 하지 않을때 === | === cmsenv 실행후 gfal 명령어들이 정상 동작 하지 않을때 === | ||
Line 412: | Line 410: | ||
* tcsh에서 ?는 wild card로 인식이 됩니다. 따라서 tcsh을 사용하고 있다면 srm 경로에 반드시 ""를 사용해야 합니다. | * tcsh에서 ?는 wild card로 인식이 됩니다. 따라서 tcsh을 사용하고 있다면 srm 경로에 반드시 ""를 사용해야 합니다. | ||
− | |||
=== srm*, lcg*, gfal* 주요 명령어 비교표 === | === srm*, lcg*, gfal* 주요 명령어 비교표 === | ||
Line 457: | Line 454: | ||
=== WebFTS를 이용한 Storage Element 로의 Data 전송 === | === WebFTS를 이용한 Storage Element 로의 Data 전송 === | ||
* [[ Webfts | WebFTS 사용법으로 가기 ]] | * [[ Webfts | WebFTS 사용법으로 가기 ]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== T3_KR_KNU 저장공간(Disk) 활용 분류 === | === T3_KR_KNU 저장공간(Disk) 활용 분류 === |
Latest revision as of 05:31, 14 May 2024
Contents
- 1 Storage Element Tutorial
- 1.1 Overview
- 1.2 서비스별 스토리지 접근
- 1.3 voms 인증
- 1.4 voms 인증 정보 확인
- 1.5 T3_KR_KNU의 Computing Resource 실시간 조회하기 (CPU, Disk 자원 조회)
- 1.6 SE(Storage Element)의 사용자 디렉토리 경로
- 1.7 SE에서 SE로 파일 복사하기
- 1.8 SE에 있는 파일을 및 local 디렉토리로 복사하기
- 1.9 xrootd 를 활용한 SE Data 접근 방법
- 1.10 WebDav 프로토콜을 활용한 SE Data 접근 방법
- 1.11 dcap을 이용한 SE Data 접근 방법
- 1.12 UI에서 NFS로 마운트된 스토리지 엘리먼트 사용하기
- 1.13 root에서 SE Data 접근 방법
- 1.14 복수의 파일을 동시에 전송하기
- 1.15 복사가 정상적으로 이루어졌는지 확인 또는 디렉토리의 목록 확인
- 1.16 파일 또는 디렉토리 삭제
- 1.17 gfal 명령어 사용 요약
- 1.18 gfal-copy를 이용한 디렉토리 복사
- 1.19 crab3를 사용한 후 gfal-* 명령어들이 오류가 발생합니다
- 1.20 cmsenv 실행후 gfal 명령어들이 정상 동작 하지 않을때
- 1.21 no match 오류가 발생할때
- 1.22 srm*, lcg*, gfal* 주요 명령어 비교표
- 1.23 uberftp를 이용한 Storage Element 사용
- 1.24 WebFTS를 이용한 Storage Element 로의 Data 전송
- 1.25 T3_KR_KNU 저장공간(Disk) 활용 분류
Storage Element Tutorial
CRAB 등을 사용하여 얻은 데이터를 보관할 수 있는 저장 공간을 Storage Element (SE)라 합니다. 이곳에 데이터를 저장하기 위해서는 몇가지 특수한 명령어를 사용해야 합니다.
[주의 : tcsh, csh 등 에서 관련 명령어를 사용할 때, 경로 인자에 반드시 " " 를 사용해주시기 바랍니다.]
Overview
UI에 로그인 했을 때 일반 사용자가 읽고 쓸수 있는 저장공간은 다음과 같이 3가지 종류가 있습니다.
종류 | 경로 | 지원 프로토콜 | 총용량 | 사용자당 | 용도 | 비고 |
---|---|---|---|---|---|---|
UI 사용자 홈 |
|
nfs | 20 TB | 200 GB | 프로그램 설치 사용자 기본 작업공간 |
RAID6 |
SE 사용자홈 |
|
xrootd, webdav, srm, gsiftp, dcap, gsidcap, nfs |
1.45 PB | 10 TB | 데이터 보관 대용량데이터처리 프로그램설치X |
dCache, RAID6 |
스크레치 |
|
nfs | 40 TB | 임시 작업용 중요데이터 보관X |
RAID6 |
- x509인증이 토큰 인증으로 전환되고 있는 상황이라 srm 프로토콜은 gsiftp, xrootd, webdav 프로토콜로 대체되고 있습니다.
- dcap(dCache access protocol): 인증이 필요없는 읽기 전용의 프로토콜입니다. 인증이 필요없기에 간편하게 사용할수 있지만 경북대 내부에서만 사용할수 있습니다.
- gsidcap: 그리드 인증이 필요한 dcap 프로토콜입니다. 읽기 쓰기가 모두 가능하며 경북대 내외부에서 모두 사용할 수 있습니다.
- SE에 저장되어 있는 데이터셋은 연산노드에서 dcap, xrootd, gsiftp, nfs, wedav, srm 프로토콜을 이용하여 읽을 수 있습니다.
- CERN ID와 KNU ID가 다른 사용자는 SE 사용자 홈디렉토리에 CERN ID를 기준으로 디렉토리가 생성됩니다.
- {knu_id}는 경북대에서 발급받은 ID, {cern_id}는 CERN에서 발급 받은 ID를 의미합니다. 일부 사용자들은 두 ID가 일치 하지 않습니다.
- 경북대 계정 신청시 CERN ID가 없는 사용자는 계정발급 직후 SE 사용자 홈디렉토리가 생성되지 않습니다. CERN ID를 발급 받은 후에 별도로 연락주세요.
- 현재는 저장공간의 사용자당 최대 사용량이 시스템적으로 설정되어 있지는 않습니다. 그러나 원활한 이용을 위하여 초과해서 사용이 필요한 경우에는 사전에 관리자와 협의를 부탁드립니다.
- 저장공간이 부족해질 경우 개인 사용량을 초과하는 사용자를 대상으로 사용햐지 않는 데이터의 정리를 요청하고 있습니다. 삭제요청과 함께 혹시라도 데이터가 방치되고 있지는 않은지 확인하는 작업입니다. 파일의 삭제 가능 여부와 상관없이 반드시 답장을 해주시기 바랍니다.
- 스크레치 저장공간은 불필요한 데이터를 수시로 정리해주시고 장기 보관이 필요한 데이터는 SE로 이동 부탁드립니다.
- 스크레치 디스크는 임시작업용 저장공간입니다. 데이터 손실에 대한 안전장치가 전혀 없으므로 절대 데이터 보관용으로 사용해서는 안됩니다.
- 매월 28일 90일이 지난 스크레치 디스크의 데이터는 자동으로 삭제됩니다.
서비스별 스토리지 접근
서비스 | 스토리지 | 지원 프로토콜 | 경로 | Grid인증 | 비고 |
---|---|---|---|---|---|
UI | UI User Home | nfs | /u/user/{knu_id} | X | |
UI Scratch | nfs | /u/user/{knu_id}/scratch -----> /d0/scratch/{knu_id} | X | ||
SE | xrootd | xrootd: root://cluster142.knu.ac.kr//store/user/{cern_id} | O | ||
webdav | webdav: davs://cluster142.knu.ac.kr:2880/cms/store/user/{cern_id} | O | |||
srm | srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/{cern_id} | O | |||
gsiftp | gsiftp://cluster142.knu.ac.kr:2811/pnfs/knu.ac.kr/data/cms/store/user/{cern_id} | O | |||
dcap | dcap://cluster142.knu.ac.kr//pnfs/knu.ac.kr/data/cms/store/user/{cern_id} | X | 읽기전용 | ||
gsidcap | xrootd: root://cluster142.knu.ac.kr//store/user/{cern_id} | O | |||
nfs | /pnfs/knu.ac.kr/data/cms/store/user/{cern_id} /u/user/{knu_id}/SE_UserHome -----> /pnfs/knu.ac.kr/data/cms/store/user/{cern_id} |
X | |||
HTCondor | UI User Home | nfs | /u/user/{knu_id} | X | |
UI Scratch | nfs | /u/user/{knu_id}/scratch -----> /d0/scratch/{knu_id} | X | ||
SE | xrootd | xrootd: root://cluster142.knu.ac.kr//store/user/{cern_id} | O | ||
webdav | webdav: davs://cluster142.knu.ac.kr:2880/cms/store/user/{cern_id} | O | |||
srm | srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/{cern_id} | O | |||
gsiftp | gsiftp://cluster142.knu.ac.kr:2811/pnfs/knu.ac.kr/data/cms/store/user/{cern_id} | O | |||
dcap | dcap://cluster142.knu.ac.kr//pnfs/knu.ac.kr/data/cms/store/user/{cern_id} | X | 읽기전용 | ||
gsidcap | xrootd: root://cluster142.knu.ac.kr//store/user/{cern_id} | O | |||
nfs | /pnfs/knu.ac.kr/data/cms/store/user/{cern_id} /u/user/{knu_id}/SE_UserHome -----> /pnfs/knu.ac.kr/data/cms/store/user/{cern_id} |
X |
- 해당 경로를 찾을 수 없다면 관리자에게 문의해 주시기 바랍니다.
- HTcondor 에서 SE에 nfs로 연결됨에 따라 dcap 이나 xrootd 와 같은 별다른 프로토콜 사용 없이 직접적으로 SE의 데이터를 읽고 쓸 수 있습니다.
voms 인증
- SE는 voms 인증 후 사용할수 있습니다.
$ voms-proxy-init --voms cms
voms 인증 정보 확인
- voms 인증 정보는 다음 명령어로 확인할 수 있습니다.
$ voms-proxy-info --all voms-proxy-info --all subject : /DC=ch/DC=cern/OU=Organic Units/OU=Users/CN=gdhong/CN=000000/CN=Gildong Hong/CN=00000000 issuer : /DC=ch/DC=cern/OU=Organic Units/OU=Users/CN=gdhong/CN=000000/CN=Gildong Hong identity : /DC=ch/DC=cern/OU=Organic Units/OU=Users/CN=gdhong/CN=000000/CN=Gildong Hong type : RFC3820 compliant impersonation proxy strength : 1024 path : /tmp/x509up_u77420 timeleft : 11:59:52 key usage : Digital Signature, Key Encipherment === VO cms extension information === VO : cms subject : /DC=ch/DC=cern/OU=Organic Units/OU=Users/CN=gdhong/CN=000000/CN=Gildong Hong issuer : /DC=ch/DC=cern/OU=computers/CN=voms2.cern.ch attribute : /cms/Role=NULL/Capability=NULL timeleft : 11:59:54 uri : voms2.cern.ch:15002
주의해야할 부분은 VO cms extension information 부분입니다. 만약 VO cms extension information 부분이 출력되지 않는다면 --voms cms 옵션을 정확하게 입력하였는지 자신의 cms vo가 만료된건 아닌지 확인 해야합니다.
T3_KR_KNU의 Computing Resource 실시간 조회하기 (CPU, Disk 자원 조회)
- UI 에서 "knuinfo" 명령어를 실행합니다.
$ knuinfo $ ----------------------------------------------------------------------------------------- CPU Free Total Jobs Running Waiting ComputingElement 1328 571 253 157 0 ce01.knu.ac.kr:9619/ce01.knu.ac.kr-condor ----------------------------------------------------------------------------------------- Avail Space(kB) Used Space(kB) Type SE 369726007282 1076716332991 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 $ gsiftp://cluster142.knu.ac.kr:2811/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 $ root://cluster142.knu.ac.kr//store/user/(username)/.../SrcFile $ davs://cluster142.knu.ac.kr:2880/cms/store/user/(username)/.../SrcFile
참고사항:
- 위의 예시에서 username은 향후 data를 publish 할 경우를 대비하서 경북대 ID가 아니라 CERNID를 사용해야 합니다.
- 계정을 발급받을 당시에 cern id가 없는 사용자는 해당 경로가 생성되지 않습니다.
- 만약에 cern id가 있는데도 불구하고 본인의 디렉토리가 만들어져 있지 않는 경우에는 관리자에게 연락바랍니다.
SE에서 SE로 파일 복사하기
$ gfal-copy root://cluster142.knu.ac.kr//store/user/(username)/.../SrcFile \ root://cluster142.knu.ac.kr//store/user/(username)/.../.../DestFile
$ gfal-copy davs://cluster142.knu.ac.kr:2880/cms/store/user/(username)/.../SrcFile \ davs://cluster142.knu.ac.kr:2880/cms/store/user/(username)/.../DestFile
SE에 있는 파일을 및 local 디렉토리로 복사하기
$ gfal-copy root://cluster142.knu.ac.kr//store/user/(username)/.../SrcFile \ file:////u/user/(username)/.../DestFile
$ gfal-copy root://cluster142.knu.ac.kr//store/user/(username)/.../SrcFile \ ./DestFile
$ gfal-copy davs://cluster142.knu.ac.kr:2880/cms/store/user/(username)/.../SrcFile \ file:////u/user/(username)/.../DestFile
$ gfal-copy davs://cluster142.knu.ac.kr:2880/cms/store/user/(username)/.../SrcFile \ ./DestFile
$ gfal-copy gsidcap://cluster142.knu.ac.kr:22128/pnfs/knu.ac.kr/data/cms/store/user/(username)/.../SrcFile \ file:////u/user/(username)/.../DestFile
$ gfal-copy gsidcap://cluster142.knu.ac.kr/pnfs/knu.ac.kr/data/cms/store/user/(username)/.../SrcFile \ ./DestFile
xrootd 를 활용한 SE Data 접근 방법
WebDav 프로토콜을 활용한 SE Data 접근 방법
dcap을 이용한 SE Data 접근 방법
UI에서 NFS로 마운트된 스토리지 엘리먼트 사용하기
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 davs://cluster142.knu.ac.kr:2880/cms/store/user/(username)
파일 또는 디렉토리 삭제
$ gfal-rm davs://cluster142.knu.ac.kr:2880/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 davs://cluster142.knu.ac.kr:2880/cms/store/user/MyAccount/FolderName $ 복사 : gfal-copy davs://cluster142.knu.ac.kr:2880/cms/store/user/.../FileNameSrc davs://cluster142.knu.ac.kr:2880/cms/store/user/.../FileNameDest $ 삭제 : gfal-rm davs://cluster142.knu.ac.kr:2880/cms/store/user/MyAccount/FolderName/FileName $ 디렉토리 삭제 :gfal-rm -R davs://cluster142.knu.ac.kr:2880/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) - gfal-copy에서 "-r" 옵션을 사용하면 디렉토리까지 복사가 가능합니다.
gfal-copy를 이용한 디렉토리 복사
gfal-copy에서 "-r" 옵션을 사용하면 서브 디렉토리까지 한번에 복사가 가능합니다. 다음과 같이 임의의 테스트 디렉토리를 만들었을때
[MyAccount@cms tmp5]$ ll total 0 -rw-r--r-- 1 hanbi knu 0 Aug 26 17:21 aa -rw-r--r-- 1 hanbi knu 0 Aug 26 17:21 bb -rw-r--r-- 1 hanbi knu 0 Aug 26 17:21 cc drwxr-xr-x 2 hanbi knu 24 Aug 26 17:22 dir1
-r 옵션을 적용해서 다음과 같이 실행하면 (로컬 디스크의 ~/MyAccount/tmp5 디렉토리를 SE의 hanbi/tmp5로 복사)
gfal-copy -r file:////u/user/MyAccount/tmp5 davs://cluster142.knu.ac.kr:2880/cms/store/user/MyAccount/tmp5
[MyAccount@cms ~]$ gfal-copy -r file:////u/user/MyAccount/tmp5 davs://cluster142.knu.ac.kr:2880/cms/store/user/MyAccount/tmp5 Mkdir davs://cluster142.knu.ac.kr:2880/cms/store/user/MyAccount/tmp5 Copying file:////u/user/MyAccount/tmp5/aa [DONE] after 0s Copying file:////u/user/MyAccount/tmp5/bb [DONE] after 0s Copying file:////u/user/MyAccount/tmp5/cc [DONE] after 0s Mkdir davs://cluster142.knu.ac.kr:2880/cms/store/user/MyAccount/tmp5/dir1 Copying file:////u/user/MyAccount/tmp5/dir1/dd [DONE] after 0s Copying file:////u/user/MyAccount/tmp5/dir1/ee [DONE] after 0s
아래와 같이 하부 디렉토리까지 스토리지 엘리먼트로 전부 전송이 되는 것을 확인 할 수 있습니다.
[hanbi@cms ~]$ ll /pnfs/knu.ac.kr/data/cms/store/user/MyAccount/tmp5 total 1 -rw-r--r-- 1 hanbi cms 0 Aug 26 17:22 aa -rw-r--r-- 1 hanbi cms 0 Aug 26 17:22 bb -rw-r--r-- 1 hanbi cms 0 Aug 26 17:22 cc drwxr-xr-x 4 hanbi cms 512 Aug 26 17:22 dir1
물론 반대로 스토리지 엘리먼트에서 로컬 하드로 복사도 가능한데, 사용시 주의해야할 점은 SE의 소스 용량을 먼저 확인해서 전송을해야 로컬 하드디스크가 가득차는 것을 방지할 수 있습니다.
gfal-copy -r davs://cluster142.knu.ac.kr:2880/cms/store/user/MyAccount/tmp5 file:////u/user/MyAccount/tmp5
소스디렉토리의 크기를 확인하는 방법은 다음과 같이 확인할 수 있습니다. 다만 해당 디렉토리 아래의 크기가 매우 클 경우에는 결과가 나오는데 시간이 오래 결릴수 있습니다.
du -hs /pnfs/knu.ac.kr/data/cms/store/user/MyAccount/tmp5
crab3를 사용한 후 gfal-* 명령어들이 오류가 발생합니다
source /cvmfs/cms.cern.ch/crab3/crab.sh 실행후에 gfal-* 명령어들이 오류가 발생합니다.
$ gfal-ls -Hl davs://cluster142.knu.ac.kr:2880/cms/store/user//test/test.transfer -rwxrwxrwx 0 0 0 4.8M Oct 12 2015 davs://cluster142.knu.ac.kr:2880/cms/store/user//test/test.transfer
$ source /cvmfs/cms.cern.ch/crab3/crab.sh
$ gfal-ls -Hl davs://cluster142.knu.ac.kr:2880/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 davs://cluster142.knu.ac.kr:2880/cms/store/user/test/test.transfer -rw-r--r-- 1 2 2 Oct 12 02:17 4.8M davs://cluster142.knu.ac.kr:2880/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 사용
WebFTS를 이용한 Storage Element 로의 Data 전송
T3_KR_KNU 저장공간(Disk) 활용 분류
* Storage Element (srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/...) : 대용량 저장 공간으로 장기간 보관이 가능합니다. - rucio를 통해 전송된 DataSet 저장 - Crab Analysis 이후의 결과파일 저장 srm://cluster142.knu.ac.kr:8443/srm/managerv2?SFN=/pnfs/knu.ac.kr/data/cms/store/user/ UI에서는 ~/SE_UserHome/ 에서 확인할 수 있습니다. : 현재 약 1.45 PB의 공간을 마련하여 운영하고 있습니다. : 사용자의 데이터 저장으로 공간이 부족할 경우, 사전 설문을 통해 더 이상 사용하지 않는 과거 데이터의 삭제 요청을 드릴 수 있습니다.
* User Home Directory (/u/user/...) : 기본적인 설정 사항, 사용자가 필요한 소프트웨어 등을 설치 및 보관하는 장소입니다. : 약 20 TB 규모의 공간입니다. : 모든 사용자가 20 TB를 나누어 사용하므로 용량이 큰 데이터의 보관은 가급적 삼가해 주시기 바랍니다.
* Scratch Disk : UI에 총 1개의 임시 저장공간이 있습니다. - /d0 : 약 40 TB RAID6 Disk : Sratch 디스크는 임시 저장공간으로 중요한 데이터 및 장기 보관 데이터는 반드시 Storage Element로 이동하여 주시기 바랍니다.