Hi,
I've recently acquired an HP Proliant Microserver and I've installed FreeBSD 9 for its ZFS support.
The server comes with a Broadcom Corporation NetXtreme BCM5723 Gigabit Ethernet PCIe network card (detected as bge0), and I've added an Intel 1000CT card (82574L, detected as em0). I've loaded the box with a bunch of disks, and ZFS performs like a charm!
To maximize the throughput, I've bonded the two network interfaces via the lagg(4)module, and it works well:
I also have an Ubuntu box with a Realtek gigabit card on board (RTL8111/8168B), and all the bandwidth tests with iperf I've done get me 900 Mbs (I plan to bond this box with another interface too, as soon as I receive another Intel 1000CT card, in order to perform over 1 Gbs, because it's my second NAS box and I'll backup my data)
However, I have a third PC, a Windows 7 (nobody's perfect ...). It has the same network card on board as the Ubuntu box, I believe, an RTL8111E chip.
The banwidth with his one is pretty much abnormal. I have 150 Mbs upload from the FreeBSD box to Windows, and 350 Mbs from Windows to FreeBSD.
Of course, I've done several tests as swapping cables to make sure it's not a physical issue. I've done all my tests with iperf, which is not hard disk dependant (and anyway, Windows 7 runs on an SSD). And done some tweaking on the Windows side, like enabling jumbo frames.
But, it did not help.
My original FreeBSD setup was:
So, I've disabled roundrobin, and set the IP address on only one card as following (I've switched em0 and bge0 during my tests, to make sure the flaw wasn't coming from one of the cards) :
When disabling roundrobin, I have a very generous bandwidth between the FreeBSD box and Windows (up to 900 Mbs with iperf, both sides, with bge0 and em0). Accordingly, my FTP transfers reach 100 MB/s for a real life example.
But when I re-enable roundrobin (the original setup), the bandwidth is once more crappy (150 Mbs upload and 350 Mbs download).
I've run iperf as a tcp server on the FreeBSD box, and with the Ubuntu and Windows boxes as simultaneous tcp clients, I reach 1.2 Gbs bandwidth (900+300) on the FreeBSD, so I know roundrobin is really working.
My goal is to have a "comfortable" bandwidth between the FreeBSD and the Ubuntu servers, because I'll have 6 TB backups going through the wires (I'll receive the missing card soon), so i need roundrobin on the FreeBSD side too.
But as the Windows box is my leisure PC, it's no way to keep the things as they are (30-40 MB/s will be too short for some uses, as reading big iso files). ZFS is soooo good, I don't want to switch the Proliant server from FreeBSD to another Linux with a raid =/ And besides, I'm a sysadmin, and I'm stubborn, I'll keep searching 'till I find a solution ...
For now, all the tests I've run lead me to believe that lagg(4)'s roundrobin somehow is "incompatible" with the Microsoft's IP stack. But I don't know what to do.
If somebody has a solution (tweaking the FreeBSD box or Windows 7), let me know.
It really matters for me.
Thanks!
I've recently acquired an HP Proliant Microserver and I've installed FreeBSD 9 for its ZFS support.
The server comes with a Broadcom Corporation NetXtreme BCM5723 Gigabit Ethernet PCIe network card (detected as bge0), and I've added an Intel 1000CT card (82574L, detected as em0). I've loaded the box with a bunch of disks, and ZFS performs like a charm!
To maximize the throughput, I've bonded the two network interfaces via the lagg(4)module, and it works well:
- I have failover when I disconnect one of my cables
- I reach 900 Mbs to 1200 Mbs when doing iperf tests (these values will be explained later)
I also have an Ubuntu box with a Realtek gigabit card on board (RTL8111/8168B), and all the bandwidth tests with iperf I've done get me 900 Mbs (I plan to bond this box with another interface too, as soon as I receive another Intel 1000CT card, in order to perform over 1 Gbs, because it's my second NAS box and I'll backup my data)
However, I have a third PC, a Windows 7 (nobody's perfect ...). It has the same network card on board as the Ubuntu box, I believe, an RTL8111E chip.
The banwidth with his one is pretty much abnormal. I have 150 Mbs upload from the FreeBSD box to Windows, and 350 Mbs from Windows to FreeBSD.
Of course, I've done several tests as swapping cables to make sure it's not a physical issue. I've done all my tests with iperf, which is not hard disk dependant (and anyway, Windows 7 runs on an SSD). And done some tweaking on the Windows side, like enabling jumbo frames.
But, it did not help.
My original FreeBSD setup was:
Code:
cloned_interfaces="lagg0"
ifconfig_bge0="up"
ifconfig_em0="up"
ifconfig_lagg0="laggproto roundrobin laggport bge0 laggport em0"
ipv4_addrs_lagg0="192.168.0.3/24"
So, I've disabled roundrobin, and set the IP address on only one card as following (I've switched em0 and bge0 during my tests, to make sure the flaw wasn't coming from one of the cards) :
Code:
cloned_interfaces="lagg0"
ifconfig_bge0="up"
ifconfig_em0="up"
#ifconfig_lagg0="laggproto roundrobin laggport em0 laggport bge0"
#ipv4_addrs_lagg0="192.168.0.3/24"
ifconfig_bge0=" inet 192.168.0.3 netmask 255.255.255.0"
#ifconfig_em0=" inet 192.168.0.3 netmask 255.255.255.0"
When disabling roundrobin, I have a very generous bandwidth between the FreeBSD box and Windows (up to 900 Mbs with iperf, both sides, with bge0 and em0). Accordingly, my FTP transfers reach 100 MB/s for a real life example.
But when I re-enable roundrobin (the original setup), the bandwidth is once more crappy (150 Mbs upload and 350 Mbs download).
I've run iperf as a tcp server on the FreeBSD box, and with the Ubuntu and Windows boxes as simultaneous tcp clients, I reach 1.2 Gbs bandwidth (900+300) on the FreeBSD, so I know roundrobin is really working.
My goal is to have a "comfortable" bandwidth between the FreeBSD and the Ubuntu servers, because I'll have 6 TB backups going through the wires (I'll receive the missing card soon), so i need roundrobin on the FreeBSD side too.
But as the Windows box is my leisure PC, it's no way to keep the things as they are (30-40 MB/s will be too short for some uses, as reading big iso files). ZFS is soooo good, I don't want to switch the Proliant server from FreeBSD to another Linux with a raid =/ And besides, I'm a sysadmin, and I'm stubborn, I'll keep searching 'till I find a solution ...
For now, all the tests I've run lead me to believe that lagg(4)'s roundrobin somehow is "incompatible" with the Microsoft's IP stack. But I don't know what to do.
- I have a proper physical network
- I've searched for dropped packets but there's none reported by iperf (when you switch the utility to udp connections, it reports how much packets were lost, and there's none).
- The network cards on Ubuntu and Windows are the same
If somebody has a solution (tweaking the FreeBSD box or Windows 7), let me know.
It really matters for me.
Thanks!