[one-users] bug in image.rb HOOK? ('onevm saveas' command)

Marco Strutz marco.strutz at desy.de
Fri Feb 11 01:28:11 PST 2011


Hi Carlos.

A shutdown doesn't work for me. Even with 'acpi=yes' and a *graceful*
shutdown inside the vm (via vnc) the VM state always remains "RUNNING"
(ACTIVE) although it was already successfully removed by libvirt.

If I then manually execute "onevm shutdown 345"  (see [1]) the state
changed to "UNKNOWN" (ACTIVE). The "onevm shutdown" doesn't seem to
affect my vm, perhaps this feature is not supported by kvm? Therefore
"onevm delete" currently is my only option to trigger the image-hook.

What do you suggest?


[1] $ONE_LOCATION/var/345/vm.log
###############################################################################
Fri Feb 11 10:20:11 2011 [LCM][I]: New VM state is SHUTDOWN
Fri Feb 11 10:20:11 2011 [VMM][I]: Command execution fail: 'if [ -x
"/var/tmp/one/vmm/kvm/shutdown" ]; then /var/tmp/one/vmm/kvm/shutdown
one-345; else                              exit 42; fi'
Fri Feb 11 10:20:11 2011 [VMM][I]: STDERR follows.
Fri Feb 11 10:20:11 2011 [VMM][I]: error: failed to get domain 'one-345'
Fri Feb 11 10:20:11 2011 [VMM][I]: error: Domain not found: no domain
with matching name 'one-345'
Fri Feb 11 10:20:11 2011 [VMM][I]: ExitCode: 1
Fri Feb 11 10:20:11 2011 [VMM][E]: Error shuting down VM, error: failed
to get domain 'one-345'
Fri Feb 11 10:20:11 2011 [LCM][I]: Fail to shutdown VM. Assuming that
the VM is still RUNNING (will poll VM).
Fri Feb 11 10:20:12 2011 [VMM][I]: VM running but it was not found.
Restart and delete actions available or try to recover it manually
Fri Feb 11 10:20:12 2011 [LCM][I]: New VM state is UNKNOWN
Fri Feb 11 10:20:58 2011 [DiM][I]: New VM state is DONE
Fri Feb 11 10:20:58 2011 [VMM][W]: Ignored: LOG - 345 Driver command for
345 cancelled
Fri Feb 11 10:20:58 2011 [TM][W]: Ignored: LOG - 345 tm_delete.sh:
Deleting /srv/cloud/one/var//345/images
Fri Feb 11 10:20:58 2011 [TM][W]: Ignored: LOG - 345 tm_delete.sh:
Executed "rm -rf /srv/cloud/one/var//345/images".
Fri Feb 11 10:20:58 2011 [TM][W]: Ignored: TRANSFER SUCCESS 345 -
Fri Feb 11 10:20:58 2011 [HKM][I]: Command execution fail:
/srv/cloud/one/share/hooks/image.rb 345
Fri Feb 11 10:20:58 2011 [HKM][I]: STDERR follows.
Fri Feb 11 10:20:58 2011 [HKM][I]: ExitCode: 255
Fri Feb 11 10:20:58 2011 [HKM][E]: Error executing Hook: image.
Fri Feb 11 10:20:58 2011 [VMM][W]: Ignored: LOG - 345 Command execution
fail: 'if [ -x "/var/tmp/one/vmm/kvm/cancel" ]; then
/var/tmp/one/vmm/kvm/cancel one-345; else                             
exit 42; fi'

Fri Feb 11 10:20:58 2011 [VMM][W]: Ignored: LOG - 345 STDERR follows.
Fri Feb 11 10:20:58 2011 [VMM][W]: Ignored: LOG - 345 error: failed to
get domain 'one-345'
Fri Feb 11 10:20:58 2011 [VMM][W]: Ignored: LOG - 345 error: Domain not
found: no domain with matching name 'one-345'
Fri Feb 11 10:20:58 2011 [VMM][W]: Ignored: LOG - 345 ExitCode: 1
Fri Feb 11 10:20:58 2011 [VMM][W]: Ignored: CANCEL FAILURE 345 error:
failed to get domain 'one-345'




