[one-users] "onevm deploy" can force the deployment of VMs refused by scheduler

Borja Sotomayor borja at borjanet.com
Fri Dec 17 08:48:52 PST 2010


Hi,

There is a ticket open for this:

http://dev.opennebula.org/issues/428

As suggested there, could we include a no-deploy policy with
OpenNebula so that admins can just select that policy, instead of
having to write a new policy?

On Fri, Dec 17, 2010 at 11:37 AM, Javier Fontan <jfontan at gmail.com> wrote:
> That is the intended behavior. It does not check for resource
> availability. This command is there so you can manually schedule VMs.
> Anyway I see your concern about users forcing the VM to be deployed
> even when the scheduler does not find a slot for it. Fortunately now
> we have auth plugins that can be easily modified to change the
> authorization of commands. You have more information on how to enable
> it in http://opennebula.org/documentation:rel2.0:auth. In
> $ONE_LOCATION/lib/ruby/simple_permissions.rb there is a function that
> holds the policy on actions:
>
> --8<------
>    # Authorizes each of the tokens. All parameters are strings. Pub
>    # means public when "1" and private when "0"
>    def auth_object(uid, object, id, action, owner, pub)
>        return true if uid=='0'
>
>        auth_result=false
>
>        case action
>        when 'CREATE'
>            auth_result=true if %w{VM NET IMAGE}.include? object
>
>            if @quota_enabled and object=='VM' and auth_result
>                STDERR.puts 'quota enabled'
>                @quota.update(uid.to_i)
>                if !@quota.check(uid.to_i, get_vm_usage(id))
>                    auth_result="Quota exceeded"
>                end
>            end
>
>        when 'DELETE'
>            auth_result = (owner == uid)
>
>        when 'USE'
>            if %w{VM NET IMAGE}.include? object
>                auth_result = ((owner == uid) | (pub=='1'))
>            elsif object == 'HOST'
>                auth_result=true
>            end
>
>        when 'MANAGE'
>            auth_result = (owner == uid)
>
>        when 'INFO'
>        end
>
>        return auth_result
>    end
> ------>8--
>
>
> You can change this function so DEPLOY is not permitted, something like this:
>
> --8<------
>    # Authorizes each of the tokens. All parameters are strings. Pub
>    # means public when "1" and private when "0"
>    def auth_object(uid, object, id, action, owner, pub)
>        return true if uid=='0'
>
>        auth_result=false
>
>        case action
>        when 'CREATE'
>            auth_result=true if %w{VM NET IMAGE}.include? object
>
>            if @quota_enabled and object=='VM' and auth_result
>                STDERR.puts 'quota enabled'
>                @quota.update(uid.to_i)
>                if !@quota.check(uid.to_i, get_vm_usage(id))
>                    auth_result="Quota exceeded"
>                end
>            end
>
>        when 'DELETE'
>            auth_result = (owner == uid)
>
>        when 'USE'
>            if %w{VM NET IMAGE}.include? object
>                auth_result = ((owner == uid) | (pub=='1'))
>            elsif object == 'HOST'
>                auth_result=true
>            end
>
>        when 'MANAGE'
>            auth_result = (owner == uid)
>
>        when 'DEPLOY'
>            auth_result = false
>
>        when 'INFO'
>        end
>
>        return auth_result
>    end
> ------>8--
>
> On Fri, Nov 26, 2010 at 8:23 AM, Zaina AFOULKI
> <zaina.afoulki at ensi-bourges.fr> wrote:
>> Hi,
>>
>> I'm testing a policy for the opennebula scheduler (for example Haizea)
>> where in some cases, even if the host has enough resources, the scheduler
>> can decline the lease. (and the VM shows as "pend" with onevm list).
>>
>> But I noticed that a user can then deploy it anyways with:
>> $onevm deploy 12 host01
>>
>> I was wondering if this behavior is normal? shouldn't opennebula show the
>> state "fail" for the VM instead of deploying it?
>>
>> What does the function onevm deploy do? does it check available resources
>> only? does it ignore the decision of the scheduler?
>>
>> --
>> Zaina
>>
>> _______________________________________________
>> 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
>



-- 
Borja Sotomayor

Scientific Writer, Computation Institute
Lecturer, Department of Computer Science
University of Chicago
http://people.cs.uchicago.edu/~borja/

Community Manager, OpenNebula project
http://www.opennebula.org/



More information about the Users mailing list