慢速文件复制观察到通过networking将40GB文件复制到iSCSI设备

这里有一个奇怪的大师:

build立:

源计算机:本地硬盘驱动器的Windows Server 2003 R2计算机。 40GB的VHD文件。 1个1Gbps网卡,Cat6电缆,交换机。

目标计算机:Windows Server 2008 R2计算机,iSCSI连接到单独计算机上的iSCSI目标(1TB,RAID5)。 1 x 1Gbps网卡,Cat6电缆,连接到与源机相同的交换机。 第二个1Gbps网卡,Cat6电缆,通过隔离开关连接到iSCSI目标。

开关是Netgear JGS524型号(networkingpipe理)。

如果我从Win2003R2机器复制到Win2008R2机器本地驱动器,我在45分钟36秒内获得40GB。

如果我从Win2008R2机器复制到iSCSI目标(本地驱动器到iSCSI目标),我在37分56秒内获得40GB。

如果我通过Win2008R2机器从Win2003R2机器复制到iSCSI目标,我可以在3小时50分钟24秒内获得40GB的容量。

所有的拷贝都是通过在Win2008R2框中发布的以下命令完成的:

XCOPY <source> <target> / J

XCOPY / J – 使用无缓冲的I / O复制。 推荐用于非常大的文件。

那么,我在这里错过了什么? 为什么一个“直通”拷贝总共需要1小时23分32秒才能进行背靠背拷贝?

交换机显示没有错误,networking在复制期间围绕3%利用率标记徘徊(而“背对背”复制大约为25%的利用率标记)。

我错过了什么?

难道是“无缓冲的”复制问题? Windows可能会做一些技巧来加速复制源/目标是本地磁盘,但是如果它使用两个networking设备,它将恢复到更安全的行为。

我在Unix上玩过磁盘testing,操作系统可以用磁盘子系统玩很多技巧。 祝你好运。

那么SMB协议呢? Win2k8R2使用SMB 2.0,而较早的Win版本只有SMB 1.0,速度并不快,而且病毒扫描程序是否处于活动状态? 另一方面,iSCSI设备的直接访问使用不同的协议,最大限度地减less了开销,并且没有病毒扫描程序。

首先,在两种情况下,你都从2003R2复制到2008R2。 自2003年以来,它只能使用SMB1,并没有太多的同时请求的方式,信息将穿越networking大约64kb的大块,每个64kb块必须由服务器确认写入前2003R2盒子发送下一个。

现在,如果2008R2盒必须发送iSCSI请求并收到确认,然后才将答复返回给2003R2盒,则可能会减慢过程。 一些信封计算的后面表明,对于64kb的块,你需要在来自2003R2的请求之间22ms写入一个块,并且回应说它已经被写入。 这似乎有点长,但是不涉及涉及所有步骤的可能性。

我不确定这是否是您的问题,但是如果您有兴趣,那么您可以使用wireshark查看networkingstream量并validation块大小和延迟是否涉及。

另一个不太令人兴奋的可能性是,您将服务器设置为“全双工”,并将您的交换机设置为自动协商。 这种组合不起作用,导致交换机认为连接是半双工的,并导致偶尔丢弃数据包。 当服务器同时发送和接收大量数据时,丢弃的数据包将会变得更糟,这与您的第二个复制过程相同。