Idea about 'skeleton jail

Chris Hodgins chodgins at cis.strath.ac.uk
Mon Mar 14 11:12:48 PST 2005


Anish Mistry wrote:
> On Monday 14 March 2005 10:15 am, Samuel J. Greear wrote:
> 
>>On Sunday 13 March 2005 14:24, Anish Mistry wrote:
>>
>>>On Sunday 13 March 2005 01:23 pm, Chris Hodgins wrote:
>>>
>>>>Samuel J. Greear wrote:
>>>>
>>>>>Not a bad 'idea' at all, although I won't comment on
>>>>>semantics. I had something implemented using fs stacking (in
>>>>>a very hackish way, and I believe it's lost now, so don't ask
>>>>>to see it...) to implement per-jail quota's that seemed to
>>>>>work quite well.
>>>>>
>>>>>Sam
>>>>
>>>>Feel free to comment on the semantics.  As I said before, I am
>>>>not very knowledgable about filesystems and any insight or
>>>>alternative implementation you can provide would be interesting
>>>>I'm sure to everyone.
>>>
>>>Yeah, if there was jailfs that was setup automatically for the
>>>jails that supported quotas out of the box that would kill my
>>>major gripe about setting up jails.
>>
>>Chris, your concept looks reasonable to me. I think I would
>>probably do something along those lines but borrow some idea's from
>>my 'jail-build' script.  It has the concept of both includes and
>>excludes, but it also handles another directory for what I call
>>overrides.  My overrides directories are per-jail and typically
>>include nothing more than config. files, but it works pretty
>>handily.  The overrides may best be implemented in a seperate
>>layer...  and I don't even know that I would call something like
>>this a jailfs, more like a globfs or something...  I can see
>>potential uses beyond jails.
>>

I like the idea of the overrides directory.  That would work nicely.  If 
you made the overrides directory the actual jail root that might make 
sense.  Then when the [jail|glob]fs is mounted it will simply choose the 
file in the jail root directory instead of the one on the normal file 
system.

If we implemented a sort of copy of write architecture we could add to 
the exceptions list on the fly.  That is everything from the host 
(everything allowed by the config file that is) is available as a copy 
of the host system.  When you edit a file, the filesystem simply creates 
its own copy for the overrides directory and we edit that.  That would 
be very neat. Imagine that working on the ports system!! :)  What do you 
think?

>>The reasons that I never finished implementing my jailfs with quota
>>support were primarily, that stackable filesystems seem to be
>>somewhat of a black-art.  Secondarily, I concluded that the time
>>would be better spent implementing filesystem agnostic quota's in
>>the vfs layer.  A proper design should enable you to do a lot of
>>fun things, I was thinking something along the lines of just a
>>simple aggregator that a module could hand function pointers to and
>>register interest in events, with options like..  just-notify-me
>>and dont-continue-without-my-approval. Throw in some helpers for
>>synchronizing module state to disk. The kernel side of this
>>shouldn't really be very hard, but all of the userland quota
>>utilities would need to be rewritten as they are tied to UFS at the
>>block level.  This all from about 3 years ago, and I haven't
>>implemented any of it.  I rock!

Sounds, very interesting.

>>
>>Sam
> 
> Would you be able to write up some design specs for getting all this 
> done?  This might be a prime example of something to try to get 
> funding for development.
> 

I would be willing to donate some time to work on designing and building 
this.  Especially if working with someone who knows a lot more about 
filesystems than me. :)

Chris


More information about the freebsd-hackers mailing list