시스템에 장애가 발생하거나, 부팅되지 않을 경우,, CD로 부팅해서 해결방법을 찾아봐야 할텐데요..
인터넷에서 구할 수 있는 대표적인 Boot CD 몇가지를 소개합니다.

1. System Rescue CD
   URL : http://www.sysresccd.org/Main_Page
   특징
   - 리눅스 기반의 boot cd입니다.
   - 무엇보다 gparted 를 사용하기 위해서 많이 사용합니다.
   - GUI 에서 Partition Magic 과 같은 강력한 파티셔닝을 할 수 있습니다.

2. Ophcrack
   URL : http://ophcrack.sourceforge.net/
   특징
   - Windows XP, VISTA 의 패스워드를 찾아주는 Boot CD 입니다.
   - 부팅 후 모든 절차가 자동으로 진행되며, 등록된 ID, Password 가 표시됩니다.
   - VISTA 의 복잡한 password는 성공율이 떨어지더군요..
   - Password 찾아주는 프로그램 중 가장 사용이 편리하고, 성공율이 높습니다.

3. Ultimate Boot CD
   URL : http://www.ultimatebootcd.com/
   특징
   - DOS 기반의 다양한 툴들을 지원합니다.
   - 솔직히 활용도는 좀 떨어집니다.

4. Hiren's Boot CD
   URL : http://www.hiren.info/pages/bootcd
   특징
   - DOS 기반 + WinPE 기반 두가지를 제공합니다.
   - 여기에 포함된 툴들의 라이센스 조건은 어떻게 되는지,, 궁금해 지는 군요..

5. BartPE
   URL : http://www.nu2.nu/pebuilder/
   특징
   - BartPE는 PE 를 만들 수 있는 방법만 제공하고 있습니다
   - Boot CD를 제작하기 위해서는 BartPE를 다운로드 받아 설치하고,
     지시대로 진행해야 ISO 이미지를 만들 수 있습니다.
   - Plug-in 형태로 다양한 툴을 BartPE CD에 넣을 수 있습니다.
   - Windows PE의 무료버전이라고 보시면 됩니다.

'BootCD' 카테고리의 다른 글

[ZConverter] ZConverter Server Backup Enterprise HOWTO  (0) 2010.07.22

정말 오랜만에,, HPC Server 2008 자료를 검색하다가,,
HPC Cluster 성능 측정 툴을 발견했습니다.
Lizard = Linpack Wizard 를 합친 말로 보입니다.

그동안, www.netlib.org 에서 source를 받아다가,,
컴파일해서 실행했었는데,,, 패키지로 제공하는 군요..
예전 홈페이지에 관련 자료를 올렸었는데요,, 아래 링크에서 확인하세요..
http://www.wccs.co.kr/bbs/view.php?id=QNA&no=19
http://www.wccs.co.kr/bbs/view.php?id=PDS&no=13

다시 Lizard로 돌아와서...
Microsoft HPC Pack 2008 Tool Pack 에 가면,,
lizard.msi 파일을 다운로드 받을 수 있습니다.

Microsoft HPC Pack 2008 Tool Pack Installation Wizard

Install Process

Overview

This release of the HPC Pack 2008 Tool Pack contains 1 tool.

Lizard - Lizard helps you to determine the computational performance and efficiency that can be achieved by your HPC Pack 2008-based / Windows HPC Server 2008 cluster. It calculates and reports a peak performance value for your HPC cluster in billions of floating-point operations per second (GFLOPS), and a percentage value for the efficiency that was achieved at peak performance. After running Lizard, you can review the performance and efficiency results that were obtained, and optionally save these results and the parameters that were used to achieve them to a file on your computer.

Note: This utility includes parts of the Intel Math Kernel Library. For more information about the Intel Math Kernel Library, please visit http://www.intel.com/cd/software/products/asmo-na/eng/307757.htm

1. 설치를 마친 후 Lizard 를 시작한 화면입니다.
Lizard - Getting Started


2. Tuning Mode 선택 화면입니다. Express Tuning 과 Advanced Tuning 이 있군요..
Lizard - Select Tuning Mode


3. 가상머신에서 실행해서인지 CPU 특성을 자동으로 찾지 못하는 군요..
Dual Core 이상에서는 1 clock 에 4번, 그 이전 CPU 에서는 1 clock 에 2번 계산합니다.
아래 그림의 선택은 잘못 했네요.. 4로 입력해야 하는데,, 2로 입력했습니다.
Lizard - Ideltify CPU


4. Integrity Test를 위해서는 4대가 필요하다고 하는데,, 테스트 환경이라 1대로 진행합니다.
Lizard - Integrity Tester


5. 뭔가 진행하면서,, Consistency 를 확인하는군요..
Lizard - Tuning Process


6. 실제.. xhpl 프로그램을 실행하면서,, tuning을 진행하는 단계입니다.
 프로그램 크기(N), Block Size (NB), 프로세스 수 (PxQ), 기타 파라미터를 변경하면서,,
 성능을 측정하고 있습니다. 매번 숫자 변경하고,, job submit 하던 과정이 바로 진행되고,,
 그래프로 보여지니까 확실히 편하네요..
 아까, 3번 설정에서 4로 입력해야 하는데,, 2로 입력하니까,,
 효율이 100%를 넘어섰네요..
Lizard - Tuning Parameter


첫 포스트로 Play Station 3 를 올린적이 있습니다.
게임에는 아는바가 없어서,, YDL 6.1을 설치해서 테스트 중인데...
그래도,, 유명한 게임기인데....

아이들이 게임좀 하자고,, 조르는 바람에,, 생각해 낸 방법!!
jr.naver.com 에 들어가면 여러가지 플래시 게임 및 자료가 있습니다.
TV가 해상도를 지원하지 못하는 관계로,,
플래시 화면을 열면,, TV 전체 화면으로 보입니다. ㅎㅎ
Windows Media 파일을 설치할 수 없어서,, daum kids 는 사용할 수가 없고,,
네이버 쥬니어가 그래도 쓸만하네요..
그래도,, Play Station 3 로 게임을 즐긴다는... ㅋㅋ
이번달에 새로운 자료가 올라왔네요..
아직 확인하지는 못했는데,, 읽어봐야 겠네요..
알려주신 coolbrise 님 감사합니다.

·         Advanced Deployment Operations in Windows HPC Server 2008
(http://technet.microsoft.com/en-us/library/dd772582.aspx)

·         Understanding Job Validation in Windows HPC Server 2008
(http://technet.microsoft.com/en-us/library/dd772585.aspx)

 

Service Console에서도 Virtual Machine Online Backup이 가능할까?
앞서 vcb관련 내용을 포스트 했는데,,
여기서 설명하는 내용은 vmdk 파일 자체를 백업 받는 방법입니다.

ESX 2.5.x 인 경우

1. vmAddRedo.pl     # Snapshot 생성
2. vmkfstools -i source.vmdk /vmfs/backup/target.vmdk
3. vmCommit.pl       # Snapshot 제거

# vmware-cmd -l
/root/vmware/win2k3/win2k3.vmx
/root/vmware/win2k/win2k.vmx

# vmAddRedo.pl -c /root/vmware/win2k3/win2k3.vmx
vmAddRedo: VM config file is '/root/vmware/win2k3/win2k3.vmx'

vmAddRedo: Disks found that are in use:
vmAddRedo: Disk found: scsi0:0 (localvmfs:win2k3.vmdk)
vmAddRedo:    1: scsi0:0
vmAddRedo: Creating the RedoLogs for cfg : /root/vmware/win2k3/win2k3.vmx
vmAddRedo:    scsi0:0:Adding REDO
vmAddRedo: diskname :/vmfs/localvmfs/win2k3.vmdk

# grep vmdk /root/vmware/win2k3/win2k3.vmx
scsi0:0.name = "localvmfs:win2k3.vmdk"

# vmkfstools -i /vmfs/localvmfs/win2k3.vmdk /vmfs/backup/win2k3.vmdk

# vmCommit.pl -c /root/vmware/win2k3/win2k3.vmx

vmCommit: VM config file is '/root/vmware/win2k3/win2k3.vmx'

vmCommit: Disks found that are in use:
vmCommit: Disk found: scsi0:0 (localvmfs:win2k3.vmdk)
vmCommit:    1: scsi0:0
vmCommit: Backing up the cfg : /root/vmware/win2k3/win2k3.vmx

vmCommit: scsi0:0: Adding stacked REDO.REDO
vmCommitRedo: diskname :/vmfs/localvmfs/win2k3.vmdk
vmCommit: scsi0:0: Committing REDO
Please wait, committing disks...
vmCommit: scsi0:0: Committing REDO.REDO


VI3 인 경우

1. vmware-cmd ${vm} createsnapshot ${vmname}-snapshot
2. vmkfstools -i source.vmdk /vmfs/volumes/backup/target.vmdk
3. vmware-cmd ${vm} removesnapshots

아래 스크립트는 참고만 하시고,, 그대로 사용하시면 안됩니다.

#!/bin/sh
logfile="/tmp/backuplog"

echolog() {
    vmname=$1
    msg=$2
    now=$(date "+%b %d %T")
    echo "${now} ${vmname} # ${msg}"
    echo "${now} ${vmname} # ${msg}" >> ${logfile}
}

/usr/bin/vmware-cmd -l | while read vm
## cat /tmp/vms | while read vm
do
    vmname=$(/usr/bin/vmware-cmd ${vm} getconfig displayname | awk '{print $3}')
    echolog ${vmname} "vmname = ${vmname}"

    echolog ${vmname} "create snapshot"
    if [ $(/usr/bin/vmware-cmd ${vm} createsnapshot ${vmname}-snapshot | awk '{print $3}') == 1 ]
    then
        echolog ${vmname} "snapshot is successfully created"
    else
        echolog ${vmname} "snapshot creation has an error !!!!"
    fi

    echolog ${vmname} "verify snapshot creation"
    if [ $(/usr/bin/vmware-cmd ${vm} hassnapshot | awk '{print $3}') == 1 ]
    then
        echolog ${vmname} "snapshot is successfully detected"
   
        case ${vmname} in
          test1 )
          files="/vmfs/volumes/lovmfs/test1/test1.vmdk"
          ;;
          test2 )
          files="/vmfs/volumes/lovmfs/test2/test2.vmdk"
         ;;
        esac
  
        echolog ${vmname} "backup image"
        for eachfile in ${files}
        do
            fromfile=${eachfile}
            tofile=$(dirname ${eachfile})/BK/$(basename ${eachfile})
            if [ -d $(dirname ${tofile}) ]
            then
                echolog ${vmname} "backup directory already exist"
            else
                echolog ${vmname} "backup directory does not exist, make it"
                mkdir -p $(dirname ${tofile})
            fi
            vmkfstools -i ${fromfile} ${tofile}
            diff ${fromfile} ${tofile}
            if [ $? == 0 ]
            then
                echolog ${vmname} "${fromfile} is successfully copied to ${tofile}"
            else
                echolog ${vmname} "${fromfile} copy has an error !!!!"
            fi
        done
   
        echolog ${vmname} "delete snapshot"
        if [ $(/usr/bin/vmware-cmd ${vm} removesnapshots | awk '{print $3}') == 1 ]
        then
            echolog ${vmname} "snapshot is successfully removed"
        else
            echolog ${vmname} "snapshot removing has an error !!!!"
        fi
    else
        echolog ${vmname} "snapshot does not exist !!!!"
    fi
    echo -n $(date "+%b %d %T") ${vmname} "# "
    /usr/bin/vmware-cmd ${vm} hassnapshot
    ;;
done

결론부터 말씀드리고,, 나머지 설명을 하겠습니다.
vmfs 파일시스템 위에 있는 가상머신 디스크 파일(vmdk)을 복사하기 위해서는
cp를 사용하시면 안되고, vmkfstools 를 사용해야 합니다.

vmfs 는 VMware 가 만든 공유 파일 시스템이기 때문에,,
SCSI Reservation 이란 방법(일종의 lock)으로 정합성을 유지합니다.
lock 이 걸리는 경우는 파일 신규 생성, 파일 크기 변경, 삭제, 등등
메타데이터가 변경될 때마다 발생합니다.
cp를 사용할 경우 파일이 2kb 단위로 증가되면서 복사하므로
SCSI Reservation 이 많이 발생하게 되고,, 그만큼 시간이 오래걸립니다.
반면 vmkfstools 를 사용할 경우 미리 대상 파일을 생성한 후
내용만 변경하기 때문에 SCSI Reservation 발생 빈도가 낮습니다.

VI3.5에서 테스트한 결과입니다.
(VI3 에서는  vmdk 파일이 name.vmdk 과 name-flat.vmdk 두개가 존재합니다.)

# time vmkfstools -i /vmfs/volumes/source/test.vmdk /vmfs/volumes/target/test.vmdk
Destination disk format: VMFS thick
Cloning disk '/vmfs/volumes/source/test.vmdk'...
Clone: 100% done.

real    0m30.874s
user    0m0.000s
sys     0m1.630s

# time cp test.vmdk test-flat.vmdk /vmfs/volumes/target/

real    2m8.821s
user    0m0.000s
sys     0m0.790s

vmkfstools 명령어 형태는 두가지가 있습니다.

vmkfstools  -e /vmfs/vmfsname/target.vmdk  -d vmfs /vmfs/vmfsname/source.vmdk
-or-
vmkfstools -i /vmfs/vmfsname/source.vmdk /vmfs/vmfsname/target.vmdk


참조자료
http://www.vmts.net/vmkfstools.htm
http://www.experts-exchange.com/Software/VMWare/Q_23530578.html
http://www.rtfm-ed.co.uk/?p=34

vSphere 4 가 나오면서 새로운 기능도 많이 추가되고, 라이선스 종류도 다양해 졌지만,,
지금 설명하는 내용은 VI 3.5 를 대상으로 합니다.

VI3 Foundation Edition 이상이면 VCB 가 포함되어 있습니다.
그런데,, VCB를 사용하려면,, 3rd Party Backup Software 가 필요합니다.
VMware Backup Guide를 살펴보다 보니,,
별도의 3rd Party Backup Software가 없어도,,
Service Console에서 vcb 명령으로 가상머신 백업이 가능하더군요..
본문은 아래 링크에서 받을 수 있습니다.
http://www.vmware.com/pdf/vi3_35/esx_3/r35/vi3_35_25_vm_backup.pdf

문서에서는 Virtual Center 와 연동되는 경우에 대해서도 설명되어 있는데,,
이곳에서는 ESX Server 단독으로 구성했을 경우로 가정합니다.

Service Console에서 백업을 진행하려면,,

  1. /etc/vmware/backuptools.conf
     
    VCHOST=localhost      # Virtual Center dns name 또는 IP. ESX 단독일 경우 localhost
    USERNAME=vcbuser      # VCHOST 접속 ID
    PASSWORD=vcbuser   # VCHOST 접속 ID의 Password
    VMNAMECACHE=/var/cache/vmName.cache   # default 값 유지
    TEMPDIR=/tmp       # scp 원격지 복사할 경우 임시 파일 보관 위치. 충분한 여유 공간 필요
     
  2. vcbVmName  명령어로 백업 대상 가상머신 찾기
     
    vcbVmName -s any:         #  모든 가상머신 리스트가 보여짐
    vcbVmName -s powerstate:on     # Power On 된 가상머신만 보여짐
     
    Error: No permission to perform this action. 에러가 발생할 경우 아래와 같이 실행.
    패스워드를 물어보면 root 유저의 패스워드 입력
    vcbVmName -h localhost -u root -s any:

    실행 결과
    Found VM:
    moref:208
    name:win_xp_test
    uuid:564db17a-2e1c-c6be-303f-ea30f8583f2a
    ipaddr:192.168.1.175
     
  3. vcbMounter로 백업하기
     
    vcbMounter -a ipaddr:192.168.1.175 -r /vmfs/volumes/backup
    vcbMounter -a moref:208 -r scp://user@backupserver:/backup/directory
    vcbMounter -a uuid:564db17a-2e1c-c6be-303f-ea30f8583f2a -r /home/backup

  4. vcbRestore로 복구하기
     
    vcbRestore -s /vmfs/volumes/backup     # 백업 폴더만 지정하면 복구가 가능함

    별도의 폴더에 복구하기 위해서는 catalog 파일을 수정해야 함
    이 부분은 매뉴얼 참고



CentOS 5.3을 설치하고,,
가상머신으로 Fedora CORE 3을 구성하려고 하는데,,
CD 부팅하자 마자 멈추더니,, 아무 반응이 없더군요.
메시지를 살펴보니,,

Using HPET for base-timer
Using HPET for gettimeofday
Detected 2394.844 MHz processor.
Using hpet for high-res timesource

HPET 가 뭔지 살펴 보니,,
High Precision Event Timer 라는 군요..

어쨋든 이놈 때문에 kernel 이 멈춰버리는 것 같아서,,
HPET 를 disable 시킬 수 있는 방법을 찾아봤습니다.
의외로 해답은 간단하더군요..

설치 CD 넣고 boot: 메뉴에서

linux acpi=off

하시면 됩니다.

설치 끝나고, grub 에도 kernel parameter 로 반드시 들어가 있어야 합니다.

acpi (Advanced Configuration and Power Interface)
apic (Advanced Programmable Interrupt Controller)

linux kernel parameter 로 두가지가 가끔 들어가는데,, 상당히 헷갈립니다.
나중에 한번 정리해 봐야 겠습니다.

'Linux' 카테고리의 다른 글

[TIP] Shell Script  (0) 2009.07.01
Play Station 3 의 굴욕  (0) 2009.06.30
SSH Tunneling  (1) 2009.06.21
perl 스크립트를 원격지에서 실행하기  (0) 2009.06.21
리눅스 디렉토리 복제  (0) 2009.06.21

Performance Tuning !!!
무슨 작업을 하던 간에,, 가장 어려운 주제입니다.
얼마전에 Rocks 5.1 Cluster 를 구성했는데,
성능이 예상만큼 안나온다는 얘기를 들었습니다.
올 것이 왔구나!!!

