You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@mesos.apache.org by Krishnanarayanan VR <kr...@phonepe.com> on 2016/05/25 04:25:12 UTC

Re: "Appropriating" an existing process into mesos task

Hello:

We've been using mesos to allocate kvm VMs on our baremetal servers.

The high level flow is as below:
o user requests a VM with nCpus and mMem.
o framework picks up an appropriate offer and spins a new VM
o the baremetal on which the VM was spun is noted into a json file.
 cpu/mem resources are also noted in the same file.
o In the event that the framework dies and restarts, the file is processed
first and a VM needs to be created iff the VM does not exist ( for whatever
reason ).  data for each VM is stored in a file likewise.

My question/requirement is:

The framework restart does not have any impact on the individual kvm VMs on
the mesos slave baremetal servers. when the framework restarts, if the VM
is already present, I'd just like to add it to the TASK_RUNNING status with
the noted resources, without having to go through the actual executor.

Any pointers on how this can be achieved ?

Thanks

Re: "Appropriating" an existing process into mesos task

Posted by Krishnanarayanan VR <kr...@phonepe.com>.
Hi Guangya:

I looked around and didn't find any. We needed something really fast, so i
put together something that can work for us. I've already deployed it in
production and am actively bug fixing:) Pretty much everything is a hack
and there is a long way to go.

The code is here - https://github.com/krishnanvrphonepe/pmc





On Wed, May 25, 2016 at 6:11 PM, Guangya Liu <gy...@gmail.com> wrote:

> Hi Krishnanarayanan,
>
> Can you please share more for how did you use mesos executor to manage
> VMs? The Mesos also filed a JIRA here
> https://issues.apache.org/jira/browse/MESOS-2717 which want to introduce
> Qemu/LVM support, seems you are ahead of community. ;-)
>
> Thanks,
>
> Guangya
>
> On Wed, May 25, 2016 at 6:09 PM, Krishnanarayanan VR <
> krishnanvr@phonepe.com> wrote:
>
>> Guangya:
>>
>> Thanks for your response.
>>
>> yeah, the VMs are created by the mesos executor.  I'll take a look at the
>> checkpointing and see if it works.
>>
>>
>>
>> On Wed, May 25, 2016 at 10:57 AM, Guangya Liu <gy...@gmail.com> wrote:
>>
>>> Hi Krishnanarayanan,
>>>
>>> How did you create your VM on baremetal servers with Mesos? Are you
>>> leveraging mesos executor or some other components?
>>>
>>> The framework have checkpoint logic which can recover tasks in one
>>> framework back to original state, please refer to
>>> https://github.com/apache/mesos/blob/master/include/mesos/mesos.proto#L233-L237
>>> , does this help?
>>>
>>> Thanks,
>>>
>>> Guangya
>>>
>>> On Wed, May 25, 2016 at 12:25 PM, Krishnanarayanan VR <
>>> krishnanvr@phonepe.com> wrote:
>>>
>>>>
>>>> Hello:
>>>>
>>>> We've been using mesos to allocate kvm VMs on our baremetal servers.
>>>>
>>>> The high level flow is as below:
>>>> o user requests a VM with nCpus and mMem.
>>>> o framework picks up an appropriate offer and spins a new VM
>>>> o the baremetal on which the VM was spun is noted into a json file.
>>>>  cpu/mem resources are also noted in the same file.
>>>> o In the event that the framework dies and restarts, the file is
>>>> processed first and a VM needs to be created iff the VM does not exist (
>>>> for whatever reason ).  data for each VM is stored in a file likewise.
>>>>
>>>> My question/requirement is:
>>>>
>>>> The framework restart does not have any impact on the individual kvm
>>>> VMs on the mesos slave baremetal servers. when the framework restarts, if
>>>> the VM is already present, I'd just like to add it to the TASK_RUNNING
>>>> status with the noted resources, without having to go through the actual
>>>> executor.
>>>>
>>>> Any pointers on how this can be achieved ?
>>>>
>>>> Thanks
>>>>
>>>
>>>
>>
>

Re: "Appropriating" an existing process into mesos task

Posted by Guangya Liu <gy...@gmail.com>.
Hi Krishnanarayanan,

Can you please share more for how did you use mesos executor to manage VMs?
The Mesos also filed a JIRA here
https://issues.apache.org/jira/browse/MESOS-2717 which want to introduce
Qemu/LVM support, seems you are ahead of community. ;-)

Thanks,

Guangya

On Wed, May 25, 2016 at 6:09 PM, Krishnanarayanan VR <krishnanvr@phonepe.com
> wrote:

