I will restate the problem I am having with Lustre.

With my I/O instrumentation library, I want to use *llapi_file_get_stripe*() to find the OSTs that a file of interest is striped on and then monitor only those OST's using files in the directory /proc/fs/lustre/osc. This needs to be done programmatically, and in a general sense, with potentially only a relative path name.

*llapi_file_get stripe*() yields
lmm_stripe_count:   1
lmm_stripe_size:    1048576
lmm_pattern:        1
lmm_layout_gen:     0
lmm_stripe_offset:  12

lmm_oi.oi_fid *0x**194aa*

*obdidx* objid           objid           group
*12*        31515860 0x1e0e4d4                0

If I use *obdidx=12=0xc *to find the OST in directory /proc/fs/lustre/osc, I get multiple OSTs as there are multiple file systems with an ost of index 12 ( note that obdidx is decimal and entries in */proc/fs/lustre/osc* are hexadecimal, so we are looking for OST000c ).

%ls -ld /proc/fs/lustre/osc/*OST000c*
dr-xr-xr-x 2 root root 0 Jul 18 14:31 /proc/fs/lustre/osc/nbp1-OST000c-osc-ffff88090509f000 dr-xr-xr-x 2 root root 0 Jul 18 14:31 /proc/fs/lustre/osc/nbp2-OST000c-osc-ffff881038061c00 dr-xr-xr-x 2 root root 0 Jul 18 14:31 /proc/fs/lustre/osc/nbp6-OST000c-osc-ffff88084c405400 dr-xr-xr-x 2 root root 0 Jul 18 14:31 /proc/fs/lustre/osc/nbp7-OST000c-osc-ffff8807a8e1d400 dr-xr-xr-x 2 root root 0 Jul 18 14:31 /proc/fs/lustre/osc/nbp8-OST000c-osc-ffff88078339b800 dr-xr-xr-x 2 root root 0 Jul 18 14:31 /proc/fs/lustre/osc/nbp9-OST000c-osc-ffff8807833a5400

So I need to figure out which directory entry applies to the OST of my file of interest.

I looked at the inode for clues.  I did an stat() of the file to get

dev_t     st_dev=0xcc5d43c2
ino_t     st_ino=0x2000311ed0194aa

I notice the *lov_user_md->oi_fid=0x0194aa,* populated by *llapi_file_get_stripe*(), is reflected in the lower part of *stat.st_ino=0x2000311ed0194aa*. My question is, "Does the remainder of st_ino, *2000311ed*, give me any clue as to which OST I should use out of */proc/fs/lustre/osc*?" The same question applies to the OST's objid=0x1e0e4d4and the file's st_dev=0xcc5d43c2.

Because I know a priori that the file is in the lov nbp2, I know I need to find /proc/fs/lustre/osc/*nbp2-OST000c-osc-ffff881038061c00.***What does the *ffff881038061c00 *represent? It is the same value for all OST's in a given lov, so I am guessing it is lov related.*
*

There are over 1200 OST on the node, so I want to minimize the number that I instrument. Any information that would shed some light on this would be greatly appreciated.
John

--
I/O Doctors, LLC
507-766-0378
[email protected]

_______________________________________________
lustre-discuss mailing list
[email protected]
http://lists.lustre.org/listinfo.cgi/lustre-discuss-lustre.org

Reply via email to