From: ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org (Eric W. Biederman)
To: Albert Lee <trisk-EuoJsN+J0o7QT0dZR+AlfA@public.gmane.org>
Cc: Andrew Morton <akpm-3NddpPZAyC0@public.gmane.org>,
Pat Norton <pnorton-EuoJsN+J0o7QT0dZR+AlfA@public.gmane.org>,
Linux Containers
<containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
Nahum Shalman <nshalman-EuoJsN+J0o7QT0dZR+AlfA@public.gmane.org>,
Josh Lohrman <josh-EuoJsN+J0o7QT0dZR+AlfA@public.gmane.org>,
Pavel Emelianov <xemul-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
Subject: Re: New namespace design and clone(2) flags exhaustion
Date: Fri, 10 Jun 2016 14:32:10 -0500 [thread overview]
Message-ID: <87shwk7scl.fsf@x220.int.ebiederm.org> (raw)
In-Reply-To: <CAN101LiTFwmiMMmLK93QMtNcczqm1mmK7EmPDpDYgtLtzkc8JA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> (Albert Lee's message of "Fri, 3 Jun 2016 10:21:22 -0500")
Adding the containers list as this is essentially a public question
and I figure having conversations as much as possible in public helps at
least in principle to reduce repeating oneself.
Albert Lee <trisk-EuoJsN+J0o7QT0dZR+AlfA@public.gmane.org> writes:
> Hello!
> We are building a platform that uses namespaces and cgroups for
> process group isolation and resource control and ZFS (a pooled
> storage, CoW, filesystem) for storage. [1]
> We wish to delegate administration for subsets of ZFS datasets to
> groups of processes on Linux, based on existing support in OpenZFS for
> illumos zones. Our initial approach introduces a new namespace, which
> allows arbitrary modules to be notified about new instances of this
> namespace. [2]
ZFS being licensed under the CDDL which is GPL incompatible isn't my
favorite subject to talk about. But I think we are talking a general
question.
Last I looked Solaris/Illumos zones are a rather different concept from
namespaces. Being a top down big switch rather than a bottom up a
component at a kind concept.
I don't think cgroups are at all interesting here, from what little I
can understand of what you are doing cgroups are not a particularly
good fit.
I actually don't think you need a new namespace either.
This sounds like a job for mount options. I know btrfs can mount
different subvolumes based on different mount options, and that sounds
like what you are doing here.
But I could easily be missing something. What is it you are actually
trying to do? Even the idea of your previous work a delegation
namespace is meaningless to me. It sounds like you just wanted a giant
hook in the kernel so you could implement a hack. Random hooks for out
of tree hacks are neither maintainable nor supportable so I do not
encourage that approach.
Meanwhile there is a fair amount of work going on to allow unprivileged
fuse mounts which may dove tail with what you are trying to accomplish.
Eric
> During the initial investigation we noticed clone(2) is has almost no
> available bits in its flags parameter to specify additional
> namespaces. We were re-using the former CLONE_STOPPED value, as
> proposed namespaces have also done. [3] This appears to stem from the
> mount namespace's design not having consideration for future
> namespaces, making it more work than necessary implement any
> additional namespaces.
>
> Given introducing any new namespace in the existing model would
> exacerbate the problem, we're open to different options:
> * Not relying on namespaces but perhaps using cgroups instead. I'm not
> convinced the cgroup semantics make more sense for our use case.
> * Trying to upstream some form of our initial implementation by making
> it useful for other consumers. We've tried to make make this
> "delegation namespace" as generic as possible.
> * Attempt to address the root issue by making namespaces "pluggable",
> in theory allowing them to be implemented in modules. This obviously
> requires a system call interface change as well as alterations to the
> structure attached to proc.
>
> The options are discussed in a lot more detail here:
> https://github.com/cerana/cerana/issues/143
>
> As you are some of the key people involved in the current
> implementations of namespaces, we would love to hear any comments you
> have, especially any opinions on the best course of action.
>
> Thanks in advance,
> -Albert
>
> [1] https://cerana.org/
> [2] https://github.com/cerana/linux-stable/tree/delegns
> [3] https://lkml.org/lkml/2016/1/29/116
next parent reply other threads:[~2016-06-10 19:32 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CAN101LiTFwmiMMmLK93QMtNcczqm1mmK7EmPDpDYgtLtzkc8JA@mail.gmail.com>
[not found] ` <CAN101LiTFwmiMMmLK93QMtNcczqm1mmK7EmPDpDYgtLtzkc8JA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-10 19:32 ` Eric W. Biederman [this message]
[not found] ` <87shwk7scl.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-06-10 21:04 ` New namespace design and clone(2) flags exhaustion Albert Lee
[not found] ` <CAN101Lj5tenJRyRS1GipoP8G1KtRtNJMvFenNNZ8NoUCYj0dWA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-06-10 21:28 ` Eric W. Biederman
[not found] ` <878tyc3fa0.fsf-JOvCrm2gF+uungPnsOpG7nhyD016LWXt@public.gmane.org>
2016-06-10 22:17 ` James Bottomley
2016-06-15 15:40 ` Albert Lee
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87shwk7scl.fsf@x220.int.ebiederm.org \
--to=ebiederm-as9lmozglivwk0htik3j/w@public.gmane.org \
--cc=akpm-3NddpPZAyC0@public.gmane.org \
--cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=josh-EuoJsN+J0o7QT0dZR+AlfA@public.gmane.org \
--cc=nshalman-EuoJsN+J0o7QT0dZR+AlfA@public.gmane.org \
--cc=pnorton-EuoJsN+J0o7QT0dZR+AlfA@public.gmane.org \
--cc=trisk-EuoJsN+J0o7QT0dZR+AlfA@public.gmane.org \
--cc=xemul-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox