On 07/08/2015 03:38 AM, Csaba Henk wrote:
Hi,
I'm tossing in the term "dismantling" to indicate
the act of making a share less available
(deprovision (deny access to) / unmanage / delete
it).
I find it ambiguous what is to be done with
the share's data('s accessibility) upon
dismantling. Wrt. the concerns to follow below,
I have these questions:
- what is expected?
- what is suggested?
- what is acceptable?
- what do existing drivers do?
- should we explicitly specify/
disambiguate the answer to
these questions (in a less
informal place than this thread)?
- if there are multiple
acceptable behaviors, should
this variance be exposed to
the users in any way?
So the particular concerns:
1. Upon deleting a share, should the share's data
be shredded?
A share delete request is usually passed down to the
storage backend as its appropriate disallocation
method. So far so good -- the dilemma is, beyond
this, should we take extra measures to shred
(irrecoverably destroy) the data contained in the
share (to protect the privacy of the former tenant)?
(Most likely it varies from backend to backed how
close its basic deallocation method gets to
"irrecoverable destruction".)
The contract for deletion is that one a share is deleted, its data
should never be accessible to that user/tenant or any other user/tenant
again. This would seem to be an obvious requirement but it's actually
violated by cinder in the case of deleting volumes on the LVM driver in
the normal mode, and you have to turn on a slow-delete option to make
the LVM driver meet the expected delete contract.
Note that it's not required that deleted shares are not accessible by an
administrator. Such a requirement would be kind of silly because
administrators can always read the contents of shares if they want to.
So it would be acceptable to do lazy deletions of shares so long as the
deleted shares are never accessible to any user without administrator
intervention.
Some people are interested in secure deletion (cryptographic data
shredding). Such a feature would be perfectly acceptable to implement
using an optional extra spec / share type for those that want the extra
security.
2. Should share deprovisioning be disruptive?
Let me introduce another ad-hoc term in the context
of an authentication system -- disruptiveness of
revoking access to some resource. The act of
revoking access is disruptive if it takes immediate
effect on all potential and actual accessors;
non-distruptive if only further access attepts of
potential accessors is affected.
So if a certain venue comes with up a dress code as
of which shorts are not allowed, then it shall be
non-distruptive if wearing shorts is checked only at
the gate; while it shall be disruptive if all
people in the venue wearing shorts will be kicked
out immediately. In computing, UNIX file access is
non-disruptive while NFS exporting is disruptive (at
least Linux with knfsd it is, as I just verified).
I'm sorry to burden you with my terminological
creativity, were there an established term for this;
I just don't know of such.
So I hope the question makes sense now -- a tenant
gets access to a share, mounts it, starts to use it,
then the tenant's access gets revoked. What should
happen to the mount?
Beyond pure disruptiveness (all further fops fail
with EACCES) and pure non-disruptiveness (the mount
can be used until unmounted), there is the
unpleasant middle ground that all further fops
will hang. While that sounds to be far from ideal,
the question arises if it's acceptable.
Access deny should always result in immediate loss of access to the
share. It's not okay for a client to continue reading/writing data to a
share after access has been denied. The semantics for what should happen
on the client side after access is denied are undefined and left up to
the client. Many clients cache data and may continue to run from their
cached copies until they find out that their access has been cut off,
then return some application error. The important thing is that from the
server's point of view, no writes/reads are serviced from clients
without access.
Regards
Csaba
__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev