Finding CephFS file from object ID

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Ceph Dev]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux