<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:36:35 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-10606] HSM info as part of LOV layout xattr</title>
                <link>https://jira.whamcloud.com/browse/LU-10606</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;h2&gt;&lt;a name=&quot;Motivation&quot;&gt;&lt;/a&gt;Motivation&lt;/h2&gt;
&lt;p&gt;As mentioned in &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10092&quot; title=&quot;PCC: Lustre Persistent Client Cache&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10092&quot;&gt;&lt;del&gt;LU-10092&lt;/del&gt;&lt;/a&gt; and discussed in a concall, it seems that treating Lustre&apos;s HSM information as a first-class layout type can bring an alignment of common code paths:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Conceptually, mirroring or migrating between Lustre pools is very similar to mirroring or migrating to an HSM&lt;/li&gt;
	&lt;li&gt;_lfs migrate,&#160;_FLR mirroring,&#160;and HSM data movement both are done through a userspace copytool. The same layout-aware copytool might be usable for all these cases.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-6081&quot; title=&quot;hsm: add file migrate support&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-6081&quot;&gt;LU-6081&lt;/a&gt; provides an option to pipe&#160;&lt;em&gt;lfs migrate&lt;/em&gt; requests though the MDS HSM coordinator queue.&#160;&lt;em&gt;lfs mirror resync&lt;/em&gt; could be treated similarly.&lt;/li&gt;
	&lt;li&gt;There may be policies involved with mirroring, migrating, and archiving&#160;&lt;/li&gt;
	&lt;li&gt;Some polices are internal to Lustre, some may be external (e.g. &lt;em&gt;hsm restore&lt;/em&gt; is internal, &lt;em&gt;lfs mirror resync&lt;/em&gt;&#160;delayed is external, _lfs mirror resync&#160;_immediate is internal), blurring the lines of where policy is managed.&lt;/li&gt;
	&lt;li&gt;It may be desirable to expand the idea of striping hints to also include&#160;&lt;/li&gt;
	&lt;li&gt;There may be a desire to keep partial file components in the HSM, for limiting restore extents&#160;or for PFL layouts.&lt;/li&gt;
	&lt;li&gt;There may be other types of layouts beyond HSM where clients may not be able to access that layout&apos;s format/layout type directly (e.g. RAID6 parity), and would request an HSM-style restore to a more common layout type.&#160;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;From &lt;a href=&quot;https://jira.hpdd.intel.com/browse/LU-10092?focusedCommentId=210784&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-210784&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;LU-10092&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;blockquote&gt;
&lt;p&gt;This potentially also integrate nicely with composite files and FLR if we enhanced the Lustre layout to include an &quot;HSM layout&quot; component (equivalent to LOV_MAGIC_V1).&#160; The &quot;LOV_MAGIC_HSM&quot; component describes a file in an HSM archive, storing the HSM archive number, &quot;UUID&quot; of the file within the archive, and other parameters (e.g. archive timestamp) needed to identify the file.&#160; The archive timestamp could be useful for storing multiple replicas of the file in HSM and using it for file versioning, along with the FLR mirror_io equivalent to open up a specific component to access an older version of the file.&lt;/p&gt;&lt;/blockquote&gt;&#160;&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;Implementation&quot;&gt;&lt;/a&gt;Implementation&lt;/h2&gt;
&lt;p&gt;Every layout should get a set of common&#160;parameters&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;stored extent range, offset&lt;/li&gt;
	&lt;li&gt;layout generation&lt;/li&gt;
	&lt;li&gt;timestamp&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/help_16.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/li&gt;
	&lt;li&gt;read priority (8b)&lt;/li&gt;
	&lt;li&gt;write priority (8b)&lt;/li&gt;
	&lt;li&gt;policy type (16b, see below)&lt;/li&gt;
	&lt;li&gt;flags:
	&lt;ul&gt;
		&lt;li&gt;writable (turn off to make immutable)&lt;br/&gt;
**&#160;readable (maybe never want to read very slow devices)&lt;/li&gt;
		&lt;li&gt;data missing (dead OST, or missing HSM file; unreadble)&lt;br/&gt;
**&#160;delay_sync (delayed resync only, not immediate)&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The HSM layout would roughly mirror the contents of today&apos;s HSM EA:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;archive number (32b)&lt;/li&gt;
	&lt;li&gt;archive type (if # might be client ID for PCC, we might want another classifier for different types of archives)&lt;/li&gt;
	&lt;li&gt;archive file key?&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Adding an archive file key might be helpful where an HSM backend can&apos;t easily reference files by the Lustre FID. Problematically, this might be large -  1024 char string?&lt;/p&gt;

&lt;h2&gt;&lt;a name=&quot;Layoutaspolicy&quot;&gt;&lt;/a&gt;Layout-as-policy&lt;/h2&gt;
&lt;p&gt;In general with FLR we are starting to have &quot;implied policies&quot; in the layout: the presence of an FLR layout implies that the file will be copied to the mirror. It specifies a timeframe as well: delayed or immediate. And the number of mirrors requested. It might be good to embrace this a little bit and think about adding some more explicit policy details to the layouts:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Schedule delayed resync on close-after-write&lt;/li&gt;
	&lt;li&gt;Evacuate &quot;primary&quot; mirror after completing resync (for e.g. SSD to HDD tiering)&lt;/li&gt;
	&lt;li&gt;Redundancy goal&lt;/li&gt;
	&lt;li&gt;Restore target striping hint (lov_user_md?)&lt;br/&gt;
Since it is difficult to predict all the use cases here, it may make sense to leave such a policy in a YAML or JSON extensible format.&lt;br/&gt;
I understand that this opens a big can of worms; I think for starters we can just add a small integer &quot;policy number&quot; and leave further definition for the future. &lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="50588">LU-10606</key>
            <summary>HSM info as part of LOV layout xattr</summary>
                <type id="2" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11311&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="1" iconUrl="https://jira.whamcloud.com/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="qian_wc">Qian Yingjin</assignee>
                                    <reporter username="nrutman">Nathan Rutman</reporter>
                        <labels>
                    </labels>
                <created>Tue, 6 Feb 2018 00:06:47 +0000</created>
                <updated>Tue, 9 Jan 2024 19:10:26 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>13</watches>
                                                                            <comments>
                            <comment id="227536" author="nrutman" created="Tue, 8 May 2018 20:06:44 +0000"  >&lt;p&gt;The HSM layout should address current shortcomings as well, so:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;archive number (32b)&lt;/li&gt;
	&lt;li&gt;archive type (32b)&lt;/li&gt;
	&lt;li&gt;archive flags (32b)&lt;/li&gt;
	&lt;li&gt;archive file key len (16b)&lt;/li&gt;
	&lt;li&gt;archive file key (max 1024B) (size of S3 keys)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Common layout flags (for all layout types):&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;unavailable (dead OST, or missing HSM file; unreadable)&lt;/li&gt;
	&lt;li&gt;immutable (this mirror is write once)&lt;/li&gt;
	&lt;li&gt;purge_delay (data can be removed after replicating elsewhere)&lt;/li&gt;
	&lt;li&gt;purge_immed (remove data from this layout immediately after replicating)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;write_priority would be used to determine an implied preferred layout. E.g. if mirror A and mirror B are both at wr_prio 1, then clients write to them both simultaneously.  Mirror C at prio 2 is written only if A or B are unavailable. (The number of simultaneous mirrors to write should be determined by the count of prio 1 items.) &lt;/p&gt;</comment>
                            <comment id="227539" author="nrutman" created="Tue, 8 May 2018 21:46:55 +0000"  >&lt;p&gt;@john.hammond any input/opinion on this? I think I&apos;m going to start pushing it at Cray.&lt;/p&gt;</comment>
                            <comment id="247124" author="nrutman" created="Tue, 14 May 2019 21:51:53 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11376&quot; title=&quot;Special file/dir to represent DAOS Containers&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11376&quot;&gt;&lt;del&gt;LU-11376&lt;/del&gt;&lt;/a&gt; adds &quot;foreign&quot; layout type. &quot;HSM&quot; can just be a different type of foreign layout.&lt;/p&gt;</comment>
                            <comment id="275466" author="gerrit" created="Wed, 15 Jul 2020 10:00:04 +0000"  >&lt;p&gt;Yingjin Qian (qian@ddn.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/39387&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/39387&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10606&quot; title=&quot;HSM info as part of LOV layout xattr&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10606&quot;&gt;LU-10606&lt;/a&gt; hsm: store HSM xattr as a basic layout&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: bc21703ce6a3fe3eb541bf3800cc2efaeed0af76&lt;/p&gt;</comment>
                            <comment id="276922" author="gerrit" created="Fri, 7 Aug 2020 09:03:49 +0000"  >&lt;p&gt;Yingjin Qian (qian@ddn.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/39599&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/39599&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10606&quot; title=&quot;HSM info as part of LOV layout xattr&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10606&quot;&gt;LU-10606&lt;/a&gt; hsm: convert old HSM xattr into HSM layout&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 0bf3098f389f03620e915a9e765378d83ac74b36&lt;/p&gt;</comment>
                            <comment id="334313" author="nrutman" created="Tue, 10 May 2022 19:16:07 +0000"  >&lt;p&gt;Seems like some work was started here and then abandoned? After the LUG22 HSM presentation today, I&apos;d like to nudge this again with maybe a clearer list of benefits:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;partial file restore. HSM layout as one element of a composite layout, maybe even using something like SEPFL.&lt;/li&gt;
	&lt;li&gt;keep file head on disk, archive long tail. Some file types have useful info embedded at the front, the rest isn&apos;t regularly used (e.g. file icons, or hdf5 info)&lt;/li&gt;
	&lt;li&gt;multiple archives per file. Current code only lists a single archive, no redundancy.&lt;/li&gt;
	&lt;li&gt;mirror to hsm. FLR layout with HSM as second mirror, allows for tracking archive info even when file is restored in Lustre. Allows for immediate punch of primary mirror on low space (if hsm mirror is synced).&lt;/li&gt;
&lt;/ul&gt;

</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10120">
                    <name>Blocker</name>
                                            <outwardlinks description="is blocking">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="48631">LU-10092</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="53308">LU-11376</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="50196">LU-10499</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="28048">LU-6081</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="59458">LU-13637</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="55787">LU-12359</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="76134">LU-16837</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="75392">LU-16700</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="51603" name="Combine_FLR+HSM+PCC-RW+PCC-RO_HLD.docx" size="299316" author="adilger" created="Tue, 9 Jan 2024 19:10:26 +0000"/>
                    </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|hzzs7b:</customfieldvalue>

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