-- David Fabian Cluster Design, s.r.o.
Dne Čt 3. července 2014 23:17:12, Pavel Emelyanov napsal(a): > On 07/03/2014 03:49 PM, Bosson VZ wrote: > > Fair enough. We have no problem to adapt to the new process. I don't know how libcontainer is designed > > internally and how low-level it is but having a thin user-space wrapper around the vzkernel would be wonderful. > > Here's the preliminary version of it will look like: https://github.com/xemul/libct/ > The API would get slightly shuffled to fit more the https://github.com/docker/libcontainer/pull/28 > > > > I wanted to use libvzctl in bossonvz to abstract the driver away from the low-level stuff but the library > > is just too much interconnected with the veconf parser. > > Well, the libcontainer API is not going to mess with configs at all. Everything > will be run-time. > > > The current vz kernel API is not the nicest thing to work with to be honest and a shared user-space library > > would help both vzctl and bossonvz. If you are interested in my POV on the kernel API, I would say you > > should leave more work for the user-space. At the moment, when the user-space asks for a new container, > > the vzkernel magically creates a new environment and sets everything (esp. cgroups) by itself without any > > chance for the user-space to set anything. Because libvirt has its own cgroup hierarchy model and any > > libvirt driver should honor it, bossonvz should, idealy, create cgroups for the container under the libvirt > > hierarchy but it cannot since the kernel won't let it. > > Yes, this is our 15-years-old API that was kept compatible with tools. Soon after > we started merging containers upstream we started the process of its deprecation, > and in the upcoming Rhel7-based kernel we're very close to the goal. > > > As I see it, the driver has to do two separate things to successfully use the kernel API. There are the > > vz specific syscalls/ioctls (e.g. VZCTL_ENV_CREATE_DATA) and there is a preparatory work done in the > > user-space (preparing forked sub-processes, pipes, etc.). Is the new SDK going to cover only the low-level > > code (ioctls) or will I be able to use some sort of a high-level function like spawn_environment() and get > > PID of the newly created container's init? > > The SDK is going to be quite high-level, and more sophisticated than existing libvzctl. > The libcontainer is going to be low-level but still more abstract than the kernel API. > > > The amount of vz specific code in the bossonvz driver is not that big. The ioctls is just a single > > bossonvz_environment.c file. The harder part is the preparatory part which is located in bossonvz_container.c > > and is quite complex since it closely mimics the code path of vzctl (otherwise the driver would not work). > > It's interesting. Can you point out where you code is? > And, btw, I think you would be interested in taking part in libcontainer > design, discussions and development. The link above is the place where we > try to settle down the new API and you're welcome to join :) > > Thanks, > Pavel > > -- > libvir-list mailing list > libvir-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/libvir-list |
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list