Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11681752
  • 博文数量: 8065
  • 博客积分: 10002
  • 博客等级: 中将
  • 技术积分: 96708
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 17:06
文章分类

全部博文(8065)

文章存档

2008年(8065)

分类: 服务器与存储

2008-08-26 13:13:34

  iSCSI磁盘阵列可以同时为多种不同的操作系统提供服务,所以客户在布置环境的时候首先需要关心的就是这个磁盘阵列的互操作性问题:这些产品真的可以为那么多种不同的操作系统提供服务吗?
 
  操作系统兼容性
 
  于是我们对每一个iSCSI磁盘阵列都进行了3种常用的
。我们把这些磁盘阵列布置在一个环境里,这个环境主要是测试一下微软2008操作系统和Centos 5 Linux操作系统的软件驱动发起的方式和通过Qlogic的硬件驱动发起方式。
 
  在iSCSI技术里,“initiator”相当于网络上的客户端,“target”相当于网络上的
端。我们将使用“虚拟分区”的方式来代替target模式来帮助我们更好的操作。我们的测试结果将显示出不同模式下,iSCSI发起端和虚拟分区间是如何验证、负载均衡和互相协作的。
 
  一些基本操作系统的互操作性测试,我们测试的这些产品都表现不错。我们能够通过3种不同的工作方式进行连接和
数据,尽管最后有3个产品的测试让我们非常头疼。Nexsan SATAbeast和Kano NetCOR 7500的系统在完全工作之前都需要进行软件的升级。Kano NetCOR 7500通过Qlogic硬件方式实现的时候竟然让一个控制器垮掉。因为Kano NetCOR 7500是双控制器架构的,所以他有一个高可用的控制器对,一个控制器垮掉的同时又另一个接管工作。
 
  尽管在测试过程中控制器由垮掉到接管再到重新启动,经过这样一个自身重置的过程,但是我们的系统却从来没有停止工作过。Nexsan SATAbeast的
系统在微软2008操作系统下采用多数据通道方式时不能正常工作,有些时候是不能正常连接系统的。他需要到Nexsan的网站一个微码升级才能够解决这个问题。
 
  在微软2008操作系统平台上我们测试Compellent StorageCenter存储平台遇到了一些非常敏感的问题。Compellent StorageCenter磁盘空间使用了一个单独的模式,根据各种子系统的性能要求为其分配磁盘空间。当一个新的虚拟分区被创建并迅速写满数据之后,系统需要延迟等待Compellent的控制器去收集磁盘空间。Compellent的工程师建议我们修改
注册表的设置来增加磁盘的超时设定,以解决这个问题。
 
 令人遗憾的链路聚合功能
 
  为了继续我们的互操作性测试,我们于是把问题的焦点放在了一个单独环节:在iSCSI initiator 和 iSCSI target快速可靠的建立连接。尽管采用单独的1Gbps连接带宽,但在微软Exchange 2007这样的应用下,还是要比绝大多数iSCSI磁盘阵列所为其提供的带宽要大的多。微软Exchange 2007也在通过创建多个连接来帮助其提高性能和可靠性。
 
  在网络领域里,我们通常会马上做一个链路聚合(也称网络捆绑),这是所有企业级
机都支持的一个IEEE标准,他能够让你联合多路连接成一个单独的“超级连接”,以获得更高的吞吐量和性能弹性。
 
  我们测试的每个存储系统都配备了2到12个千兆以太网端口,我们就想当然的认为在这些端口上做链路聚合是再简单不过的了,但是我们错了。这些系统中有5个,也就是Compellent StorageCenter、 Dell PS5000XV、 HP StorageWorks 2012i MSA、 Kano NetCOR和 Nexsan SATABeast的系统不支持链路聚合。
 
  这个问题看起来有些古怪和多余,但是当iSCSI与2GB/4GB光纤磁盘存储进行速度比较的时候,这个功能就有了很大的说服力。我们的测试中还有7个系统是支持此功能的,并且要实现链路聚合也不太贵,调试起来也不复杂,就可以很大的增加带宽和高可靠性。
 
  有个和链路聚合作用相似但方法不同的技术,我们通常称之为iSCSI系统的多路径I/O技术。多路径I/O的意思就是在存储系统的target端与客户
的initiator端之间有多条TCP/IP的连接进行工作。
 
  尽管initiator端看到的是两个或更多同样的target设备,多路径I/O允许initiator保持这些连接并且就像看到两个不同的连接一样,并进行负载共享或者高可用性。多路径I/O能够提供更大的性能(如果客户端能够充分发挥其多链路的负载均衡能力)和高可用性(如果两路TCP/IP连接是通过不同的交换机连入或者连接的是在两个不同的控制器上)。
 
  在多路径I/O技术和捆绑技术之间也存在着微小的不同,因为iSCSI通过TCP进行传输:多路径I/O技术通过需要多条TCP连接在同一时刻都保持可用的状态,但捆绑技术通常把多条链路作为一个单独的连接使用。根据target端和initiator端对某些特定高级TCP选项的支持(尤其在TCP窗口增大的情况下)和target端和initiator端的延迟影响,在一个增强带宽的环境里,两个TCP连接使用多路径I/O技术与两个物理连接的捆绑技术还是有着很多的不同的。
  
