<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Hi, dear all,<BR>
<BR>
Now "protocol B" is used, no such issue.<BR>
<BR>
regards,<BR>
Edward<BR> <BR>
<HR id=stopSpelling>
From: guohuai_li@hotmail.com<BR>To: lars.ellenberg@linbit.com; drbd-user@lists.linbit.com; guohuai_li@hotmail.com; guohuailee0927@gmail.com<BR>Subject: RE: [DRBD-user] kernel: drbd0: Got NegAck packet. Peer is in troubles?<BR>Date: Mon, 16 Nov 2009 19:34:12 +0800<BR><BR>
<STYLE>
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Verdana;}
</STYLE>
Dear lars,<BR> <BR>In this case:<BR>now DRBD runs well both on primay node and secondary node. <BR>(Suse linux OS.)<BR>(DRBD-8.3.0, use Protocol C. )<BR> <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> <BR>Now on the secondary node, the disk has some problem (for example, the disk is pull out from the machine...).<BR>At this very point, the thread will block while calling "msync" api; but, api "fsync" will not be blocked.<BR>( I reproduced this issue in lab, "UpToDate -> Diskless " in /var/log/messages happened at the same time with the time <BR> when "msync" calling is blocked. )<BR> <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> <BR>So, i think "msync" (sync mode)calling is waiting the OS to tell it that the data is flushed to disk. <BR>But the local disk will not mark the data is flushed to local disk until the remote disk is flushed. (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> <BR>Would you help to explain it ? <BR>How could I solve this problem ?<BR> <BR>Best regards,<BR>Edward<BR> <BR>+++++++++++++++++++++++++++++++ in /var/log/messages 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 -> Diskless )<BR>Nov 16 17:19:27 linux-17 kernel: drbd0: Creating new current UUID<BR> <BR>+++++++++++++++++++++++++++++++ below is on primary node ++++++++++++++++++++++++++++++++++++++++++++++<BR>linux-17:~ # cat /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> 0: cs:Connected ro:Primary/Secondary ds:UpToDate/Diskless C r---<BR> 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> 1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r---<BR> 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> 2: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r---<BR> 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> <BR>> Date: Mon, 16 Nov 2009 09:42:25 +0100<BR>> From: lars.ellenberg@linbit.com<BR>> To: drbd-user@lists.linbit.com<BR>> Subject: Re: [DRBD-user] kernel: drbd0: Got NegAck packet. Peer is in troubles?<BR>> <BR>> On Sat, Nov 14, 2009 at 09:27:12AM +0800, guohuai li wrote:<BR>> > <BR>> > i use drbd8.3.0<BR>> <BR>> we have 8.3.5 respective 8.3.6 now.<BR>> <BR>> > i also met such problem.<BR>> > <BR>> > I used msync linux api (sync mode) to write on primary node.<BR>> > <BR>> > And also it blocks at this case.<BR>> <BR>> In _which_ case does _what_ block,<BR>> and what exactly do you mean by "block"?<BR>> <BR>> when "it" "blocks",<BR>> I'd like to know what happened up to that point,<BR>> have the kernel logs,<BR>> cat /proc/drbd<BR>> and<BR>> ps -eo pid,state,wchan:30,cmd<BR>> <BR>> Thanks.<BR>> <BR>> <BR>> -- <BR>> : Lars Ellenberg<BR>> : LINBIT | Your Way to High Availability<BR>> : DRBD/HA support and consulting http://www.linbit.com<BR>> <BR>> DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.<BR>> __<BR>> please don't Cc me, but send to list -- I'm subscribed<BR>> _______________________________________________<BR>> drbd-user mailing list<BR>> drbd-user@lists.linbit.com<BR>> 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">even when you’re not signed in.</A>                                            <br /><hr />Windows Live: Make it easier for your friends to see <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_2:092009' target='_new'>what you’re up to on Facebook.</a></body>
</html>