결론부터 말씀드리고,, 나머지 설명을 하겠습니다.
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

+ Recent posts