[one-users] cannot migrate virtual machines in one 3.4

Carlos A. caralla at upv.es
Tue Apr 24 23:38:06 PDT 2012


Hi,

$ ls -Rl /srv/cloud/one/var/datastores/0/2994
/srv/cloud/one/var/datastores/0/2994:
total 1055880
-rw-r--r-- 1 oneadmin     oneadmin        653 2012-04-24 18:47 deployment.0
-rw-r----- 1 libvirt-qemu kvm      1081212928 2012-04-24 18:47 disk.0

$ bash -xv /srv/cloud/one/var/remotes/tm/ssh/mv 
dellblade01:/srv/cloud/one/var//datastores/0/2994/disk.0 
dellblade03:/srv/cloud/one/var//datastores/0/2994/disk.0

#-------------------------------------------------------------------------------
# Return if moving a disk, we will move them when moving the whole system_ds
# directory for the VM
#-------------------------------------------------------------------------------
SRC_PATH=`arg_path $SRC`
arg_path $SRC
++ arg_path dellblade01:/srv/cloud/one/var//datastores/0/2994/disk.0
echo $1 | $SED 's/^[^:]*:(.*)$/\1/'
+++ echo dellblade01:/srv/cloud/one/var//datastores/0/2994/disk.0
+++ sed -r 's/^[^:]*:(.*)$/\1/'
++ ARG_PATH=/srv/cloud/one/var//datastores/0/2994/disk.0
++ fix_dir_slashes /srv/cloud/one/var//datastores/0/2994/disk.0
++ dirname /srv/cloud/one/var//datastores/0/2994/disk.0/file
++ sed -r 's/\/+/\//g'
+ SRC_PATH=/srv/cloud/one/var/datastores/0/2994/disk.0
DST_PATH=`arg_path $DST`
arg_path $DST
++ arg_path dellblade03:/srv/cloud/one/var//datastores/0/2994/disk.0
echo $1 | $SED 's/^[^:]*:(.*)$/\1/'
+++ echo dellblade03:/srv/cloud/one/var//datastores/0/2994/disk.0
+++ sed -r 's/^[^:]*:(.*)$/\1/'
++ ARG_PATH=/srv/cloud/one/var//datastores/0/2994/disk.0
++ fix_dir_slashes /srv/cloud/one/var//datastores/0/2994/disk.0
++ dirname /srv/cloud/one/var//datastores/0/2994/disk.0/file
++ sed -r 's/\/+/\//g'
+ DST_PATH=/srv/cloud/one/var/datastores/0/2994/disk.0

SRC_HOST=`arg_host $SRC`
arg_host $SRC
++ arg_host dellblade01:/srv/cloud/one/var//datastores/0/2994/disk.0
++ echo dellblade01:/srv/cloud/one/var//datastores/0/2994/disk.0
++ sed -r 's/^([^:]*):.*$/\1/'
+ SRC_HOST=dellblade01
DST_HOST=`arg_host $DST`
arg_host $DST
++ arg_host dellblade03:/srv/cloud/one/var//datastores/0/2994/disk.0
++ echo dellblade03:/srv/cloud/one/var//datastores/0/2994/disk.0
++ sed -r 's/^([^:]*):.*$/\1/'
+ DST_HOST=dellblade03

DST_DIR=`dirname $DST_PATH`
dirname $DST_PATH
++ dirname /srv/cloud/one/var/datastores/0/2994/disk.0
+ DST_DIR=/srv/cloud/one/var/datastores/0/2994

SRC_DS_DIR=`dirname  $SRC_PATH`
dirname  $SRC_PATH
++ dirname /srv/cloud/one/var/datastores/0/2994/disk.0
+ SRC_DS_DIR=/srv/cloud/one/var/datastores/0/2994
SRC_VM_DIR=`basename $SRC_PATH`
basename $SRC_PATH
++ basename /srv/cloud/one/var/datastores/0/2994/disk.0
+ SRC_VM_DIR=disk.0

if [ `is_disk $DST_PATH` -eq 1 ]; then
     exit 0
fi
is_disk $DST_PATH
++ is_disk /srv/cloud/one/var/datastores/0/2994/disk.0
++ echo /srv/cloud/one/var/datastores/0/2994/disk.0
++ grep '/disk\.[0-9]\+'
++ '[' 0 -eq 0 ']'
++ echo 1
+ '[' 1 -eq 1 ']'
+ exit 0

************

$ bash -xv /srv/cloud/one/var/remotes/tm/ssh/mv 
dellblade01:/srv/cloud/one/var//datastores/0/2994/ 
dellblade03:/srv/cloud/one/var//datastores/0/2994/

