I am trying
to copy a large amount (about 50 GB) of data over my network from a Hyper-V-hosted virtual machine running Ubuntu 11.04 (Natty Narwhal)
to another (non-virtual) Ubuntu host that I plan
to use for testing upgrades
to one of our web applications. The problem I am having is with the virtual machine, which I shall
refer to in what follows as "source.host". This machine is running 64-bit Ubuntu Server with the 2.6.38-8-server kernel and the Microsoft Linux Integration Components for Hyper-V kernel modules (hv_utils, hv_timesource, hv_netvsc, hv_blkvsc, hv_storvsc, and hv_vmbus) loaded. It uses a Hyper-V "synthetic network adapter" for its networking interface.
To do the copy, I log on
to the machine with the data and run the following commands (Call the remote machine "destination.host".):
$ cd /path/to/data
$ tar -cvf - datafolder/ | ssh
[email protected] "cat > ~/data.tar"
This runs for a while and then suddenly stops after transferring somewhere from 2-6 GB. The terminal on the source.host machine displays a Write failed: broken pipe error. The odd part is this: after this occurs, the "source.host" machine is no longer able
to talk
to the rest of the network. I cannot ping any other hosts on the network from the "source.host" machine, and I cannot ping the "source.host" machine from any other host on the network. I am equally unable
to access the any of the web services hosted on "source.host".
Running ifconfig on "source.host" shows the network adapter
to be up and running as usual with the correct IP address and everything. I tried restarting the networking service with
$ /etc/init.d/networking restart
but the problem does not go away. Restarting the machine makes it capable of talking
to the network again -- it can ping and be pinged by other hosts, and the web services are also accessible and usable as normal -- but attempting the copy operation again results in the same failure, requiring another restart.
As an experiment, I tried replacing the tar -- ssh pipeline above with a straight scp:
$ scp -r datafolder/
[email protected]:~
but
to no avail
Thinking that the issue might have
to do with the kernel packet-send buffers filling up, I tried increasing the buffer size
to 12 MB (up from the 128 KB default) with
# echo 12582911 > /proc/sys/net/core/wmem_max
but this also had no effect.
I'm guessing at this point that it might be a problem with the Microsoft synthetic network driver, but I don't really know. Does anyone have any suggestions?
Thank you very much in advance!