<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Lars,<div><br></div><div>Thank you for responding. It was quite helpful. I don't know why I thought I needed a temporary drbd resource to get at the snapshot. I do indeed see the VM img files just mounting the snapshot.</div><div><br></div><div>What can I do to reduce the effect of the backup on the primary node ? Would it make sense to do this before the copy starts:</div><div><br></div><div>/sbin/drbdadm net-options --protocol=A zapp</div><div><br></div><div>or perhaps increasing the&nbsp;sndbuf-size or&nbsp;al-extents ?</div><div><br></div><div>Irwin<br><br><div>&gt; Date: Wed, 30 Apr 2014 22:31:17 +0200<br>&gt; From: lars.ellenberg@linbit.com<br>&gt; To: drbd-user@lists.linbit.com<br>&gt; Subject: Re: [DRBD-user] Load high on primary node while doing backup on secondary<br>&gt; <br>&gt; On Wed, Apr 23, 2014 at 10:16:24AM -0700, Irwin Nemetz wrote:<br>&gt; &gt; I have a two node cluster. There are 3 mail nodes running as KVM virtual<br>&gt; &gt; machines on one node. The 3 VM's sit on top of a DRBD disk on a LVM volume<br>&gt; &gt; which replicates to the passive 2nd node.<br>&gt; &gt; <br>&gt; &gt; Hardware: 2x16 core AMD processors, 128gb memory, 5 3tb sas drives in a raid5<br>&gt; <br>&gt; You likely won't get "terrific" performance out of a few large drivers in raid5.<br>&gt; <br>&gt; &gt; The drbd replication is over a crossover cable.<br>&gt; &gt; <br>&gt; &gt; version: 8.4.4 (api:1/proto:86-101)<br>&gt; &gt; GIT-hash: 599f286440bd633d15d5ff985204aff4bccffadd build by phil@Build64R6, 2013-10-14 15:33:06<br>&gt; <br>&gt; &gt; resource zapp<br>&gt; &gt; {<br>&gt; &gt;   startup {<br>&gt; &gt;     wfc-timeout 10;<br>&gt; &gt;     outdated-wfc-timeout 10;<br>&gt; &gt;     degr-wfc-timeout 10;<br>&gt; &gt;   }<br>&gt; &gt;   disk {<br>&gt; &gt;     on-io-error detach; <br>&gt; &gt;     rate 40M;<br>&gt; &gt;     al-extents 3389;<br>&gt; &gt;   }<br>&gt; &gt;   net {<br>&gt; &gt;    verify-alg sha1;<br>&gt; &gt;    max-buffers 8000;<br>&gt; &gt;    max-epoch-size 8000;<br>&gt; &gt;    sndbuf-size 512k;<br>&gt; &gt;    cram-hmac-alg sha1;<br>&gt; &gt;    shared-secret sync_disk;<br>&gt; &gt;    data-integrity-alg sha1;<br>&gt; <br>&gt; Don't enable data-integrity in production.  It will just burn your<br>&gt; cycles and limit your throughput to however fast your core can crunch sha1.<br>&gt; <br>&gt; That's a *diagnostic* feature.<br>&gt; It does not really do anything for the integrity of your data,<br>&gt; it just happens to help to *detect* when integrity *may* be compromised.<br>&gt; We should have named that<br>&gt; "burn-cpu-cycles-and-calculate-extra-checksums-for-diagnostic-purposes".<br>&gt; <br>&gt; <br>&gt; &gt;   }<br>&gt; &gt;   on nodea.cluster.dns {<br>&gt; &gt;    device /dev/drbd1;<br>&gt; &gt;    disk /dev/virtimages/zapp;<br>&gt; &gt;    address 10.88.88.171:7787;<br>&gt; &gt;    meta-disk internal;<br>&gt; &gt;   }<br>&gt; &gt;   on nodeb.cluster.dns {<br>&gt; &gt;    device /dev/drbd1;<br>&gt; &gt;    disk /dev/virtimages/zapp;<br>&gt; &gt;    address 10.88.88.172:7787;<br>&gt; &gt;    meta-disk internal;<br>&gt; &gt;   }<br>&gt; &gt; }<br>&gt; <br>&gt; You could probably do a lot of tuning ...<br>&gt; <br>&gt; &gt; I am trying to do a backup of the VM's nightly. They are about 2.7TB each.<br>&gt; &gt; I create a snapshot on the backup node, mount it and then do a copy to a<br>&gt; &gt; NAS backup storage device. The NAS is on it's own network.<br>&gt; &gt; <br>&gt; &gt; Here's the script:<br>&gt; &gt; <br>&gt; &gt; [root@nodeb ~]# cat backup-zapp.sh<br>&gt; &gt; #!/bin/bash<br>&gt; &gt; <br>&gt; &gt; date<br>&gt; &gt; cat &gt; /etc/drbd.d/snap.res &lt;&lt;EOF<br>&gt; <br>&gt; *OUTCH*<br>&gt; <br>&gt; What would you do that.<br>&gt; <br>&gt; There is no point to create a throw away DRBD resource automatically<br>&gt; to access a snapshot from below an other DRBD.<br>&gt; <br>&gt; Just use that snapshot directly.<br>&gt; <br>&gt; Or am I missing something?<br>&gt; <br>&gt; &gt; /sbin/lvcreate -L500G -s -n snap-zapp /dev/virtimages/zapp<br>&gt; &gt; <br>&gt; &gt; /sbin/drbdadm up snap<br>&gt; <br>&gt; No need. Really.<br>&gt; <br>&gt; &gt; sleep 2<br>&gt; &gt; /sbin/drbdadm primary snap<br>&gt; &gt; mount -t ext4 /dev/drbd99 /mnt/zapp<br>&gt; <br>&gt; instead, this should do all you need:<br>&gt; mount -t ext4 -o ro /dev/virtimages/snap-zapp /mnt/zapp<br>&gt; <br>&gt; &gt; cd /rackstation/images<br>&gt; &gt; mv -vf zapp.img zapp.img.-1<br>&gt; &gt; mv -vf zapp-opt.img zapp-opt.img.-1<br>&gt; &gt; cp -av /mnt/zapp/*.img /rackstation/images<br>&gt; &gt; umount /mnt/zapp<br>&gt; &gt; /sbin/drbdadm down snap<br>&gt; &gt; rm -f /etc/drbd.d/snap.res<br>&gt; &gt; /sbin/lvremove -f /dev/virtimages/snap-zapp<br>&gt; &gt; date<br>&gt; &gt; <br>&gt; &gt; About half way thru the copy, the copy starts stuttering (network traffic<br>&gt; &gt; stops and starts) and the load on the primary machine and the virtual<br>&gt; &gt; machine being copied shoots thru the roof.<br>&gt; <br>&gt; Maybe snapshots filling up, disks being slow and all,<br>&gt; and everything that is written on the primary needs to be written on the<br>&gt; secondary *twice* now, while you are hammering that secondary IO<br>&gt; subsystem with reads...<br>&gt; of course that impacts the Primary, as soon as the secondary RAID 5<br>&gt; can no longer keep up with the load you throw at it.<br>&gt; <br>&gt; &gt; I am at lose to explain this since it's dealing with a snapshot of a<br>&gt; &gt; volume on a replicated node. The only reasonable explanation I can think<br>&gt; &gt; of is that the drbd replication is being blocked by something and this is<br>&gt; &gt; causing the disk on the primary node to become unresponsive.<br>&gt; <br>&gt; Yep.<br>&gt; See above.<br>&gt; <br>&gt; You could try to use rsync --bwlimit instead of cp, that will reduce the<br>&gt; read load, but it will also prolong the lifetime of the snapshot,<br>&gt; so it may or may not actually help.<br>&gt; <br>&gt; Or maybe you just need to defrag your VM images...<br>&gt; possibly they are fragmented, and what you see is the secondary IO<br>&gt; subsystem hitting the IOPS limit while trying to seek through all the VM<br>&gt; image fragments...<br>&gt; <br>&gt; Or use a "stacked" DBRD setup,<br>&gt; and disconnect the third node.<br>&gt; Or, if you can live with reduced redundancy during the backup,<br>&gt; disconnect the secondary for that time.<br>&gt; <br>&gt; Or add a dedicated PV for the snapshot "exeption store",<br>&gt; or add non-volatile cache to your RAID.<br>&gt; or a number of other options.<br>&gt; <br>&gt; Thing is, if you stress the secondary IO subsystem enough,<br>&gt; that *will* impact the (write performance on the) primary.<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></div></div>                                               </div></body>
</html>