<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.lustre.org/index.php?action=history&amp;feed=atom&amp;title=ZFS_OSD_Storage_Basics</id>
	<title>ZFS OSD Storage Basics - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.lustre.org/index.php?action=history&amp;feed=atom&amp;title=ZFS_OSD_Storage_Basics"/>
	<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;action=history"/>
	<updated>2026-09-02T21:26:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=4586&amp;oldid=prev</id>
		<title>Ofaaland: Replaced redundant information about servicenode/failnode options with a link to the page discussing them</title>
		<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=4586&amp;oldid=prev"/>
		<updated>2022-08-18T20:43:32Z</updated>

		<summary type="html">&lt;p&gt;Replaced redundant information about servicenode/failnode options with a link to the page discussing them&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:43, 18 August 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l99&quot;&gt;Line 99:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 99:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The command line formats a new MGT that will be used by the MGS for storage. The command further defines a mirrored zpool called mgspool consisting of two devices, and creates a ZFS dataset called mgt. Two server NIDs are supplied as service nodes for the MGS, &amp;lt;code&amp;gt;192.168.227.11@tcp1&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;192.168.227.12@tcp1&amp;lt;/code&amp;gt;.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The command line formats a new MGT that will be used by the MGS for storage. The command further defines a mirrored zpool called mgspool consisting of two devices, and creates a ZFS dataset called mgt. Two server NIDs are supplied as service nodes for the MGS, &amp;lt;code&amp;gt;192.168.227.11@tcp1&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;192.168.227.12@tcp1&amp;lt;/code&amp;gt;.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The &amp;lt;code&amp;gt;failnode&amp;lt;&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;code&amp;gt; syntax is similar, but is used to define only a failover target for the storage service. The &amp;lt;code&amp;gt;failnode&amp;lt;&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;code&amp;gt; syntax is an older method for creating services and implicit in the definition of the storage service is the notion of a primary server and one or more secondary, or failover servers&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Only the failover servers are included in the command-line definition&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The primary is only written to the storage service configuration the first time that the formatted device is mounted. Whichever host mounts the storage first will have its NID written in as the effective primary server. &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Refer to https:&lt;/ins&gt;//&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wiki&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lustre&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;org&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Introduction_to_Lustre_Object_Storage_Devices_(OSDs)&lt;/ins&gt;#&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Defining_Service_Failover_&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;28&lt;/ins&gt;--&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;failnode_vs_&lt;/ins&gt;--&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;servicenode&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;29 for differences between &lt;/ins&gt;&amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;--failnode&lt;/ins&gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;servicenode&lt;/ins&gt;&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Example format command with the &amp;lt;code&amp;gt;failnode&amp;lt;&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;code&amp;gt; syntax:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[root@rh7z-mds1 ~]&lt;/del&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mkfs&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lustre &lt;/del&gt;--&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mgs \&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  &lt;/del&gt;--&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;failnode 192&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;168.227.12@tcp1 \&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  --backfstype=zfs \&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  mgspool/mgt mirror sda sdc&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Here, the failover host is identified as &lt;/del&gt;&amp;lt;code&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;192.168.227.12@tcp1&lt;/del&gt;&amp;lt;/code&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, one metadata server in an HA pair (&lt;/del&gt;and &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;which, incidentally, has the hostname &lt;/del&gt;&amp;lt;code&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rh7z&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mds2&amp;lt;/code&amp;gt;). The &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command was executed on &amp;lt;code&amp;gt;rh7z&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mds1&amp;lt;/code&amp;gt; (NID: &amp;lt;code&amp;gt;192.168.227.11@tcp1&amp;lt;/code&amp;gt;), and the mount command must also be run from this host when the MGS service starts for the very first time. Otherwise, the primary NID will not be written to the storage configuration, and the failover mechanism will not work as expected. &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; If, after formatting the storage, the MGT is mounted on &amp;lt;code&amp;gt;192.168.227.12@tcp1&lt;/del&gt;&amp;lt;/code&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, then both the primary NID and the failover NID will be the same. The intended primary host, &amp;lt;code&amp;gt;192.168.227.11@tcp1&amp;lt;/code&amp;gt;, would be excluded from being able to run the MGS service&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Wherever possible, use the &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;servicenode&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; syntax to define the high availability configuration for Lustre services.&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Wherever possible, use the &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;servicenode&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; syntax to define the high availability configuration for Lustre services.&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_lustre_org:diff::1.12:old-4583:rev-4586 --&gt;
&lt;/table&gt;</summary>
		<author><name>Ofaaland</name></author>
	</entry>
	<entry>
		<id>http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=4583&amp;oldid=prev</id>
		<title>Ofaaland: Fix indentation by terminating unordered list</title>
		<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=4583&amp;oldid=prev"/>
		<updated>2022-08-18T20:27:01Z</updated>

		<summary type="html">&lt;p&gt;Fix indentation by terminating unordered list&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:27, 18 August 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l53&quot;&gt;Line 53:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 53:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;zpool create tank raidz2 sda sdb sdc sdd sde sdf&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;zpool create tank raidz2 sda sdb sdc sdd sde sdf&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/li&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/li&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l61&quot;&gt;Line 61:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 60:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;zpool create tank draid2:3d:1s sda sdb sdc sdd sde sdf&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;zpool create tank draid2:3d:1s sda sdb sdc sdd sde sdf&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/li&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/ul&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; In order to simplify the presentation of commands, the examples use the shortened block device name (i.e. &amp;lt;code&amp;gt;sdN&amp;lt;/code&amp;gt;), which is not guaranteed to refer to the same physical device on each server boot or when the server configuration is altered. The short block device path is therefore not recommended for use in production. When defining the storage pools, use a persistent device path, such as &amp;lt;code&amp;gt;/dev/disk/by-id/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; or some other reliable convention that ensures that the device file will always refer to the same physical device.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; In order to simplify the presentation of commands, the examples use the shortened block device name (i.e. &amp;lt;code&amp;gt;sdN&amp;lt;/code&amp;gt;), which is not guaranteed to refer to the same physical device on each server boot or when the server configuration is altered. The short block device path is therefore not recommended for use in production. When defining the storage pools, use a persistent device path, such as &amp;lt;code&amp;gt;/dev/disk/by-id/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; or some other reliable convention that ensures that the device file will always refer to the same physical device.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_lustre_org:diff::1.12:old-4582:rev-4583 --&gt;
&lt;/table&gt;</summary>
		<author><name>Ofaaland</name></author>
	</entry>
	<entry>
		<id>http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=4582&amp;oldid=prev</id>
		<title>Ofaaland: fix formatting.</title>
		<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=4582&amp;oldid=prev"/>
		<updated>2022-08-18T18:47:18Z</updated>

		<summary type="html">&lt;p&gt;fix formatting.&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:47, 18 August 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l451&quot;&gt;Line 451:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 451:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Refer to the [[:Category:ZFS OSD Tuning|ZFS OSD Tuning]] section for information on properties that influence ZFS and Lustre performance.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Refer to the [[:Category:ZFS OSD Tuning|ZFS OSD Tuning]] section for information on properties that influence ZFS and Lustre performance.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Refer to vdev_id.conf(5) and vdev_id(8) for more information on using /dev/disk/by-vdev/ paths where names reflect the slots devices are in&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Refer to vdev_id.conf(5) and vdev_id(8) for more information on using /dev/disk/by-vdev/ paths where names reflect the slots devices are in&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Refer to zpoolconcepts(7) and https://openzfs.github.io/openzfs-docs/Basic%20Concepts/dRAID%20Howto.html for the limitations and advantages of different vdev types&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Refer to zpoolconcepts(7) and https://openzfs.github.io/openzfs-docs/Basic%20Concepts/dRAID%20Howto.html for the limitations and advantages of different vdev types&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:ZFS Object Storage Devices (OSDs)]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:ZFS Object Storage Devices (OSDs)]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Lustre Systems Administration]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Lustre Systems Administration]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_lustre_org:diff::1.12:old-4581:rev-4582 --&gt;
&lt;/table&gt;</summary>
		<author><name>Ofaaland</name></author>
	</entry>
	<entry>
		<id>http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=4581&amp;oldid=prev</id>
		<title>Ofaaland: Add dRAID example</title>
		<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=4581&amp;oldid=prev"/>
		<updated>2022-08-18T18:46:15Z</updated>

		<summary type="html">&lt;p&gt;Add dRAID example&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:46, 18 August 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l56&quot;&gt;Line 56:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 56:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/li&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/li&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;li&amp;gt;Pool with &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;two RAIDZ2 &lt;/del&gt;&amp;lt;code&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vdevs&lt;/del&gt;&amp;lt;/code&amp;gt; (equivalent to RAID 6+&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;0&lt;/del&gt;):&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;li&amp;gt;Pool with &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a 2-parity/1-spare dRAID &lt;/ins&gt;&amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vdev&lt;/ins&gt;&amp;lt;/code&amp;gt; (equivalent to RAID 6 + &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hot spare&lt;/ins&gt;):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;zpool create tank &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;zpool create tank &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;draid2:3d:1s &lt;/ins&gt;sda sdb sdc sdd sde sdf&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  raidz2 &lt;/del&gt;sda sdb sdc sdd sde sdf &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  raidz2 sdg sdh sdi sdj sdk sdl&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l452&quot;&gt;Line 452:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 450:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Refer to the [[:Category:ZFS OSD Tuning|ZFS OSD Tuning]] section for information on properties that influence ZFS and Lustre performance.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Refer to the [[:Category:ZFS OSD Tuning|ZFS OSD Tuning]] section for information on properties that influence ZFS and Lustre performance.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Refer to vdev_id.conf(5) and vdev_id(8) for more information on using /dev/disk/by-vdev/ paths where names reflect the slots devices are in&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Refer to zpoolconcepts(7) and https://openzfs.github.io/openzfs-docs/Basic%20Concepts/dRAID%20Howto.html for the limitations and advantages of different vdev types&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:ZFS Object Storage Devices (OSDs)]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:ZFS Object Storage Devices (OSDs)]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Lustre Systems Administration]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Lustre Systems Administration]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_lustre_org:diff::1.12:old-2813:rev-4581 --&gt;
&lt;/table&gt;</summary>
		<author><name>Ofaaland</name></author>
	</entry>
	<entry>
		<id>http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=2813&amp;oldid=prev</id>
		<title>Malcolm: /* Formatting a ZFS OSD using zpool and mkfs.lustre */</title>
		<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=2813&amp;oldid=prev"/>
		<updated>2017-09-13T01:54:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Formatting a ZFS OSD using zpool and mkfs.lustre&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:54, 12 September 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l127&quot;&gt;Line 127:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 127:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;zpool create [-f] -O canmount=off \&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;zpool create [-f] -O canmount=off \&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  [ -O compression=lz4 ] \&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   [ -o ashift=&amp;lt;n&amp;gt; ] \&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   [ -o ashift=&amp;lt;n&amp;gt; ] \&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   -o cachefile=/etc/zfs/&amp;lt;zpool name&amp;gt;.spec | -o cachefile=none \&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   -o cachefile=/etc/zfs/&amp;lt;zpool name&amp;gt;.spec | -o cachefile=none \&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_lustre_org:diff::1.12:old-2793:rev-2813 --&gt;
&lt;/table&gt;</summary>
		<author><name>Malcolm</name></author>
	</entry>
	<entry>
		<id>http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=2793&amp;oldid=prev</id>
		<title>Malcolm at 05:13, 8 September 2017</title>
		<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=2793&amp;oldid=prev"/>
		<updated>2017-09-08T05:13:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:13, 7 September 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Introduction ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When working with ZFS OSDs, one can bundle the entire process of creating a zpool and formatting a storage target into a single command using &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt;, or split the work into two steps, where creation of the zpool is separated from formatting the OSD.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When working with ZFS OSDs, one can bundle the entire process of creating a zpool and formatting a storage target into a single command using &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt;, or split the work into two steps, where creation of the zpool is separated from formatting the OSD.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_lustre_org:diff::1.12:old-2782:rev-2793 --&gt;
&lt;/table&gt;</summary>
		<author><name>Malcolm</name></author>
	</entry>
	<entry>
		<id>http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=2782&amp;oldid=prev</id>
		<title>Malcolm: /* Lustre and ZFS File System Datasets */</title>
		<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=2782&amp;oldid=prev"/>
		<updated>2017-09-08T04:45:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Lustre and ZFS File System Datasets&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:45, 7 September 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l448&quot;&gt;Line 448:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 448:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Unfortunately, &amp;lt;code&amp;gt;zpool&amp;lt;/code&amp;gt; command line options used by &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; cannot be modified, other than to define the zpool specification. The &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command therefore should not be used to create the zpool when working with failover shared storage. This is because the restriction prevents a user from defining the correct cachefile property for the zpool to prevent hosts from automatically importing a zpool on system boot. The &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command also will not allow a user to provide tuning options at file system create time, notably the &amp;lt;code&amp;gt;ashift&amp;lt;/code&amp;gt; property that helps with write alignment for storage devices that do not correctly report the underlying sector size.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Unfortunately, &amp;lt;code&amp;gt;zpool&amp;lt;/code&amp;gt; command line options used by &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; cannot be modified, other than to define the zpool specification. The &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command therefore should not be used to create the zpool when working with failover shared storage. This is because the restriction prevents a user from defining the correct cachefile property for the zpool to prevent hosts from automatically importing a zpool on system boot. The &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command also will not allow a user to provide tuning options at file system create time, notably the &amp;lt;code&amp;gt;ashift&amp;lt;/code&amp;gt; property that helps with write alignment for storage devices that do not correctly report the underlying sector size.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Refer to [[ZFS OSD &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Performance &lt;/del&gt;Tuning]] for information on properties that influence ZFS and Lustre performance.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Refer to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the &lt;/ins&gt;[[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:Category:ZFS OSD Tuning|&lt;/ins&gt;ZFS OSD Tuning]] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;section &lt;/ins&gt;for information on properties that influence ZFS and Lustre performance.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:ZFS Object Storage Devices (OSDs)]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:ZFS Object Storage Devices (OSDs)]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Lustre Systems Administration]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Lustre Systems Administration]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_lustre_org:diff::1.12:old-2732:rev-2782 --&gt;
&lt;/table&gt;</summary>
		<author><name>Malcolm</name></author>
	</entry>
	<entry>
		<id>http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=2732&amp;oldid=prev</id>
		<title>Malcolm at 05:51, 31 August 2017</title>
		<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=2732&amp;oldid=prev"/>
		<updated>2017-08-31T05:51:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:51, 30 August 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l451&quot;&gt;Line 451:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 451:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:ZFS Object Storage Devices (OSDs)]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:ZFS Object Storage Devices (OSDs)]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Lustre Systems Administration]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_lustre_org:diff::1.12:old-2623:rev-2732 --&gt;
&lt;/table&gt;</summary>
		<author><name>Malcolm</name></author>
	</entry>
	<entry>
		<id>http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=2623&amp;oldid=prev</id>
		<title>Malcolm: Created page with &quot;When working with ZFS OSDs, one can bundle the entire process of creating a zpool and formatting a storage target into a single command using &lt;code&gt;mkfs.lustre&lt;/code&gt;, or spli...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=ZFS_OSD_Storage_Basics&amp;diff=2623&amp;oldid=prev"/>
		<updated>2017-08-11T08:27:42Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;When working with ZFS OSDs, one can bundle the entire process of creating a zpool and formatting a storage target into a single command using &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt;, or spli...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;When working with ZFS OSDs, one can bundle the entire process of creating a zpool and formatting a storage target into a single command using &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt;, or split the work into two steps, where creation of the zpool is separated from formatting the OSD.&lt;br /&gt;
&lt;br /&gt;
Both methods are discussed in this section, however we recommend creating the ZFS storage pools separately from formatting the Lustre OSD.&lt;br /&gt;
&lt;br /&gt;
For high-availability configurations where the ZFS volumes are kept on shared storage, the zpools &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; be created independently of the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command in order to be able to correctly prepare the zpools for use in a high-availability, failover environment.&lt;br /&gt;
&lt;br /&gt;
== ZFS Storage Pool Basics ==&lt;br /&gt;
&lt;br /&gt;
ZFS separates storage volume definition from the file system specification, providing two separate tools to manage each. The &amp;lt;code&amp;gt;zpool&amp;lt;/code&amp;gt; command is used to define the volumes and manages the physical storage assets, while the &amp;lt;code&amp;gt;zfs&amp;lt;/code&amp;gt; command provides management of the ZFS file system datasets themselves.&lt;br /&gt;
&lt;br /&gt;
A ZFS pool is comprised of one or more entities called Virtual Devices, or &amp;lt;code&amp;gt;vdevs&amp;lt;/code&amp;gt;. There are two basic categories of &amp;lt;code&amp;gt;vdev&amp;lt;/code&amp;gt;: physical and logical. A physical &amp;lt;code&amp;gt;vdev&amp;lt;/code&amp;gt; can be a complete physical storage device such as a disk drive, a partition on a disk drive, or a file. For Lustre file systems, it is strongly recommended that whole disks are used, with no pre-defined partition table.&lt;br /&gt;
&lt;br /&gt;
Logical &amp;lt;code&amp;gt;vdevs&amp;lt;/code&amp;gt; are assemblies of physical &amp;lt;code&amp;gt;vdevs&amp;lt;/code&amp;gt;, arranged into groups, usually for the purpose of providing additional storage redundancy. Logical &amp;lt;code&amp;gt;vdevs&amp;lt;/code&amp;gt; include mirrors and RAIDZ data protection layouts. There can be many &amp;lt;code&amp;gt;vdevs&amp;lt;/code&amp;gt; assigned per ZFS pool, and data is written in stripes across the &amp;lt;code&amp;gt;vdevs&amp;lt;/code&amp;gt; in the pool.&lt;br /&gt;
&lt;br /&gt;
The following examples illustrate how ZFS pools are created:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Simple stripe across two physical &amp;lt;code&amp;gt;vdevs&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
zpool create tank sda sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The result of this command is the creation of a pool named tank containing two physical &amp;lt;code&amp;gt;vdevs&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sda&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sdb&amp;lt;/code&amp;gt;, in a stripe (equivalent to RAID 0).&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Two-disk mirror:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
zpool create tank mirror sda sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Striped mirrors (equivalent to RAID 1+0):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
zpool create tank \&lt;br /&gt;
  mirror sda sdb \&lt;br /&gt;
  mirror sdc sdd \&lt;br /&gt;
  mirror sde sdf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The above example has a single pool consisting of three mirrored vdevs. Data is striped across the three mirrors.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Pool with single RAIDZ2 &amp;lt;code&amp;gt;vdev&amp;lt;/code&amp;gt; (equivalent to RAID 6):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
zpool create tank raidz2 sda sdb sdc sdd sde sdf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Pool with two RAIDZ2 &amp;lt;code&amp;gt;vdevs&amp;lt;/code&amp;gt; (equivalent to RAID 6+0):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
zpool create tank \&lt;br /&gt;
  raidz2 sda sdb sdc sdd sde sdf \&lt;br /&gt;
  raidz2 sdg sdh sdi sdj sdk sdl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; In order to simplify the presentation of commands, the examples use the shortened block device name (i.e. &amp;lt;code&amp;gt;sdN&amp;lt;/code&amp;gt;), which is not guaranteed to refer to the same physical device on each server boot or when the server configuration is altered. The short block device path is therefore not recommended for use in production. When defining the storage pools, use a persistent device path, such as &amp;lt;code&amp;gt;/dev/disk/by-id/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; or some other reliable convention that ensures that the device file will always refer to the same physical device.&lt;br /&gt;
&lt;br /&gt;
== Formatting a ZFS OSD using only the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command ==&lt;br /&gt;
&lt;br /&gt;
The basic syntax for creating a ZFS-based OSD using only the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
mkfs.lustre --mgs | --mdt | --ost \&lt;br /&gt;
  [--reformat] \&lt;br /&gt;
  [ --fsname &amp;lt;name&amp;gt; ] \&lt;br /&gt;
  [ --index &amp;lt;n&amp;gt; ] \&lt;br /&gt;
  [ --mgsnode &amp;lt;MGS NID&amp;gt; [--mgsnode &amp;lt;MGS NID&amp;gt; …]] \&lt;br /&gt;
  [ --servicenode &amp;lt;NID&amp;gt; [--servicenode &amp;lt;NID&amp;gt; …]] \&lt;br /&gt;
  [ --failnode &amp;lt;NID&amp;gt; [--failnode &amp;lt;NID&amp;gt; …]] \&lt;br /&gt;
  --backfstype=zfs \&lt;br /&gt;
  [ --mkfsoptions &amp;lt;options&amp;gt; ] \&lt;br /&gt;
  &amp;lt;pool name&amp;gt;/&amp;lt;dataset&amp;gt; \&lt;br /&gt;
  &amp;lt;zpool specification&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;servicenode&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;failnode&amp;lt;/code&amp;gt; command-line options are used to identify the NIDs of the hosts that are able to run the Lustre service in a high-availability configuration. The options &amp;lt;code&amp;gt;servicenode&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;failnode&amp;lt;/code&amp;gt; are mutually incompatible: choose one or the other when defining the HA failover hosts that are expected to provide the Lustre service.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;servicenode&amp;lt;/code&amp;gt; syntax defines all of the NIDs of all of the hosts that will be able to run the Lustre service. All of the hosts must be referenced, including the host that is expected to be the preferred primary for running the service (this is usually the host where the format command is running).&lt;br /&gt;
&lt;br /&gt;
This example uses the &amp;lt;code&amp;gt;--servicenode&amp;lt;/code&amp;gt; syntax to create an MGT that can be run on two servers as an HA failover resource:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-mds1 ~]# mkfs.lustre --mgs \&lt;br /&gt;
  --servicenode 192.168.227.11@tcp1 \&lt;br /&gt;
  --servicenode 192.168.227.12@tcp1 \&lt;br /&gt;
  --backfstype=zfs \&lt;br /&gt;
  mgspool/mgt mirror sda sdc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command line formats a new MGT that will be used by the MGS for storage. The command further defines a mirrored zpool called mgspool consisting of two devices, and creates a ZFS dataset called mgt. Two server NIDs are supplied as service nodes for the MGS, &amp;lt;code&amp;gt;192.168.227.11@tcp1&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;192.168.227.12@tcp1&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;failnode&amp;lt;/code&amp;gt; syntax is similar, but is used to define only a failover target for the storage service. The &amp;lt;code&amp;gt;failnode&amp;lt;/code&amp;gt; syntax is an older method for creating services and implicit in the definition of the storage service is the notion of a primary server and one or more secondary, or failover servers. Only the failover servers are included in the command-line definition. The primary is only written to the storage service configuration the first time that the formatted device is mounted. Whichever host mounts the storage first will have its NID written in as the effective primary server. &lt;br /&gt;
&lt;br /&gt;
Example format command with the &amp;lt;code&amp;gt;failnode&amp;lt;/code&amp;gt; syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-mds1 ~]# mkfs.lustre --mgs \&lt;br /&gt;
  --failnode 192.168.227.12@tcp1 \&lt;br /&gt;
  --backfstype=zfs \&lt;br /&gt;
  mgspool/mgt mirror sda sdc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, the failover host is identified as &amp;lt;code&amp;gt;192.168.227.12@tcp1&amp;lt;/code&amp;gt;, one metadata server in an HA pair (and which, incidentally, has the hostname &amp;lt;code&amp;gt;rh7z-mds2&amp;lt;/code&amp;gt;). The &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command was executed on &amp;lt;code&amp;gt;rh7z-mds1&amp;lt;/code&amp;gt; (NID: &amp;lt;code&amp;gt;192.168.227.11@tcp1&amp;lt;/code&amp;gt;), and the mount command must also be run from this host when the MGS service starts for the very first time. Otherwise, the primary NID will not be written to the storage configuration, and the failover mechanism will not work as expected. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; If, after formatting the storage, the MGT is mounted on &amp;lt;code&amp;gt;192.168.227.12@tcp1&amp;lt;/code&amp;gt;, then both the primary NID and the failover NID will be the same. The intended primary host, &amp;lt;code&amp;gt;192.168.227.11@tcp1&amp;lt;/code&amp;gt;, would be excluded from being able to run the MGS service.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Wherever possible, use the &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;servicenode&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; syntax to define the high availability configuration for Lustre services.&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command can pass additional command flags to the underlying file system creation software using the &amp;lt;code&amp;gt;--mkfsoptions&amp;lt;/code&amp;gt; flag.  The command was originally used to pass through options for EXT-based storage, but can also be used in a limited way for ZFS. The &amp;lt;code&amp;gt;--mkfsoptions&amp;lt;/code&amp;gt; parameter allows a user to pass through commands that are added to the zfs command line utility, but cannot be used to modify the zpool command line invocation. There are times when the zpool command defaults are not sufficient to support a production Lustre file system, especially when the storage system is on shared drives and there is a failover configuration in place.  &lt;br /&gt;
&lt;br /&gt;
For this reason, it is recommended that ZFS pools always be created explicitly and separately from the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
== Formatting a ZFS OSD using &amp;lt;code&amp;gt;zpool&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
To create a ZFS-based OSD suitable for use as a high-availability failover storage device, first create a ZFS pool to contain the file system dataset, then use &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; to actually create the file system inside the zpool:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
zpool create [-f] -O canmount=off \&lt;br /&gt;
  [ -o ashift=&amp;lt;n&amp;gt; ] \&lt;br /&gt;
  -o cachefile=/etc/zfs/&amp;lt;zpool name&amp;gt;.spec | -o cachefile=none \&lt;br /&gt;
  &amp;lt;zpool name&amp;gt; &amp;lt;zpool specification&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mkfs.lustre --mgs | --mdt | --ost \&lt;br /&gt;
  [--reformat] \&lt;br /&gt;
  [ --fsname &amp;lt;name&amp;gt; ] \&lt;br /&gt;
  [ --index &amp;lt;n&amp;gt; ] \&lt;br /&gt;
  [ --mgsnode &amp;lt;MGS NID&amp;gt; [--mgsnode &amp;lt;MGS NID&amp;gt; …]] \&lt;br /&gt;
  [ --servicenode &amp;lt;NID&amp;gt; [--servicenode &amp;lt;NID&amp;gt; …]] \&lt;br /&gt;
  [ --failnode &amp;lt;NID&amp;gt; [--failnode &amp;lt;NID&amp;gt; …]] \&lt;br /&gt;
  --backfstype=zfs \&lt;br /&gt;
  [ --mkfsoptions &amp;lt;options&amp;gt; ] \&lt;br /&gt;
  &amp;lt;pool name&amp;gt;/&amp;lt;dataset name&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
# Create the zpool&lt;br /&gt;
zpool create -O canmount=off \&lt;br /&gt;
  -o cachefile=none \&lt;br /&gt;
  mgspool mirror sda sdc&lt;br /&gt;
&lt;br /&gt;
# Format the Lustre MGT &lt;br /&gt;
mkfs.lustre --mgs \&lt;br /&gt;
  --servicenode 192.168.227.11@tcp1 \&lt;br /&gt;
  --servicenode 192.168.227.12@tcp1 \&lt;br /&gt;
  --backfstype=zfs \&lt;br /&gt;
  mgspool/mgt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After formatting, use &amp;lt;code&amp;gt;tunefs.lustre&amp;lt;/code&amp;gt; to review the newly created OSD. The command line format is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
tunefs.lustre --dryrun &amp;lt;pool name&amp;gt;/&amp;lt;dataset name&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-mds1 ~]# tunefs.lustre --dryrun mgspool/mgt&lt;br /&gt;
checking for existing Lustre data: found&lt;br /&gt;
&lt;br /&gt;
   Read previous values:&lt;br /&gt;
Target:     MGS&lt;br /&gt;
Index:      unassigned&lt;br /&gt;
Lustre FS:  &lt;br /&gt;
Mount type: zfs&lt;br /&gt;
Flags:      0x1044&lt;br /&gt;
              (MGS update no_primnode )&lt;br /&gt;
Persistent mount opts: &lt;br /&gt;
Parameters: failover.node=192.168.227.11@tcp1:192.168.227.12@tcp1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Permanent disk data:&lt;br /&gt;
Target:     MGS&lt;br /&gt;
Index:      unassigned&lt;br /&gt;
Lustre FS:  &lt;br /&gt;
Mount type: zfs&lt;br /&gt;
Flags:      0x1044&lt;br /&gt;
              (MGS update no_primnode )&lt;br /&gt;
Persistent mount opts: &lt;br /&gt;
Parameters: failover.node=192.168.227.11@tcp1:192.168.227.12@tcp1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use the &amp;lt;code&amp;gt;zfs get&amp;lt;/code&amp;gt; command to retrieve comprehensive metadata information about the file system dataset and to confirm that the Lustre properties have been set correctly:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
zfs get all | awk &amp;#039;$2 ~ /lustre/&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-mds1 ~]# zfs get all | awk &amp;#039;$2 ~/lustre/&amp;#039;&lt;br /&gt;
mgspool/mgt  lustre:version        1                                        local&lt;br /&gt;
mgspool/mgt  lustre:index          65535                                    local&lt;br /&gt;
mgspool/mgt  lustre:failover.node  192.168.227.11@tcp1:192.168.227.12@tcp1  local&lt;br /&gt;
mgspool/mgt  lustre:svname         MGS                                      local&lt;br /&gt;
mgspool/mgt  lustre:flags          4196                                     local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only the zpool is created directly by the administrator. The &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command is still used to control creation of the file system dataset from the pool. Additional properties of the data set can be applied by &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; using the &amp;lt;code&amp;gt;--mkfs.options&amp;lt;/code&amp;gt; flag. The &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command will fail with an error if an attempt is made to format an existing dataset:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-mds1 ~]# mkfs.lustre --mgs \&lt;br /&gt;
&amp;gt;  --servicenode 192.168.227.11@tcp1 \&lt;br /&gt;
&amp;gt;  --servicenode 192.168.227.12@tcp1 \&lt;br /&gt;
&amp;gt;  --backfstype=zfs   mgspool/mgt&lt;br /&gt;
&lt;br /&gt;
   Permanent disk data:&lt;br /&gt;
Target:     MGS&lt;br /&gt;
Index:      unassigned&lt;br /&gt;
Lustre FS:  &lt;br /&gt;
Mount type: zfs&lt;br /&gt;
Flags:      0x1064&lt;br /&gt;
              (MGS first_time update no_primnode )&lt;br /&gt;
Persistent mount opts: &lt;br /&gt;
Parameters:  failover.node=192.168.227.11@tcp1:192.168.227.12@tcp1&lt;br /&gt;
&lt;br /&gt;
checking for existing Lustre data: not found&lt;br /&gt;
mkfs_cmd = zfs create -o canmount=off -o xattr=sa mgspool/mgt&lt;br /&gt;
   cannot create &amp;#039;mgspool/mgt&amp;#039;: dataset already exists&lt;br /&gt;
&lt;br /&gt;
mkfs.lustre FATAL: Unable to create file system mgspool/mgt (256)&lt;br /&gt;
&lt;br /&gt;
mkfs.lustre FATAL: mkfs failed 256&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
One can force the dataset to be formatted as a Lustre OSD by adding the &amp;lt;code&amp;gt;--reformat&amp;lt;/code&amp;gt; flag to &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-mds1 ~]# mkfs.lustre --reformat --mgs \&lt;br /&gt;
&amp;gt;  --servicenode 192.168.227.11@tcp1 \&lt;br /&gt;
&amp;gt;  --servicenode 192.168.227.12@tcp1 \&lt;br /&gt;
&amp;gt;  --backfstype=zfs   mgspool/mgt&lt;br /&gt;
&lt;br /&gt;
   Permanent disk data:&lt;br /&gt;
Target:     MGS&lt;br /&gt;
Index:      unassigned&lt;br /&gt;
Lustre FS:  &lt;br /&gt;
Mount type: zfs&lt;br /&gt;
Flags:      0x1064&lt;br /&gt;
              (MGS first_time update no_primnode )&lt;br /&gt;
Persistent mount opts: &lt;br /&gt;
Parameters:  failover.node=192.168.227.11@tcp1:192.168.227.12@tcp1&lt;br /&gt;
&lt;br /&gt;
mkfs_cmd = zfs create -o canmount=off -o xattr=sa mgspool/mgt&lt;br /&gt;
Writing mgspool/mgt properties&lt;br /&gt;
  lustre:version=1&lt;br /&gt;
  lustre:flags=4196&lt;br /&gt;
  lustre:index=65535&lt;br /&gt;
  lustre:svname=MGS&lt;br /&gt;
  lustre:failover.node=192.168.227.11@tcp1:192.168.227.12@tcp1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively, destroy the dataset and have &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; recreate it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
zfs destroy &amp;lt;pool name&amp;gt;/&amp;lt;dataset name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mkfs.lustre --mgs \&lt;br /&gt;
  [ --servicenode &amp;lt;NID&amp;gt; [--servicenode &amp;lt;NID&amp;gt; …]] \&lt;br /&gt;
  --backfstype=zfs \&lt;br /&gt;
  [ --mkfsoptions &amp;lt;options&amp;gt; ] \&lt;br /&gt;
  &amp;lt;pool name&amp;gt;/&amp;lt;dataset&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the dataset is reformatted, then previously applied properties will obviously be lost. Remember to include any ZFS-specific properties by making use of the &amp;lt;code&amp;gt;--mkfsoptions&amp;lt;/code&amp;gt; flag.&lt;br /&gt;
&lt;br /&gt;
== Working with ZFS Imports ==&lt;br /&gt;
&lt;br /&gt;
The assembly and incorporation of a ZFS storage pool into the operating system run-time environment is managed by a command called &amp;lt;code&amp;gt;zpool import&amp;lt;/code&amp;gt;. Existing pools are incorporated into a host’s run-time environment using the &amp;lt;code&amp;gt;zpool import&amp;lt;/code&amp;gt; command, and can be released using the zpool export command. The basic syntax to import a pool is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
zpool import [-f] [ -o &amp;lt;properties&amp;gt;] &amp;lt;pool name&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This technique enables storage pools to migrate between hosts in a consistent and reliable manner. Any host that is connected to a pool of storage in a shared enclosure can import the ZFS pool, making it straightforward to facilitate high availability failover. &lt;br /&gt;
&lt;br /&gt;
A ZFS storage pool can only be imported to a single host at a time. If a pool has been imported onto a host, it must be exported before it can be safely imported to a different host. If a zpool in a shared storage enclosure is simultaneously imported to more than one host, the pool data will be corrupted. To reduce the risk of this happening, all servers must be configured with a unique &amp;lt;code&amp;gt;hostid&amp;lt;/code&amp;gt; that is used to label each zpool with the current active host that has imported the pool. Multiple Import Protection (using the &amp;lt;code&amp;gt;multihost&amp;lt;/code&amp;gt; pool property), implemented in ZFS 0.7.0, must also be configured when available. Please refer to [[Protecting File System Volumes from Concurrent Access]] for information about how to enable and verify that this protection is properly configured.&lt;br /&gt;
&lt;br /&gt;
If the pool is not exported, it will appear to still be active on its original host, even if that host is offline (regardless of whether it was powered off cleanly or crashed). In this case, the import will fail, provided that the &amp;lt;code&amp;gt;hostids&amp;lt;/code&amp;gt; for the servers have been correctly configured, and the import will need to be forced.&lt;br /&gt;
&lt;br /&gt;
If an import fails, it could mean that the pool is already imported on a different host. Before trying to force the importation of a pool onto a host, check that the storage has not already been imported to another system. If the zpool has been configured correctly, and all hosts have valid &amp;lt;code&amp;gt;hostids&amp;lt;/code&amp;gt;, then the import command will indicate the host that last had the pool imported.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;zpool import&amp;lt;/code&amp;gt; command can be used to list pools that are not currently imported on the host, without actually performing any import:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
zpool import [-d &amp;lt;dev directory&amp;gt;] [-D]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When invoked using this syntax, &amp;lt;code&amp;gt;zpool import&amp;lt;/code&amp;gt; lists the pools that are potentially available for import, and will ignore zpools that are already imported to the host. The &amp;lt;code&amp;gt;-d&amp;lt;/code&amp;gt; (lower case) flag is used to specify a directory containing block devices, for example &amp;lt;code&amp;gt;/dev/disk/by-id&amp;lt;/code&amp;gt;. This flag is not often required. The &amp;lt;code&amp;gt;-D&amp;lt;/code&amp;gt; (upper case) flag is used to list zpools that have been destroyed.&lt;br /&gt;
&lt;br /&gt;
In the following example, the import fails because the zpool cannot be found:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-mds2 system]# zpool import demo-mdtpool&lt;br /&gt;
cannot import &amp;#039;demo-mdtpool&amp;#039;: no such pool available&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This could be because the zpool does not exist, or because the pool has the wrong name, but it could also mean that the pool has been destroyed. Run &amp;lt;code&amp;gt;zpool import&amp;lt;/code&amp;gt; without any other options to get a list of the zpools that the operating system can locate, that are not already imported to the host:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-mds2 system]# zpool import&lt;br /&gt;
   pool: mgspool&lt;br /&gt;
     id: 2186474330384511828&lt;br /&gt;
  state: ONLINE&lt;br /&gt;
 status: The pool was last accessed by another system.&lt;br /&gt;
 action: The pool can be imported using its name or numeric identifier and&lt;br /&gt;
	the &amp;#039;-f&amp;#039; flag.&lt;br /&gt;
   see: http://zfsonlinux.org/msg/ZFS-8000-EY&lt;br /&gt;
 config:&lt;br /&gt;
&lt;br /&gt;
	mgspool     ONLINE&lt;br /&gt;
	  mirror-0  ONLINE&lt;br /&gt;
	    sda     ONLINE&lt;br /&gt;
	    sdc     ONLINE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output only lists a single zpool, called &amp;lt;code&amp;gt;mgspool&amp;lt;/code&amp;gt;. There is no obvious sign of any other configured zpool available to the operating system. If the list of ZFS pools does not match expectations, perhaps one or more of the pools has been destroyed. Check using &amp;lt;code&amp;gt;zpool import -D&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-mds2 system]# zpool import -D&lt;br /&gt;
   pool: demo-mdtpool&lt;br /&gt;
     id: 6641674394771267657&lt;br /&gt;
  state: ONLINE (DESTROYED)&lt;br /&gt;
 action: The pool can be imported using its name or numeric identifier.&lt;br /&gt;
 config:&lt;br /&gt;
&lt;br /&gt;
	demo-mdtpool                                   ONLINE&lt;br /&gt;
	  mirror-0                                ONLINE&lt;br /&gt;
	    scsi-0QEMU_QEMU_HARDDISK_EEMDT0001  ONLINE&lt;br /&gt;
	    scsi-0QEMU_QEMU_HARDDISK_EEMDT0000  ONLINE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
From this, it can be seen that at some point in the past, another zpool existed on the system, but that it was destroyed. It is possible to recover a destroyed pool as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
zpool import -D &amp;lt;pool name&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Provided that the storage from which the pool was originally assembled has not been modified or the data over-written, the pool will be re-assembled and can be used as normal.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;zdb&amp;lt;/code&amp;gt; command can be helpful in determining where a zpool has been imported. If an exported pool cannot be imported cleanly into a host, use &amp;lt;code&amp;gt;zdb&amp;lt;/code&amp;gt; to check the MOS configuration to see if it is perhaps “registered” with another host:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
zdb -e &amp;lt;zpool name&amp;gt; | awk &amp;#039;/^MOS/,/^$/{print}&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;hostid&amp;lt;/code&amp;gt;and &amp;lt;code&amp;gt;hostname&amp;lt;/code&amp;gt; fields will indicate the last host known to have imported the pool or dataset. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-mds1 ~]# zdb -e mgspool | awk &amp;#039;/^MOS/,/^$/{print}&amp;#039;&lt;br /&gt;
MOS Configuration:&lt;br /&gt;
        version: 5000&lt;br /&gt;
        name: &amp;#039;mgspool&amp;#039;&lt;br /&gt;
        state: 0&lt;br /&gt;
        txg: 34351&lt;br /&gt;
        pool_guid: 11089712772589408485&lt;br /&gt;
        errata: 0&lt;br /&gt;
        hostid: 1386610045&lt;br /&gt;
        hostname: &amp;#039;rh7z-mds2&amp;#039;&lt;br /&gt;
        vdev_children: 1&lt;br /&gt;
        vdev_tree:&lt;br /&gt;
…&lt;br /&gt;
&amp;lt;output truncated for brevity&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this example, it would be prudent to check the host &amp;lt;code&amp;gt;rh7z-mds2&amp;lt;/code&amp;gt; to see if the pool has been imported there before taking any further action.&lt;br /&gt;
&lt;br /&gt;
== Lustre and ZFS File System Datasets ==&lt;br /&gt;
&lt;br /&gt;
When working with ZFS-based storage, each Lustre storage target is held on a file system dataset inside a ZFS pool. The dataset will be created by Lustre when the storage is formatted with the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command and &amp;lt;code&amp;gt;--backfstype=zfs&amp;lt;/code&amp;gt; has been selected. While it is possible to create multiple file system datasets within a single storage pool and use those for Lustre, this is not recommended: each dataset will compete for the pool’s resources, affecting performance and making it more difficult to balance IO across the storage cluster. Also bear in mind that the unit of failover is the ZFS pool, not the dataset. One cannot migrate a dataset in a pool without migrating the entire pool. For example, if the &amp;lt;code&amp;gt;MGT&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MDT0&amp;lt;/code&amp;gt; are created within the same ZFS pool, then the MGS and MDS services will always have to run on the same host, because the pool can only be imported to one host at a time. The MGS therefore loses its independence from the MDS for &amp;lt;code&amp;gt;MDT0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Don’t use the &amp;lt;code&amp;gt;zfs&amp;lt;/code&amp;gt; command directly to create datasets that will be used as Lustre targets. ZFS datasets created independently of the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command will have be unmounted or destroyed and then reformatted. The properties of Lustre file system datasets can be altered after formatting or can be supplied as options to the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command by using the &amp;lt;code&amp;gt;--mkfsoptions&amp;lt;/code&amp;gt; flag. Refer to the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; manual page for details.&lt;br /&gt;
&lt;br /&gt;
If a ZFS dataset already exists and is not unmounted, the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command will not report an error when an attempt is made to format, but it will not be able to format the volume. The only immediate indication of a failure is that the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; output will be truncated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-mds1 ~]# zpool create -O canmount=off -o cachefile=none mgspool mirror sda sdc&lt;br /&gt;
&lt;br /&gt;
# Create a file system dataset using the default properties.&lt;br /&gt;
# The dataset will be automatically mounted once created.&lt;br /&gt;
[root@rh7z-mds1 ~]# zfs create mgspool/mgt&lt;br /&gt;
&lt;br /&gt;
# Try to format the dataset for Lustre.&lt;br /&gt;
# The command will fail but will not report an error.&lt;br /&gt;
[root@rh7z-mds1 ~]# mkfs.lustre --mgs \&lt;br /&gt;
&amp;gt;   --servicenode 192.168.227.11@tcp1 \&lt;br /&gt;
&amp;gt;   --servicenode 192.168.227.12@tcp1 \&lt;br /&gt;
&amp;gt;   --backfstype=zfs \&lt;br /&gt;
&amp;gt;   mgspool/mgt&lt;br /&gt;
&lt;br /&gt;
   Permanent disk data:&lt;br /&gt;
Target:     MGS&lt;br /&gt;
Index:      unassigned&lt;br /&gt;
Lustre FS:  &lt;br /&gt;
Mount type: zfs&lt;br /&gt;
Flags:      0x1064&lt;br /&gt;
              (MGS first_time update no_primnode )&lt;br /&gt;
Persistent mount opts: &lt;br /&gt;
Parameters:  failover.node=192.168.227.11@tcp1:192.168.227.12@tcp1&lt;br /&gt;
[root@rh7z-mds1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Administrators must use the &amp;lt;code&amp;gt;mount.lustre&amp;lt;/code&amp;gt; command whenever starting Lustre services, and the &amp;lt;code&amp;gt;umount&amp;lt;/code&amp;gt; command when stopping services.&lt;br /&gt;
&lt;br /&gt;
For the purposes of comparison, let’s examine what the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command itself is doing when it creates/formats a ZFS OSD. The following example command output shows an MGT being created from a ZFS mirrored zpool consisting of two disks: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-mds1 ~]# mkfs.lustre --mgs \&lt;br /&gt;
&amp;gt;  --servicenode 192.168.227.11@tcp1 \&lt;br /&gt;
&amp;gt;  --servicenode 192.168.227.12@tcp1 \&lt;br /&gt;
&amp;gt;  --backfstype=zfs \&lt;br /&gt;
&amp;gt;  mgspool/mgt&lt;br /&gt;
&lt;br /&gt;
   Permanent disk data:&lt;br /&gt;
Target:     MGS&lt;br /&gt;
Index:      unassigned&lt;br /&gt;
Lustre FS:  &lt;br /&gt;
Mount type: zfs&lt;br /&gt;
Flags:      0x1064&lt;br /&gt;
              (MGS first_time update no_primnode )&lt;br /&gt;
Persistent mount opts: &lt;br /&gt;
Parameters:  failover.node=192.168.227.11@tcp1:192.168.227.12@tcp1&lt;br /&gt;
&lt;br /&gt;
checking for existing Lustre data: not found&lt;br /&gt;
mkfs_cmd = zfs create -o canmount=off -o xattr=sa mgspool/mgt&lt;br /&gt;
Writing mgspool/mgt properties&lt;br /&gt;
  lustre:version=1&lt;br /&gt;
  lustre:flags=4196&lt;br /&gt;
  lustre:index=65535&lt;br /&gt;
  lustre:svname=MGS&lt;br /&gt;
  lustre:failover.node=192.168.227.11@tcp1:192.168.227.12@tcp1&lt;br /&gt;
[root@rh7z-mds1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command hands creation of the &amp;lt;code&amp;gt;mgspool/mgt&amp;lt;/code&amp;gt; dataset to the relevant ZFS command, acting as a convenient wrapper that encapsulates creation of the ZFS dataset and the Lustre formatted storage devices. The complete ZFS command-line invocations are displayed in the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; output, providing transparency in the way that the underlying storage is configured.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, &amp;lt;code&amp;gt;zpool&amp;lt;/code&amp;gt; command line options used by &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; cannot be modified, other than to define the zpool specification. The &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command therefore should not be used to create the zpool when working with failover shared storage. This is because the restriction prevents a user from defining the correct cachefile property for the zpool to prevent hosts from automatically importing a zpool on system boot. The &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command also will not allow a user to provide tuning options at file system create time, notably the &amp;lt;code&amp;gt;ashift&amp;lt;/code&amp;gt; property that helps with write alignment for storage devices that do not correctly report the underlying sector size. &lt;br /&gt;
&lt;br /&gt;
Refer to [[ZFS OSD Performance Tuning]] for information on properties that influence ZFS and Lustre performance.&lt;br /&gt;
&lt;br /&gt;
[[Category:ZFS Object Storage Devices (OSDs)]]&lt;/div&gt;</summary>
		<author><name>Malcolm</name></author>
	</entry>
</feed>