<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:49:00 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-5155] Need a way to map ZFS OSD objects to Lustre filenames</title>
                <link>https://jira.whamcloud.com/browse/LU-5155</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;We would like a way to map object numbers in ZFS back to filenames in the Lustre filesystem.&lt;/p&gt;

&lt;p&gt;This will be useful in a number of cases, but a common one will be when ZFS detects corrupt files, and we need to figure out which Lustre file is effected.&lt;/p&gt;</description>
                <environment></environment>
        <key id="25055">LU-5155</key>
            <summary>Need a way to map ZFS OSD objects to Lustre filenames</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.whamcloud.com/images/icons/priorities/major.svg">Major</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="bzzz">Alex Zhuravlev</assignee>
                                    <reporter username="morrone">Christopher Morrone</reporter>
                        <labels>
                            <label>zfs</label>
                    </labels>
                <created>Fri, 6 Jun 2014 18:02:27 +0000</created>
                <updated>Tue, 17 Mar 2015 12:45:27 +0000</updated>
                            <resolved>Tue, 17 Mar 2015 12:45:27 +0000</resolved>
                                                    <fixVersion>Lustre 2.8.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                                                            <comments>
                            <comment id="86045" author="pjones" created="Fri, 6 Jun 2014 19:45:38 +0000"  >&lt;p&gt;Hi Alex&lt;/p&gt;

&lt;p&gt;Could you please advise on this one?&lt;/p&gt;

&lt;p&gt;Thanks&lt;/p&gt;

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="86058" author="adilger" created="Sat, 7 Jun 2014 06:29:15 +0000"  >&lt;p&gt;This should hopefully be pretty easy. Each OST object holds the parent MDT inode FID in the &quot;fid&quot; xattr and then &quot;lfs fid2path /mount $(parent FID)&quot; can be used to generate the pathname on the on any client. &lt;/p&gt;

&lt;p&gt;On ldiskfs it is possible to access the &quot;fid&quot; xattr on a mounted OST via:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;debugfs -c -R &apos;stat /O/$seq/d$((oid % 32))/$oid&apos; /dev/ostdev
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;or on the ldiskfs-mounted OST filesystem via the ll_decode_filter_fid utility.&lt;/p&gt;

&lt;p&gt;On ZFS it is possible that ll_decode_filter_fid may work, but it isn&apos;t possible to mount the OST concurrently between Lustre and ZPL to access the fid xattr on an object.&lt;/p&gt;

&lt;p&gt;It &lt;em&gt;might&lt;/em&gt; be possible to extend the &quot;FID2PATH&quot; ioctl interface to do the OST FID to MDT parent FID mapping directly from the client and have it continue to generate the full path, but I wouldn&apos;t want to commit to that without first looking at the code in detail.&lt;/p&gt;

&lt;p&gt;Another less complex option would be to extend  l_decode_filter_fid to do an ioctl locally on the OST to look up the MDT parent FID so that it can be used by fid2path. &lt;/p&gt;</comment>
                            <comment id="87638" author="morrone" created="Thu, 26 Jun 2014 22:45:28 +0000"  >&lt;p&gt;Thanks, I was able to get the fid from the xattr using zdb.  I made a little python script to call zdb and convert the string into standard Lustre FID text form.  It is here for reference:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://raw.githubusercontent.com/chaos/lustre-tools-llnl/1.8/scripts/zfsobj2fid&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://raw.githubusercontent.com/chaos/lustre-tools-llnl/1.8/scripts/zfsobj2fid&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="106529" author="gerrit" created="Tue, 10 Feb 2015 21:27:46 +0000"  >&lt;p&gt;Isaac Huang (he.huang@intel.com) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/13721&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/13721&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5155&quot; title=&quot;Need a way to map ZFS OSD objects to Lustre filenames&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5155&quot;&gt;&lt;del&gt;LU-5155&lt;/del&gt;&lt;/a&gt; scripts: added contrib/scripts/zfsobj2fid.py&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: e27d0ae3328fbccf5a250bee0ad26dc2c9fc4621&lt;/p&gt;</comment>
                            <comment id="106538" author="adilger" created="Tue, 10 Feb 2015 21:54:55 +0000"  >&lt;p&gt;A better long-term solution would be to extend the fid2path code to accept an OST object FID directly, have it fetch the trusted.fid xattr from the OST object (possibly at the MDS via OUT RPC as LFSCK does), extract the parent inode FID, and proceed with normal fid2path processing (maybe returning -EREMOTE to the client if the inode FID is on a different MDT and continuing on a different MDT).&lt;/p&gt;</comment>
                            <comment id="109513" author="gerrit" created="Wed, 11 Mar 2015 23:39:27 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;http://review.whamcloud.com/13721/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/13721/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5155&quot; title=&quot;Need a way to map ZFS OSD objects to Lustre filenames&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5155&quot;&gt;&lt;del&gt;LU-5155&lt;/del&gt;&lt;/a&gt; scripts: added lustre/scripts/zfsobj2fid&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 2ccda307213e93439fb3e182eb2618f8dac21419&lt;/p&gt;</comment>
                            <comment id="109830" author="pjones" created="Tue, 17 Mar 2015 12:45:27 +0000"  >&lt;p&gt;Landed for 2.8&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                            <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzwnwf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>14223</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>