Thanks, Felix!<div>If I may - my question still stands.Two points here:</div><div>1. The configuration I posted was for a &quot;2 minutes to reproduce on any machine&quot; purpose. I have done the same with FC exported LUNs with Read-Only set on the storage device with the same result.<br>
2. I have read Florian&#39;s comment however while entertaining and pointing a real eventual problem it is not a reason to condemn the concept - sparse virtual disks are widely used in virtualization and to make things worse accessed through NFS.</div>
<div>Proper resource planning and making sure how one&#39;s application use disk IO take us a long way and away from contention memory pressure situations.</div><div><br></div><div>I have made additional test - instead of using &quot;blockdev&quot; I used &quot;losetup -r&quot; to set the &quot;read-only&quot; flag on the primary data LUN.</div>
<div>It turns out that this way DRDB does not catch the &quot;read-only&quot; state of the underlying device and enables the drbd resource allowing it to sync to the remote target. Of coarse mounting is possible in &quot;ro&quot; mode.</div>
<div><br></div><div>My vote goes to classify this as a bug.   </div><div>Dimitar</div><div><br><div class="gmail_quote">On Fri, May 11, 2012 at 12:49 AM, Felix Frank <span dir="ltr">&lt;<a href="mailto:ff@mpexnet.de" target="_blank">ff@mpexnet.de</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I don&#39;t really see what the issue is, but I would definitely like to<br>
bring this back up:<br>
<br>
<a href="http://lists.linbit.com/pipermail/drbd-user/2011-May/016009.html" target="_blank">http://lists.linbit.com/pipermail/drbd-user/2011-May/016009.html</a><br>
<br>
So this may end your problems &quot;the other way&quot; ;-)<br>
<br>
Cheers,<br>
Felix<br>
<div class="im"><br>
On 05/11/2012 03:24 AM, Dimitar Boyn wrote:<br>
&gt; Hi,<br>
&gt; I use sparse files to organize a DRBD resource.<br>
&gt; I am using build from source drbd-8.4.1.<br>
&gt; I use the default commons with device configured as:<br>
&gt;<br>
&gt; [root@nodeb ~]# cat /etc/drbd.d/drbd0.res<br>
&gt; resource DRBD0 {<br>
&gt;<br>
&gt;   syncer {<br>
&gt;     csums-alg md5;<br>
&gt;   }<br>
</div>&gt;   on <a href="http://nodea.cyclone-trading.com" target="_blank">nodea.cyclone-trading.com</a> &lt;<a href="http://nodea.cyclone-trading.com" target="_blank">http://nodea.cyclone-trading.com</a>&gt; {<br>
&gt;     device      /dev/drbd0;<br>
&gt;     disk        /dev/loop0;<br>
&gt;     address     <a href="http://192.168.150.128:7791" target="_blank">192.168.150.128:7791</a> &lt;<a href="http://192.168.150.128:7791" target="_blank">http://192.168.150.128:7791</a>&gt;;<br>
&gt;     meta-disk   /dev/loop1[0];<br>
&gt;   }<br>
&gt;   on <a href="http://nodeb.cyclone-trading.com" target="_blank">nodeb.cyclone-trading.com</a> &lt;<a href="http://nodeb.cyclone-trading.com" target="_blank">http://nodeb.cyclone-trading.com</a>&gt; {<br>
&gt;     device      /dev/drbd0;<br>
&gt;     disk        /dev/loop0;<br>
&gt;     address     <a href="http://192.168.150.129:7791" target="_blank">192.168.150.129:7791</a> &lt;<a href="http://192.168.150.129:7791" target="_blank">http://192.168.150.129:7791</a>&gt;;<br>
<div class="im">&gt;     meta-disk   /dev/loop1[0];<br>
&gt;   }<br>
&gt; }<br>
&gt;<br>
&gt; The underlying loop devices go to sparse files as follows:<br>
&gt; [root@nodeb ~]# losetup -a<br>
&gt; /dev/loop0: [0802]:791356 (/root/LUN0.sparse)<br>
&gt; /dev/loop1: [0802]:791357 (/root/LUN1.sparse)<br>
&gt; [root@nodeb ~]# ll LUN*<br>
&gt; -rw-r--r--. 1 root root 1099511627776 May  9 09:37 LUN0.sparse<br>
&gt; -rw-r--r--. 1 root root     134217728 May  9 08:24 LUN1.sparse<br>
&gt; [root@nodeb ~]# du -h LUN*<br>
&gt; 423M    LUN0.sparse<br>
&gt; 33M     LUN1.sparse<br>
&gt;<br>
&gt;<br>
&gt; everything works as expected until I down DRBD0 mark loop0 as read-only<br>
&gt; and then try to &quot;up&quot; the DRBD0 resource:<br>
&gt;<br>
&gt; [root@nodeb ~]# drbdadm down all<br>
&gt; [root@nodeb ~]# cat /proc/drbd<br>
&gt; version: 8.4.1 (api:1/proto:86-100)<br>
&gt; GIT-hash: 91b4c048c1a0e06777b5f65d312b38d47abaea80 build by<br>
</div>&gt; <a href="mailto:root@NodeA.cyclone-trading.com">root@NodeA.cyclone-trading.com</a> &lt;mailto:<a href="mailto:root@NodeA.cyclone-trading.com">root@NodeA.cyclone-trading.com</a>&gt;,<br>
<div class="HOEnZb"><div class="h5">&gt; 2012-05-09 07:39:38<br>
&gt;<br>
&gt; [root@nodeb ~]# blockdev --getro /dev/loop0<br>
&gt; 0<br>
&gt; [root@nodeb ~]# blockdev --setro /dev/loop0<br>
&gt; [root@nodeb ~]# blockdev --getro /dev/loop0<br>
&gt; 1<br>
&gt; [root@nodeb ~]# drbdadm up DRBD0<br>
&gt; 0: Failure: (104) Can not open backing device.<br>
&gt; Command &#39;drbdsetup attach 0 /dev/loop0 /dev/loop1 0&#39; terminated with<br>
&gt; exit code 10<br>
&gt;<br>
&gt; I will highly appreciate the insight on why using a read-only source is<br>
&gt; a problem - once the metadata device is accessible for writes.<br>
&gt;<br>
&gt; Many Thanks!<br>
&gt; ./Dimitar Boyn<br>
</div></div></blockquote></div><br><br>
</div>