성능을 개선하기 위해서 여러가지 접근 방법이 있겠지만,,
우선은 Compiler와 MPI Library를 변경하기로 하였습니다.
Intel Roll CD가 제공되지만,, Roll CD를 사용하지 않고,,
개별적으로 Intel Fortran Compiler + Intel MPI Libray 를 설치하는 방법을 사용했습니다.

  1. Compatibility Package 설치
    • Intel Compiler 설치를 위해서는 미리 설치되어 있어야 합니다.
    • compat-gcc-34, compat-gcc-34-g77, compat-gcc-34-c++, compat-libstdc++ 패키지 설치
    • yum -y install compat-gcc-34 compat-gcc-34-g77 compat-gcc-34-c++ compat-libstdc++
    • [compute node only] yum -y install gcc-g++
       
  2. Intel Fortran Compiler 설치
    • Intel Software download 싸이트에서 Evaluation 을 다운로드
    • 메일로 라이센스 키를 받으면 /opt/intel/licenses 디렉토리 아래에 복사
    • Evaluation 설치 파일을 받으면, /tmp로 이동 후 압축 해제
    • ./install.sh 스크립트로 설치 시작
    • 설치 과정에서 현재 OS(CentOS 5.2)가 호환되지 않는다는 메시지가 뜨지만 무시하고 넘어가면 설치를 계속할 수 있습니다.
    • 설치 완료 후 환경변수 load
      # source /opt/intel/Compiler/11.0/081/bin/ifortvars.sh intel64
       
  3. Intel MPI Library 설치
    • 설치 파일을 /tmp로 이동 후 압축 해제
    • machine.LINUX 파일을 편집해서 설치하기 위한 모든 노드 목록을 작성
      master
      slave
    • ./install.sh 스크립트로 설치 시작
    • 설치 완료 후 환경변수 load
      # source /opt/intel/impi/3.2.1/bin64/mpivars.sh
       
  4. MPI Program compile
    • 환경변수를 load 하면, ifort 명령으로 fortran compile이 가능함
    • MPI 프로그램을 compile 하기 위해서는 mpiifort 를 사용
    • mpif90 을 사용할 경우 gfortran 으로 compile됨
       
  5. SGE 와 연동해서 mpirun
    • Intel MPI Library 는 MPI-2 를 기반으로 구성되어 있음
    • mpdboot, mpdallexit 가 필요한데,, mpirun 스크립트를 사용하면 자동으로 실행해 줌
    • job submit 예제
       
      #!/bin/sh

      #
      #$ -cwd
      #$ -j y
      #$ -S /bin/bash
      #$ -pe mpich 4
      #
      echo '------------------------------------------'
      echo 'host='$HOSTNAME
      echo "Got $NSLOTS slots."
      echo '------------------------------------------'
      /opt/intel/impi/3.2.1.009/bin64/mpirun -np $NSLOTS /your/program/full/path/application

       
    • -cwd 옵션을 사용했는데도,, application full path를 적어줘야 동작함
      full path를 사용하지 않을 경우 [Errno 2] No such file or directory 발생
       

일단,, Intel Compiler 를 사용해서 성능이 개선되길 바래야죠..
성능 개선이 안될 경우 일이 더 복잡해지는데요...

'Rocks' 카테고리의 다른 글

SGE error: ending connection before all data received  (0) 2009.11.17
성능비교의 오류  (0) 2009.07.15
Rocks 설치 중 네트워크 연결 실패  (0) 2009.06.21
PXE-E32: TFTP open timeout  (0) 2009.06.21
rocks command  (0) 2009.06.21
R 프로그램은 통계분야에서 널리 사용되고 있는 프로그램입니다.
WCCS Job Scheduler를 이용하여 R 프로그램을 수행하는 방법입니다.

1. R 프로그램은 모든 노드에 설치되어 있고, PATH 설정이 되어 있어야 합니다.

2. R 프로그램의 Batch 작업 안내
   http://bibs.snu.ac.kr/R/bin/windows/base/rw-FAQ.html

   2.12 Can I use R CMD BATCH?
  Yes: use R CMD BATCH --help or ?BATCH for full details.
  You can set also up a batch file using Rterm.exe. A sample batch file might contain (as one line)
     path_to_R\bin\Rterm.exe --no-restore --no-save < %1 > %1.out 2>&1
  The purpose of 2>&1 is to redirect warnings and errors to the same file as normal output, and users of Windows 95/98/ME's default command.com `shell' will need to omit it. (That program has no means to redirect stderr, and Rterm.exe sends warnings and errors to the normal output file on such systems.)

3. Command Line을 이용한 Job Submit 예제

  job submit ^
  /numprocessors:4 ^
  /workdir:\\FileServer\ShareDIR ^
  /stdin:INPUT_FILE.txt ^
  /stdout:OUTPUT_FILE.txt ^
  /stderr:ERROR_FILE.txt ^
  Rterm.exe --no-restore --no-save

'WCCS' 카테고리의 다른 글

run1perNode (WCCS Job Scheduler)  (0) 2009.06.21
When you uninstall MSDE by accident  (0) 2009.06.21
Job Scheduler에서는 요청된 CPU 개수와 각 노드당 CPU개수에 따라서 노드를 할당하게 됩니다.
예를 들어,,
각 노드당 4개씩의 CPU(core)를 가지고 있는데,,
6개의 CPU를 요청하면,,
두개의 노드가 할당되고,
한개의 노드에서는 4개의 CPU, 다른 노드에서는 2개의 CPU가 계산에 사용되어집니다.

그런데,, 특별한 경우(OpenMP + MPI 프로그램)
각 노드당 한개씩의 Process만 할당하고 싶은 경우가 있습니다.
OpenMP + MPI 프로그램을 작성하였는데,,
MPI를 통해 6개의 노드를 할당 받고,
각 노드에서는 OpenMP를 통해 병렬화를 구현한 경우가 이러한 경우입니다.
(각 노드가 4개의 CPU를 가지고 있다면 총 24개 CPU가 계산에 참여하게 됩니다)

위 방법을 구현하기 위해서는 Job Scheduler에
노드수 x 노드당CPU개수 만큼의 CPU를 요청하고,
mpiexec command에서 각 노드당 1개씩의 process만 생성하도록 요청해야 합니다.
mpiexec 에서 -hosts 옵션을 사용하면 위 방법을 구현할 수 있습니다.

mpiexec -hosts 2 node001 1 node002 1 MyApp.exe

MyApp.exe 프로그램은 node001과 node002에 각각 1개씩 총 2개의 Process를 생성하게 됩니다.

문제는 Job Scheduler를 통해 노드를 무작위로 할당 받기 때문에
위 command를 사용하는 데는 어려움이 있습니다.

문제를 해결하기 위해서 run1perNode.vbs 스크립트를 사용하시면 됩니다.
스크립트는 아래 링크에서 다운받으실 수 있습니다.

http://windowshpc.net/files/17/scripting/entry615.aspx



사용방법
1. run1perNode.vbs 스크립트를 workdir에 복사합니다.
2. mpiexec.exe MyApp.exe
   와 같은 명령 대신에,, 아래 명령을 사용합니다.
   cscript //Nologo run1perNode.vbs MyApp.exe

기존방법 - 2개 노드에서 6개 CPU 할당받음 (각 노드당 4개의 CPU가 있을 경우)

job submit  ^
/numprocessors:6 ^
/workdir:\\headnode\workdir ^
/stdout:MyApp.out ^
/stderr:MyApp.err ^
mpiexec.exe MyApp.exe

스크립트 사용방법 - 6개 노드에서 24개 CPU 할당받아서 노드당 1개의 Process 사용 (각 노드당 4개의 CPU가 있을 경우)

job submit ^
/numprocessors:24 ^
/workdir:\\headnode\workdir ^
/stdout:MyApp.out ^
/stderr:MyApp.err ^
cscript //Nologo run1perNode.vbs /verbose MyApp.exe

'WCCS' 카테고리의 다른 글

WCCS에서 R 프로그램 Job Submit 방법  (0) 2009.06.21
When you uninstall MSDE by accident  (0) 2009.06.21
1.      Click Start, click Run, type cmd, and then click OK.

2.      At the command prompt, switch to the MSDE2000a folder on the CCP distribution media.

3.      Type setup.exe SAPWD="strong_password" INSTANCENAME="COMPUTECLUSTER", and then press ENTER.
Note The strong_password placeholder represents the System Administrator
(SA) password.

4.      Type exit, and then press ENTER.

5.      Click Start, click Run, type services.msc, and then click OK.

6.      Start MSSQL$COMPUTECLUSTER service

7.      Click Start, click Run, type appwiz.cpl, and then click OK.

8.      In the Currently installed programs list, click Microsoft Compute Cluster Pack, and then click Remove.

9.      Follow the instructions to remove the CCP.

10.      Click Microsoft SQL Server Desktop Engine, and then click Remove.

11.      Follow the instructions to remove MSDE.

12.     Rerun the CCP setup file as required to re-create the Windows Compute Cluster Server 2003 head node.

Thanks for CY..

'WCCS' 카테고리의 다른 글

WCCS에서 R 프로그램 Job Submit 방법  (0) 2009.06.21
run1perNode (WCCS Job Scheduler)  (0) 2009.06.21
Windows CMD 사용 방법

Windows Server 2003 Command Reference

http://technet2.microsoft.com/WindowsServer/en/library/552ed70a-208d-48c4-8da8-2e27b530eac71033.mspx?mfr=true

사용예제

1. grep 역할

dir c:\ /s /b | find "CPU"
for %f in (*.bat) do find "echo" %f

findstr은 egrep 와 비슷한 역할 수행

2. 컬럼 추출

for /F "usebackq tokens=4" %j in (`job new`) do set JOBID=%j
for /F "usebackq tokens=2,3,5" %i in (`dir`) do @echo %i %j %k

서버에 원격으로 접속하여 작업하다 보면,,,
작업 내용을 다른 사람과 공유해야 할 경우가 생깁니다.

Windows 2003 서버의 경우 local console + remote console(2) 동시 접속이 가능합니다.

Server : A
Client1 : B
Client2 : C

라고 가정하고,, B가 A에 접속한 Remote Console을 C에게 공유하는 방법을 설명합니다.

1. B가 A에 접속

start -> run -> mstsc.exe A_Server_IP_Address

TaskManager 의 Users 탭에서 접속된 ID를 확인 [0, 1, 2, 3] 중 하나

2. C가 A에 접속

start -> run -> mstsc.exe A_Server_IP_Address

A에 접속이 완료된 후

start -> run -> shadow [1에서 확인된 번호, 즉 B가 사용하는 ID를 입력]

3. 인증

B의 접속 화면에 공유와 관련된 메시지가 뜨고,, 확인을 누르면,,,
B가 보고 있는 화면이 C와 공유됩니다.

4. 공유 해제

공유를 해제하기 위해서는
C의 화면에서 Ctrl + * (Num키보드에 위치한 *) 를 누르면 됩니다.

자세한 내용은 아래 링크에서 확인하세요...

http://support.microsoft.com/kb/278845

Rocks 또는 WCCS 2003 또는 HPCS 2008 등등
클러스터를 구성하는 경우,,
대부분 PXE Network 부팅을 통해 Compute Node를 설치합니다.

Rocks 4.3을 이용해서 Compute Node를 설치하던 중,,
Frontend 노드와 연결이 되지 않아 설치 초기 과정에서 실패하는 경우가 있습니다.

실패가 나타나는 경우
- CISCO Catalyst 29xxG Switch 사용
- PXE 부팅과정에서 DHCP에서 IP를 받아오며,, 설치 초기 화면까지는 나타남
- 설치가 진행되는 듯 싶다가,, 멈춘 후 리부팅 됨

실패 원인
- 좀 특이한 경우겠지만,, CISCO Switch 의 경우 Learning Time 이란 것이 있습니다.
- 스위치에 새로운 서버를 연결했을 경우 처음에는 주황색 이었다가,,
  한참이 지난 후에야 초록색으로 바뀝니다.
- 정확하게는 Blocking, Listening, Learning, Forwarding, Disabled 상태 중 하나이지요.
- 서버를 부팅했을 경우 Forwarding 상태이기 때문에,, PXE 부팅이 진행됩니다.
- PXE 부팅과정에서 리눅스 커널이 올라옵니다.
- 리눅스 커널이 네트워크 드라이버 모듈을 다시 올리는 과정에서
  스위치와의 링크가 끊어졌다가 다시 연결됩니다.
- 다시 연결되었기 때문에,, 스위치는 Spanning-Tree 설정에 따라
  Forwarding 되기까지 시간이 걸립니다.
- 지연되는 시간 때문에,, 네트워크가 끊긴 것으로 인식하고, 설치를 종료시켜버립니다.

해결방법
- Switch의 Learning Time을 줄여줘야 합니다.
- Spanning-Tree를 사용하지 않거나,, Port Fast를 적용합니다.
- Catalyst 2960G 스위치의 매뉴얼은 아래 링크를 참조하세요.
http://www.cisco.com/en/US/docs/switches/lan/catalyst2960/software/release/12.2_25_see/configuration/guide/scg_1.html

Catalyst Switch 연결
- Serial Cable 사용
   Linux의 minicom 이란 프로그램 실행
   # minicom -s

      위와 같이 설정하고,, 연결이 되면,,
      Switch> en

   또는,,
 
__

'Rocks' 카테고리의 다른 글

SGE error: ending connection before all data received  (0) 2009.11.17
성능비교의 오류  (0) 2009.07.15
Install Intel Fortran Compiler and MPI Library on Rocks 5.1  (0) 2009.06.23
PXE-E32: TFTP open timeout  (0) 2009.06.21
rocks command  (0) 2009.06.21
Rocks 클러스터를 설치하는 과정에서,
PXE Network 부팅을 진행하다가,,
아래와 같은 메시지가 발생했을 경우???

PXE-E32: TFTP open timeout

생각지도 못했던 문제에 상당히 고생했습니다.
DHCP 에서 IP를 받아가고 나서,,
TFTP Server 에서 부팅에 필요한 파일들을 가져가야 하는데,,
TFTP에 접근을 못해 timeout 이 발생합니다.

해결 방법
  1. Firewall 점검
    TFTP Server가 동작하고 있는 서버에서 iptables firewall을 사용할 경우
    우선 iptables 를 내린 후 다시 진행
    iptables 내린 후 정상 동작한다면,, iptables firewall 설정을 점검할 것
     
  2. TFTP 서버
    Rocks 5.1 버전에서는 TFTP 서버가 xinetd 서비스로 묶여서 돌아갑니다.
    xinetd 서비스를 재시작해보세요.

Platform OCS 는 Open Source Rocks를 기반으로 만들어졌습니다.
Rocks 4.0 버전일때,, Rocks 에 비해서 OCS가 편한점은
명령어를 통해서,, 클러스터 구성을 customizing 하기가 쉽다는 것이었습니다.
하지만,, rocks 란 명령어를 알고부터,, OCS와 비교해도 전혀 불편함이 없더군요..
modules roll 빼구요.. !!

암튼,, rocks command 중 중요한거 몇개만 설명해 드리겠습니다.

1. 설치할 때,, 호스트 추가


rocks add host <hostname> cpus=<cpu#> membership=compute rack=<#> rank=<#>
예를 들어,, node01, node02를 추가할 경우

# rocks add host node01 cpus=8 membership=compute rack=0 rank=1
# rocks add host node02 cpus=8 membership=compute rack=0 rank=2

호스트가 정상적으로 추가되었는지 확인

# rocks list host

2. 호스트에 인터페이스 추가


이번에는 추가된 호스트에 ip, mac 설정

rocks add host interface <hostname> <eth?> ip=<your_ip> mac=<your_mac> subnet=private name=<hostname>
node01, node02에 ip, mac 설정

# rocks add host interface node01 eth0 ip=192.168.0.11 mac=00:50:56:00:00:11 subnet=private name=node01
# rocks add host interface node02 eth0 ip=192.168.0.12 mac=00:50:56:00:00:12 subnet=private name=node02

정상 추가되었는지 확인

# rocks list host interface

3. rocks 설정 동기화 관련


일반 설정 동기화
# rocks sync config

user 설정 동기화
# rocks sync users

4. Roll 설정 관련


구성된 roll 확인
# rocks list roll

roll 비활성화
# rocks disable roll <roll-name>

비활성화된 roll 활성화
# rocks enable roll <roll-name>

roll 삭제
# rocks remove roll <roll-name>



Windows HPC Server 2008 Resource Kit 이 웹 상에 공개되어 있는데,,
Microsoft 싸이트에서는 링크를 찾기가 쉽지 않습니다.


이곳에 들어가면,, 다양한 문서들과 비디오 파일들을 볼 수 있습니다.

At-a-Glance
Developer
IT Pro

세가지로 구분되어 있어서,, 관심분야에 쉽게 찾아갈 수 있습니다.

원본 보기 : http://wiki.kldp.org/wiki.php/OpenSshTunneling

Terminal Server, Remote Desktop, Dacom neturo, vnc, rsupport, ahranta 등등..
모두 원격접속하는 방법 중 하나입니다.
네트워크 보안 정책 등으로,, 직접 접근이 불가능할 경우,,
neturo,rsupport, ahranta 등 중계서버를 이용해서 원격접속을 하는 경우도 있죠..

리눅스에서는 ssh 명령어만으로 중계서버를 이용한 원격접속이 가능합니다.


Network Diagram

 Notebook (5904)  ---- Management Server (5903)
(172.30.254.2/16)      (172.30.100.1/16)
                       Cluster Network    ---- Node423 (5902)
                       (172.20.100.1/16)       (172.20.4.23/16)


위 그림에서,, Notebook에서 Node423의 vncserver 에 접속하고 싶다면??
같은 네트워크가 아니기 때문에,, Management Server에 연결한 후
Management Server에서 다시 Node423으로 연결해야 합니다.
하지만,, ssh tunneling 을 사용하면,,
Notebook에서 직접 접속이 가능합니다.

  1. Node423에서 vncserver 시작 (5902 포트)
    [node423] # vncserver :2

  2. Node423에서 Management 서버로 ssh tunneling 연결
    [node423] #
    ssh -R 5903:localhost:5902 root@172.20.100.1

  3. Notebook에서 Management 서버로 ssh tunneling 연결
    [notebook] #
    ssh -L 5904:localhost:5903 root@172.30.100.1

  4. Notebook에서 Node423으로 연결
    vnc client를 실행하고, localhost:4 주소 입력



'Linux' 카테고리의 다른 글

Play Station 3 의 굴욕  (0) 2009.06.30
Fedora CORE 설치 중 hpet 메시지에서 멈출 때..  (1) 2009.06.25
perl 스크립트를 원격지에서 실행하기  (0) 2009.06.21
리눅스 디렉토리 복제  (0) 2009.06.21
VNC Startup Script  (0) 2009.06.21