#-------------------------------------------------------------------------------
# Return if moving a disk, we will move them when moving the whole system_ds
# directory for the VM
#-------------------------------------------------------------------------------
SRC_PATH=`arg_path $SRC`
arg_path $SRC
++ arg_path dellblade01:/srv/cloud/one/var//datastores/0/2994/
echo $1 | $SED 's/^[^:]*:(.*)$/\1/'
+++ echo dellblade01:/srv/cloud/one/var//datastores/0/2994/
+++ sed -r 's/^[^:]*:(.*)$/\1/'
++ ARG_PATH=/srv/cloud/one/var//datastores/0/2994/
++ fix_dir_slashes /srv/cloud/one/var//datastores/0/2994/
++ dirname /srv/cloud/one/var//datastores/0/2994//file
++ sed -r 's/\/+/\//g'
+ SRC_PATH=/srv/cloud/one/var/datastores/0/2994
DST_PATH=`arg_path $DST`
arg_path $DST
++ arg_path dellblade03:/srv/cloud/one/var//datastores/0/2994/
echo $1 | $SED 's/^[^:]*:(.*)$/\1/'
+++ echo dellblade03:/srv/cloud/one/var//datastores/0/2994/
+++ sed -r 's/^[^:]*:(.*)$/\1/'
++ ARG_PATH=/srv/cloud/one/var//datastores/0/2994/
++ fix_dir_slashes /srv/cloud/one/var//datastores/0/2994/
++ dirname /srv/cloud/one/var//datastores/0/2994//file
++ sed -r 's/\/+/\//g'
+ DST_PATH=/srv/cloud/one/var/datastores/0/2994

SRC_HOST=`arg_host $SRC`
arg_host $SRC
++ arg_host dellblade01:/srv/cloud/one/var//datastores/0/2994/
++ echo dellblade01:/srv/cloud/one/var//datastores/0/2994/
++ sed -r 's/^([^:]*):.*$/\1/'
+ SRC_HOST=dellblade01
DST_HOST=`arg_host $DST`
arg_host $DST
++ arg_host dellblade03:/srv/cloud/one/var//datastores/0/2994/
++ echo dellblade03:/srv/cloud/one/var//datastores/0/2994/
++ sed -r 's/^([^:]*):.*$/\1/'
+ DST_HOST=dellblade03

DST_DIR=`dirname $DST_PATH`
dirname $DST_PATH
++ dirname /srv/cloud/one/var/datastores/0/2994
+ DST_DIR=/srv/cloud/one/var/datastores/0

SRC_DS_DIR=`dirname  $SRC_PATH`
dirname  $SRC_PATH
++ dirname /srv/cloud/one/var/datastores/0/2994
+ SRC_DS_DIR=/srv/cloud/one/var/datastores/0
SRC_VM_DIR=`basename $SRC_PATH`
basename $SRC_PATH
++ basename /srv/cloud/one/var/datastores/0/2994
+ SRC_VM_DIR=2994

if [ `is_disk $DST_PATH` -eq 1 ]; then
     exit 0
fi
is_disk $DST_PATH
++ is_disk /srv/cloud/one/var/datastores/0/2994
++ echo /srv/cloud/one/var/datastores/0/2994
++ grep '/disk\.[0-9]\+'
++ '[' 1 -eq 0 ']'
++ echo 0
+ '[' 0 -eq 1 ']'

if [ "$SRC" == "$DST" ]; then
     log "Not moving $SRC to $DST, they are the same path"
     exit 0
fi
+ '[' dellblade01:/srv/cloud/one/var//datastores/0/2994/ == 
dellblade03:/srv/cloud/one/var//datastores/0/2994/ ']'

ssh_make_path "$DST_HOST" "$DST_DIR"
+ ssh_make_path dellblade03 /srv/cloud/one/var/datastores/0
$SSH $1 sh -s 2>&1 1>/dev/null <<EOF
if [ ! -d $2 ]; then
    mkdir -p $2
fi
EOF
++ ssh dellblade03 sh -s
+ SSH_EXEC_ERR=
+ SSH_EXEC_RC=0
+ '[' 0 -ne 0 ']'

