Wednesday, 2014-09-10

*** PaulCzar has quit IRC00:30
*** unicell has joined #openstack-containers00:33
*** phiche has joined #openstack-containers00:50
*** phiche has quit IRC00:55
*** phiche has joined #openstack-containers01:50
*** phiche has quit IRC01:55
*** marcoemorais has quit IRC02:20
*** harlowja is now known as harlowja_away02:25
*** phiche has joined #openstack-containers02:50
*** phiche has quit IRC02:56
*** phiche has joined #openstack-containers03:50
*** phiche has quit IRC03:54
*** phiche has joined #openstack-containers04:50
*** phiche has quit IRC04:56
*** julim has quit IRC05:17
*** phiche has joined #openstack-containers05:34
*** phiche has quit IRC06:08
*** stannie has quit IRC06:38
*** stannie has joined #openstack-containers06:50
*** phiche has joined #openstack-containers06:56
*** stannie has quit IRC06:56
*** julienvey has joined #openstack-containers08:02
*** phiche has quit IRC08:16
*** phiche has joined #openstack-containers08:24
*** phiche1 has joined #openstack-containers08:25
*** phiche has quit IRC08:25
*** julienvey has quit IRC08:29
*** julienvey has joined #openstack-containers08:30
*** phiche has joined #openstack-containers08:30
*** phiche1 has quit IRC08:31
*** phiche has quit IRC08:56
*** phiche has joined #openstack-containers09:01
*** unicell1 has joined #openstack-containers09:54
*** unicell has quit IRC09:56
*** thomasem has joined #openstack-containers13:15
*** julim has joined #openstack-containers13:28
*** julienvey has quit IRC13:34
*** stannie has joined #openstack-containers13:34
*** julienvey has joined #openstack-containers13:52
*** PaulCzar has joined #openstack-containers14:31
*** EricGonczer_ has joined #openstack-containers14:33
*** EricGonczer_ has quit IRC14:58
*** EricGonczer_ has joined #openstack-containers14:59
*** EricGonczer_ has quit IRC15:01
*** EricGonczer_ has joined #openstack-containers15:01
*** EricGonc_ has joined #openstack-containers15:02
*** EricGonczer_ has quit IRC15:06
*** diga has joined #openstack-containers15:42
*** phiche has quit IRC15:55
*** marcoemorais has joined #openstack-containers16:25
*** julienve_ has joined #openstack-containers16:30
*** julienvey has quit IRC16:34
*** marcoemorais has quit IRC16:35
*** marcoemorais has joined #openstack-containers16:36
*** adrian_otto has joined #openstack-containers16:36
*** marcoemorais has quit IRC16:36
*** marcoemorais has joined #openstack-containers16:36
bauzas_adrian_otto: hi adrian16:37
bauzas_adrian_otto: just got a ping yesterday :)16:38
bauzas_adrian_otto: by reading the meeting logs, it seems you want to know the Gantt status, right ?16:39
adrian_ottowhen is a good time to touch base about Gantt?16:39
bauzas_adrian_otto: I have ~15 mins for discussing now, or later in the evening16:39
adrian_ottonow works.16:39
bauzas_cool16:39
bauzas_so what do you want to know about the scheduler split ?16:39
adrian_ottowell, the hardest question to answer is timing of readiness16:41
adrian_ottoour intent is not to overlap our work with anything in Nova that can be accessed by an external service16:41
*** stannie has quit IRC16:42
adrian_ottowe think that the Gantt scheduler is a very important component, and one we especially do not want to duplicate16:42
bauzas_adrian_otto: makes sense16:42
bauzas_adrian_otto: the main problem is the delivery timing16:42
adrian_ottoso I think what the team wants is a sense of the project, what stage it is in, and if it's in progress, when we anticipate it might be ready to try16:42
bauzas_adrian_otto: what do you exactly require to schedule ?16:42
adrian_ottogood question, so let's first explain what we plan to do as a first step16:43
adrian_ottoand then I can expand on that16:43
bauzas_adrian_otto: as per my understanding, you want to elect some containers coming from an end-user API16:43
bauzas_adrian_otto: sure16:43
adrian_ottoso we know there will be some period of time while Gantt is not yet ready16:43
adrian_ottoand our stated intent it to allow two container placement schemes during that initial period:16:44
adrian_otto1) Specify the instance_id of the Nova instance you want to place a container on.16:44
adrian_otto2) Automatically create a nova instance, and sequentially fill it with containers until no more fit16:44
adrian_ottothen create another, etc.16:44
bauzas_let me rephrase this16:45
adrian_ottodeleting instances when all containers are deleted.16:45
bauzas_containers would be subinstances ?16:45
adrian_ottoyes.16:45
bauzas_ie. you would spawn an instance and then some containers upon this ?16:45
bauzas_ok, I guess for security reasons ?16:45
adrian_ottoyes, but consider that an instance may be of any type. Currently VM, Bare Metal, and Container are contemplated.16:46
bauzas_I was seeing the docker driver as a direct driver over the host16:46
bauzas_adrian_otto: gotcha16:46
bauzas_so I understand the need of an upper API16:46
adrian_ottoso in the case of nova-docker as the nova virt driver, you would end up with nested containers16:46
bauzas_adrian_otto: got it16:46
bauzas_adrian_otto: the containers service is just for requesting high-level containers whatever the driver is16:47
bauzas_k16:47
adrian_ottoyes16:47
adrian_ottoso there are two unique scheduling problems16:47
bauzas_so, that's a new dependency16:47
adrian_ottoone is what nova does with placing instances on compute hosts16:47
adrian_ottoand another is what Magnum (OpenStack Containers Service) does with containers on instances16:48
bauzas_and I see the latter16:48
bauzas_got ity16:48
adrian_ottofundamentally similar16:48
bauzas_nova-scheduler is addressing the instances16:48
adrian_ottoyes16:48
bauzas_so you need something for addressing the containers16:48
bauzas_k16:48
adrian_ottoyes16:48
bauzas_lemme braindump this16:48
adrian_ottoso we like the idea of using filters16:48
adrian_ottojsut like we can do with instances16:49
bauzas_yup16:49
adrian_ottoso we can do things  like affinity, anti-affinity, etc.16:49
bauzas_you need to care about a list of containers per host16:49
bauzas_oops16:49
bauzas_s/host/instance16:49
adrian_ottoexactly.16:49
bauzas_are the containers tied to the instance ?16:50
adrian_ottoour initial discussions about that led us to accept that Magnum would own an index mapping containers to instances16:50
adrian_ottoyes, a container belongs to one instance at a time.16:50
bauzas_k, do you have some instance requirements or flavor reqs ?16:50
adrian_ottobut like instances can move from one host to another, containers should also be allowed to move from one instance to another.16:51
bauzas_ie. how do you elect the instance on which the container will be started on ?16:51
bauzas_k16:51
bauzas_so you potentially want to migrate containers16:51
bauzas_got it16:51
adrian_ottoyes, I anticipate that we will use flavors, but that's not how prevailing contianer tools work today16:51
adrian_ottofor example, Docker allows a -m flag to specify an arbitrary memory ceiling16:52
bauzas_I guess the boot request will come to the Magnum API and Magnum will call the Nova API ?16:52
adrian_ottoand a similar flag for cpushares and cpuset16:52
bauzas_k16:52
adrian_ottofor creating instances, absolutely16:52
adrian_ottowe will have an in-guest agent.16:52
bauzas_ok, any plans to use Heat ?16:52
adrian_ottoyes16:53
adrian_ottoHeat will be used to do multi-step operations, to the extent possible16:53
bauzas_k16:53
bauzas_I see your issue then16:53
adrian_ottoto for exmaple if we have some "flavor" definition that has a Manila volume along with a container, we will use a HOT to order that.16:53
bauzas_and I see why you need Gantt16:53
bauzas_because you need to have your own scheduler16:54
bauzas_for electing containers and migrating them16:54
adrian_ottoso either we can Gantt to help us decide where to place containers, or a heat resource provider will.16:54
*** marcoemorais has quit IRC16:54
adrian_ottoor possibly both. I don't care if there is only a single implementation of scheduling16:54
*** marcoemorais has joined #openstack-containers16:55
bauzas_adrian_otto: yeah that sounds the good way16:55
adrian_ottoclarified; I don't care if we call it from multiple places.16:55
bauzas_ideally, the nova-scheduler could manage these resources16:55
bauzas_I'm just thinking how to update the scheduler with the metrics16:56
bauzas_as I said, pure braindump16:56
adrian_ottook, so back to the idea of the guest agent16:56
adrian_ottothat is much like nova-compute16:56
bauzas_indeed16:56
adrian_ottoin the way that nova-compute has access to list KVM guests16:57
adrian_ottoit will be able to introspect a single container16:57
bauzas_yeah, it sounds to me that's just a subset of the compute_node16:57
bauzas_ie. compute_nodes refers to instances16:57
adrian_ottoyes.16:58
bauzas_and provides the list of instances16:58
*** harlowja_away is now known as harlowja16:58
adrian_ottonow like VM guests, containers do not run forever16:58
bauzas_I'm just thinking that hypervisor could just introspect the list of the containers within the instances16:58
adrian_ottomost are expected to run continuously, but some are expected to run for a time and then stop16:58
bauzas_and report it to the scheduler16:58
adrian_ottoso we will have a concept of a stopped container, where the cgroups and namespaces exist on the host still, but no processes exist int he cgroup16:59
adrian_ottothink of that maybe as a "sleeping" container that could be restarted with all of it's same disk state16:59
bauzas_nova provides shelved instances, that's basically the same workflow17:00
adrian_ottoso information about the running status of each container will need to be relayed back up17:00
adrian_ottodid I exhaust your time?17:01
bauzas_adrian_otto: yeah I see, I'm just thinking that there is no need to map the list of containers per instance, you just need to map the list of containers per host and add a info on which instance it's located17:01
adrian_ottoas long as we have an event to update that if an instance migrates to another host17:01
adrian_ottoI'd agree with that.17:01
bauzas_adrian_otto: yeah I will have to step off for a bit17:02
adrian_ottook, catch up again later.17:02
bauzas_adrian_otto: the key thing is that if you can report on the Compute ResourceTracker, then you can easily plug in to the existing scheduler17:03
adrian_ottook17:04
bauzas_adrian_otto: ttyl17:09
adrian_ottoyes, thanks bauzas_17:09
*** marcoemorais has quit IRC17:30
*** marcoemorais has joined #openstack-containers17:31
*** marcoemorais has quit IRC17:32
*** marcoemorais has joined #openstack-containers17:33
*** marcoemorais has quit IRC17:33
*** marcoemorais has joined #openstack-containers17:33
*** julienve_ has quit IRC17:35
*** julienvey has joined #openstack-containers17:35
*** julienvey has quit IRC17:40
*** diga has quit IRC18:01
*** adrian_otto has quit IRC18:08
*** adrian_otto has joined #openstack-containers18:25
*** stannie has joined #openstack-containers18:35
*** julienvey has joined #openstack-containers18:36
*** julienvey has quit IRC18:40
*** julim has quit IRC18:51
*** julim has joined #openstack-containers18:53
*** julienvey has joined #openstack-containers19:36
*** julienvey has quit IRC19:41
*** unicell1 has quit IRC19:56
*** julienvey has joined #openstack-containers20:02
bauzas_adrian_otto: I'm back20:04
*** julienvey has quit IRC20:07
adrian_ottohey there20:14
adrian_ottopicking up where we left off. You wrote "adrian_otto: the key thing is that if you can report on the Compute ResourceTracker, then you can easily plug in to the existing scheduler"20:14
adrian_ottoI think I understand that, but want to confirm that I really have a firm grasp20:15
adrian_ottothere is some mechanism that allows hosts to send usage metrics to the nova-scheduler that are recorded in something called the Compute ResourceTracker. Instances running containers could do the same thing and leverage the existing facilities for tracking utilization against available capacity. Did I understand it right?20:16
*** marcoemorais has quit IRC20:25
*** marcoemorais has joined #openstack-containers20:26
*** marcoemorais has quit IRC20:27
*** marcoemorais has joined #openstack-containers20:28
*** marcoemorais has quit IRC20:30
*** marcoemorais has joined #openstack-containers20:30
bauzas_adrian_otto: mmm, sorry, missed to look at the chan20:38
bauzas_adrian_otto: ping me when seeing I'm not replying directly back :)20:38
bauzas_adrian_otto: so, do you know a little bit about the Nova architecture and how scheduling is done ?20:39
bauzas_adrian_otto: you have to know 3 services : nova-conductor, nova-scheduler and nova-compute20:40
bauzas_nova-conductor is issuing boot requests20:40
bauzas_nova-conductor is issing boot request by calling scheduler.select_dest(), then picking the first host and calling compute mgr20:41
bauzas_the scheduler select_dest() is filtering out based on what we call HostState, an in-memory repr of all the computes state20:42
bauzas_and Compute mgr is updating every 60 secs DB table called compute_nodes, which is based by Scheduler for generating HostState20:43
bauzas_the Compute mgr section is called ResourceTracker20:43
bauzas_every host is executing this portion of code every 60 secs by getting the virt state, adding extra info and updating the DB20:44
bauzas_so by saying it's far easier to plug the containers code if that's host related, it's because the whole logic is already there20:45
bauzas_there is even a bp for having 3rd party plugins called Extensible Resource Tracker, that could help you20:45
*** julienvey has joined #openstack-containers21:03
*** marcoemorais has quit IRC21:04
*** marcoemorais has joined #openstack-containers21:04
*** marcoemorais has quit IRC21:05
*** marcoemorais has joined #openstack-containers21:06
*** marcoemorais has quit IRC21:07
*** julienvey has quit IRC21:07
*** marcoemorais has joined #openstack-containers21:08
*** EricGonc_ has quit IRC21:23
*** julienve_ has joined #openstack-containers21:43
*** julienve_ has quit IRC21:44
*** stannie has quit IRC21:48
*** thomasem has quit IRC22:06
*** marcoemorais has quit IRC22:20
*** marcoemorais has joined #openstack-containers22:20
*** marcoemorais has quit IRC22:20
*** marcoemorais has joined #openstack-containers22:21
*** unicell has joined #openstack-containers22:43
*** EricGonczer_ has joined #openstack-containers23:20
*** harlowja has quit IRC23:48
*** harlowja_ has joined #openstack-containers23:48
*** adrian_otto has quit IRC23:59

Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!