> Guangya:
>
> Thanks for your response.
>
> yeah, the VMs are created by the mesos executor.  I'll take a look at the
> checkpointing and see if it works.
>
>
>
> On Wed, May 25, 2016 at 10:57 AM, Guangya Liu <gy...@gmail.com> wrote:
>
>> Hi Krishnanarayanan,
>>
>> How did you create your VM on baremetal servers with Mesos? Are you
>> leveraging mesos executor or some other components?
>>
>> The framework have checkpoint logic which can recover tasks in one
>> framework back to original state, please refer to
>> https://github.com/apache/mesos/blob/master/include/mesos/mesos.proto#L233-L237
>> , does this help?
>>
>> Thanks,
>>
>> Guangya
>>
>> On Wed, May 25, 2016 at 12:25 PM, Krishnanarayanan VR <
>> krishnanvr@phonepe.com> wrote:
>>
>>>
>>> Hello:
>>>
>>> We've been using mesos to allocate kvm VMs on our baremetal servers.
>>>
>>> The high level flow is as below:
>>> o user requests a VM with nCpus and mMem.
>>> o framework picks up an appropriate offer and spins a new VM
>>> o the baremetal on which the VM was spun is noted into a json file.
>>>  cpu/mem resources are also noted in the same file.
>>> o In the event that the framework dies and restarts, the file is
>>> processed first and a VM needs to be created iff the VM does not exist (
>>> for whatever reason ).  data for each VM is stored in a file likewise.
>>>
>>> My question/requirement is:
>>>
>>> The framework restart does not have any impact on the individual kvm VMs
>>> on the mesos slave baremetal servers. when the framework restarts, if the
>>> VM is already present, I'd just like to add it to the TASK_RUNNING status
>>> with the noted resources, without having to go through the actual executor.
>>>
>>> Any pointers on how this can be achieved ?
>>>
>>> Thanks
>>>
>>
>>
>

Re: "Appropriating" an existing process into mesos task

Posted by Krishnanarayanan VR <kr...@phonepe.com>.
Guangya:

Thanks for your response.

yeah, the VMs are created by the mesos executor.  I'll take a look at the
checkpointing and see if it works.



On Wed, May 25, 2016 at 10:57 AM, Guangya Liu <gy...@gmail.com> wrote:

> Hi Krishnanarayanan,
>
> How did you create your VM on baremetal servers with Mesos? Are you
> leveraging mesos executor or some other components?
>
> The framework have checkpoint logic which can recover tasks in one
> framework back to original state, please refer to
> https://github.com/apache/mesos/blob/master/include/mesos/mesos.proto#L233-L237
> , does this help?
>
> Thanks,
>
> Guangya
>
> On Wed, May 25, 2016 at 12:25 PM, Krishnanarayanan VR <
> krishnanvr@phonepe.com> wrote:
>
>>
>> Hello:
>>
>> We've been using mesos to allocate kvm VMs on our baremetal servers.
>>
>> The high level flow is as below:
>> o user requests a VM with nCpus and mMem.
>> o framework picks up an appropriate offer and spins a new VM
>> o the baremetal on which the VM was spun is noted into a json file.
>>  cpu/mem resources are also noted in the same file.
>> o In the event that the framework dies and restarts, the file is
>> processed first and a VM needs to be created iff the VM does not exist (
>> for whatever reason ).  data for each VM is stored in a file likewise.
>>
>> My question/requirement is:
>>
>> The framework restart does not have any impact on the individual kvm VMs
>> on the mesos slave baremetal servers. when the framework restarts, if the
>> VM is already present, I'd just like to add it to the TASK_RUNNING status
>> with the noted resources, without having to go through the actual executor.
>>
>> Any pointers on how this can be achieved ?
>>
>> Thanks
>>
>
>

Re: "Appropriating" an existing process into mesos task

Posted by Guangya Liu <gy...@gmail.com>.
Hi Krishnanarayanan,

How did you create your VM on baremetal servers with Mesos? Are you
leveraging mesos executor or some other components?

The framework have checkpoint logic which can recover tasks in one
framework back to original state, please refer to
https://github.com/apache/mesos/blob/master/include/mesos/mesos.proto#L233-L237
, does this help?

Thanks,

Guangya

On Wed, May 25, 2016 at 12:25 PM, Krishnanarayanan VR <
krishnanvr@phonepe.com> wrote:

>
> Hello:
>
> We've been using mesos to allocate kvm VMs on our baremetal servers.
>
> The high level flow is as below:
> o user requests a VM with nCpus and mMem.
> o framework picks up an appropriate offer and spins a new VM
> o the baremetal on which the VM was spun is noted into a json file.
>  cpu/mem resources are also noted in the same file.
> o In the event that the framework dies and restarts, the file is processed
> first and a VM needs to be created iff the VM does not exist ( for whatever
> reason ).  data for each VM is stored in a file likewise.
>
> My question/requirement is:
>
> The framework restart does not have any impact on the individual kvm VMs
> on the mesos slave baremetal servers. when the framework restarts, if the
> VM is already present, I'd just like to add it to the TASK_RUNNING status
> with the noted resources, without having to go through the actual executor.
>
> Any pointers on how this can be achieved ?
>
> Thanks
>