아주 단순한 명령어인데,,
이걸 몰라서 한참 헤맨적이 있습니다.

perl 스크립트가 현재 폴더에 있고,,
이 스크립트를 원격지 서버에서 실행하고자 할 때,,

# cat test.pl | ssh <target_host> perl

perl 스크립트를 원격지에 복사해서 실행해도 되겠지만,,
가끔 이런 것이 필요할 때도 많더군요..

'Linux' 카테고리의 다른 글

Fedora CORE 설치 중 hpet 메시지에서 멈출 때..  (1) 2009.06.25
SSH Tunneling  (1) 2009.06.21
리눅스 디렉토리 복제  (0) 2009.06.21
VNC Startup Script  (0) 2009.06.21
Linux on the PLAYSTATION 3  (1) 2009.06.21

/source/directory 내용을 통째로 /dest/directory 로 복제하는 방법

1. tar 이용

# ( cd /source/directory && tar cf - . ) |
> ( cd /dest/directory && tar xvfp - )

2. cpio 이용

# find /source/directory | cpio -dump /dest/directory

3. ssh와 결합하여 원격지 복제

SSH를 이용해서 다른 서버(target_host) 의 특정 디렉토리를 (/source/directory)
명령을 내린 서버의 특정 디렉토리 (/dest/directory) 로 백업하는 명령어

# ssh target_host tar -c -f - -C /source/directory . \| gzip -c \
> | gzip -cd | tar -x -f - -C /dest/directory

상당히 복잡해 보이는데,,
윗줄은 원격지에서 내려지는 명령이고,,
아랫줄은 로컬에 내려지는 명령이다.

4. 하루동안 변경된 내용만 압축

팁 하나더,,
하루동안 변경된 내용만 찾아서 압축하는 방법

아래 스크립트를 bak_last_day_changed.sh 라고 저장

#!/bin/bash

tar cvf - `find . -mtime -1 -type f -print` > $1.tar
gzip $1.tar

실행방법
백업하고자 하는 디렉토리로 이동하고,,

# cd /where/you/want/backup
# bak_last_day_changed.sh <your_backup_name>

5. 참고자료

오랜만에 내용을 참고하려고 들어왔다가,, 업데이트합니다. (06/26, 2009)

http://www.spikelab.org/blog/scpTarSshTarNc
이곳에 가면,, scp, tar와 ssh, tar와 nc 를 사용했을 경우 성능비교표를 확인할 수 있습니다.

http://ultra.ap.krakow.pl/~bar/DOC/ssh_backup.html
위에 예시로 들어 놓은 command 이외에 훨씬 더 많은 방법을 안내하고 있습니다.
방문하셔서 화

'Linux' 카테고리의 다른 글

Fedora CORE 설치 중 hpet 메시지에서 멈출 때..  (1) 2009.06.25
SSH Tunneling  (1) 2009.06.21
perl 스크립트를 원격지에서 실행하기  (0) 2009.06.21
VNC Startup Script  (0) 2009.06.21
Linux on the PLAYSTATION 3  (1) 2009.06.21
Windows Server 2003에서 Windows Server 2008로 버전이 올라가면서,,
"관리자를 위한 원격데스크톱 연결"에 두가지 큰 변화가 있습니다.

1. 최대 동시 접속자가 3명에서 2명으로 감소
 - WS03에서 mstsc -console (또는 -admin) 옵션을 사용할 경우
   로컬 콘솔까지 원격에서 접속할 수 있기 때문에,,
   최대 3명까지 원격 접속이 가능했습니다.
 - 그러나,, WS08에서는 최대 동시 접속자가 2명으로 제한됩니다.
   물론 Terminal Server 라이센스를 구매할 경우 늘어나겠지만요..

2. 한 User로 동시 접속이 안된다?
 - WS03에서 Administrator로 동시에 2명 또는 최대 3명까지 접속할 경우
   각각 별개의 Desktop 환경이 열렸습니다.
   기존에 접속해 있던 Session 이 끊기지는 않았죠..
 - 그러나,, WS08에서는 Administrator로 동시에 2명 이상이 접속을 시도할 경우
   기존 Session 이 끊겨 버립니다.
   WS08 기본 설정이 그렇게 되어 있기 때문이죠.
   변경을 위해서는,,
   start -> programs -> administrative tools -> terminal services
   -> terminal service configuration 에서,,,
   "restrict each user to a single session" 옵션을 NO 로 변경해 줍니다.
   그러면,, WS03 처럼,, Administrator로 여러개의 세션을 연결할 수 있습니다.
   (최대 2개지만요 !!!)

'Windows' 카테고리의 다른 글

윈도우즈 무료 백업 솔루션 ZConverter Windows Backup  (0) 2009.09.15
서류 가방 에러  (0) 2009.09.01
tasklist 로 실행 프로세스 확인  (0) 2009.07.01
Windows Command Line Scripts  (0) 2009.06.21
Remote Desktop 공유하기  (0) 2009.06.21
RedHat Enterprise Linux 또는 CentOS에서
vncserver를 실행할 경우,, 윈도우 매니저가 익숙치 않을 것입니다.
vnc에서 윈도우 매니저를 Gnome으로 시작하기 위해서는
아래와 같이 xstartup 스크립트를 수정합니다.
 
# cat ~/.vnc/xstartup
#!/bin/sh
. /etc/X11/xinit/xinitrc- common
/etc/X11/xinit/Xclients

'Linux' 카테고리의 다른 글

Fedora CORE 설치 중 hpet 메시지에서 멈출 때..  (1) 2009.06.25
SSH Tunneling  (1) 2009.06.21
perl 스크립트를 원격지에서 실행하기  (0) 2009.06.21
리눅스 디렉토리 복제  (0) 2009.06.21
Linux on the PLAYSTATION 3  (1) 2009.06.21

####################################################################################################
# PBS install
####################################################################################################

# 소스 파일 압축 해제
[root@orion ~]# tar xvfz torque-2.3.0.tar.gz
# configure
# 옵션은 아래 싸이트 참고
#
http://www.clusterresources.com/torquedocs21/1.3advconfig.shtml#configoptions
#
[root@orion torque-2.3.0]# ./configure \
--enable-server --enable-clients \
--enable-docs --enable-mom \
--prefix=/usr/local \
--with-default-server=orion \
--with-scp