log "Moving $SRC to $DST"
+ log 'Moving dellblade01:/srv/cloud/one/var//datastores/0/2994/ to 
dellblade03:/srv/cloud/one/var//datastores/0/2994/'
+ log_info 'Moving dellblade01:/srv/cloud/one/var//datastores/0/2994/ to 
dellblade03:/srv/cloud/one/var//datastores/0/2994/'
+ log_function INFO 'Moving 
dellblade01:/srv/cloud/one/var//datastores/0/2994/ to 
dellblade03:/srv/cloud/one/var//datastores/0/2994/'
+ echo 'INFO: mv: Moving 
dellblade01:/srv/cloud/one/var//datastores/0/2994/ to 
dellblade03:/srv/cloud/one/var//datastores/0/2994/'
INFO: mv: Moving dellblade01:/srv/cloud/one/var//datastores/0/2994/ to 
dellblade03:/srv/cloud/one/var//datastores/0/2994/

ssh_exec_and_log "$DST_HOST" "rm -rf '$DST_PATH'" \
     "Error removing target path to prevent overwrite errors"
+ ssh_exec_and_log dellblade03 'rm -rf 
'\''/srv/cloud/one/var/datastores/0/2994'\''' 'Error removing target 
path to prevent overwrite errors'
$SSH $1 sh -s 2>&1 1>/dev/null <<EOF
$2
EOF
++ ssh dellblade03 sh -s
+ SSH_EXEC_ERR=
+ SSH_EXEC_RC=0
+ '[' 0 -ne 0 ']'

TAR_COPY="$SSH $SRC_HOST '$TAR -C $SRC_DS_DIR -cf - $SRC_VM_DIR'"
+ TAR_COPY='ssh dellblade01 '\''tar -C /srv/cloud/one/var/datastores/0 
-cf - 2994'\'''
TAR_COPY="$TAR_COPY | $SSH $DST_HOST '$TAR -C $DST_DIR -xf -'"
+ TAR_COPY='ssh dellblade01 '\''tar -C /srv/cloud/one/var/datastores/0 
-cf - 2994'\'' | ssh dellblade03 '\''tar -C 
/srv/cloud/one/var/datastores/0 -xf -'\'''

exec_and_log "eval $TAR_COPY" "Error copying disk directory to target host"
+ exec_and_log 'eval ssh dellblade01 '\''tar -C 
/srv/cloud/one/var/datastores/0 -cf - 2994'\'' | ssh dellblade03 '\''tar 
-C /srv/cloud/one/var/datastores/0 -xf -'\''' 'Error copying disk 
directory to target host'
+ message='Error copying disk directory to target host'
$1 2>&1 1>/dev/null
++ eval ssh dellblade01 ''\''tar' -C /srv/cloud/one/var/datastores/0 -cf 
- '2994'\''' '|' ssh dellblade03 ''\''tar' -C 
/srv/cloud/one/var/datastores/0 -xf '-'\'''
+ EXEC_LOG_ERR='ssh dellblade01 '\''tar -C 
/srv/cloud/one/var/datastores/0 -cf - 2994'\'' | ssh dellblade03 '\''tar 
-C /srv/cloud/one/var/datastores/0 -xf -'\''
+++ ssh dellblade01 '\''tar -C /srv/cloud/one/var/datastores/0 -cf - 
2994'\''
+++ ssh dellblade03 '\''tar -C /srv/cloud/one/var/datastores/0 -xf -'\'''
+ EXEC_LOG_RC=0
+ '[' 0 -ne 0 ']'

exec_and_log "$SSH $SRC_HOST rm -rf $SRC_PATH"
+ exec_and_log 'ssh dellblade01 rm -rf /srv/cloud/one/var/datastores/0/2994'
+ message=
$1 2>&1 1>/dev/null
++ ssh dellblade01 rm -rf /srv/cloud/one/var/datastores/0/2994
+ EXEC_LOG_ERR=
+ EXEC_LOG_RC=0
+ '[' 0 -ne 0 ']'

exit 0
+ exit 0

The result:

root at dellblade03:~# ls -l /srv/cloud/one/var/datastores/0/2994/
total 1055880
-rw-r--r-- 1 oneadmin oneadmin        653 2012-04-24 18:50 deployment.0
-rw-r----- 1 oneadmin oneadmin 1081212928 2012-04-24 18:53 disk.0

I hope this helps.

Regards,
Carlos A.


El 24/04/12 18:13, Jaime Melis escribió:
> Hi Carlos,
>
> can you send us some extra debugging info?
>
> Create a new VM, exactly like you did with the previous email and 
> launch it.
>
> Supposing the VM has been deployed in dellblade01, send us the output 
> of the following commands
>
> # in dellblade01
> $ ls -Rl /srv/cloud/one/var//datastores/0/<VM_ID>
>
> # in the frontend
> $ bash 
> -xv /srv/cloud/one/var/remotes/tm/ssh/mv dellblade01:/srv/cloud/one/var//datastores/0/<VM_ID>/disk.0 
>  dellblade03:/srv/cloud/one/var/datastores/0/<VM_ID>/disk.0
> $ bash 
> -xv /srv/cloud/one/var/remotes/tm/ssh/mv dellblade01:/srv/cloud/one/var//datastores/0/<VM_ID> dellblade03:/srv/cloud/one/var//datastores/0/<VM_ID>
>
> Thanks!
>
> Jaime
>
> On Tue, Apr 24, 2012 at 5:36 PM, Carlos A. <caralla at upv.es 
> <mailto:caralla at upv.es>> wrote:
>
>     Hi,
>
>     I have also checked this option, but I found also a problem.
>
>     If I change the system datastore (0) to set the TM_MAD ssh and
>     then I create a new VM and try to migrate it, the  vm.log fragment
>     is next:
>
>     ------------------------------------------------
>     Tue Apr 24 17:17:07 2012 [LCM][I]: New VM state is SAVE_MIGRATE
>     Tue Apr 24 17:17:10 2012 [VMM][I]: ExitCode: 0
>     Tue Apr 24 17:17:10 2012 [VMM][I]: Successfully execute
>     virtualization driver operation: save.
>     Tue Apr 24 17:17:10 2012 [VMM][I]: ExitCode: 0
>     Tue Apr 24 17:17:10 2012 [VMM][I]: Successfully execute network
>     driver operation: clean.
>     Tue Apr 24 17:17:11 2012 [LCM][I]: New VM state is PROLOG_MIGRATE
>     Tue Apr 24 17:17:11 2012 [TM][I]: ExitCode: 0
>     Tue Apr 24 17:17:15 2012 [TM][I]: mv: Moving
>     dellblade01:/srv/cloud/one/var//datastores/0/2985 to
>     dellblade03:/srv/cloud/one/var//datastores/0/2985
>     Tue Apr 24 17:17:15 2012 [TM][I]: ExitCode: 0
>     Tue Apr 24 17:17:15 2012 [LCM][I]: New VM state is BOOT
>     Tue Apr 24 17:17:16 2012 [VMM][I]: ExitCode: 0
>     Tue Apr 24 17:17:16 2012 [VMM][I]: Successfully execute network
>     driver operation: pre.
>     Tue Apr 24 17:17:16 2012 [VMM][I]: Command execution fail:
>     /var/tmp/one/vmm/kvm/restore
>     /srv/cloud/one/var//datastores/0/2985/checkpoint dellblade03 2985
>     dellblade03
>     Tue Apr 24 17:17:16 2012 [VMM][E]: restore: Command "virsh
>     --connect qemu:///system restore
>     /srv/cloud/one/var//datastores/0/2985/checkpoint" failed: error:
>     Failed to restore domain from
>     /srv/cloud/one/var//datastores/0/2985/checkpoint
>     Tue Apr 24 17:17:16 2012 [VMM][I]: error: cannot close file: Bad
>     file descriptor
>     Tue Apr 24 17:17:16 2012 [VMM][E]: Could not restore from
>     /srv/cloud/one/var//datastores/0/2985/checkpoint
>     Tue Apr 24 17:17:16 2012 [VMM][I]: ExitCode: 1
>     Tue Apr 24 17:17:16 2012 [VMM][I]: Failed to execute
>     virtualization driver operation: restore.
>     Tue Apr 24 17:17:16 2012 [VMM][E]: Error restoring VM: Could not
>     restore from /srv/cloud/one/var//datastores/0/2985/checkpoint
>     Tue Apr 24 17:17:16 2012 [DiM][I]: New VM state is FAILED
>     ------------------------------------------------
>
>     and the transfer.1.migrate file is
>
>     ------------------------------------------------
>     MV ssh dellblade01:/srv/cloud/one/var//datastores/0/2985/disk.0
>     dellblade03:/srv/cloud/one/var//datastores/0/2985/disk.0
>     MV ssh dellblade01:/srv/cloud/one/var//datastores/0/2985
>     dellblade03:/srv/cloud/one/var//datastores/0/2985
>     ------------------------------------------------
>
>     Now I have the "checkpoint" file in dellblade03, but not the
>     disk.0. This is strange because the transfer.1.migrate file tries
>     to specifically move the disk.0 file but not the checkpoint file.
>     I guess that the problem is the order of transferences in this
>     case. I think that moving the folder once the disk has been moved
>     is deleting the just moved disk. If I manually create a disk.0
>     file, I am able to manually restore the VM using virsh commands.
>     Is there any way to solve this issue?
>
>     On the other hand, I cannot see why the system datastore transfer
>     mad needs to be set to ssh.
>
>     Regards,
>     Carlos A.
>
>     El 24/04/12 17:17, Ruben S. Montero escribió:
>
>         Hi,
>
>         Yes this may be the problem. Clould you check the output of
>         onedatastore show 0 (and 1). The TM_MAD associated with the
>         datastore
>         should be ssh. If not, could you try to update it (onedatastore
>         update). There should not be any "shared" keyword as you suggest.
>
>         Note that the changes on the datastore (i.e. the actual TM
>         used) are
>         only reflected on new VMs. VMs created before the changes will
>         use the
>         original TM_MAD values...
>
>         Cheers
>
>         Ruben
>
>         On Tue, Apr 24, 2012 at 5:07 PM, Carlos A.<caralla at upv.es
>         <mailto:caralla at upv.es>>  wrote:
>
>             Hello,
>
>             I am upgrading my ONE 3.2 deployment to ONE 3.4 but I have
>             one problem with
>             migration of VM between nodes (not live migration).
>
>             When using ONE 3.2 migration was fine, but now migration
>             fails and I cannot
>             find how to solve this problem.
>
>             I have the default datastore, that it is a "filesystem"
>             based on ssh tm_mad
>             (and the system datastore "0").
>
>             When I migrate the VM, I find the next vm.log fragment:
>             ------------------------------------------------
>             Tue Apr 24 16:53:51 2012 [LCM][I]: New VM state is
>             SAVE_MIGRATE
>             Tue Apr 24 16:53:54 2012 [VMM][I]: ExitCode: 0
>             Tue Apr 24 16:53:54 2012 [VMM][I]: Successfully execute
>             virtualization
>             driver operation: save.
>             Tue Apr 24 16:53:54 2012 [VMM][I]: ExitCode: 0
>             Tue Apr 24 16:53:54 2012 [VMM][I]: Successfully execute
>             network driver
>             operation: clean.
>             Tue Apr 24 16:53:54 2012 [LCM][I]: New VM state is
>             PROLOG_MIGRATE
>             Tue Apr 24 16:53:55 2012 [TM][I]: ExitCode: 0
>             Tue Apr 24 16:53:55 2012 [TM][I]: ExitCode: 0
>             Tue Apr 24 16:53:55 2012 [LCM][I]: New VM state is BOOT
>             Tue Apr 24 16:53:55 2012 [VMM][I]: ExitCode: 0
>             Tue Apr 24 16:53:55 2012 [VMM][I]: Successfully execute
>             network driver
>             operation: pre.
>             Tue Apr 24 16:53:55 2012 [VMM][I]: Command execution fail:
>             /var/tmp/one/vmm/kvm/restore
>             /srv/cloud/one/var//datastores/0/2984/checkpoint
>             dellblade03 2984
>             dellblade03
>             ------------------------------------------------
>
>             And the next transfer.1.migrate file appears
>             ------------------------------------------------
>             MV ssh
>             dellblade01:/srv/cloud/one/var//datastores/0/2984/disk.0
>             dellblade03:/srv/cloud/one/var//datastores/0/2984/disk.0
>             MV shared dellblade01:/srv/cloud/one/var//datastores/0/2984
>             dellblade03:/srv/cloud/one/var//datastores/0/2984
>             ------------------------------------------------
>
>             The problem is that the disk.0 file is not transfered to
>             dellblade03. It
>             seems that the phase of executing the transference of
>             files is omited.
>
>             Moreover the "shared" keyword appears while there is not
>             any shared file
>             system (but the system one that should not be considered
>             when moving from
>             one host to another). But also the checkpointing file is
>             not moved.
>
>             Note: migration from one host to the same host works (as
>             expected). So virsh
>             is able to restore the state of a saved VM.
>
>             Any idea on this?
>
>             Thank you in advance.
>
>             _______________________________________________
>             Users mailing list
>             Users at lists.opennebula.org <mailto:Users at lists.opennebula.org>
>             http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>
>
>
>     _______________________________________________
>     Users mailing list
>     Users at lists.opennebula.org <mailto:Users at lists.opennebula.org>
>     http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>
>
>
>
> -- 
> Jaime Melis
> Project Engineer
> OpenNebula - The Open Source Toolkit for Cloud Computing
> www.OpenNebula.org <http://www.OpenNebula.org> | jmelis at opennebula.org 
> <mailto:jmelis at opennebula.org>


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opennebula.org/pipermail/users-opennebula.org/attachments/20120425/490701c8/attachment-0003.htm>


More information about the Users mailing list