[plug] Point to point fast network
Brad Campbell
brad at fnarfbargle.com
Fri Aug 2 06:10:51 UTC 2013
G'day Guys,
I've had to shuffle some data around recently between machines, and I've
been playing with bonded Gig-E to do it. I post it here in case someone
finds it useful or interesting.
Because of an error on an Ext4 filesystem I've been unable to rectify
nor explain, I've had to move 8TB of data from one machine to another,
recreate the filesystem and then move it back again.
In the interest of making this process as quick as possible I looked at
a couple of local network options. The machines are sat next to each
other, so distance is not an issue.
The obvious solution was some 10G cards and a patch lead, but I was
unable to find cards that were affordable, and could conclusively be
shown to work well with Linux.
I tried using some cheap Realtek based Gig-E cards (I had them lying
around). I found that bonded they scaled pretty well, but I was pushing
to get more than about 400M per card (far, far short of the theoretical
maximum).
I happened to have a Quad port Intel Gig-E adapter in one of the
machines, so I jumped on fleabay and picked up a second card for just
under $100 shipped. When that arrived I trunked 3 of the ports and
configured them in a balance-rr bonded connection.
All conventional wisdom says I was likely to get close to the
theoretical maximum for about 2 ports as packet re-ordering and other
issues would start making life difficult.
In reality, once I turned the mtu up to 9000, set
/proc/sys/net/ipv4/tcp_reordering to 127 (default 3) and set the
txqueuelen on the bond device to 10000, I found I could stream tar over
netcat and comfortably sustain 300 megabytes/s to and from the disks.
It sped the process up no end. If I can free up the 4th port on the
first machine, I might even try 4 ports and see if I can make it go faster.
It's nice if you need a big hose.
More information about the plug
mailing list