<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Dear lars,<BR>
&nbsp;<BR>
In this case:<BR>
now DRBD runs well both on primay node and secondary node.&nbsp; <BR>
(Suse linux OS.)<BR>
(DRBD-8.3.0,&nbsp; use Protocol C. )<BR>
&nbsp;<BR>
On primary node, one process use linux app "msync"(sync mode) to sync the content to disk.<BR>
(And this disk is the block device which DRBD protected.)<BR>
&nbsp;<BR>
Now on the secondary node, the disk has some problem (for example, the disk is pull&nbsp;out from the machine...).<BR>
At&nbsp;this very point, the&nbsp;thread will block&nbsp;while calling "msync" api; but, api "fsync" will not be blocked.<BR>
( I reproduced this issue in lab, "UpToDate -&gt; Diskless " in /var/log/messages&nbsp;happened at&nbsp;the &nbsp;same time with the time <BR>
&nbsp; when "msync" calling is blocked. )<BR>
&nbsp;<BR>
About 3 minutes later, another process is invoked by me, and it will call "msync" api also, but now, it will not be blocked.<BR>
&nbsp;<BR>
So, i think "msync" (sync mode)calling is waiting the OS to tell it that the data is flushed to disk.&nbsp; <BR>
But the local disk will not mark the data is flushed to local disk until the remote disk is flushed.&nbsp; (Because DRBD used "Protocol C".)<BR>
But at this very point, the remote disk has some problem, (for example, the disk has problem; I reproduded this issue by pulling the disk out ...)<BR>
So, "msync" calling is block.<BR>
But when DRBD found remore disk is "Diskless", "msync" api will not be blocked. <BR>
Because DRBD has the intelligence that remote disk is "Diskless", so it will not check the remore disk to flush data.<BR>
And when local disk is flushed, it will mark the data is flushed. So, at this time, "msync" calling will not be blocked.<BR>
&nbsp;<BR>
Would you help to explain it ?&nbsp;<BR>
How could I solve this problem ?<BR>
&nbsp;<BR>
Best regards,<BR>
Edward<BR>
&nbsp;<BR>
+++++++++++++++++++++++++++++++ in /var/log/messages&nbsp; of primary node ++++++++++++++++++++++++++++++ <BR>
Nov 16 17:19:27 linux-17 kernel: drbd0: Got NegAck packet. Peer is in troubles?<BR>Nov 16 17:19:27 linux-17 kernel: drbd0: pdsk( UpToDate -&gt; Diskless )<BR>Nov 16 17:19:27 linux-17 kernel: drbd0: Creating new current UUID<BR>
&nbsp;<BR>
+++++++++++++++++++++++++++++++ below is on primary node ++++++++++++++++++++++++++++++++++++++++++++++<BR>
linux-17:~ # cat&nbsp; /proc/drbd <BR>version: 8.3.0 (api:88/proto:86-89)<BR>GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by <A href="mailto:root@linux-17">root@linux-17</A>, 2009-02-21 11:09:33<BR>&nbsp;0: cs:Connected ro:Primary/Secondary ds:UpToDate/Diskless C r---<BR>&nbsp;&nbsp;&nbsp; ns:1243340 nr:168424 dw:1554336 dr:70703 al:28 bm:63 lo:0 pe:2 ua:0 ap:1 ep:1 wo:b oos:28<BR>&nbsp;1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r---<BR>&nbsp;&nbsp;&nbsp; ns:0 nr:53248 dw:6283648 dr:1833 al:3 bm:16 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0<BR>&nbsp;2: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r---<BR>&nbsp;&nbsp;&nbsp; ns:0 nr:8 dw:11 dr:96 al:1 bm:3 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0<BR>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<BR>
<BR>&nbsp;<BR>&gt; Date: Mon, 16 Nov 2009 09:42:25 +0100<BR>&gt; From: lars.ellenberg@linbit.com<BR>&gt; To: drbd-user@lists.linbit.com<BR>&gt; Subject: Re: [DRBD-user] kernel: drbd0: Got NegAck packet. Peer is in troubles?<BR>&gt; <BR>&gt; On Sat, Nov 14, 2009 at 09:27:12AM +0800, guohuai li wrote:<BR>&gt; &gt; <BR>&gt; &gt; i use drbd8.3.0<BR>&gt; <BR>&gt; we have 8.3.5 respective 8.3.6 now.<BR>&gt; <BR>&gt; &gt; i also met such problem.<BR>&gt; &gt; <BR>&gt; &gt; I used msync linux api (sync mode) to write on primary node.<BR>&gt; &gt; <BR>&gt; &gt; And also it blocks at this case.<BR>&gt; <BR>&gt; In _which_ case does _what_ block,<BR>&gt; and what exactly do you mean by "block"?<BR>&gt; <BR>&gt; when "it" "blocks",<BR>&gt; I'd like to know what happened up to that point,<BR>&gt; have the kernel logs,<BR>&gt; cat /proc/drbd<BR>&gt; and<BR>&gt; ps -eo pid,state,wchan:30,cmd<BR>&gt; <BR>&gt; Thanks.<BR>&gt; <BR>&gt; <BR>&gt; -- <BR>&gt; : Lars Ellenberg<BR>&gt; : LINBIT | Your Way to High Availability<BR>&gt; : DRBD/HA support and consulting http://www.linbit.com<BR>&gt; <BR>&gt; DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.<BR>&gt; __<BR>&gt; please don't Cc me, but send to list -- I'm subscribed<BR>&gt; _______________________________________________<BR>&gt; drbd-user mailing list<BR>&gt; drbd-user@lists.linbit.com<BR>&gt; http://lists.linbit.com/mailman/listinfo/drbd-user<BR>                                               <br /><hr />Keep your friends updated— <a href='http://www.microsoft.com/middleeast/windows/windowslive/see-it-in-action/social-network-basics.aspx?ocid=PID23461::T:WLMTAGL:ON:WL:en-xm:SI_SB_5:092010' target='_new'>even when you’re not signed in.</a></body>
</html>