[one-users] live migration using occi-storage fails

Javier Fontan jfontan at gmail.com
Thu Jul 22 06:52:51 PDT 2010


Hello Marco,

To change the permissions of the image uploaded by OCCI server you can
edit $ONE_LOCATION/lib/ruby/cloud/image.rb. Around line 102 there is
this function:

--8<------
        def copy_image(path, move=false)
            if move
                FileUtils.mv(path, image_path)
            else
                FileUtils.cp(path, image_path)
            end
            self.path=image_path
        end
------>8--

You have to add there a line so it looks like this:

--8<------
        def copy_image(path, move=false)
            if move
                FileUtils.mv(path, image_path)
            else
                FileUtils.cp(path, image_path)
                FileUtils.chmod(0666, image_path)
            end
            self.path=image_path
        end
------>8--

Feel free to change permissions parameter to suit you needs and tell
me if that solves the problem.

Bye

On Fri, Jun 25, 2010 at 11:13 AM, Strutz, Marco
<marco.strutz at fokus.fraunhofer.de> wrote:
> Hello Javier.
>
> As described in the documentation[1] umask is not set in "/etc/exports":
>        /srv/cloud      10.0.0.6(rw)
>
> If I upload an image via "occi-storage create <occi xml file>" an image will be created in "/srv/cloud/images. This image has rw-permission only for "oneadmin":"
>        -rw------- 1 oneadmin cloud
>
> The migration fails for that permissions until I change it to
>        -rw-r---r- 1 oneadmin cloud
> Then the migration works fine.
>
> If I manually create a file as oneadmin in "/srv/cloud/images" via "touch testfile", then "testfile" has correct (read) permission which works fine for migration:
>        oneadmin at b:/srv/cloud/images$ touch testfile && ls -la testfile
>        -rw-r--r-- 1 oneadmin cloud 0 2010-06-25 10:57 testfile
>
>
> Occi-server run's as "oneadmin" user:
>        $ ps aux | grep "ruby"
>        oneadmin  3038  0.0  0.0  31032  4472 ?        SNl  Jun11   8:17 ruby /srv/cloud/one/lib/mads/one_vmm_kvm.rb
>        oneadmin  3049  0.0  0.0  37860  5140 ?        SNl  Jun11   9:39 ruby /srv/cloud/one/lib/mads/one_im_ssh.rb im_kvm/im_kvm.conf
>        oneadmin  3063  0.0  0.0  30560  3988 ?        SNl  Jun11   7:44 ruby /srv/cloud/one/lib/mads/one_tm.rb tm_nfs/tm_nfs.conf
>        oneadmin  3077  0.0  0.0  30320  3652 ?        SNl  Jun11   7:35 ruby /srv/cloud/one/lib/mads/one_hm.rb
>        oneadmin  3091  0.1  0.4 115116 37400 ?        Rl   Jun11  35:22 ruby /srv/cloud/one/lib/ruby/cloud/occi/occi-server.rb
>
>
> I'm clueless about further testing. Could you please assist? I would appreciate it.
>
>
>
> [1] http://www.opennebula.org/documentation:rel1.4:plan  --> Preparing the Cluster : storage :
>    $ cat /etc/exports
>    /srv/cloud 192.168.0.0/255.255.255.0(rw)
>
>
>
> Thanks + bye
> Marco
>
>
> -----Original Message-----
> From: Javier Fontan [mailto:jfontan at gmail.com]
> Sent: Thursday, June 24, 2010 12:23 PM
> To: Strutz, Marco
> Cc: users at lists.opennebula.org
> Subject: Re: [one-users] live migration using occi-storage fails
>
> Hello,
>
> We don't explicitly set image file permissions, take a look at umask
> for oneadmin user.
>
> Bye
>
>
> On Wed, Jun 23, 2010 at 2:23 PM, Strutz, Marco
> <marco.strutz at fokus.fraunhofer.de> wrote:
>> I have add read permission.. now the live migration works! (My setup uses KVM as hypervisor)
>> Thanks!
>>
>> oneadmin at v:~/var/36/images$ ls -la disk.0
>> -rw-rw-rw- 1 oneadmin cloud 41943040 2010-06-11 14:13 disk.0
>>
>>
>> What can I do to have the read-permission automatically set by OpenNebula every time a virtual machine is deployed via OCCI? Is this read-only file permission a bug in the OCCI implementation, should I open a ticket?
>>
>>
>>
>> Marco
>>
>> -----Original Message-----
>> From: Javier Fontan [mailto:jfontan at gmail.com]
>> Sent: Tuesday, June 22, 2010 4:54 PM
>> To: Strutz, Marco
>> Cc: users at lists.opennebula.org
>> Subject: Re: [one-users] live migration using occi-storage fails
>>
>> Hello,
>>
>> Those write only permissions are probably causing that error. xen
>> daemon uses root permissions to read disk image files. As the
>> filesystem is nfs mounted these permissions are enforced for root user
>> and that can cause the problem.
>>
>> On Mon, Jun 21, 2010 at 9:15 PM, Strutz, Marco
>> <marco.strutz at fokus.fraunhofer.de> wrote:
>>> Hello Javier.
>>>
>>>
>>> The destination node "v" uses a shared storage (via nfs) to access
>>> /srv/cloud and "disk.0" can be accessed from both machines ("v" and "b"). A
>>> symlink seems not no be used for the image(s):
>>>
>>>
>>> id=36:
>>>
>>> oneadmin at v:~/var/36/images$ ls -la /srv/cloud/one/var/36/images/disk.0
>>> -rw--w--w- 1 oneadmin cloud 41943040 2010-06-11 14:13
>>> /srv/cloud/one/var/36/images/disk.0
>>>
>>>
>>>
>>> id=38:
>>>
>>> oneadmin at v:~/var/36/images$ ls -la /srv/cloud/one/var/38/images/disk.0
>>> -rw-rw-rw- 1 oneadmin cloud 41943040 2010-06-11 14:55
>>> /srv/cloud/one/var/38/images/disk.0
>>>
>>> oneadmin at v:~/var/36/images$  ls -la /srv/cloud/images/2
>>> -rw------- 1 oneadmin cloud 41943040 2010-06-09 10:36 /srv/cloud/images/2
>>>
>>> oneadmin at v:~/var/36/images$ ls -la /srv/cloud/images/ttylinux.img
>>> -rw-r--r-- 1 oneadmin cloud 41943040 2010-03-30 13:57
>>> /srv/cloud/images/ttylinux.img
>>>
>>>
>>>
>>> The file-permissions seems to be different. Could that be a potential
>>> problem?
>>>
>>>
>>>
>>>
>>> thanks
>>> Marco
>>>
>>>
>>>
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Javier Fontan [mailto:jfontan at gmail.com]
>>> Gesendet: Mo 21.06.2010 17:58
>>> An: Strutz, Marco
>>> Cc: users at lists.opennebula.org
>>> Betreff: Re: [one-users] live migration using occi-storage fails
>>>
>>> Hello,
>>>
>>> Can you check that /srv/cloud/one/var//36/images/disk.0 is accessible
>>> from destination node (I suppose "v")? Also check if that it is a
>>> symlink the target file is readable there.
>>>
>>> Bye
>>>
>>> On Fri, Jun 11, 2010 at 3:21 PM, Strutz, Marco
>>> <marco.strutz at fokus.fraunhofer.de> wrote:
>>>> Hi everyone.
>>>>
>>>> I have deployed ttyLinux twice, once via occi (id=36) and the other via
>>>> cli (onevm create ...).
>>>> Both machines are up and running.
>>>>
>>>> Unfortunately live-migration doesn't work with the occi machine id=36.
>>>> BUT the live migration for id=38 work like a charme.
>>>>
>>>>
>>>> The ttyLinux image for Id=36 was uploaded via occi as storage resource
>>>> (disk-id=2).
>>>> The ttyLinux image for Id=38 get never in contact with occi ->
>>>> /srv/cloud/images/ttyLinux.img
>>>>
>>>> (both images are identical, confirmed via the 'diff' command)
>>>>
>>>> Strange: If I deploy a third ttyLinux (same configuration as id=38) but
>>>> point it's source to the occi-storage "SOURCE=/srv/cloud/images/2" then
>>>> the live-migration fails as well.
>>>>
>>>>
>>>> Any guesses? (log files see below)
>>>>
>>>>
>>>>
>>>> thanks in advance
>>>> Marco
>>>>
>>>>
>>>>
>>>> environment:
>>>> Linux b 2.6.28-19-server #61-Ubuntu SMP Thu May 27 00:22:27 UTC 2010
>>>> x86_64 GNU/Linux
>>>> OpenNebula v1.4 (Last Stable Release)
>>>>
>>>>
>>>>
>>>> -------------------------/srv/cloud/one/var/36/vm.log--------------
>>>> (...)
>>>> Fri Jun 11 14:24:05 2010 [LCM][I]: New VM state is MIGRATE
>>>> Fri Jun 11 14:24:35 2010 [VMM][I]: Command execution fail: virsh
>>>> --connect qemu:///system migrate --live one-36 qemu+ssh://v/session
>>>> Fri Jun 11 14:24:35 2010 [VMM][I]: STDERR follows.
>>>> Fri Jun 11 14:24:35 2010 [VMM][I]: /usr/lib/ruby/1.8/open3.rb:67:
>>>> warning: Insecure world writable dir /srv/cloud in PATH, mode 040777
>>>> Fri Jun 11 14:24:35 2010 [VMM][I]: Connecting to uri: qemu:///system
>>>> Fri Jun 11 14:24:35 2010 [VMM][I]: error: operation failed: failed to
>>>> start listening VM
>>>> Fri Jun 11 14:24:35 2010 [VMM][I]: ExitCode: 1
>>>> Fri Jun 11 14:24:35 2010 [VMM][E]: Error live-migrating VM, -
>>>> Fri Jun 11 14:24:35 2010 [LCM][I]: Fail to life migrate VM. Assuming
>>>> that the VM is still RUNNING (will poll VM).
>>>> (...)
>>>> -------------------------------------------------------------------
>>>>
>>>>
>>>> -------------------------/srv/cloud/one/var/38/vm.log--------------
>>>> (...)
>>>> Fri Jun 11 14:56:52 2010 [LCM][I]: New VM state is MIGRATE
>>>> Fri Jun 11 14:56:53 2010 [LCM][I]: New VM state is RUNNING
>>>> (...)
>>>> -------------------------------------------------------------------
>>>>
>>>>
>>>>
>>>> -----------------------------$onevm list---------------------------
>>>>  ID     USER     NAME STAT CPU     MEM        HOSTNAME        TIME
>>>>  36 oneadmin ttyLinux runn   0   65536               b 00 00:01:03
>>>>  38 oneadmin ttylinux runn   0   65536               b 00 00:01:14
>>>> -------------------------------------------------------------------
>>>>
>>>>
>>>>
>>>> ----------------------------$onehost list--------------------------
>>>>  ID NAME                      RVM   TCPU   FCPU   ACPU    TMEM    FMEM
>>>> STAT
>>>>   2 v                           0    400    400    400 8078448 8006072
>>>> on
>>>>   3 b                           2    400    394    394 8078448 7875748
>>>> on
>>>> -------------------------------------------------------------------
>>>>
>>>>
>>>>
>>>>
>>>> ---------------------------$ onevm show 36-------------------------
>>>> VIRTUAL MACHINE 36 INFORMATION
>>>>
>>>> ID             : 36
>>>> NAME           : ttyLinux01
>>>> STATE          : ACTIVE
>>>> LCM_STATE      : RUNNING
>>>> START TIME     : 06/11 14:11:15
>>>> END TIME       : -
>>>> DEPLOY ID:     : one-36
>>>>
>>>> VIRTUAL MACHINE TEMPLATE
>>>>
>>>> CPU=1
>>>> DISK=[
>>>>  IMAGE_ID=2,
>>>>  READONLY=no,
>>>>  SOURCE=/srv/cloud/images/2,
>>>>  TARGET=hda ]
>>>> FEATURES=[
>>>>  ACPI=no ]
>>>> INSTANCE_TYPE=small
>>>> MEMORY=64
>>>> NAME=ttyLinux01
>>>> NIC=[
>>>>  BRIDGE=br0,
>>>>  IP=10.0.0.2,
>>>>  MAC=00:03:c1:00:00:ca,
>>>>  NETWORK=network,
>>>>  VNID=0 ]
>>>> VMID=36
>>>> -------------------------------------------------------------------
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> -----------------------------$ virsh dumpxml one-36----------------
>>>> Connecting to uri: qemu:///system
>>>> <domain type='kvm' id='9'>
>>>>  <name>one-36</name>
>>>>  <uuid>fd9dde78-1033-986e-003b-b353b9eaf8b3</uuid>
>>>>  <memory>65536</memory>
>>>>  <currentMemory>65536</currentMemory>
>>>>  <vcpu>1</vcpu>
>>>>  <os>
>>>>    <type arch='x86_64' machine='pc'>hvm</type>
>>>>    <boot dev='hd'/>
>>>>  </os>
>>>>  <clock offset='utc'/>
>>>>  <on_poweroff>destroy</on_poweroff>
>>>>  <on_reboot>restart</on_reboot>
>>>>  <on_crash>destroy</on_crash>
>>>>  <devices>
>>>>    <emulator>/usr/bin/kvm</emulator>
>>>>    <disk type='file' device='disk'>
>>>>      <source file='/srv/cloud/one/var//36/images/disk.0'/>
>>>>      <target dev='hda' bus='ide'/>
>>>>    </disk>
>>>>    <interface type='bridge'>
>>>>      <mac address='00:03:c1:00:00:ca'/>
>>>>      <source bridge='br0'/>
>>>>      <target dev='vnet0'/>
>>>>    </interface>
>>>>  </devices>
>>>> </domain>
>>>> -------------------------------------------------------------------
>>>>
>>>>
>>>> ---------------------------$ onevm show 38-------------------------
>>>> VIRTUAL MACHINE 38 INFORMATION
>>>>
>>>> ID             : 38
>>>> NAME           : ttylinux
>>>> STATE          : ACTIVE
>>>> LCM_STATE      : RUNNING
>>>> START TIME     : 06/11 14:54:30
>>>> END TIME       : -
>>>> DEPLOY ID:     : one-38
>>>>
>>>> VIRTUAL MACHINE TEMPLATE
>>>>
>>>> CPU=0.1
>>>> DISK=[
>>>>  READONLY=no,
>>>>  SOURCE=/srv/cloud/images/ttylinux.img,
>>>>  TARGET=hda ]
>>>> FEATURES=[
>>>>  ACPI=no ]
>>>> MEMORY=64
>>>> NAME=ttylinux
>>>> NIC=[
>>>>  BRIDGE=br0,
>>>>  IP=10.0.0.3,
>>>>  MAC=00:03:c1:00:00:cb,
>>>>  NETWORK=network,
>>>>  VNID=0 ]
>>>> VMID=38
>>>> -------------------------------------------------------------------
>>>>
>>>>
>>>>
>>>>
>>>> -----------------------------$ virsh dumpxml one-38----------------
>>>> <domain type='kvm' id='8'>
>>>>  <name>one-38</name>
>>>>  <uuid>c2b88adf-80d1-abf8-b3b2-4babfd1ebff4</uuid>
>>>>  <memory>65536</memory>
>>>>  <currentMemory>65536</currentMemory>
>>>>  <vcpu>1</vcpu>
>>>>  <os>
>>>>    <type arch='x86_64' machine='pc'>hvm</type>
>>>>    <boot dev='hd'/>
>>>>  </os>
>>>>  <clock offset='utc'/>
>>>>  <on_poweroff>destroy</on_poweroff>
>>>>  <on_reboot>restart</on_reboot>
>>>>  <on_crash>destroy</on_crash>
>>>>  <devices>
>>>>    <emulator>/usr/bin/kvm</emulator>
>>>>    <disk type='file' device='disk'>
>>>>      <source file='/srv/cloud/one/var//38/images/disk.0'/>
>>>>      <target dev='hda' bus='ide'/>
>>>>    </disk>
>>>>    <interface type='bridge'>
>>>>      <mac address='00:03:c1:00:00:cb'/>
>>>>      <source bridge='br0'/>
>>>>      <target dev='vnet0'/>
>>>>    </interface>
>>>>  </devices>
>>>> </domain>
>>>> -------------------------------------------------------------------
>>>> _______________________________________________
>>>> Users mailing list
>>>> Users at lists.opennebula.org
>>>> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>>>>
>>>
>>>
>>>
>>> --
>>> Javier Fontan, Grid & Virtualization Technology Engineer/Researcher
>>> DSA Research Group: http://dsa-research.org
>>> Globus GridWay Metascheduler: http://www.GridWay.org
>>> OpenNebula Virtual Infrastructure Engine: http://www.OpenNebula.org
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opennebula.org
>>> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>>>
>>>
>>
>>
>>
>> --
>> Javier Fontan, Grid & Virtualization Technology Engineer/Researcher
>> DSA Research Group: http://dsa-research.org
>> Globus GridWay Metascheduler: http://www.GridWay.org
>> OpenNebula Virtual Infrastructure Engine: http://www.OpenNebula.org
>>
>
>
>
> --
> Javier Fontan, Grid & Virtualization Technology Engineer/Researcher
> DSA Research Group: http://dsa-research.org
> Globus GridWay Metascheduler: http://www.GridWay.org
> OpenNebula Virtual Infrastructure Engine: http://www.OpenNebula.org
>



-- 
Javier Fontan, Grid & Virtualization Technology Engineer/Researcher
DSA Research Group: http://dsa-research.org
Globus GridWay Metascheduler: http://www.GridWay.org
OpenNebula Virtual Infrastructure Engine: http://www.OpenNebula.org



More information about the Users mailing list