Chinaunix首页 | 论坛 | 博客
  • 博客访问: 167667
  • 博文数量: 102
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 1120
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-23 01:42
文章分类

全部博文(102)

文章存档

2011年(1)

2008年(101)

我的朋友
最近访客

分类: 服务器与存储

2008-06-23 01:49:16

2. 集群协议V I A
 
I n t e l、微软和康柏已经制订了集群系统通信的一项新技术,称为虚拟接口体系结构(V I A)。尽管这个名字无法激发人们的想象,但这项技术对于集群计算也许是极其重要的。V I A的总体思想是避免传统数据网络协议处理的过度开支和延迟,代之以能完成以下功能的网络通信系统:
              为每个用户产生一个专用的I / O端口地址。
              为传输功能保留系统内存。
              实现简单的基于队列的系统-系统的传输机制。
              使用指向内存位置的指针重组、发送、接收和分发消息。V I A中的“虚拟”是指,每个应用有一个专门的虚拟I / O端口用于通过网络发送和接收数据。
 
与虚拟内存类似,V I A提供了虚拟抽象层,它能使应用程序访问网络资源而不用考虑系统内存访问。这是通过V I A设备驱动程序和应用层函数实现的,其中应用层函数为V I A操作分配所需要的系统内存。
 
V I A内存通过驱动程序和网络适配器管理的队列来分配。支持V I A的应用程序使用这些队列在系统之间读写数据。应用程序在其控制的内存产生指向数据存储位置的指针列表后,V I A消息可以在后台产生。而传统的协议不是这样处理代码的,它们在数据通过网络协议栈时做多个数据的物理备份。设计这种引用数据的目的,是在通信处理时减少了内存操作的数量,以此来节约时间。
 
V I A的内存操作,包括发送应用指定接收应用存放数据的位置,这允许一个系统更新另一系统的内存。注意这并不允许通过操作系统或任何其他应用程序写入系统内存。但是这的确提供了应用程序之间极有效和高速的传输。这种能力称为远程D M A。
 
1) 实现V I A的要求
V I A并不是免费的,不能通过从I n t e r n e t上下载V I A驱动程序来得到。在V I A能够在集群中工作之前,需要进行下面几项重要的开发:
              设计和生产支持V I A的网络硬件。
              开发指定的V I A设备的驱动程序以提供V I A服务。
              开发支持V I A的应用程序以利用硬件和设备驱动程序提供的V I A函数。
              测试V I A系统和组件。
 
注意,实现V I A可能并不需要改变操作系统。这完全取决于操作系统管理内存的方式。如果操作系统允许设备驱动分配足够多的内存,并且限制其他应用程序和系统服务对这部分内存的访问,则不需要改变操作系统即可实现V I A。
 
不要低估实现V I A所需要的应用程序更新。应用程序需要被更改为使用特殊的V I A的内存映射I / O。这也许需要应用程序厂商对他们的代码做重大改变,对大型应用,这可能需要几年的时间。
 
也许上面列出的要求中最困难的部分是产品测试。厂商们要对每一种V I A软硬件产品的组合进行测试。这种测试很重要。对于一项服务的测试,如分布式锁管理器,需要在多种集群和系统配置下进行。“在某种最差负载时是否存在系统数目的临界点,使得锁管理器开始崩溃?”,这个问题表明即使只是确定测试的范围也很困难,实际的测试过程和方法要简化得多。
 
2)VIA中的消息优先级
 
支持V I A的网络系统,能够根据消息对集群的重要性赋予消息优先级。这意味着心跳和锁信息可以得到比L A N或S A N通信更高的优先级。由于这些都是短消息,这对其他传输的影响可以很小,然而对于一个大型或者繁忙的集群来说,延迟发送这些消息可能造成问题。
阅读(464) | 评论(0) | 转发(0) |
0

上一篇:集群通信(4)

下一篇:集群通信(2)

给主人留下些什么吧!~~