令人遗憾的链路聚合功能
 
  为了继续我们的互操作性测试,我们于是把问题的焦点放在了一个单独环节:在iSCSI initiator 和 iSCSI target快速可靠的建立连接。尽管采用单独的1Gbps连接带宽,但在微软Exchange 2007这样的应用下,还是要比绝大多数iSCSI磁盘阵列所为其提供的带宽要大的多。微软Exchange 2007也在通过创建多个连接来帮助其提高性能和可靠性。
 
  在网络领域里,我们通常会马上做一个链路聚合(也称网络捆绑),这是所有企业级
机都支持的一个IEEE标准,他能够让你联合多路连接成一个单独的“超级连接”,以获得更高的吞吐量和性能弹性。
 
  我们测试的每个存储系统都配备了2到12个千兆以太网端口,我们就想当然的认为在这些端口上做链路聚合是再简单不过的了,但是我们错了。这些系统中有5个,也就是Compellent StorageCenter、 Dell PS5000XV、 HP StorageWorks 2012i MSA、 Kano NetCOR和 Nexsan SATABeast的系统不支持链路聚合。
 
  这个问题看起来有些古怪和多余,但是当iSCSI与2GB/4GB光纤磁盘存储进行速度比较的时候,这个功能就有了很大的说服力。我们的测试中还有7个系统是支持此功能的,并且要实现链路聚合也不太贵,调试起来也不复杂,就可以很大的增加带宽和高可靠性。
 
  有个和链路聚合作用相似但方法不同的技术,我们通常称之为iSCSI系统的多路径I/O技术。多路径I/O的意思就是在存储系统的target端与客户
的initiator端之间有多条TCP/IP的连接进行工作。
 
  尽管initiator端看到的是两个或更多同样的target设备,多路径I/O允许initiator保持这些连接并且就像看到两个不同的连接一样,并进行负载共享或者高可用性。多路径I/O能够提供更大的性能(如果客户端能够充分发挥其多链路的负载均衡能力)和高可用性(如果两路TCP/IP连接是通过不同的交换机连入或者连接的是在两个不同的控制器上)。
 
  在多路径I/O技术和捆绑技术之间也存在着微小的不同,因为iSCSI通过TCP进行传输:多路径I/O技术通过需要多条TCP连接在同一时刻都保持可用的状态,但捆绑技术通常把多条链路作为一个单独的连接使用。根据target端和initiator端对某些特定高级TCP选项的支持(尤其在TCP窗口增大的情况下)和target端和initiator端的延迟影响,在一个增强带宽的环境里,两个TCP连接使用多路径I/O技术与两个物理连接的捆绑技术还是有着很多的不同的。
  多路径I/O技术的比拼
 
  多路径I/O技术要比链路聚合技术复杂得多,因为它要求停止iSCSI initiator端和iSCSI target端的对等模式。例如在Windows2003操作系统的时候,每个厂商支持多路径I/O技术的产品都需要配备一个特殊的产品模块,叫做DSM.我们在这次测试中非常幸运的选择了Windows2008操作系统平台,因为每个存储厂商早已经不再开发相应的DSM模块,在现有的Windows2008的平台下,他们都可以很好的支持多路径I/O技术。
 
  在Linux平台,我们对多路径I/O特点的测试并不是十分成功,而且也并不是所有的厂商都支持这个功能,即便是支持的产品如果想实现这个功能的话,看起来也需要很多烦杂的安装和重配置工作。
 
  这些厂商给我们介绍并提供多路径I/O技术的最主要原因是它能够在各个控制器之间分配负载。测试中有5个系统都拥有两个内部控制器,这5个系统分别是Dell PS5000XV、HP StorageWorks 2012i、Kano NetCOR 7500、Nexsan SATABeast和NetApp FAS2050.这一阵营中还有一个系统是LeftHand NSM 2120,他也可以将多个控制器以单一的iSCSI target来运行。
 
  这六款产品每个都可以使用多路径I/O技术来扩展负载能力,尽管其中的一些配置起来要比其他的难一些。Dell PS5000XV、Kano NetCOR和LeftHand NSM2120这三个系统通过很方便操作,就可以对外服务器端呈现一个IP地址,然后自动的进行负载均衡和故障切换。与之相对照的,HP、Nexsan和NetApp的多控制器的存储系统在配置多路径I/O技术的时候都需要手动操作,它要求明确地指出每个iSCSI initiator端与多路IP的连接以及与存储系统对外使用的target端连接。
 
  如果在一个存储系统内部你需要连接的是任何一个单独的控制器的话,多路径I/O技术是不会为你提供任何好处的,相反比起链路聚合的方式还会有很多反作用,包括较低的性能、很高的复杂度和管理的难度。例如,我们在测试NetApp的系统时同时使用了多路径I/O技术和链路聚合技术进行配置,结果发现链路聚合的方式可以提供10%-36%的性能增长,同时通过多路径I/O技术实现负载均衡。
 
  尽管我们在测试中没有发现哪个产品在互操作性方面是完全失败的,但是我们还是发现许多产品的设计细节并不是很好,它们使得一些网络管理增加了复杂性,也让建立一个高性能、高可靠的存储网络的过程更加困难。
阅读(773) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-09-14 15:18:33

说的好,生有体会。但我觉得windows里做多路径(mpio)速度还可以,在其它操作系统(sun)的多路径(mpxio)就不一样了。