<div dir="ltr">Thank you for the explanation on LLOG and changelog.  With respect to the following statement :<div><br></div><div><b>>> Lustre has its own mechanisms to guarantee transaction are committed to disk and handle crash. Basicly, I/O are not acknowledge to Lustre clients before the data is actually on disk. In case of server crash, the Lustre client will replay all non-acknowledge I/Os to ensure none of them are lost.</b></div><div><br></div><div>For example:</div><div><br></div><div>Let us say that I have 4 clients (cli1, cli2, cli3 and cli4) and all are writing and reading data.  I have 1 host with 4 disks (2 OSTs, 1 MDT, 1 MGT). </div><div><ol><li>cli1 issues a directory remove (rm -rf /mnt/lustre/dir1)</li><li>cli1 loses connection with Lustre targets.</li><li>cli2 wants to now create a file under /mnt/lustre/dir1/file100 and write some data to file100</li></ol><div>All of these are happening in parallel. </div><div><ul><li>Does cli2 get an error that /mnt/lustre/dir1 has been removed and it has to first issue additional I/O to create /mnt/lustre/dir1 before reissuing the I/O to write file100 ?</li><li>If a transaction from cli2 happens before cli1, then this would lead to data lost situation for cli2, if cli2 tries to read/write data from/to file100 after sometime.</li><li>What is the role of last_rcvd file in this entire picture ?</li></ul></div></div><div><div><div>I am trying to get a 30,000 ft overview of how lustre replay/recovery works.</div></div></div><div><br></div><div>Thanks again and appreciate your timely response.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jan 29, 2021 at 1:22 AM Degremont, Aurelien <<a href="mailto:degremoa@amazon.com">degremoa@amazon.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="FR" style="overflow-wrap: break-word;">
<div class="gmail-m_-4964076887753855651WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hi,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">This is not totally correct.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">First, LLOG is the underlying technology used to store and handle Lustre Changelogs. But LLOG is used for other Lustre mechanisms, like lustre configuration.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">Second, Changelog is similar to an audit feature. Changelog only logs different filesystem change, mostly metadata change, but definitely not the file content change. They don't play
 a role at all in transaction or failure recovery. This is only an admin feature.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">At the end, indeed ZIL cannot be used and Lustre has its own mechanisms to guarantee transaction are committed to disk and handle crash. Basicly, I/O are not acknowledge to Lustre clients
 before the data is actually on disk. In case of server crash, the Lustre client will replay all non-acknowledge I/Os to ensure none of them are lost.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">Changelog is not needed in your case.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">Aurélien<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(181,196,223);padding:3pt 0cm 0cm">
<p class="MsoNormal" style="margin-left:35.4pt"><b><span style="font-size:12pt;color:black">De :
</span></b><span style="font-size:12pt;color:black">lustre-devel <<a href="mailto:lustre-devel-bounces@lists.lustre.org" target="_blank">lustre-devel-bounces@lists.lustre.org</a>> au nom de Sudheendra Sampath <<a href="mailto:sudheendra.sampath@gmail.com" target="_blank">sudheendra.sampath@gmail.com</a>><br>
<b>Date : </b>jeudi 28 janvier 2021 à 21:43<br>
<b>À : </b>"<a href="mailto:lustre-devel@lists.lustre.org" target="_blank">lustre-devel@lists.lustre.org</a>" <<a href="mailto:lustre-devel@lists.lustre.org" target="_blank">lustre-devel@lists.lustre.org</a>><br>
<b>Objet : </b>[EXTERNAL] [lustre-devel] Lustre log question(s)<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><u></u> <u></u></p>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="0" width="625" style="width:468.8pt;margin-left:35.4pt;border-collapse:collapse">
<tbody>
<tr style="height:15.25pt">
<td width="625" valign="top" style="width:468.8pt;border:1.5pt solid rgb(237,125,49);padding:0cm 5.4pt;height:15.25pt">
<p><strong><span style="font-family:Calibri,sans-serif;color:black;background:rgb(255,255,153)">CAUTION</span></strong><span style="color:black;background:rgb(255,255,153)">: This email originated from outside of the organization. Do not click links or open attachments unless
 you can confirm the sender and know the content is safe.</span><u></u><u></u></p>
</td>
</tr>
</tbody>
</table>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Hi, <u></u><u></u></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">I am trying to evaluate osd-zfs based MDS and OST deployment on a 2 node setup.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">I have the following questions about Lustre log:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:71.4pt">
<u></u><span>1.<span style="font:7pt "Times New Roman"">      
</span></span><u></u><b>Is changelog and llog both the same, in the sense are they synonymous with each other?</b><u></u><u></u></p>
<p class="MsoNormal" style="margin-left:71.4pt">
<u></u><span>2.<span style="font:7pt "Times New Roman"">      
</span></span><u></u>I understand that ZIL is currently not supported in Lustre version 2.12.2.  My question is :  
<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:107.4pt">
<u></u><span>1.<span style="font:7pt "Times New Roman"">      
</span></span><u></u>My understanding is that transactions (in general) need some logging mechanism for it to work in 'all or none' scenarios.  Please correct me if my understanding is incorrect.   I understand that changelog has to be enabled so that filesystem
 changes are recorded to be replayed after a crash.  <b>How does Lustre transactions work if there is no intent log/changelog ?</b><u></u><u></u></p>
<p class="MsoNormal" style="margin-left:107.4pt">
<u></u><span>2.<span style="font:7pt "Times New Roman"">      
</span></span><u></u>Does it mean that if changelog is NOT enabled and there is a crash, we risk losing all changes/updates to the filesystem ?<u></u><u></u></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Appreciate your timely response and Thank you for your help.<u></u><u></u></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><u></u> <u></u></p>
</div>
<p class="MsoNormal" style="margin-left:35.4pt">-- <u></u><u></u></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Regards<br>
<br>
Sudheendra Sampath<u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>

</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">Regards<br><br>Sudheendra Sampath</div>