# compile
[root@orion torque-2.3.0]# make
# 설치
[root@orion torque-2.3.0]# make install


# 설치 후 torque (pbs) 서버 기본 설정
[root@orion torque-2.3.0]# ./torque.setup root
initializing TORQUE (admin:
root@orion.xxxx.ac.kr)
PBS_Server orion.xxxx.ac.kr: Create mode and server database exists,
do you wish to continue y/(n)?y
Max open servers: 4
Max open servers: 4


# pbs에서 사용할 노드 등록
# np=4, 각 노드에 4개의 cpu가 있음을 의미
[root@orion torque-2.3.0]# vi /var/spool/torque/server_priv/nodes
orion   np=4
node01  np=4
node02  np=4
node03  np=4

# pbs_mom은 실제 job을 수행할 compute node에서 구성
# orion (master) 노드에서도 job이 수행되므로 아래 파일 설정
# 자세한 설정은 아래 링크 참조
#
http://www.clusterresources.com/torquedocs21/a.cmomconfig.shtml
#
[root@orion torque-2.3.0]# vi /var/spool/torque/mom_priv/config
$pbsserver      orion
$logevent       255

# pbs server 지정
# job이 수행될 모든 노드에 설정
[root@orion torque-2.3.0]# vi /var/spool/torque/server_name
orion

# rebooting 이후 자동으로 실행되도록 설정
[root@orion sbin]# echo "/usr/local/sbin/pbs_mom" >> /etc/rc.d/rc.local
[root@orion sbin]# echo "/usr/local/sbin/pbs_server" >> /etc/rc.d/rc.local
[root@orion sbin]# echo "/usr/local/sbin/pbs_sched" >> /etc/rc.d/rc.local

####################################################################################################
# install torque on compute nodes
####################################################################################################
# compute 노드에 pbs client 설치 및 설정

# 먼저 orion (master) 노드에서 패키지를 생성
[root@orion torque-2.3.0]# make packages
# 생성된 패키지를 /data1 (NFS로 공유된 디렉토리)에 복사
[root@orion torque-2.3.0]# cp *.sh /data1

# 모든노드에 /data1 디렉토리에 있는 파일을 이용하여 설치
# 먼저 pbs_mom 설치
[root@orion ~]# psh compute '/data1/torque-package-mom-linux-x86_64.sh --install'
node01:
node01:       Installing TORQUE archive...
node01:
node01:       Done.
node02:
node02:       Installing TORQUE archive...
node02:
node02:       Done.
node03:
node03:       Installing TORQUE archive...
node03:
node03:       Done.
# 같은 과정으로 client, doc, devel 설치
[root@orion ~]# psh compute '/data1/torque-package-clients-linux-x86_64.sh --install'
[root@orion ~]# psh compute '/data1/torque-package-doc-linux-x86_64.sh --install'
[root@orion ~]# psh compute '/data1/torque-package-devel-linux-x86_64.sh --install'

# rebooting 이후 자동으로 pbs_mom 이 시작되도록 설정
[root@orion ~]# psh compute 'echo "/usr/local/sbin/pbs_mom" >> /etc/rc.d/rc.local'

# jobs이 실행될 수 있도록 pbs_mom 설정 변경
[root@orion sbin]# psh all 'echo "\$pbsserver orion" > /var/spool/torque/mom_priv/config'
[root@orion sbin]# psh all 'echo "\$logevent  255" >> /var/spool/torque/mom_priv/config'
[root@orion ~]# psh compute 'echo "orion" > /var/spool/torque/server_name'

# 설정을 마친 후 pbs_mom 시작
[root@orion ~]# psh compute '/usr/local/sbin/pbs_mom'

# pbs 정상 설정여부 확인

# 모든 노드에서 free 라고 올라와야 함
# down 이라고 표시되면, pbs_mom을 재시작해야 함
[root@orion ~]# pbsnodes -a

# pbs_mom 재시작 방법
[root@orion ~]# psh compute 'killall pbs_mom'
[root@orion ~]# psh compute 'pbs_mom'

####################################################################################################
# queue 테스트
####################################################################################################
#
# 일반 유저로 로그인해서
# job submit 테스트 수행
[user1@orion ~]$ echo "sleep 5" | qsub
[user1@orion ~]$ qstat

'Scheduler' 카테고리의 다른 글

[SGE] Rocks 5.3 + mpich2  (0) 2010.08.07
[SGE] Grid Engine Administration – Training Slides  (0) 2010.07.13
[SGE] Parametric Job + Job Dependency  (0) 2009.06.21

Parametric Job + Job Dependency 입니다.
첨부파일을 열어보면,, 6개의 파일이 보입니다.


cpi.c cpi start.sh compute.sh end.sh sub.sh

 

파일 설명

cpi.c     : PI 계산 C Source, Interval 값을 인자로 입력받아 PI를 계산

cpi       : Compile binary 파일

start.sh  : 시작 스크립트, input parameter를 파일에 저장

compute.sh       : 계산 스크립트, input parameter를 읽어서 cpi 인자값으로 넘겨서 계산

end.sh   : 종료 스크립트, 임시 input 파일을 삭제

sub.sh   : 세개의 job을 제출하는 스크립트

주의 ::: 이 스크립트에서는 input parameter 4개라고 가정하였음, BASH 를 사용하였음.

 

실행방법

[user1@hnode01 ~]$ ./sub.sh

Your job 51 ("start") has been submitted

Your job-array 52.1-4:1 ("compute") has been submitted

Your job 53 ("end") has been submitted

 

[user1@hnode01 ~]$ qstat

job-ID  prior   name       user         state submit/start at     queue                          slots ja-task-ID

-----------------------------------------------------------------------------------------------------------------

     51 0.00000 start      user1       qw    12/24/2008 16:25:44                                    1       

     52 0.00000 compute    user1       hqw   12/24/2008 16:25:44                                    1 1-4:1

     53 0.00000 end        user1       hqw   12/24/2008 16:25:44                                    1

 

'Scheduler' 카테고리의 다른 글

[SGE] Rocks 5.3 + mpich2  (0) 2010.08.07
[SGE] Grid Engine Administration – Training Slides  (0) 2010.07.13
[PBS] Torque+Maui 스케쥴러 설치  (0) 2009.06.21

+ Recent posts