本文同步自(如浏览不正常请点击跳转):https://zohead.com/archives/smb3-over-rdma-performance/ Windows Server 2012 (之前的名字就是 Windows Server 8)即将到来,近日看到原来 Windows Server 8 中新增的 SMB 2.2 文件共享协议也有了新的官方名称:SMB 3.0,看看这个介绍说明: http://blogs.technet.com/b/windowsserver/archive/2012/04/19/smb-2-2-is-now-smb-3-0.aspx SMB 3.0 相对于 Windows Server 2003 以及以前的操作系统中的 SMB 1.0 协议增加了很多新的特性: 精简 SMB 1.0 中繁多的命令,减少 ACK 提高效率; 支持流水线机制,可以在上一个 SMB 命令未完成之前发新的命令; 支持符号链接,支持更大的文件块大小提高大块文件读写的性能; 更好的 oplock 机制; 更像真正的文件系统,原来不能安装在 SMB 共享中的程序(例如:SQL Server)也可以使用了; 支持通过 RDMA(Remote Direct Memory Access) 远程直接访问数据提高在 Infiniband 等环境下的性能; 多通道支持,通过多网络通道提高性能,而且支持错误容忍和集群。 刚好旁边有两张 Mellanox 的 Infiniband 卡,顺便就来看看 SMB 3.0 over RDMA 的实际读写性能怎么样咯。由于 SMB 3.0 只有 Windows Server 8 或者 Windows Server 2012 才支持,因此用 Windows Server 8 的测试 ISO 安装并拷贝了一份系统(服务器和客户端都必须支持 SMB 3.0)。 测试环境: 服务器: Intel S5500BC 服务器主板; Intel Xeon E5506 CPU * 1; Kingston DDR3 1066 4G 服务器内存 * 1; Mellanox MHQH29B ConnectX®-2 系列 32Gbps Infiniband 卡(PCI-E x 8 插槽); Adaptec RAID 51645 PCIe SAS RAID卡; WD WD10EVDS 1TB SATA 监控硬盘 * 16; Windows Server 8 Beta Datacenter Build 8250 64位中文版; IPoIP 网卡 IP 地址:192.168.3.196(MTU:4092) 客户端: TYAN S7002 服务器主板; Intel Xeon E5506 CPU * 1; Kingston DDR3 1066 2G 服务器内存 * 1; Mellanox MHQH19B ConnectX®-2 系列 32Gbps Infiniband 卡(PCI-E x 16 插槽); Windows Server 8 Beta Datacenter Build 8250 64位中文版; IPoIP 网卡 IP 地址:192.168.3.172(MTU:4092) 其它环境: 由于没有 Infiniband 交换机,故测试时服务器和客户端的 Infiniband 卡通过 Mellanox MCC4Q30C-003 QSFP 线缆直连,而且客户端的 Infiniband 卡只有一个接口,所以也只测试了单口的性能,没有测试 SMB 3.0 多通道下的性能。 测试软件: IBM Tivoli SANergy(测试大块文件连续读写); Iometer(测试大块文件并发读写); NetPIPE(测试 IPoIB (IP over Infiniband) 的纯粹网络性能); Mellanox 驱动程序中的 IB Tools(启动 SM 并测试纯粹 Infiniband 性能) 测试步骤及结果: 1、在服务器和客户端分别安装 Mellanox Infiniband 卡最新的驱动程序: 虽然 Windows Server 8 中已经自动 Mellanox Infiniband 的驱动,但为了更新 firmware 并能使用上软件 SM(没 Infiniband 交换机滴说 -_-#),必须更新官方的驱动,到下面的网址下载新驱动: http://www.mellanox.com/content/pages.php?pg=products_dyn&product_family=129&menu_section=34 安装 Mellanox OFED for Windows Server 2012,建议安装时按照下面的提示更新卡的 firmware 以免带来不必要的问题: 安装完成之后重启服务器和客户端,你会发现 “网络连接” 里已经有了 Mellanox 的 IPoIB 网卡,但是是 “未连接” 的状态,因为 Infiniband 网络里还没有配置 SM(Subnet Manager)。 先来简单了解下 Infiniband 的 Subnet Manager: Infiniband(IB) 网络中需要使用 Subnet Manager(SM)来初始化 IB 硬件并允许其在 IB 架构中通信。每个 IB 子网必须有至少一个 SM,并且每个 SM 在 IB 架构中要有清楚的 ID。IB 架构就包含已经定义好的子网。IB 交换机和 IB 卡一样有自己的 GUID,主机适配卡(HCA)的端口被称为 port GUID,当一个 HCA 或者它的端口需要与子网中的另一个进行通信就需要分配网络地址,这些网络地址被称为 LID,而 IB 中的 SM 就负责为子网中的成员分配 LID,LID 只是对子网而言的,而 GUID 则是对整个 IB 架构中所有子网相同的。 IB 交换机一般就可以充当 SM 的角色,对于我这没有 IB 交换机的环境,幸好咱们还是有穷人的方法的,使用免费的 OpenSM 软件可以让两个机器中的任意一台做软件 SM。 […]
Tag: Test
rsync在 Linux/cygwin/msys 环境下的备份性能对比
本文博客链接:https://zohead.com/archives/rsync-performance-linux-cygwin-msys/ rsync是一个开源免费的文件同步和备份工具,可用于本地备份,本地与远程服务器之间的备份,可以实现增量和差异备份,而且由于比较好的算法,在文件备份速度上也相对其它一些文件备份工具有明显的优势。 但 rsync 一直以来没有 Windows 下的原生客户端,都是基于 cygwin 环境实现,实际备份性能会受一些影响,近日看到 rsync 的 基于 MSYS 的 Win32 原生客户端已经被 port 出来,故简单做下性能对比测试。 测试环境: rsync服务器为 RHEL5 Linux 64bit,8个SATA盘的RAID0做下层存储,采用单千兆网络和千兆交换机 rsync客户端为:RHEL5 Linux 64bit,Windows 2003 Enterprise 32bit 测试时 rsync 均通过匿名方式访问,不经过SSH做用户验证,由于考虑到测试的 rsync 客户端的系统盘速度有瓶颈,客户端文件读写都通过内存文件系统来实现(Linux 上使用 tmpfs,Windows 上使用 ImDisk 模拟内存盘)。 使用同样的客户端主板分别在 Linux 和 Windows 内存中产生 1.5GB 的测试文件,然后通过 rsync 客户端进行备份到服务器(写操作)和从服务器上恢复(读操作)的操作。 备份命令示例: rsync -hv x.dat 192.168.1.125::rsync0/ 测试软件列表: 标准 Linux rsync 客户端(RHEL 5 系统自带) cygwin rsync 客户端 MSYS rsync 客户端 http://sourceforge.net/projects/mingw/files/MSYS/Extension/rsync/ RsyncWin32 客户端 http://sourceforge.net/projects/rsyncwin32/ 测试结果: 测试软件 写性能(MB/s) 读性能(MB/s) Linux rsync 105.27 105.28 cygwin rsync 76.22 64.49 MSYS rsync 7.98 8.14 RsyncWin32 76.72(出现错误) 38.50(出现错误) 从测试结果看,由于 rsync 本身面向类 Linux 环境开发,在 Linux 系统中有着非常好的性能,cygwin rsync 与 Linux 相比有一定差距,但实际使用中还是比较稳定的,而 MSYS rsync 还处于测试阶段,虽然没有出现备份错误,但在千兆网络环境下性能非常差,RsyncWin32 则相对而言问题比较多,备份过程中甚至会出现备份错误。 综上看来,目前在 Windows 上使用 cygwin rsync 做备份客户端仍然算是比较好的解决方案,MSYS rsync 的问题可以啥时候有空再看看咯。