CEPH filesystem development
 help / color / mirror / Atom feed
From: Matt Benjamin <mbenjamin@redhat.com>
To: 陈敏 <chenmin@xsky.com>
Cc: The Sacred Order of the Squid Cybernetic <ceph-devel@vger.kernel.org>
Subject: Re: reply: rename PR
Date: Fri, 9 Sep 2016 12:39:28 -0400 (EDT)	[thread overview]
Message-ID: <1854074380.83755406.1473439168860.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <SG2PR02MB1198C040AE2CC5270488E028C6FA0@SG2PR02MB1198.apcprd02.prod.outlook.com>

Hi,

thanks for the more detailed info, inline

----- Original Message -----
> From: "陈敏" <chenmin@xsky.com>
> To: "Matt Benjamin" <mbenjamin@redhat.com>
> Cc: "The Sacred Order of the Squid Cybernetic" <ceph-devel@vger.kernel.org>
> Sent: Friday, September 9, 2016 12:05:37 PM
> Subject: reply: rename PR
> 
> Hi Matt
> 
> 	I have noticed rgw file rename is not POSIX strictly, because src file and
> 	dest file own different inode number (hash of bucket + object).I have not
> 	tested on nfs-ganesha upstream for some reason, and will checkout to master
> 	to test FSAL_RGW later.
> 	For NFS scaling, the main problem is that different NFS-ganesha server keep
> 	its inode cache in local memory and there is no global view of inode
> 	cache(directory tree) in the NFS-ganesha cluster connectted to the same rgw
> 	bucket.

the idea is that there should be no need to do so, with the intended/current update strategy--the file id strategy actually helps with this;  broadly, we see the RGW NFS interface as intentionally divergent from POSIX, but with some room for flexibility as regards just how;  certainly, in the namespace, we don't want to chase Unix semantics badly

 For I have tested NFS-ganesha HA with pacemaker+corosync wachted
> 	and found inode cache cannot be shared between primary and backup.

I think the invalidate changes substantially address this, but we're actually going to be validating/working on HA next, so we'll be able to dig more into it and don't have specifics yet

 For
> 	NFSv4, session state and lock state should be persist to storage, so the
> 	NFS-ganesha cluster can share them.

a bunch of choices there;  currently, we don't support lock operations, and the primary reason was that again, currently, the only update strategy RGW supports is atomic overwrite;  we have speculated on opening up other options and even pNFS, but that's pretty blue sky;]

the current ganesha ha options keep track of most protocol state (e.g., sessions), and don't expose it to the fsals (whereas locks can);  it might be helpful if you joined the nfs-ganesha-devel mailing list to discuss further?

as regards file locking...

> 	In addition, what is the plan of flock in rgw file, for it is important to
> 	NFS cluster.

it's pretty simple to implement (and materialize) locks the way we do other attrs;  are they useful in the current atomic update model--and if so, which ones (whole-file?), and with what semantics (e.g., would such locks be mandatory [permitted in NFSv4.1+], and would they block renames?));  btw, on that point, I have little interest in implementing the messy edges of NFS vs. posix semantics, in general;

xattrs ARE coming too, as there is an IETF draft and prototype implementation of protocol xattrs which would use it;  on the xattr topic, while we're on it, at least one nfs-s3 implementation I'm aware of does things with attributes with an extra-protocol mechanism--we haven't thought really at all about that, have you folks?

> 
> Chen Min
> 
> -----邮件原件-----
> 发件人: Matt Benjamin [mailto:mbenjamin@redhat.com]
> 发送时间: 2016年9月9日 22:17
> 收件人: 陈敏 <chenmin@xsky.com>
> 抄送: The Sacred Order of the Squid Cybernetic <ceph-devel@vger.kernel.org>
> 主题: rename PR
> 
> Hi Chen,
> 
> I wanted to let you know, I merged your exact-match PR.  Now, I suspect that
> you're also not running a recent-enough version of nfs-ganesha, because I
> think that the rename issue you fixed wouldn't easily reproduce if you were.
> 
> A key point I wanted to highlight is that it's part of the scaling (and ha,
> and...) strategy that our nfs file handles are name-stable, rather than
> arbitrary values.  One implication of that is that when a file is renamed,
> the renamed object has a different file id and hence NFS file handle value
> than it did before the rename.  We use the parent directory's change
> attribute to ensure that clients that had the vnode cached see an
> invalidate.  (Nothing in your PR contradicts that, of course.)
> 
> Another strategic decision we made is, we don't rename directories (just
> stating it for posterity). :)
> 
> Cheers,
> 
> Matt
> 
> --
> Matt Benjamin
> Red Hat, Inc.
> 315 West Huron Street, Suite 140A
> Ann Arbor, Michigan 48103
> 
> http://www.redhat.com/en/technologies/storage
> 
> tel.  734-707-0660
> fax.  734-769-8938
> cel.  734-216-5309
> 

-- 
Matt Benjamin
Red Hat, Inc.
315 West Huron Street, Suite 140A
Ann Arbor, Michigan 48103

http://www.redhat.com/en/technologies/storage

tel.  734-707-0660
fax.  734-769-8938
cel.  734-216-5309

      reply	other threads:[~2016-09-09 16:39 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-09 16:05 reply: rename PR 陈敏
2016-09-09 16:39 ` Matt Benjamin [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=1854074380.83755406.1473439168860.JavaMail.zimbra@redhat.com \
    --to=mbenjamin@redhat.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=chenmin@xsky.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox