<?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=Creating_the_Lustre_Metadata_Service_%28MDS%29</id>
	<title>Creating the Lustre Metadata Service (MDS) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.lustre.org/index.php?action=history&amp;feed=atom&amp;title=Creating_the_Lustre_Metadata_Service_%28MDS%29"/>
	<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=Creating_the_Lustre_Metadata_Service_(MDS)&amp;action=history"/>
	<updated>2026-09-02T17:27:22Z</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=Creating_the_Lustre_Metadata_Service_(MDS)&amp;diff=2801&amp;oldid=prev</id>
		<title>Malcolm: /* MDT Formatted as a ZFS OSD */</title>
		<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=Creating_the_Lustre_Metadata_Service_(MDS)&amp;diff=2801&amp;oldid=prev"/>
		<updated>2017-09-11T05:17:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;MDT Formatted as a ZFS OSD&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 22:17, 10 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-l146&quot;&gt;Line 146:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 146:&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 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;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039;: When creating a ZFS-based OSD using only the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command, it is not possible to set or change some properties of the zpool or its vdevs, such as the &amp;lt;code&amp;gt;ashift&amp;lt;/code&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;property&lt;/del&gt;. For this reason, it is highly recommended that the zpools be created independently of the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command, as shown in the next section.&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;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039;: When creating a ZFS-based OSD using only the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command, it is not possible to set or change some properties of the zpool or its vdevs, such as the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;multihost&amp;lt;/code&amp;gt; and &lt;/ins&gt;&amp;lt;code&amp;gt;ashift&amp;lt;/code&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;properties&lt;/ins&gt;. For this reason, it is highly recommended that the zpools be created independently of the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command, as shown in the next section.&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;=== Formatting an MDT using zpool and mkfs.lustre ===&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;=== Formatting an MDT using zpool and mkfs.lustre ===&lt;/div&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-l153&quot;&gt;Line 153:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 153:&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 [-f] -O canmount=off \&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 [-f] -O canmount=off &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-o multihost=on &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;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l177&quot;&gt;Line 177:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 177:&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;# Pool will comprise 3 mirrors each with 2 devices.&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;# Pool will comprise 3 mirrors each with 2 devices.&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;# Mirrors will be concatenated (striped).&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;# Mirrors will be concatenated (striped).&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 -O canmount=off \&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 -O canmount=off &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-o multihost=on &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 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=none \&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;   demo-mdt0pool \&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;   demo-mdt0pool \&lt;/div&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-l197&quot;&gt;Line 197:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 197:&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;# The zpool command will not return output if there are no errors&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 zpool command will not return output if there are no errors&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;[root@rh7z-mds2 system]# zpool create -O canmount=off \&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;[root@rh7z-mds2 system]# zpool create -O canmount=off &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-o multihost=on &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;gt;   -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;&amp;gt;   -o cachefile=none \&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;gt;   demo-mdt0pool \&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;gt;   demo-mdt0pool \&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_lustre_org:diff::1.12:old-2742:rev-2801 --&gt;
&lt;/table&gt;</summary>
		<author><name>Malcolm</name></author>
	</entry>
	<entry>
		<id>http://wiki.lustre.org/index.php?title=Creating_the_Lustre_Metadata_Service_(MDS)&amp;diff=2742&amp;oldid=prev</id>
		<title>Malcolm at 05:54, 31 August 2017</title>
		<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=Creating_the_Lustre_Metadata_Service_(MDS)&amp;diff=2742&amp;oldid=prev"/>
		<updated>2017-08-31T05:54:05Z</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:54, 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-l354&quot;&gt;Line 354:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 354:&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:Creating Lustre File System Services]]&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:Creating Lustre File System Services]]&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-2667:rev-2742 --&gt;
&lt;/table&gt;</summary>
		<author><name>Malcolm</name></author>
	</entry>
	<entry>
		<id>http://wiki.lustre.org/index.php?title=Creating_the_Lustre_Metadata_Service_(MDS)&amp;diff=2667&amp;oldid=prev</id>
		<title>Malcolm: Created page with &quot;== Syntax Overview ==  The syntax for creating an MDT is:  &lt;pre style=&quot;overflow-x:auto;&quot;&gt; mkfs.lustre --mdt \   [--reformat] \   --fsname &lt;name&gt; \   --index &lt;n&gt; \   --mgsnode...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=Creating_the_Lustre_Metadata_Service_(MDS)&amp;diff=2667&amp;oldid=prev"/>
		<updated>2017-08-15T09:38:41Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Syntax Overview ==  The syntax for creating an MDT is:  &amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt; mkfs.lustre --mdt \   [--reformat] \   --fsname &amp;lt;name&amp;gt; \   --index &amp;lt;n&amp;gt; \   --mgsnode...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Syntax Overview ==&lt;br /&gt;
&lt;br /&gt;
The syntax for creating an MDT 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 --mdt \&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=ldiskfs|zfs ] \&lt;br /&gt;
  [ --mkfsoptions &amp;lt;options&amp;gt; ] \&lt;br /&gt;
  &amp;lt;device path&amp;gt; | &amp;lt;pool name&amp;gt;/&amp;lt;dataset&amp;gt; &amp;lt;zpool specification&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command line syntax for formatting an MDT incorporates several additional parameters when compared to that of the much simpler [[Creating the Lustre Management Service (MGS)|MGT]]. First, the metadata target requires a record of the [[Lustre Networking (LNET) Overview|NIDs]] that can provide the [[Lustre Management Service (MGS)|Lustre management service (MGS)]]. The MGS NIDs are supplied using the &amp;lt;code&amp;gt;--mgsnode&amp;lt;/code&amp;gt; flag. If there is more than one potential location for the MGS (i.e., it is part of a high availability failover cluster configuration), then the option is repeated for as many failover nodes as are configured (usually there are two).&lt;br /&gt;
&lt;br /&gt;
Ordering of the MGS nodes in the command line is significant: the first &amp;lt;code&amp;gt;--mgsnode&amp;lt;/code&amp;gt; flag must reference the NID of the current active or primary MGS server. If this is not the case, then the first time that the MDS tries to join the cluster, it will fail. The first time mount of a storage target does not currently check the failover locations when trying to establish a connection with the MGS. When adding new storage targets to Lustre, the MGS must be running on its primary NID.&lt;br /&gt;
&lt;br /&gt;
The MDT must also be supplied with the name (&amp;lt;code&amp;gt;--fsname&amp;lt;/code&amp;gt;) of the Lustre file system (maximum 8 characters), and a unique index number (&amp;lt;code&amp;gt;--index&amp;lt;/code&amp;gt;) for the file system. There must always be an MDT with &amp;lt;code&amp;gt;index=0&amp;lt;/code&amp;gt; (zero) for each file system, representing the root of the file system tree. For many Lustre file systems, a single MDT (referred to as &amp;lt;code&amp;gt;MDT0&amp;lt;/code&amp;gt;) is sufficient.&lt;br /&gt;
&lt;br /&gt;
The list of service nodes (&amp;lt;code&amp;gt;--servicenode&amp;lt;/code&amp;gt;) or failover nodes (&amp;lt;code&amp;gt;--failnode&amp;lt;/code&amp;gt;) must be specified for any high availability configuration. Although there are more compact declarations for defining the nodes, for simplicity, list the NID of each server that can mount the storage as a separate &amp;lt;code&amp;gt;--servicenode&amp;lt;/code&amp;gt; entry.&lt;br /&gt;
&lt;br /&gt;
The next example uses the &amp;lt;code&amp;gt;--servicenode&amp;lt;/code&amp;gt; syntax to create an MDT 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-mds2 system]# mkfs.lustre --mdt \&lt;br /&gt;
&amp;gt;   --fsname demo \&lt;br /&gt;
&amp;gt;   --index 0 \&lt;br /&gt;
&amp;gt;   --mgsnode 192.168.227.11@tcp1 \&lt;br /&gt;
&amp;gt;   --mgsnode 192.168.227.12@tcp1 \&lt;br /&gt;
&amp;gt;   --servicenode 192.168.227.12@tcp1 \&lt;br /&gt;
&amp;gt;   --servicenode 192.168.227.11@tcp1 \&lt;br /&gt;
&amp;gt;   /dev/dm-2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command line formats a new MDT that will be used by the MDS for storage. The MDT will provide metadata for a file system called &amp;lt;code&amp;gt;demo&amp;lt;/code&amp;gt;, and has index number &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (zero). There are two NIDs defined as the nodes able to host the MDS service, denoted by the &amp;lt;code&amp;gt;--servicenode&amp;lt;/code&amp;gt; options, and two NIDs supplied for the MGS that the MDS will register with.&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. 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-mds2 system]# mkfs.lustre --mdt \&lt;br /&gt;
&amp;gt;   --fsname demo \&lt;br /&gt;
&amp;gt;   --index 0 \&lt;br /&gt;
&amp;gt;   --mgsnode 192.168.227.11@tcp1 \&lt;br /&gt;
&amp;gt;   --mgsnode 192.168.227.12@tcp1 \&lt;br /&gt;
&amp;gt;   --failnode 192.168.227.11@tcp1 \&lt;br /&gt;
&amp;gt;   /dev/dm-2&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.11@tcp1&amp;lt;/code&amp;gt;, one server in an HA pair (and which, for the purpose of this example, has the hostname &amp;lt;code&amp;gt;rh7z-mds1&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-mds2&amp;lt;/code&amp;gt; (NID: &amp;lt;code&amp;gt;192.168.227.12@tcp1&amp;lt;/code&amp;gt;), and the &amp;lt;code&amp;gt;mount&amp;lt;/code&amp;gt; command must also be run from this host when the service starts for the very first time.&lt;br /&gt;
&lt;br /&gt;
== MDT Formatted as an LDISKFS OSD ==&lt;br /&gt;
&lt;br /&gt;
The syntax for creating an LDISKFS-based MDT 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 --mdt \&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=ldiskfs ] \&lt;br /&gt;
  [ --mkfsoptions &amp;lt;options&amp;gt; ] \&lt;br /&gt;
  &amp;lt;device path&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following example uses the &amp;lt;code&amp;gt;--servicenode&amp;lt;/code&amp;gt; syntax to create an MDT 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-mds2 system]# mkfs.lustre --mdt \&lt;br /&gt;
&amp;gt;   --fsname demo \&lt;br /&gt;
&amp;gt;   --index 0 \&lt;br /&gt;
&amp;gt;   --mgsnode 192.168.227.11@tcp1 \&lt;br /&gt;
&amp;gt;   --mgsnode 192.168.227.12@tcp1 \&lt;br /&gt;
&amp;gt;   --servicenode 192.168.227.12@tcp1 \&lt;br /&gt;
&amp;gt;   --servicenode 192.168.227.11@tcp1 \&lt;br /&gt;
&amp;gt;   --backfstype=ldiskfs \&lt;br /&gt;
&amp;gt;   /dev/dm-2&lt;br /&gt;
&amp;lt;/pre&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. 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-mds2 system]# mkfs.lustre --mdt \&lt;br /&gt;
&amp;gt;   --fsname demo --index 0 \&lt;br /&gt;
&amp;gt;   --mgsnode 192.168.227.11@tcp1 --mgsnode 192.168.227.12@tcp1 \&lt;br /&gt;
&amp;gt;   --failnode 192.168.227.11@tcp1 \&lt;br /&gt;
&amp;gt;   --backfstype=ldiskfs \&lt;br /&gt;
&amp;gt;   /dev/dm-2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above examples are repeated from the main introduction to the syntax, but are included here to maintain symmetry with the rest of the text. However, note that the &amp;lt;code&amp;gt;--backfstype&amp;lt;/code&amp;gt; flag has been set to &amp;lt;code&amp;gt;ldiskfs&amp;lt;/code&amp;gt;, which tells &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; to format the device as an LDISKFS OSD.&lt;br /&gt;
&lt;br /&gt;
== MDT Formatted as a ZFS OSD ==&lt;br /&gt;
&lt;br /&gt;
=== Formatting an MDT using only the mkfs.lustre command ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; For the greatest flexibility and control when creating ZFS-based Lustre storage targets, do not use this approach – instead, create the zpool separately from formatting the Lustre OSD. See [[#Formatting an MDT using zpool and mkfs.lustre|Formatting an MDT using zpool and mkfs.lustre]].&lt;br /&gt;
&lt;br /&gt;
The syntax for creating a ZFS-based MDT 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 --mdt \&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 next example uses the &amp;lt;code&amp;gt;--servicenode&amp;lt;/code&amp;gt; syntax to create an MDT 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-mds2 system]# mkfs.lustre --mdt \&lt;br /&gt;
&amp;gt;   --fsname demo \&lt;br /&gt;
&amp;gt;   --index 0 \&lt;br /&gt;
&amp;gt;   --mgsnode 192.168.227.11@tcp1 --mgsnode 192.168.227.12@tcp1 \&lt;br /&gt;
&amp;gt;   --servicenode 192.168.227.12@tcp1 \&lt;br /&gt;
&amp;gt;   --servicenode 192.168.227.11@tcp1 \&lt;br /&gt;
&amp;gt;   --backfstype=zfs \&lt;br /&gt;
&amp;gt;   demo-mdt0pool/mdt0 \&lt;br /&gt;
&amp;gt;   mirror sdb sdd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition to defining the parameters of the MDT service itself, the command defines a mirrored ZFS zpool called &amp;lt;code&amp;gt;demo-mdt0pool&amp;lt;/code&amp;gt; consisting of two devices, and creates a ZFS dataset called &amp;lt;code&amp;gt;mdt0&amp;lt;/code&amp;gt;. Normally, it is expected that the MDT will be created from a larger pool of storage, to maximize performance and meet requirements for capacity; the above example is provided for the purposes of outlining the command line syntax.&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. 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-mds2 system]# mkfs.lustre --mdt \&lt;br /&gt;
&amp;gt;   --fsname demo --index 0 \&lt;br /&gt;
&amp;gt;   --mgsnode 192.168.227.11@tcp1 --mgsnode 192.168.227.12@tcp1 \&lt;br /&gt;
&amp;gt;   --failnode 192.168.227.11@tcp1 \&lt;br /&gt;
&amp;gt;   --backfstype=zfs \&lt;br /&gt;
&amp;gt;   demo-mdt0pool/mdt0 mirror sdb sdd&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;: When creating a ZFS-based OSD using only the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command, it is not possible to set or change some properties of the zpool or its vdevs, such as the &amp;lt;code&amp;gt;ashift&amp;lt;/code&amp;gt; property. For this reason, it is highly recommended that the zpools be created independently of the &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; command, as shown in the next section.&lt;br /&gt;
&lt;br /&gt;
=== Formatting an MDT using zpool and mkfs.lustre ===&lt;br /&gt;
&lt;br /&gt;
To create a ZFS-based MDT, create a zpool to contain the MDT file system dataset, then use &amp;lt;code&amp;gt;mkfs.lustre&amp;lt;/code&amp;gt; to create the actual file system dataset 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; \&lt;br /&gt;
  &amp;lt;zpool specification&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mkfs.lustre --mdt \&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;/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;
# Pool will comprise 3 mirrors each with 2 devices.&lt;br /&gt;
# Mirrors will be concatenated (striped).&lt;br /&gt;
zpool create -O canmount=off \&lt;br /&gt;
  -o cachefile=none \&lt;br /&gt;
  demo-mdt0pool \&lt;br /&gt;
  mirror sdd sde mirror sdf sdg mirror sdh sdi&lt;br /&gt;
&lt;br /&gt;
# Format MDT0 for Lustre file system &amp;quot;demo&amp;quot;&lt;br /&gt;
mkfs.lustre --mdt \&lt;br /&gt;
  --fsname demo \&lt;br /&gt;
  --index 0 \&lt;br /&gt;
  --mgsnode 192.168.227.11@tcp1 --mgsnode 192.168.227.12@tcp1 \&lt;br /&gt;
  --servicenode 192.168.227.12@tcp1 \&lt;br /&gt;
  --servicenode 192.168.227.11@tcp1 \&lt;br /&gt;
  --backfstype=zfs \&lt;br /&gt;
  demo-mdt0pool/mdt0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output from the above example will look something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
# The zpool command will not return output if there are no errors&lt;br /&gt;
[root@rh7z-mds2 system]# zpool create -O canmount=off \&lt;br /&gt;
&amp;gt;   -o cachefile=none \&lt;br /&gt;
&amp;gt;   demo-mdt0pool \&lt;br /&gt;
&amp;gt;   mirror sdd sde mirror sdf sdg mirror sdh sdi&lt;br /&gt;
&lt;br /&gt;
[root@rh7z-mds2 system]# mkfs.lustre --mdt \&lt;br /&gt;
&amp;gt;   --fsname demo \&lt;br /&gt;
&amp;gt;   --index 0 \&lt;br /&gt;
&amp;gt;   --mgsnode 192.168.227.11@tcp1 --mgsnode 192.168.227.12@tcp1 \&lt;br /&gt;
&amp;gt;   --servicenode 192.168.227.12@tcp1 \&lt;br /&gt;
&amp;gt;   --servicenode 192.168.227.11@tcp1 \&lt;br /&gt;
&amp;gt;   --backfstype=zfs \&lt;br /&gt;
&amp;gt;   demo-mdt0pool/mdt0&lt;br /&gt;
&lt;br /&gt;
   Permanent disk data:&lt;br /&gt;
Target:     demo:MDT0000&lt;br /&gt;
Index:      0&lt;br /&gt;
Lustre FS:  demo&lt;br /&gt;
Mount type: zfs&lt;br /&gt;
Flags:      0x1061&lt;br /&gt;
              (MDT first_time update no_primnode )&lt;br /&gt;
Persistent mount opts: &lt;br /&gt;
Parameters:  mgsnode=192.168.227.11@tcp1:192.168.227.12@tcp1  failover.node=192.168.227.12@tcp1:192.168.227.11@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 demo-mdt0pool/mdt0&lt;br /&gt;
Writing demo-mdt0pool/mdt0 properties&lt;br /&gt;
  lustre:version=1&lt;br /&gt;
  lustre:flags=4193&lt;br /&gt;
  lustre:index=0&lt;br /&gt;
  lustre:fsname=demo&lt;br /&gt;
  lustre:svname=demo:MDT0000&lt;br /&gt;
  lustre:mgsnode=192.168.227.11@tcp1:192.168.227.12@tcp1&lt;br /&gt;
  lustre:failover.node=192.168.227.12@tcp1:192.168.227.11@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 or &amp;lt;code&amp;gt;tunefs.lustre&amp;lt;/code&amp;gt; to verify that the file system dataset has been formatted correctly. 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-mds2 ~]# zfs get all -s local&lt;br /&gt;
NAME                PROPERTY              VALUE                                    SOURCE&lt;br /&gt;
demo-mdt0pool       canmount              off                                      local&lt;br /&gt;
demo-mdt0pool/mdt0  canmount              off                                      local&lt;br /&gt;
demo-mdt0pool/mdt0  xattr                 sa                                       local&lt;br /&gt;
demo-mdt0pool/mdt0  lustre:svname         demo-MDT0000                             local&lt;br /&gt;
demo-mdt0pool/mdt0  lustre:flags          4129                                     local&lt;br /&gt;
demo-mdt0pool/mdt0  lustre:failover.node  192.168.227.12@tcp1:192.168.227.11@tcp1  local&lt;br /&gt;
demo-mdt0pool/mdt0  lustre:version        1                                        local&lt;br /&gt;
demo-mdt0pool/mdt0  lustre:mgsnode        192.168.227.11@tcp1:192.168.227.12@tcp1  local&lt;br /&gt;
demo-mdt0pool/mdt0  lustre:fsname         demo                                     local&lt;br /&gt;
demo-mdt0pool/mdt0  lustre:index          0                                        local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Starting the MDS Service ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;mount&amp;lt;/code&amp;gt; command is used to start all Lustre storage services, including the MDS. The syntax is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
mount -t lustre [-o &amp;lt;options&amp;gt;] \&lt;br /&gt;
  &amp;lt;ldiskfs blockdev&amp;gt;|&amp;lt;zpool&amp;gt;/&amp;lt;dataset&amp;gt; &amp;lt;mount point&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;mount&amp;lt;/code&amp;gt; command syntax is very similar for both LDISKFS and ZFS storage targets. The main difference is the format of the path to the storage. For LDISKFS, the path will resolve to a block device, such as &amp;lt;code&amp;gt;/dev/sda&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/dev/mapper/mpatha&amp;lt;/code&amp;gt;, whereas for ZFS, the path resolves to a dataset in a zpool, e.g. &amp;lt;code&amp;gt;demo-mdt0pool/mdt0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The mount point directory must exist before the mount command is executed. The recommended convention for the mount point of the MDT storage is &amp;lt;code&amp;gt;/lustre/&amp;lt;fsname&amp;gt;/mdt&amp;lt;n&amp;gt;&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;&amp;amp;lt;fsname&amp;amp;gt;&amp;lt;/code&amp;gt; is the name of the file system and &amp;lt;code&amp;gt;&amp;amp;lt;n&amp;amp;gt;&amp;lt;/code&amp;gt; is the index number of the MDT.&lt;br /&gt;
&lt;br /&gt;
The following example starts a ZFS-based MDS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
# Ignore MOUNTPOINT column in output: not used by Lustre&lt;br /&gt;
[root@rh7z-mds2 ~]# zfs list&lt;br /&gt;
NAME                 USED  AVAIL  REFER  MOUNTPOINT&lt;br /&gt;
demo-mdt0pool       2.87M  9.62G    19K  /demo-mdt0pool&lt;br /&gt;
demo-mdt0pool/mdt0  2.79M  9.62G  2.79M  /demo-mdt0pool/mdt0&lt;br /&gt;
&lt;br /&gt;
[root@rh7z-mds2 ~]# mkdir -p /lustre/demo/mdt0&lt;br /&gt;
&lt;br /&gt;
[root@rh7z-mds2 ~]# mount -t lustre demo-mdt0pool/mdt0 /lustre/demo/mdt0&lt;br /&gt;
&lt;br /&gt;
[root@rh7z-mds2 ~]# df -ht lustre&lt;br /&gt;
File system          Size  Used Avail Use% Mounted on&lt;br /&gt;
demo-mdt0pool/mdt0  9.7G  2.8M  9.7G   1% /lustre/demo/mdt0&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; The default output for &amp;lt;code&amp;gt;zfs list&amp;lt;/code&amp;gt; shows mount points for the &amp;lt;code&amp;gt;demo-mdt0pool&amp;lt;/code&amp;gt; Pool and &amp;lt;code&amp;gt;mdt0&amp;lt;/code&amp;gt; dataset in the &amp;lt;code&amp;gt;MOUNTPOINT&amp;lt;/code&amp;gt; column. Just as for all ZFS-formatted OSDs, the content in this column can be ignored.&lt;br /&gt;
&lt;br /&gt;
To reduce confusion, the ZFS file system &amp;lt;code&amp;gt;mountpoint&amp;lt;/code&amp;gt; property can be set equal to &amp;lt;code&amp;gt;none&amp;lt;/code&amp;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;
zfs set mountpoint=none demo-mdt0pool&lt;br /&gt;
zfs set mountpoint=none demo-mdt0pool/mdt0&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; Only the &amp;lt;code&amp;gt;mount -t lustre&amp;lt;/code&amp;gt; command can start Lustre services. Mounting storage as type &amp;lt;code&amp;gt;ldiskfs&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;zfs&amp;lt;/code&amp;gt; will mount a storage target on the host, but it will not trigger the startup of the requisite Lustre kernel processes.&lt;br /&gt;
&lt;br /&gt;
To verify that the MDS is running, check that the MDT device has been mounted, then get the Lustre device list with &amp;lt;code&amp;gt;lctl dl&amp;lt;/code&amp;gt;, and review the running processes:&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 ~]# df -ht lustre&lt;br /&gt;
File system          Size  Used Avail Use% Mounted on&lt;br /&gt;
demo-mdt0pool/mdt0  9.7G  2.8M  9.7G   1% /lustre/demo/mdt0&lt;br /&gt;
&lt;br /&gt;
[root@rh7z-mds2 ~]# lctl dl&lt;br /&gt;
  0 UP osd-zfs demo-MDT0000-osd demo-MDT0000-osd_UUID 7&lt;br /&gt;
  1 UP mgc MGC192.168.227.11@tcp1 1605562b-d702-9251-6f38-1fd4a64e2720 5&lt;br /&gt;
  2 UP mds MDS MDS_uuid 3&lt;br /&gt;
  3 UP lod demo-MDT0000-mdtlov demo-MDT0000-mdtlov_UUID 4&lt;br /&gt;
  4 UP mdt demo-MDT0000 demo-MDT0000_UUID 5&lt;br /&gt;
  5 UP mdd demo-MDD0000 demo-MDD0000_UUID 4&lt;br /&gt;
  6 UP qmt demo-QMT0000 demo-QMT0000_UUID 4&lt;br /&gt;
  7 UP lwp demo-MDT0000-lwp-MDT0000 demo-MDT0000-lwp-MDT0000_UUID 5&lt;br /&gt;
&lt;br /&gt;
[root@rh7z-mds2 ~]# ps -ef | awk &amp;#039;/mdt/ &amp;amp;&amp;amp; !/awk/&amp;#039;&lt;br /&gt;
root     32320     2  0 Mar30 ?        00:00:00 [mdt00_000]&lt;br /&gt;
root     32321     2  0 Mar30 ?        00:00:00 [mdt00_001]&lt;br /&gt;
root     32322     2  0 Mar30 ?        00:00:00 [mdt00_002]&lt;br /&gt;
root     32323     2  0 Mar30 ?        00:00:00 [mdt_rdpg00_000]&lt;br /&gt;
root     32324     2  0 Mar30 ?        00:00:00 [mdt_rdpg00_001]&lt;br /&gt;
root     32325     2  0 Mar30 ?        00:00:00 [mdt_attr00_000]&lt;br /&gt;
root     32326     2  0 Mar30 ?        00:00:00 [mdt_attr00_001]&lt;br /&gt;
root     32327     2  0 Mar30 ?        00:00:00 [mdt_out00_000]&lt;br /&gt;
root     32328     2  0 Mar30 ?        00:00:00 [mdt_out00_001]&lt;br /&gt;
root     32329     2  0 Mar30 ?        00:00:00 [mdt_seqs_0000]&lt;br /&gt;
root     32330     2  0 Mar30 ?        00:00:00 [mdt_seqs_0001]&lt;br /&gt;
root     32331     2  0 Mar30 ?        00:00:00 [mdt_seqm_0000]&lt;br /&gt;
root     32332     2  0 Mar30 ?        00:00:00 [mdt_seqm_0001]&lt;br /&gt;
root     32333     2  0 Mar30 ?        00:00:00 [mdt_fld_0000]&lt;br /&gt;
root     32334     2  0 Mar30 ?        00:00:00 [mdt_fld_0001]&lt;br /&gt;
root     32340     2  0 Mar30 ?        00:00:00 [mdt_ck]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stopping the MDS Service ==&lt;br /&gt;
&lt;br /&gt;
To stop a Lustre service, umount the corresponding target:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
umount &amp;lt;mount point&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The mount point must correspond to the mount point used with the &amp;lt;code&amp;gt;mount -t lustre&amp;lt;/code&amp;gt; command. 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-mds2 ~]# df -ht lustre&lt;br /&gt;
File system          Size  Used Avail Use% Mounted on&lt;br /&gt;
demo-mdt0pool/mdt0  9.7G  2.8M  9.7G   1% /lustre/demo/mdt0&lt;br /&gt;
[root@rh7z-mds2 ~]# umount /lustre/demo/mdt0&lt;br /&gt;
[root@rh7z-mds2 ~]# df -ht lustre&lt;br /&gt;
df: no file systems processed&lt;br /&gt;
[root@rh7z-mds2 ~]# lctl dl&lt;br /&gt;
[root@rh7z-mds2 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using the regular &amp;lt;code&amp;gt;umount&amp;lt;/code&amp;gt; command is the correct way to stop a given Lustre service and unmount the associated storage, for both LDISKFS and ZFS-based Lustre storage volumes.&lt;br /&gt;
&lt;br /&gt;
Do not use the &amp;lt;code&amp;gt;zfs unmount&amp;lt;/code&amp;gt; command to stop a Lustre service. Attempting to use &amp;lt;code&amp;gt;zfs&amp;lt;/code&amp;gt; commands to unmount a storage target that is mounted as part of an active Lustre service will return an error.&lt;br /&gt;
&lt;br /&gt;
[[Category:Creating Lustre File System Services]]&lt;/div&gt;</summary>
		<author><name>Malcolm</name></author>
	</entry>
</feed>