<div dir="ltr">Hi drbd-dev,<div><br>It will be appreciated if you can give me some advice.</div><div>I&#39;m try to do local block device replication(vda vdb), in the very beginning I use drbdsetup to create a local replication connection with the same ip + different port, and it works(as attached drbdsetup-to-create-local-replication.sh). It seems like drbd kernel module support this kind of usage(local replication).</div><div><br></div><div>Then I try to make it as /etc/drbd.d/*.res formats, I create r0.res and r0-local.res. When I execute drbdadm up r0, drbdadm report error(as attached drbdadm_up_error.log) something like &quot;address conflict&quot;. And I found it was caused by the function &#39;check_addr_conflict&#39; in $drbd-utils/user/v9/drbdadm_postparse.c Line 1171~1173, I can see the comments of check_addr_conflict(below), but I don&#39;t get it ^^&quot; :</div><div>/* An AF/IP/addr triple might be used by multiple connections within one resource,  but may not be mentioned in any other resource... */. As my understanding the function check_addr_conflict is checking all resources if there&#39;s any AF/IP/addr triple mentioned in any other resources.</div><div><br></div><div><b><font size="4">My questions are:</font></b></div><div><b><font size="4">Q1. why an AF/IP/addr triple may not be mentioned in any other resource?</font></b></div><div><b><font size="4">Q2. I mark off Line 1171~1173, make drbdadm skip &#39;check_addr_conflict&#39; and it works. Do you have any concerns? </font></b></div><div><b><font size="4">Do you have any idea to do local replication with drbdadm and configured /etc/drbd.d/*.res ?</font></b></div><div><br>== attached files contents ==</div><div>1. drbdsetup-to-create-local-replication.sh:</div># create r0 resource<br>drbdmeta 1 v09 /dev/vda internal create-md 3 --force<br>drbdsetup new-resource r0 1<br>drbdsetup new-minor r0 1 0<br>drbdsetup attach 1 /dev/vda /dev/vda internal<br>drbdsetup new-peer r0 2 --_name=local --protocol=C<br>drbdsetup primary r0 --force<br>drbdsetup  connect r0 2<br><br># create r0-local resource<br>drbdmeta 2 v09 /dev/vdb internal create-md 3 --force<br>drbdsetup new-resource r0-local 2<br>drbdsetup new-minor r0-local 2 0<br>drbdsetup attach 2 /dev/vdb /dev/vdb internal<br>drbdsetup new-peer r0-local 0 --_name=local --protocol=C<br>drbdsetup connect r0-local 1<br><br><div># start syncing vda to vdb ...</div><div><br></div><div>2. drbdadm_up_error.log:</div><div>[root@k80 ~]# /usr/sbin/<a href="http://drbdadm.org">drbdadm.org</a> up r0<br>/etc/drbd.d/r0.res:0: in resource r0<br>    ipv4:<a href="http://192.168.122.80:7789">192.168.122.80:7789</a> is also used /etc/drbd.d/r0-hot.res:0 (resource r0-local)<br>/etc/drbd.d/r0.res:0: in resource r0<br>    ipv4:<a href="http://192.168.122.80:7790">192.168.122.80:7790</a> is also used /etc/drbd.d/r0-hot.res:0 (resource r0-local)<br></div><div><br></div><div>3. /etc/drbd.d/r0.res(as attached):</div><div>resource r0 {<br>  device /dev/drbd1;<br>  meta-disk internal;<br>  disk &quot;/dev/vda&quot;;<br>  on k80 {<br>    node-id 1;<br>    address <a href="http://192.168.122.80:7789">192.168.122.80:7789</a>;<br>  }<br>  on local {<br>    node-id 2;<br>    address <a href="http://192.168.122.80:7790">192.168.122.80:7790</a>;<br>  }<br><br>  connection-mesh {<br>    hosts k80 local;<br>  }<br>}<br></div><div><br></div><div>4. /etc/drbd.d/r0-local.res:</div><div>resource r0-local {<br>  disk &quot;/dev/vdb&quot;;<br>  device /dev/drbd2;<br>  meta-disk internal;<br>  on k80 {<br>    node-id 2;<br>    address <a href="http://192.168.122.80:7790">192.168.122.80:7790</a>;<br>  }<br>  on local {<br>    node-id 1;<br>    address <a href="http://192.168.122.80:7789">192.168.122.80:7789</a>;<br>  }<br><br>  connection-mesh {<br>    hosts  k80 local;<br>  }<br>}<br></div><div><br></div><div><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Thanks,<div>Kevin</div></div></div></div></div>