On Tue, Jul 22, 2014 at 8:38 AM, Aaron Ten Clay <aarontc at aarontc.com> wrote: > Hi Cephers, > > I'm trying to recover from an inconsistent object issue. I know which object > is inconsistent across its two replicas, but I'm having difficulty > determining which of the three copies is correct. Is there an easy way to > determine which file in CephFS the object is a part of? (I know how to go > from a file in CephFS to the objects, but not the other way around!) > > The object with troubles is: > > /current/0.56_head/DIR_6/DIR_5/DIR_D/DIR_9/10000023de2.00000180__head_67269D56__0 > > And each of the three acting OSDs has different contents for this file. This isn't very simple right now, and the effort involved depends on which version you're running, but I think this all applies to Dumpling onward: 1) The file *inode* is 0x10000023de2, and this is object 180 (or maybe 0x180? Starting from 0). I don't think this actually helps you much, but fyi. 2) On the first object, there's a "parent" xattr which contains a "backtrace". This is a binary object, but you can probably just read it in less and figure out the the path from that (each dentry has its name output in ascii; they'll be separated by binary data which includes inode numbers, wrapping for the encoding scheme, etc). I think it's in reverse order, so you'll be starting from the file and going up. 3) ...actually, as I look it over now, the backtrace may not contain the actual file name. But you can navigate to the containing directory and get the inode numbers of its file contents to associate it. -Greg Software Engineer #42 @ http://inktank.com | http://ceph.com