[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