Thanks
Marco


On 02/10/2011 04:32 PM, Carlos Martín Sánchez wrote:
> Hi Marco,
>
> After a *graceful* shutdown, the disk images marked to be saved
> are transferred back from var/<vm_id>/images/XX to  var/<vm_id>/disk.XX
>
> Try using 'onevm shutdown' instead of delete, that will probably solve
> your problem.
>
> Regards.
> --
> Carlos Martín, Engineer, MSc
> Project Major Contributor
> OpenNebula - The Open Source Toolkit for Cloud Computing
> www.OpenNebula.org
> <http://www.opennebula.org/> | cmartin at opennebula.org
> <mailto:cmartin at opennebula.org>
>
>
> 2011/2/10 Marco Strutz <marco.strutz at desy.de
> <mailto:marco.strutz at desy.de>>
>
>     Hi Carlos.
>
>     Very strange: After running ttylinux and enabling the
>     saveas-feature ('onevm saveas 318 0 "318_archived"') I get the
>     following error message (vm.log) after deleting this instance:
>         Thu Feb 10 12:24:31 2011 [VMM][W]: Ignored: CANCEL SUCCESS 318
>     Domain one-318 destroyed
>         Thu Feb 10 12:24:31 2011 [HKM][I]: Command execution fail:
>     /srv/cloud/one/share/hooks/image.rb 318
>         Thu Feb 10 12:24:31 2011 [HKM][I]: STDERR follows.
>         Thu Feb 10 12:24:31 2011 [HKM][I]: ExitCode: 255
>         Thu Feb 10 12:24:31 2011 [HKM][E]: Error executing Hook: image.
>
>     After debugging $ONE_LOCATION/share/hooks/image.rb there might be
>     a problem with the proper image location:
>         line 75 in $ONE_LOCATION/share/hooks/image.rb (result =
>     img_repo.update_source(image, source_path) outputs
>         "No such file or directory - /srv/cloud/one/var/318/disk.0 or
>     /srv/cloud/one/var//images/7c6f81fcb5b4dec12ab3fa63913b16b4ba1e2d12"
>
>     All disk images of my vm's are deployed to
>     $ONE_LOCATION/var/<vm_id>/images/
>     If I get the error message right, it tries to lookup for the disks
>     in $ONE_LOCATION/var/<vm_id>/
>
>     I need your help. Can that be right?
>
>     (detailed logs see below)
>
>
>     Thanks in advance
>     Marco
>
>
>
>
>     $ cat ttylinux.one
>     ###############################################################################
>     NAME   = ttylinux
>     CPU    = 0.1
>     MEMORY = 64
>
>     DISK   = [
>       source   = "/srv/cloud/one/testing/ttylinux.img",
>       target   = "hda",
>       readonly = "no" ]
>
>     FEATURES=[ acpi="no" ]
>
>     GRAPHICS = [
>             type = "vnc",
>             listen = "0.0.0.0",
>             port = "5901" ]
>
>
>
>     $ onevm create ttylinux.one
>     ###############################################################################
>
>
>
>     $ onevm list
>     ###############################################################################
>        ID     USER     NAME STAT CPU     MEM        HOSTNAME        TIME
>       318 oneadmin ttylinux runn   0      0K     testbed07 00 00:00:08
>
>
>
>     $ onevm show 318
>     ###############################################################################
>     VIRTUAL MACHINE 318
>     INFORMATION                                                
>     ID             : 318                
>     NAME           : ttylinux           
>     STATE          : ACTIVE             
>     LCM_STATE      : RUNNING            
>     START TIME     : 02/10 12:20:34     
>     END TIME       : -                  
>     DEPLOY ID:     : one-318            
>
>     VIRTUAL MACHINE
>     MONITORING                                                     
>     NET_TX         : 0                  
>     NET_RX         : 0                  
>     USED MEMORY    : 0                  
>     USED CPU       : 0                  
>
>     VIRTUAL MACHINE
>     TEMPLATE                                                       
>     CPU=0.1
>     DISK=[
>       DISK_ID=0,
>       READONLY=no,
>       SOURCE=/srv/cloud/one/testing/ttylinux.img,
>       TARGET=hda ]
>     FEATURES=[
>       ACPI=no ]
>     GRAPHICS=[
>       LISTEN=0.0.0.0,
>       PORT=5901,
>       TYPE=vnc ]
>     MEMORY=64
>     NAME=ttylinux
>     VMID=318
>
>
>
>     $ ls -la var/318/
>     ###############################################################################
>     total 24
>     drwxrwxrwx   3 oneadmin cloud   75 2011-02-10 12:20 .
>     drwxr-xr-x 323 oneadmin cloud 8192 2011-02-10 12:20 ..
>     -rw-r--r--   1 oneadmin cloud  416 2011-02-10 12:20 deployment.0
>     drwxrwxrwx   2 oneadmin cloud   38 2011-02-10 12:20 images
>     -rw-r--r--   1 oneadmin cloud  104 2011-02-10 12:20 transfer.0.prolog
>     -rw-r--r--   1 oneadmin cloud 1266 2011-02-10 12:20 vm.log
>     $ ls -la var/318/images/
>     total 40964
>     drwxrwxrwx 2 oneadmin cloud       38 2011-02-10 12:20 .
>     drwxrwxrwx 3 oneadmin cloud       75 2011-02-10 12:20 ..
>     -rw-r--r-- 1 oneadmin cloud      416 2011-02-10 12:20 deployment.0
>     -rw-rw-rw- 1 oneadmin cloud 41943040 2011-02-10 12:21 disk.0
>
>
>
>     $ onevm saveas 318 0 "318_archived"
>     ###############################################################################
>
>
>
>     $ onevm show 318
>     ###############################################################################
>     VIRTUAL MACHINE 318
>     INFORMATION                                                
>     ID             : 318                
>     NAME           : ttylinux           
>     STATE          : ACTIVE             
>     LCM_STATE      : RUNNING            
>     START TIME     : 02/10 12:20:34     
>     END TIME       : -                  
>     DEPLOY ID:     : one-318            
>
>     VIRTUAL MACHINE
>     MONITORING                                                     
>     NET_TX         : 0                  
>     NET_RX         : 0                  
>     USED MEMORY    : 0                  
>     USED CPU       : 0                  
>
>     VIRTUAL MACHINE
>     TEMPLATE                                                       
>     CPU=0.1
>     DISK=[
>       DISK_ID=0,
>       READONLY=no,
>       SAVE=YES,
>       SAVE_AS=37,
>       SOURCE=/srv/cloud/one/testing/ttylinux.img,
>       TARGET=hda ]
>     FEATURES=[
>       ACPI=no ]
>     GRAPHICS=[
>       LISTEN=0.0.0.0,
>       PORT=5901,
>       TYPE=vnc ]
>     MEMORY=64
>     NAME=ttylinux
>     VMID=318
>
>
>
>     $ oneimage show 37
>     ###############################################################################
>     IMAGE 
>     INFORMATION                                                             
>
>     ID             : 37                 
>     NAME           : 318_archived       
>     TYPE           : OS                 
>     REGISTER TIME  : 02/10 12:22:50     
>     PUBLIC         : No                 
>     PERSISTENT     : No                 
>     SOURCE         :
>     /srv/cloud/one/var//images/7c6f81fcb5b4dec12ab3fa63913b16b4ba1e2d12
>     STATE          : disa               
>     RUNNING_VMS    : 0                  
>
>     IMAGE
>     TEMPLATE                                                                 
>
>     DEV_PREFIX=hd
>     NAME=318_archived
>
>
>
>     $ ls -la
>     /srv/cloud/one/var//images/7c6f81fcb5b4dec12ab3fa63913b16b4ba1e2d12
>     ###############################################################################
>     ls: cannot access
>     /srv/cloud/one/var//images/7c6f81fcb5b4dec12ab3fa63913b16b4ba1e2d12:
>     No such file or directory
>
>
>
>     $ onevm delete 318
>     ###############################################################################
>
>
>     $ onevm list
>     ###############################################################################
>        ID     USER     NAME STAT CPU     MEM        HOSTNAME        TIME
>
>
>     $ oneimage show 37
>     ###############################################################################
>     IMAGE 
>     INFORMATION                                                             
>
>     ID             : 37                 
>     NAME           : 318_archived       
>     TYPE           : OS                 
>     REGISTER TIME  : 02/10 12:22:50     
>     PUBLIC         : No                 
>     PERSISTENT     : No                 
>     SOURCE         :
>     /srv/cloud/one/var//images/7c6f81fcb5b4dec12ab3fa63913b16b4ba1e2d12
>     STATE          : rdy                
>     RUNNING_VMS    : 0                  
>
>     IMAGE
>     TEMPLATE                                                                 
>
>     DEV_PREFIX=hd
>     NAME=318_archived
>
>
>
>     $ ls -la
>     /srv/cloud/one/var//images/7c6f81fcb5b4dec12ab3fa63913b16b4ba1e2d12
>     ###############################################################################
>     ls: cannot access
>     /srv/cloud/one/var//images/7c6f81fcb5b4dec12ab3fa63913b16b4ba1e2d12:
>     No such file or directory
>
>
>
>     $ cat $ONE_LOCATION/var/318/vm.log
>     ###############################################################################
>     Thu Feb 10 12:20:36 2011 [DiM][I]: New VM state is ACTIVE.
>     Thu Feb 10 12:20:36 2011 [LCM][I]: New VM state is PROLOG.
>     Thu Feb 10 12:20:36 2011 [VM][I]: Virtual Machine has no context
>     Thu Feb 10 12:20:36 2011 [TM][I]: tm_clone.sh:
>     testbed00:/srv/cloud/one/testing/ttylinux.img
>     testbed07:/srv/cloud/one/var//318/images/disk.0
>     Thu Feb 10 12:20:36 2011 [TM][I]: tm_clone.sh: DST:
>     /srv/cloud/one/var//318/images/disk.0
>     Thu Feb 10 12:20:36 2011 [TM][I]: tm_clone.sh: Creating directory
>     /srv/cloud/one/var//318/images
>     Thu Feb 10 12:20:36 2011 [TM][I]: tm_clone.sh: Executed "mkdir -p
>     /srv/cloud/one/var//318/images".
>     Thu Feb 10 12:20:36 2011 [TM][I]: tm_clone.sh: Executed "chmod a+w
>     /srv/cloud/one/var//318/images".
>     Thu Feb 10 12:20:36 2011 [TM][I]: tm_clone.sh: Cloning
>     /srv/cloud/one/testing/ttylinux.img
>     Thu Feb 10 12:20:36 2011 [TM][I]: tm_clone.sh: Executed "cp -r
>     /srv/cloud/one/testing/ttylinux.img
>     /srv/cloud/one/var//318/images/disk.0".
>     Thu Feb 10 12:20:36 2011 [TM][I]: tm_clone.sh: Executed "chmod
>     a+rw /srv/cloud/one/var//318/images/disk.0".
>     Thu Feb 10 12:20:36 2011 [LCM][I]: New VM state is BOOT
>     Thu Feb 10 12:20:36 2011 [VMM][I]: Generating deployment file:
>     /srv/cloud/one/var/318/deployment.0
>     Thu Feb 10 12:20:37 2011 [LCM][I]: New VM state is RUNNING
>     Thu Feb 10 12:24:31 2011 [VMM][W]: Ignored: LOG - 318 Driver
>     command for 318 cancelled
>
>     Thu Feb 10 12:24:31 2011 [DiM][I]: New VM state is DONE
>     Thu Feb 10 12:24:31 2011 [TM][W]: Ignored: LOG - 318 tm_delete.sh:
>     Deleting /srv/cloud/one/var//318/images
>
>     Thu Feb 10 12:24:31 2011 [TM][W]: Ignored: LOG - 318 tm_delete.sh:
>     Executed "rm -rf /srv/cloud/one/var//318/images".
>
>     Thu Feb 10 12:24:31 2011 [TM][W]: Ignored: TRANSFER SUCCESS 318 -
>
>     Thu Feb 10 12:24:31 2011 [VMM][W]: Ignored: CANCEL SUCCESS 318
>     Domain one-318 destroyed
>
>     Thu Feb 10 12:24:31 2011 [HKM][I]: Command execution fail:
>     /srv/cloud/one/share/hooks/image.rb 318
>     Thu Feb 10 12:24:31 2011 [HKM][I]: STDERR follows.
>     Thu Feb 10 12:24:31 2011 [HKM][I]: ExitCode: 255
>     Thu Feb 10 12:24:31 2011 [HKM][E]: Error executing Hook: image.
>
>
>
>
>     line 75 in $ONE_LOCATION/share/hooks/image.rb (result =
>     img_repo.update_source(image, source_path) outputs
>     ###############################################################################
>     "No such file or directory - /srv/cloud/one/var/318/disk.0 or
>     /srv/cloud/one/var//images/7c6f81fcb5b4dec12ab3fa63913b16b4ba1e2d12"
>
>
>
>
>     On 02/10/2011 10:11 AM, Marco Strutz wrote:
>>     Hi.
>>
>>     Thanks Carlos! I have managed to reproduce the behaviour by
>>     xmlrpc calls.
>>     But for the long term it would be very handy to access the
>>     "saveas" feature in one single xmlrpc call too so that it won't
>>     be necessary to duplicate (onevm ruby) source code and validate
>>     it for each new Opennebula release.
>>
>>
>>     regards
>>     Marco
>>
>>     On 02/09/2011 11:20 AM, Carlos Martín Sánchez wrote:
>>>     Hi Marco,
>>>
>>>     The XML-RPC call requests an image id because the image has to
>>>     be created beforehand.
>>>     You can check how it is done in the oneimage command (it's a
>>>     straight forward ruby script), and then replicate the same steps
>>>     in your code.
>>>
>>>     Regards,
>>>     Carlos.
>>>     --
>>>     Carlos Martín, Engineer, MSc
>>>     Project Major Contributor
>>>     OpenNebula - The Open Source Toolkit for Cloud Computing
>>>     www.OpenNebula.org
>>>     <http://www.opennebula.org/> | cmartin at opennebula.org
>>>     <mailto:cmartin at opennebula.org>
>>>
>>>
>>>     On 8 February 2011 17:03, Marco Strutz <marco.strutz at desy.de
>>>     <mailto:marco.strutz at desy.de>> wrote:
>>>
>>>         Hello.
>>>
>>>         What is the best way to map the "onevm saveas" command [1]
>>>         to OCCI or
>>>         XMLRPC-Request? I need to save vm images but want to avoid
>>>         using the
>>>         command line interface.
>>>
>>>         I cannot simply use the xmlrpc-call  "one.vm.savedisk" [2]
>>>         since I then
>>>         would need to know the "image id where the disk will be
>>>         saved". But this
>>>         ID will be dynamically created by the "onevm saveas"
>>>         command, right?
>>>         Furthermore where should I place the <image_name> in the
>>>         XMLRPC-call?
>>>         The same problem with OCCI: Are there any attributes
>>>         (perhaps for the
>>>         <CONTEXTUALISATION> section) I can use for the "onevm saveas"?
>>>
>>>
>>>
>>>         Thanks
>>>         Marco
>>>
>>>
>>>         [1]
>>>         onevm saveas <vm_id> <disk_id> <image_name>
>>>
>>>
>>>         [2]
>>>         one.vm.savedisk
>>>         ****************
>>>         Type     Data Type     Description
>>>         IN     String     the session string associated to the
>>>         connected user. * *
>>>         IN     Int     the virtual machine Id (vid) of the instance.
>>>         IN     Int     disk id of the disk we want to save.
>>>         IN     Int     image id where the disk will be saved.
>>>         OUT     Boolean     true or false whenever is successful or not
>>>         OUT     String     if an error occurs this is error message,
>>>         otherwise
>>>         it does not exist.
>>>         _______________________________________________
>>>         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
>
>

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


More information about the Users mailing list