All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Zafman <dzafman@redhat.com>
To: Alex Elsayed <eternaleye@gmail.com>, ceph-devel@vger.kernel.org
Subject: Re: 'Immutable bit' on pools to prevent deletion
Date: Sat, 17 Jan 2015 15:28:59 -0800	[thread overview]
Message-ID: <54BAF03B.2000400@redhat.com> (raw)
In-Reply-To: <m9ec1p$kts$1@ger.gmane.org>


The most secure way would be one in which you can only create pools with 
WORM set and can't ever change the WORM state of a pool.  I like this 
simple/secure approach as a first cut.

David

On 1/17/15 11:09 AM, Alex Elsayed wrote:
> Sage Weil wrote:
>
>> On Fri, 16 Jan 2015, Alex Elsayed wrote:
>>> Wido den Hollander wrote:
>>>
>>> <snip>
>>>> Is it a sane thing to look at 'features' which pools could have? Other
>>>> features which might be set on a pool:
>>>>
>>>> - Read Only (all write operations return -EPERM)
>>>> - Delete Protected
>>> There's another pool feature I'd find very useful: a WORM flag, that
>>> permits only create & append (at the RADOS level, not the RBD level as
>>> was an Emperor blueprint).
>>>
>>> In particular, I'd _love_ being able to make something that takes
>>> Postgres WAL logs and puts them in such a pool, providing real guarantees
>>> re: consistency. Similarly, audit logs and such for compliance.
>> How would you want this to work?
>>
>> - If the bit is set, object creates are allowed, but not deletes?  What
>> about append?
>>
>> - Are you allowed to clear the bit with something like 'ceph osd pool set
>> <pool> worm false' ?
> I'd say that a WORM pool would allow 'create' and 'append' only - that fits
> well with the classic notions of WORM media, and would allow natural
> implementations of virtualized WORM tape libraries and such for people who
> need compatibility (if only object creation was supported, you get issues
> where either you have absurd tiny objects or risk data loss on failure to
> write a larger buffered chunk). Similarly, audit records (like selinux logs,
> that might be written by log daemons) don't really come in nice object-sized
> chunks. You want to always have the newest in the archive, so you really
> don't want to buffer up to that.
>
> I'd also figure that WORM's main purpose is assurance/compliance - you want
> to _know_ that nobody could have turned the bit off, futzed with the data,
> and then turned it back on. Otherwise, you'd just write your clients to only
> use create/append, and have no need for WORM at the pool level. Because of
> that, if the flag can be cleared via commands, it should be possible for the
> admins to forbid it (by flat denying it in config, via some keying system,
> via the bits being a ratchet, whatever - I'm not especially concerned by how
> the guarantee is provided, so long as it can be).
>
> Setting it should probably also be privileged, since it'd be trivial to
> cause a DOS by setting it on (say) a CephFS pool - although handling that
> concern is likely out-of-scope for now, since there are easier ways to ruin
> someone's day at the RADOS level.
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


      reply	other threads:[~2015-01-17 23:29 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-15 14:46 'Immutable bit' on pools to prevent deletion Wido den Hollander
2015-01-15 15:39 ` Dan Van Der Ster
2015-01-15 15:52   ` Wido den Hollander
2015-01-15 15:45 ` Mike Dawson
2015-01-15 15:58 ` Yehuda Sadeh
2015-01-15 17:24   ` Sage Weil
2015-01-15 17:44     ` Sage Weil
2015-01-15 17:55       ` Gregory Farnum
2015-01-15 18:07         ` Sage Weil
2015-01-15 18:45           ` Gregory Farnum
2015-01-15 19:02           ` John Spray
2015-01-15 19:07             ` Sage Weil
2015-01-15 22:02               ` John Spray
2015-01-16  7:55               ` Wido den Hollander
2015-01-16  9:50     ` Sebastien Han
2015-01-16 10:55       ` Wido den Hollander
2015-01-16 14:46         ` Sage Weil
2015-01-19 19:32           ` Mykola Golub
2015-01-19 20:28             ` Sage Weil
     [not found]         ` <597309080.14312.1421421468640.open-xchange@websrv>
2015-01-16 20:45           ` Wido den Hollander
2015-01-17  2:31 ` Alex Elsayed
2015-01-17 13:11   ` Wido den Hollander
2015-01-17 16:24   ` Sage Weil
2015-01-17 19:09     ` Alex Elsayed
2015-01-17 23:28       ` David Zafman [this message]

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=54BAF03B.2000400@redhat.com \
    --to=dzafman@redhat.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=eternaleye@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.