블로그 이미지
생각처럼

카테고리

전체보기 (209)
TOOL (1)
다이어리 (1)
Bit (200)
HELP? (0)
Total
Today
Yesterday

달력

« » 2025.9
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

공지사항

태그목록

최근에 올라온 글

출처 - http://gridcenter.or.kr 
Globus 2.2 설치 작정자: 권오경 (okkwon@hpcnet.ne.kr)

최종 수정 날짜: May 27, 2004 이 문서는 Globus 툴킷을 리눅스 PC에 설치하는 방법을 설명한다. RedHat Linux 7.3(Linux 커널 버젼은 2.4.18-3)을 기준으로 설명하였으며, Linux 표준 쉘인 bash 쉘을 이용한다고 가정하였다. '#'는 root 프롬프트를 의미하고, '$'는 사용자 프롬프트를 의미한다. globus version: 2.2 example hostname: sdd125.hpcnet.ne.kr OS: RedHat 7.3 kernel version: 2.4.18-3 gcc version: 2.96 목차

  1. 다운로드 받기
  2. Globus를 위한 사용자 계정 만들기
  3. 설치전에 점검해야 할 사항
  4. Globus 설치
  5. 성공적인 설치 여부 확인
  6. gatekeeper를 서비스로 등록하기
  7. GRAM Reporter 추가하기
  8. Grid Ftp 서버를 서비스로 등록하기
  9. Grid ncftp client를 설치하자.
  10. MDS 설정 (GRIS 설정)
  11. Common Error

  1. 다운로드 받기 [[목차]] Globus Toolkit 2.2은 다음 주소에서 다운로드 받을 수 있다.http://www.globus.org/gt2.2/install/download.html Globus Toolkit 2.0 부터는 Grid Packaging Toolkit을 이용해 쉽게 설치할 수 있다. (Binary로도 설치가 가능하나, 여기서는 Source로 설치하는 방법을 설명한다. binary설치는 4번을 제외하고 같다. 설치법은 binary 버전 설치를 참조한다.)
  2. Globus를 위한 계정 만들기 [[목차]] globus라는 사용자를 추가한다.
    /usr/sbin/adduser globus
    globus의 초기 비밀번호를 설정
    passwd globus
    globus 설치 디렉토리를 만들고 globus가 사용할 수 있게 권한을 변경한다.
    mkdir /usr/local/globus # chown globus.globus /usr/local/globus
  3. 설치전에 점검해야 할 사항[[목차]]
    • perl이 설치되어 있는지 확인: 버전 5.005이상이 설치되어 있어야 한다.
    • /etc/hosts 에 호스트의 이름이 등록되어 있는지 확인한다.
      vi /etc/hosts 111.222.333.444 hostname.your_full_domain_name 111.222.333.445 sdd125.hpcnet.ne.kr
      globusrun을 실행할 때 이 파일을 참조하여 ip 주소를 host name으로 바꾸어 준다.
    • hostname 이 FQDN(Fully-Qualified Domain Name)으로 설정되어 있는지 확인한다. 다음 과정에서 globus-install이 실행되면서 hostname을 읽어 사용하기 때문이다.
      hostname sdd125.hpcnet.ne.kr
    • /etc/sysconfig/network 파일을 열어서 hostname이 FQDN(Fully-Qualified Domain Name)으로 설정되어 있는지 확인한다.
      more /etc/sysconfig/network NETWORKING=yes HOSTNAME=sdd125.hpcnet.ne.kr GATEWAY=111.222.333.1
  4. 설치 [[목차]]
    • globus 툴킷의 설치는 globus 계정으로 한다.
      su globus
    • 압축을 해제할 디렉토리로 이동 (globus의 홈디렉토리)
      cd /home/globus
    • 다음과 같은 환경변수를 설정한다.
      export GLOBUS_LOCATION=/usr/local/globus
      Globus Packaging Tool(GPT)을 설치한다. GPT 2.2.2버전을 받아서 설치하자. [HTTP download] [FTP download]
      export GPT_LOCATION=/usr/local/globus $ tar zxvf gpt-2.2.2-src.tar.gz $ cd gpt-2.2.2 $ ./build_gpt
      이제 GPT설치는 끝났다.
    • 다음 명령 형식을 이용하여 Globus Toolkit의 번들 파일들을 설치해보자.
      /usr/local/globus/sbin/gpt-build bundle options flavors
      위 명령에서 이탤릭체로 된 부분을 다음과 같이 대체해서 사용하면 된다.
      BUNDLE FLAVORS
      Data Management Client gcc32dbg
      Data Management SDK gcc32dbg
      Data Management Server gcc32dbg
      Information Services Client gcc32dbgpthr
      Information Services SDK gcc32dbgpthr
      Information Services Server gcc32dbgpthr
      Resource Management Client gcc32dbg
      Resource Management SDK gcc32dbg
      Resource Management Server gcc32dbg
      전체 설치에 관한 script Download 받기 [Globus Toolkit 2.2 Advisories Site Update 항목되어 있는 packages[2002-11-06]]
      wget http://gridtest.hpcnet.ne.kr/software/index.php?dir=./globus/KISTI/gt2.2/globus*.gz
      Data Management Client 번들 설치
      /usr/local/globus/sbin/gpt-build \ globus-data-management-client-2.2.2-src_bundle.tar.gz gcc32dbg
      Data Management SDK 번들 설치
      /usr/local/globus/sbin/gpt-build \ globus-data-management-sdk-2.2.2-src_bundle.tar.gz gcc32dbg
      Data Management Server 번들 설치
      /usr/local/globus/sbin/gpt-build \ globus-data-management-server-2.2.2-src_bundle.tar.gz gcc32dbg
      Information Services Client 번들 설치
      /usr/local/globus/sbin/gpt-build \ globus-information-services-client-2.2.2-src_bundle.tar.gz gcc32dbgpthr
      Information Services SDK 번들 설치
      /usr/local/globus/sbin/gpt-build \ globus-information-services-sdk-2.2.2-src_bundle.tar.gz gcc32dbgpthr
      Information Services Server 번들 설치
      /usr/local/globus/sbin/gpt-build \ globus-information-services-server-2.2.2-src_bundle.tar.gz gcc32dbgpthr
      Resource Management Client 번들 설치
      /usr/local/globus/sbin/gpt-build \ globus-resource-management-client-2.2.2-src_bundle.tar.gz gcc32dbg
      Resource Management SDK 번들 설치
      /usr/local/globus/sbin/gpt-build \ globus-resource-management-sdk-2.2.2-src_bundle.tar.gz gcc32dbg
      Resource Management Server 번들 설치
      /usr/local/globus/sbin/gpt-build \ globus-resource-management-server-2.2.2-src_bundle.tar.gz gcc32dbg
    • 사용자 계정에 대해서 다음과 같이 환경 설정을 한다. globus가 사용자이고 shell을 bashrc를 사용한다고 가정하자.
      vi ~globus/.bashrc ... export GLOBUS_LOCATION=/usr/local/globus export GPT_LOCATION=/usr/local/globus . $GLOBUS_LOCATION/etc/globus-user-env.sh ... $source ~globus/.bashrc
    • globus-build뒤의 설정을 한다.
      /usr/local/globus/sbin/gpt-postinstall running /usr/local/globus/setup/globus/setup-globus-common... creating globus-sh-tools-vars.sh creating globus-script-initializer creating Globus::Core::Paths checking globus-hostname Done running /usr/local/globus/setup/globus/setup-globus-gatekeeper... Creating gatekeeper configuration file... Done Creating grid services directory... Done running /usr/local/globus/setup/globus/setup-globus-mds-common... Creating... /usr/local/globus/etc/grid-info.conf Done (생략)
    • GSI 소프트웨어의 setup을 위해 수퍼 유저의 권한을 얻어 다음 명령을 실행시킨다.
      /usr/local/globus/setup/globus/setup-gsi
    • globus package 설치가 제대로 되었는지 확인한다.
      /usr/local/globus/sbin/gpt-verify Verifying run-time dependencies... Verifying setup dependencies... Verifying setup packages... The collection of packages in /usr/local/globus appear to be coherent.
      위와 같은 메시지가 나오면 설치과정은 끝난다.
  5. 성공적인 설치 여부 확인 [[목차]]
    • 인증서 얻기
      • 유저 인증서 요청하기
        /usr/local/globus/bin/grid-cert-request -cn <name>
        이 결과로 ~/.globus/usercert_request.pem을 얻을 수 있고,http://gridtest.hpcnet.ne.kr/GridCA/ 접속하여 인증서 발급을 요청한다. 인증서를 얻게 되면 ~/.globus/usercert.pem 으로 저장한다.
      • host에 대한 gatekeeper 인증서 요청하기 슈퍼 유저의 권한을 얻어 다음 명령을 실행한다.
        grid-cert-request -service host -host sdd125.hpcnet.ne.kr
        마찬가지로 host.req 파일을 가지고 http://gridtest.hpcnet.ne.kr/GridCA/ 접속하여 인증서 발급을 요청한다. 인증서를 얻게 되면 /etc/grid-security/hostcert.pem으로 저장한다.
      • CA의 인증서 설치하기
        1. http://gridtest.hpcnet.ne.kr/GridCA/ 접속해서 메뉴의 'List of Certificates'링크를 클릭하여 데이터베이스에 들어 있는 인증서의 목록을 확인한다.
        2. CA의 인증서의 Subject와 일치되는 항목을 찾아서 Subject를 클릭하면 CA의 인증서에 대한 정보가 표시된다. 'Certificate' 부분을 복사하여서 /etc/grid-security/certificates 디렉토리에 예를 들어 temp.pem 이라는 임시 화일명으로 저장한다.
        3. 쉘 프롬프트 상에서 인증서의 hash 코드를 생성하기 위해서 다음 명령을 사용한다.
          /usr/local/globus/bin/openssl x509 -hash -in temp.pem -noout82da68f0
        4. temp.pem 화일명을 위에 출력된 헤쉬코드를 이용하여 hashcode.0 형태로 변경한다.
          mv temp.pem 82da68f0.0
        5. /etc/grid-security/certificates/ 디렉토리안에 hashcode.signing-policy 파일형태로 다음과 같은 내용을 추가한다.
          vi 82da68f0.signing_policy # EACL entry #1 access_id_CA X509 '/C=KR/O=Globus/CN=KISTI Supercomputing Center CA' pos_rights globus CA:sign cond_subjects globus '"/C=KR/O=Globus/*" "/O=Grid/O=Globus/*"'
      • 참고 : 기존에 gatekeeper 인증을 받은 것이 있다면 다시 받지 않고 그대로 사용할수 있다. 기존 인증관련 파일 $GLOBUS_INSTALL_PATH/etc/밑에 globus_gatekeeper.cert, globus_gatekeeper.key, globus_gatekeeper.request파일을 백업 받는다. 각각의 파일을 (순서대로) /etc/grid-security/밑에 hostcert.pem, hostkey.pem, host.req로 복사하여 사용하면 된다. (CA인증서도 마찬가지로 복사하여 사용하면 된다-기존CA일경우- 단 signing_policy 파일명이 변경되었으므로 주의한다.)
    • 테스트 다음 명령을 실행하여 gatekeeper를 띄운다.
      /usr/local/globus/bin/grid-proxy-init $ /usr/local/globus/bin/globus-personal-gatekeeper -start GRAM contact: sdd125.hpcnet.ne.kr:32915:/O=Grid/O=Globus/OU=hpcnet.ne.kr/CN=globus at sdd125
      다음 명령을 수행하여 정상적인 결과가 나오는지 확인한다.
      /usr/local/globus/bin/globusrun -o -r \ "sdd125.hpcnet.ne.kr:32915:/O=Grid/O=Globus/OU=hpcnet.ne.kr/CN=globus at sdd125" \ '&(executable=/bin/date)'
      이 명령의 결과로 유닉스의 date명령의 결과가 나오면 성공한 것이다. 여기까지 되었다면, 다음 명령을 통해서 gatekeeper를 중지하고 proxy를 제거한다.
      /usr/local/globus/bin/globus-personal-gatekeeper -killall $/usr/local/globus/bin/grid-proxy-destroy
  6. gatekeeper를 서비스로 등록하기 [[목차]] /etc/services 파일에 다음과 같이 추가한다.
    globus-gatekeeper 2119/tcp # Globus Gatekeeper
    host에서 inetd 혹은 xinetd 데몬이 동작하고 있는지에 따라서 설정 또한 달라진다. 여기서는 xinetd이 동작하고 있다고 가정하고, 이에 따른 설정방법을 설명한다. inetd의 경우에는 www.globus.org에서 설치 가이드를 참조바란다. /etc/xinetd.d/ 디렉토리 안에 "globus-gatekeeper"라는 파일을 만들고 다음과 같은 내용을 첨가한다.
    service globus-gatekeeper { socket_type = stream protocol = tcp wait = no user = root server = /usr/local/globus/sbin/globus-gatekeeper server_args = -conf /usr/local/globus/etc/globus-gatekeeper.conf disable = no }
    xinetd을 재구동한다.
    /etc/rc.d/init.d/xinetd restart
    /etc/grid-security/grid-mapfile에 인증서의 subject와 그에 대응되는 username을 추가해야 한다. 다음 명령을 통해서 이 작업이 이루어질 수 있다.
    grid-cert-info -subject O=Grid/O=Globus/OU=hpcnet.ne.kr/CN=globus at sdd125 $ whoamiglobus
    위의 결과를 가지고 /etc/grid-security/grid-mapfile에 추가한다.
    "/O=Grid/O=Globus/OU=hpcnet.ne.kr/CN=globus at sdd125" globus
    위의 작업의 결과로 정상적으로 동작하는지 확인한다.
    grid-proxy-init $ globusrun -o -r localhost '&(executable=/bin/date)'
    참고사항 : error7번이 나오는 경우가 종종 있다. 이때 telnet localhost 2119 했을 때 shared library path가 잡혀 있지 않다는 error가 발생하면 다음과 같이 하면 된다.
    vi /etc/ld.so.conf ... /usr/local/globus/lib # /sbin/ldconfig #/etc/rc.d/init.d/xinetd restart
    이것은 gatekeeper가 2.0에서는 static으로 compile했었지만 2.2는 shared로 compile하기 때문에 발생 할 수 있는 문제이다.
  7. GRAM Reporter 추가하기 [[목차]] 2.0에서 기본 패키지로 들어 있었지만 2.2에서는 다운을 받아서 설치를 해야한다.
    wget http://www-unix.globus.org/ftppub/gt2/2.2/2.2-latest/extra/gram_reporter/src/globus_gram_reporter-2.0.tar.gz $/usr/local/globus/sbin/gpt-build globus_gram_reporter-2.0.tar.gz gcc32dbg $
    이제 실제로 각 Scheduler에 대해서 MDS에 보고할 schema에 대해서 설치해보자. 여기선 fork를 설치한다고 가정하면 다음과 같이 하면 된다.
    wget http://www-unix.globus.org/ftppub/gt2/2.2/2.2-latest/extra/gram_reporter/src/globus_gram_reporter_setup_fork-1.0.tar.gz $/usr/local/globus/sbin/gpt-build globus_gram_reporter_setup_fork-1.0.tar.gz gcc32dbg $
    condor, pbs, lsf에 대해서는 해당 경우에 맞게 다운을 받아서 설치하면 된다. 마지막으로 설치에 대해서 정리하자.
    $ /usr/local/globus/sbin/gpt-postinstall running /usr/local/globus/setup/globus/setup-globus-gram-reporter-fork... Setting up fork gram reporter in MDS ----------------------------------------- Done
  8. Grid Ftp 서버를 서비스로 등록하기 [[목차]] GT2에서는 Grid Ftp 서비스가 추가 되었다. 서버를 등록 해서 서비스를 해보자. /etc/services 파일에 다음과 같이 추가한다.
    gridftp 2811/tcp
    /etc/xinetd.d/ 디렉토리 안에 "grid-ftp"라는 파일을 만들고 다음과 같은 내용을 첨가한다.
    service gridftp { instances = 1000 socket_type = stream wait = no user = root server = /usr/local/globus/sbin/in.ftpd server_args = -l -a -G /usr/local/globus log_on_success += DURATION USERID log_on_failure += USERID nice = 10 disable = no }
    xinetd을 재구동한다.
    /etc/rc.d/init.d/xinetd restart
    제대로 동작하는지 테스트 해보자. GT2에서는 globus-url-copy프로그램에서 gsiftp 프로토콜을 지원하므로, globus-url-copy를 통해 테스트가 가능하다.
    more /home/globus/a.txt hello $ hostname sdd125.hpcnet.ne.kr $ globus-url-copy gsiftp://sdd125.hpcnet.ne.kr/home/globus/a.txt file:///tmp/a.txt $ more /tmp/a.txthello
  9. Grid ncftp client를 설치하자. [[목차]] grid-ftp에 나와있는 것을 구현한 것이 아니라, GSI부분만 추가한 gsincftp client를 설치하자. source를 다운받아서 설치하자. [다음과 같이 2.2에 맞게 package를 수정한것을 다운받으세요]
    wget ftp://gridtest.hpcnet.ne.kr/gt2.2/globus_gsincftp-0.5.tar.gz $ gpt-build globus_gsincftp-0.5.tar.gz gcc32dbg $
    제대로 작동하는지 테스트 해보자.
    gsincftp localhost NcFTP 3.0.3 (April 15, 2001) by Mike Gleason (ncftp@ncftp.com). Connecting to 127.0.0.1... sdd45.hpcnet.ne.kr FTP server (GridFTP Server 1.0 [GSI patch v0.5] wu-2.6.1(2) Wed May 15 19:23:46 KST 2002) ready. Logging in... User globus logged in. Logged in to localhost. ncftp /home/globus >
  10. MDS 설정 (GRIS 설정) [[목차]] 여기서는 GRIS를 설정하고 GIIS 서버에 등록하는 방법을 설명한다. GIIS 서버는 giis.hpcnet.ne.kr라고 가정한다. globus의 일반적인 설정 파일들은 $GLOBUS_LOCATION/etc 디렉토리에 존재한다. 이 디렉토리로 이동하여 다음과 같은 파일을 편집하도록 한다.
    cd /usr/local/globus/etc/ $ vi grid-info-slapd.conf ... #(GRIS설정이므로 GIIS관련 설정부분을 모두 주석처리 한다.) # database giis # suffix "Mds-Vo-name=site, o=Grid" # conf /usr/local/globus/etc/grid-info-site-giis.conf # policyfile /usr/local/globus/etc/grid-info-site-policy.conf # anonymousbind yes # access to * by * write modulepath항목이 다음과 같이 설정되어 있는지 확인한다. modulepath /usr/local/globus/libexec/openldap/gcc32dbgpthr
    GIIS서버의 Mds-Vo-name이 kisti-mds라고 했을때, 다음과 같이 수정한다.
    vi grid-info-resource-register.conf ... dn: Mds-Vo-Op-name=register, Mds-Vo-name=kisti-mds, o=grid ... reghn: sdd125.hpcnet.ne.kr ...
    MDS 서비스를 위한 서버 인증서를 만든다.
    grid-cert-request -service ldap -host sdd125.hpcnet.ne.kr
    /etc/grid-security/ldap디렉토리에 ldapcert_request.pem파일이 생긴다. http://gridtest.hpcnet.ne.kr/GridCA/에 인증서 발급을 요청하고 ldapcert.pem에 저장한다. GRIS 서비스를 가동한다.
    /usr/local/globus/sbin/SXXgris start
    다음 명령을 이용해서 테스트 해보자.
    /usr/local/globus/bin/grid-info-search -x
  11. Common Error [[목차]]
    1. GRAM Job submission failed because the connection to the server failed (check host and port) (error code 12) 문제점 - Unable to contact gatekeeper. Is the gatekeeper running? - Host not reachable? Can you ping it? - Running on a non-standard port? - Check $GLOBUS_LOCATION/var/globus-gatekeeper.log 해결책 - Add gatekeeper to services, /etc/rc.d/init.d/xinetd restart - Include a contact string if non-standard port - Build static if dying on startup with "library not found" - Install gatekeeper certificate or fix key permissions
    2. Error loading shared library 문제점 - LD_LIBRARY_PATH not set 해결책 - (csh) source $GLOBUS_LOCATION/etc/globus-user-env.csh - (sh) . $GLOBUS_LOCATION/etc/globus-user-env.sh
    3. GRAM Job submission failed because authentication with the remote server failed (error code 7) 문제점 - globus-gatekeeper.log: Authenticated globus user: /O=Grid/O=Globus/OU=mcs.anl.gov/CN=Charles Bacon - Failure: globus_gss_assist_gridmap() failed authorization. rc = 1 해결책 - Add to grid-mapfile - Check 'grid-cert-info -subject' and 'id'
    4. gram_init failure: Problem with local credentials no proxy credentials: run grid-proxy-init or wgpi first 문제점 - No proxy/expired proxy 해결책 - Run grid-proxy-init (wgpi = Windows grid-proxy-init)
    5. GRAM Job submission failed because the job manager failed to open stdout (error code 73) 문제점 - Other machine cannot open a connection back to the client - Bad result from globus-hostname? - Error in .globus/.gass_cache on remote machine? (rare!) 해결책 - Edit /etc/hosts or set $GLOBUS_HOSTNAME - NFS trouble with ~/.globus on remote server?
    6. GRAM Job submission failed because the provided RSL string includes variables that could not be identified (error code 39) 문제점 - Globus-job-get-output from a 2.0 client to a 1.1.x gatekeeper 해결책 - globus-job-get-output sets GLOBUS_LOCATION, use globus-job-run instead of globus-job-submit
Posted by 생각처럼
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함