Page 2 of 2

[MERGED] Using multiple NICs for proxy and repository

Veeam LogoPosted: Mon Sep 26, 2016 10:18 am
by Nils
Sorry if this has been asked before, but I wasn't able to find an answer to my problem.

We've recently upgraded our connection between two office locations from single to dual gigabit, and now I'm trying to make use of this for backup.

Location 1:
    2 ESXi hosts (5.1)
    iSCSI storage
    virtual proxy (Win2012R2) with direct SAN access through ESXi storage NICs (wasn't too happy with hotadd in Veeam 8)
Location 2:
    Veeam Backup server (Win2008R2, VBR 9.0u2), local backup repository (DAS)
Network: 2 HP 2910 with a dual link LACP trunk (for traffic distribution, these use source and destination IP addresses only)

What I did:
    added a 2nd NIC to the backup server, added 2nd IP address (B) to already existing IP (A) in server subnet
    added a 2nd vNIC to the proxy, bound both vNIC to dedicated host NICs through extra port groups with a single NIC, added 2nd IP (D) to already existing IP (C) in server subnet
    the new IP addresses were selected to vary traffic distribution over the trunk: B=A+1, D=C+3
    verified that traffic distributes over both LACP links and both ESXi NICs when using different connection combinations A-B, A-C, B-C, and B-D
    the setup uses DNS names for the repository and the proxy, so I added 2nd IP addresses to the server's and the proxy's DNS records
    verified that both IP addresses are resolved in turn through DNS (round robin with Windows 2012R2 DNS server)

However, when running a backup job, only one ESXi NIC and one backup server NIC are ever used (at 100% load), the new ones are idle. All visible connections are A-B. The job has several dozen vDisks, parallel processing is on. iSCSI multipathing on the proxy works fine.

Experimentally, I've tried adding static routes for A-C, B-D / C-A, D-B on each side. This had no effect.

How do I get Veeam proxy/repository to rotate through the source/destination addresses?

Re: Using multiple NICs for proxy and repository

Veeam LogoPosted: Fri Sep 30, 2016 3:53 pm
by Nils
Apparently, there is no easy solution...

In case you're looking at a similar problem, this is the - somewhat awkward - solution:
    deactivated 1st proxy with DNS name/IP address in server subnet which I can't route as I need to
    installed a 2nd virtual proxy, configured iSCSI etc.
    added IP addresses and extra DNS names for both proxies in two additional IP subnets that I run over the server subnet anyway - this seems to be necessary to get the required routing
    added extra IP addresses in these subnets to the backup/repository server
    add the two additional subnets in Menu -> Network Traffic -> Networks as preferred networks (completely missed that one - thanks, Aleksej!)
    set both Windows servers underlying the proxies to 'Run server on this side' (Backup Infrastructure -> Properties -> Credentials -> Ports) - otherwise the proxies connect to the repository's first IP address/first NIC only
    set the backup job to use these two proxies

If I find the time I'll try to simplify things a bit - if I'm successful I'll post here. If you have a similar problem, please post a short message. If we're lucky, Veeam adds a simpler mechanism to a future release.

PS: small correction from the first post: with our HP 2910 switches I needed to use the IP addresses B=A+1 and D=C+2

Re: Using multiple NICs for proxy and repository

Veeam LogoPosted: Tue Oct 11, 2016 9:45 am
by Nils
Small update: Veeam support has indicated that you can also use a single proxy instance with multiple NICs/IP addresses if you separate both (all) routes by using multiple names each resolving to one of the various IP addresses or using IP addresses directly. Each name/IP has to be added as a separate proxy/server. I haven't tried it yet but I'm positive that'll work as well.

Re: Veeam and NIC Teams

Veeam LogoPosted: Thu Aug 03, 2017 3:00 pm
by Nils
Another - late - update:
With two proxies, each in its own (logical) subnet, both links can be utilized 100%. We were able to double our backup speed and halve the backup window - perfect load balancing.

If you try to build this yourself you need:
    * one proxy for each one of the network links - alternatively, one proxy with several vNICs (bound to separate host NICs)
    * put each proxy (or vNIC) into its own "special" IP subnet, add DNS names for these - you can also use a DNS name with a normal IP address, just don't use it when adding the proxy
    * add an IP out of the special subnets to your repository server's NICs as required to reach your proxy of choice with this NIC
    * check whether traffic within each of the subnets runs through the NICs, links and vNICs as required (using e.g. iperf) - you're running this subnet on top of your normale subnet which might require configuring your network security
    * add each proxy to your Veeam infrastructure with the DNS name using the "special" IPs - this forces Veeam to use the IP subnet designed to route the traffic through your trunk links
    * configure the proxy to "run the server on this side" (Managed Servers -> Microsoft Windows -> proxy name -> Properties -> Credentials -> Ports) - otherwise, the proxies connect to your repository using the standard subnet
    * configure your backup jobs to use these proxies