[HPC] SGE의 qtcsh를 이용한 원격 명령 수행 환경 투명화하기
qtcsh를 이용한 원격 명령 수행 환경 투명화하기
작성자 : 서진우 / 클루닉스
qtcsh 는 사전에 원격에서 실행되어야 하는 명령어 리스트를 지정하고, 해당 명령어를 수행할 경우 자동으로 qrsh를 통해 원격 서버(부하가 없고, CPU count에 여유가 있는)에서 해당 명령이 수행되도록 하는 해주는 기능이다.
먼저 원격에서 실행될 명령어들을 아래 파일에 정의한다.
/engrid/ensge/default/common/qtask -> 관리자에 의해 일괄적으로 관리되는 명령어
~/.qtask -> 개별 사용자가 직접 지정하는 명령어
해당 파일에 원격에서 수행되어야 할 명령어 리스트를 지정한다.
$ vi .qtask
—————————————————————————————————–
hostname
make -cwd -V -v PATH -l sp=1
pwd -cwd -V
fluent -cwd -V -pe fluent_pe 20
원격 실행 명령어 정의 방식은 해당 명령어를 먼저 정의하고, 그 뒤에 SGE상에 명령 옵션을 추가하면 된다.
make -cwd -V -v PATH -l sp=1
위 구문을 보면 ..
make 명령어를 자동으로 유휴 서버에서 원격 실행하데, 실행 위치는 현재 접속된 서버의
경로를 그대로 유지하고(-cwd), 현재 접속된 세션의 모든 환경 설정을 그대로 유지하고(-V),
현재 접속된 환경 설정 중 PATH 설정을 그대로 유지하고 (-v PATH), SGE 자원 정책에 정의된
콤플렉스 중 sp 의 count를 1 증가 시킨다(-l sp=1)
위와 같은 방법으로 qtask 설정을 완료한 후, 해당 기능을 적용할 사용자의 shell 설정을
기본적으로 qtcsh 로 설정한다.
# vi /etc/passwd
alang:x:1001:1001:연구원:/home/alang:/engrid/ensge/bin/lx24-amd64/qtcsh
이제 해당 계정로 로그인을 해 보자
gc001 호스트에 로그인 한 후 qtask에 정의된 명령어를 수행한다.
[alang@gc001 ~]$ hostname
gc002
위와 같이 qtask 에 지정된 hostname 명령은 자동으로 원격 서버에서 수행이 되어 진다.
만일 X-forward를 통한 GUI 호출이 필요한 명령일 경우에는 ..
/etc/csh.login 파일의 제일 하단에 아래 설정을 추가하도록 한다.
setenv DISPLAY ${REMOTEHOST}:0.0
만일 홈디렉토리하단의 .cshrc 에 위 설정을 포함할 경우 ..master 서버 접속 후 다른 서버
로 원격 명령 수행 시 $REMOTEHOST 값이 client 의 IP가 아닌 master 서버의 IP로 등록되어, X호출이 안되는 문제가 발생한다.
/etc/csh.login은 bash 환경에서의 .bash_login 과 같은 설정으로 정상적인 로그인 시에만 적용되는 init 설정이다.
– qrsh 를 이용한 GUI 어플리케이션 호출
encmd -ssh alang@clunix.com qrsh -v DISPLAY=192.168.123.90:0.0 fluent 3d