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

Carlos Martín Sánchez cmartin at opennebula.org
Thu Feb 10 07:32:19 PST 2011


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


2011/2/10 Marco Strutz <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
>
>
> On 8 February 2011 17:03, Marco Strutz <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
>> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>>
>
>
>
> _______________________________________________
> Users mailing listUsers at lists.opennebula.orghttp://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/20110210/018dd143/attachment-0003.htm>


More information about the Users mailing list