http://support.citrix.com/article/CTX121875

Physical Volume Enabling an HVM Linux Virtual Machine imported from VMware

http://www.youtube.com/watch?v=2EaixwuM6Vw
ISO 이미지 사용
xe sr-create name-label=<name> type=iso \
device-config:location=<where iso file exist> \
device-config:legacy_mode=true \
content-type=iso

EX) /var/opt/xen/iso_import/
xe sr-create name-label=windows_iso type=iso \
device-config:location=/var/opt/xen/iso_import/ \
device-config:legacy_mode=true content-type=iso

[root@xen12 ~]# xe sr-list name-label=windows_iso
uuid ( RO)                : 7bdf8f9c-ba67-eeba-ff59-ec590f8f3692
          name-label ( RW): iso-file
    name-description ( RW):
                host ( RO): xen12
                type ( RO): iso
        content-type ( RO): iso

sftp 와 같은 툴을 이용해서 ISO 파일을 /var/opt/xen/iso_import 디렉토리에 업로드한 뒤
스캔해서 업로드된 ISO 파일을 인식시킨다.

[root@xen12 ~]# xe sr-scan uuid=7bdf8f9c-ba67-eeba-ff59-ec590f8f3692

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 파일을 수정해야 함
    이 부분은 매뉴얼 참고




원문보기

주요 내용
  1. Alt+F1 키로 가상콘솔 이동
  2. Type "unsupported" then type your password when asked
  3. vi /etc/inetd.conf
    32번 줄의 주석처리되어 있는 ssh 를 풀어줌
    ssh  stream  tcp  nowait  root  ~~~~
  4. reboot

원문 보기

주요 내용
  1. 가상머신 생성
    Virtual machine hardware compatibility = Workstation 5 + ESX Server Compatible
    Select a Guest Operating System = Linux -> Red Hat Enterprise Linux 4 64-bit
    Processor Configuration = Two
    Memory for the Virtual Machine = 2048
    Network Type = Do not use a network connection
    Select I/O Adapter Types = LSI Logic
    Specify Disk Capacity = 64 GB

  2. Workstation 6.5를 사용하는 경우
    가상머신 설정에서 Processors 선택
    Execution Mode -> Prefered mode : Intel VT-x or AMD-V 선택

  3. Workstation 6.5 이하 버전인 경우, vmx 파일 편집하기
    생성된 vmx 파일에 아래 내용을 추가

    # Intel VT
    monitor_control.restrict_backdoor = TRUE
    monitor_control.vt32 = TRUE

    #AMD
    #Monitor_control.enable_svm = TRUE

    #Intel NIC config
    ethernet0.present = TRUE
    ethernet0.virtualDev = “e1000″
    ethernet0.connectionType = “bridged”
    ehternet0.addressType = “generated”

alwaysu012 2009/06/25 14:28

갑자기 테스트할 일이 생겨서,,,
VMware ESX Server 2.5.2-16390 -> Update 4 적용시 2.5.2-21059 를
Workstation 6.5에 설치하려는 시도를 했는데,,,
2.5.x 버전은 Workstation 위에 올라가지 않나봅니다.
vmkernel이 올라가면서,, CPU는 100% 로 치고,,
login prompt 까지는 뜨지만,, vmware 관련 VMFS 등등이 안올라갑니다.
여기까지가 한계인지..

+ Recent posts