CN100501684C - 故障转移和负载平衡 - Google Patents

故障转移和负载平衡 Download PDF

Info

Publication number
CN100501684C
CN100501684C CNB2004800418159A CN200480041815A CN100501684C CN 100501684 C CN100501684 C CN 100501684C CN B2004800418159 A CNB2004800418159 A CN B2004800418159A CN 200480041815 A CN200480041815 A CN 200480041815A CN 100501684 C CN100501684 C CN 100501684C
Authority
CN
China
Prior art keywords
network adapter
filter driver
driver
grouping
miniport
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2004800418159A
Other languages
English (en)
Other versions
CN1942862A (zh
Inventor
A·别利亚科夫
M·赛尼科夫司基
A·德罗兹多夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel AO ZAO
Original Assignee
Intel AO ZAO
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel AO ZAO filed Critical Intel AO ZAO
Publication of CN1942862A publication Critical patent/CN1942862A/zh
Application granted granted Critical
Publication of CN100501684C publication Critical patent/CN100501684C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways

Abstract

本发明涉及用于故障转移和用于平衡静态和动态负载的技术。过滤驱动器接收第一网络适配器和通过第一网络适配器的数据路径的至少其中之一发生故障的路径故障通知,并将定向到第一网络适配器的分组重新路由到第二网络适配器。小型端口驱动器确定网络适配器和通过网络适配器的数据路径的至少其中之一发生故障,并向过滤驱动器通知网络适配器和通过网络适配器的数据路径的至少其中之一发生故障。过滤驱动器为多条数据路径的每一条确定数据限额,为给定的目标逻辑单元确定最大命令数,并基于数据限额和最大命令数选择在其上发送分组的数据路径。过滤驱动器为多条数据路径的每一条确定数据传送速度,基于多条数据路径的每一条的数据传送速度为多条数据路径的每一条更新负载平衡份额,并基于多条数据路径的每一条的负载平衡份额选择在其上发送分组的数据路径。

Description

故障转移和负载平衡
领域
本公开涉及用于故障转移和负载平衡的方法、系统和程序。
相关技术描述
I_T连接点是一对启动设备与目标设备。请求输入/输出(I/O)操作的设备被称为启动者,执行这些操作的设备被称为目标。例如,主计算机可以是启动者,存储设备可以是目标。目标可包括一个或多个单独的存储设备。
主机总线适配器(HBA)是“连接”操作系统与小型计算机系统接口(SCSI)总线的硬件设备。HBA管理主计算机与通信路径之间数据的传送。HBA成队(teaming)指的是将若干HBA组合在一起形成“队”,其中队中的每一HBA连接,且可将数据路由至特定目标。HBA队可在因特网小型计算机系统接口(iSCSI)(2003年2月发布的IETF RFC 3347)门户(porta1)组概念上构建。iSCSI由IETF在2003年2月定义为标准。门户组概念可被描述为iSCSI网络实体内共同支持使会话与跨这些门户的连接协调的能力的网络门户的集合。HBA成队可与运行
Figure C200480041815D00071
2000、
Figure C200480041815D00072
XP或
Figure C200480041815D00073
.NET操作系统的小型计算机系统接口(SCSI)(美国国家标准协会(ANSI)SCSI控制器命令-2(SCC-2)NCITS.318:1998)启动者一起使用。I_T连接点的连接恢复策略可以是基于多个传输控制协议(TCP)连接(1981年9月发布的互联网工程任务组(IETF)因特网标准(草案)(RFC)793)。即,来自运行在
Figure C200480041815D00074
操作系统上的iSCSI启动者的分组在启动者和目标之间经由多个连接发送和/或接收。如果到同一目标的多个连接建立在一个HBA内,则小型端口驱动器可处理故障转移(即,当一个连接发生故障时,将分组路由至另一连接)和负载平衡(即,在HBA连接之间平衡负载)。
然而,本领域中存在对跨各自可具有到同一目标的一个或多个连接的若干HBA进行故障转移和负载平衡的需求。
附图简述
现在参考附图,所有附图中相同的参考标号代表相应的部分:
图1A示出了其中实现某些实施例的计算环境;
图1B示出了其中实现某些特定实施例的计算环境;
图2A以框图示出了带有可任选低类过滤驱动器(Class lower filter driver)的
Figure C200480041815D00081
存储设备驱动器栈;
图2B以框图示出了根据某些实施例可在SCSI环境中使用的具有故障转移和负载平衡能力的存储设备驱动器栈;
图3以框图示出了根据某些实施例具有故障转移和负载平衡能力的启动者的配置的示例;
图4A和4B示出了根据某些实施例用于辅助存储设备栈隐藏的操作;
图5A、5B和5C示出了根据某些实施例的通知机制的操作;以及
图6A和6B示出了根据某些实施例用于负载平衡的操作。
实施例的详细描述
在以下描述中,对构成说明书的一部分并示出若干实施例的附图进行了参考。可以理解,可利用其他实施例,且可进行结构和操作性的改变而不背离实施例的范围。
图1A示出了可在其中实现各实施例的计算环境。计算机102用作启动者,而数据存储140用作目标来形成I_T连接点。计算机102包括一个或多个中央处理单元(CPU)104、易失性存储器106、非易失性存储108(例如,磁盘驱动器、光盘驱动器、磁带驱动器等)、操作系统110(例如,
Figure C200480041815D00082
200、
Figure C200480041815D00083
XP、或
Figure C200480041815D00084
.NET)以及一个或多个网络适配器128。在某些实施例中,每一网络适配器是主机总线适配器(HBA)。过滤驱动器112、小型端口驱动器114和应用程序124也在存储器106中执行。
计算机102可包括本领域中已知的计算设备,诸如大型机、服务器、个人计算机、工作站、膝上型计算机、手持式计算机等。可使用任何CPU104和操作系统110。存储器106中的程序和数据可作为存储器管理操作的一部分交换到存储108内。
数据存储140包括一个或多个逻辑单元(即,“n”个逻辑单元,其中“n”可以是任何正整数值,在某些实施例中,它小于128)。仅为理解方便起见,示出了逻辑单元0、逻辑单元1和逻辑单元“n”。此外,逻辑单元号(LUN)与每一逻辑设备相关联。在某些实施例中,HBA队是基于目标和LUN来组织的(即,将可路由数据至目标的特定LUN的每一HBA组合成一个HBA队),且一个HBA可属于不同的HBA队。
每一网络适配器128包括以网络适配器128的硬件实现的各种组件。每一网络适配器128能够经由网络176发送和接收数据分组,网络176可包括局域网(LAN)、因特网、广域网(WAN)、存储区域网(SAN)、WiFi(1999年9月16日发布的电气和电子工程师学会(IEEE)802.11b)、无线LAN(1999年9月16日发布的IEEE 802.11b)等。
存储驱动器120在存储器106中执行,它包括网络适配器128的特定命令来与网络适配器128通信并作为操作系统110与每一网络适配器128之间的接口。网络适配器128和存储驱动器120实现处理iSCSI分组的逻辑,其中SCSI命令被包装在iSCSI分组中,iSCSI分组被包装在TCP分组中。传输协议层将来自所接收的传输控制协议(TCP)(1981年9月发布的互联网工程任务组(IETF)因特网标准(草案)(RFC)793)分组中的有效负荷解包,并将数据传送到存储驱动器120来返回至例如应用程序124。此外,发送数据的应用程序124将数据发送到存储驱动器120,后者然后将数据发送到传输协议层以便在经由网络176发送之前在TCP/IP分组中打包。
总线控制器134允许每一网络适配器128在计算机总线160上通信,计算机总线160可包括本领域中已知的任何总线接口,诸如外围部件互连(PCI)总线、PCI Express总线、工业标准体系结构(ISA)、扩展ISA、微通道体系结构(MCA)等。网络适配器128包括用于实现媒体访问控制(MAC)功能以便经由网络176发送网络分组到远程数据存储或从中接收网络分组的物理通信层132。在某些实施例中,网络适配器128可实现以太网协议(2002年3月8日发布的IEEE标准802.3),光纤通道(2003年12月发布的IETF RFC 3643)或本领域已知的任何其它网络通信协议。
存储108可包括内部存储设备或者附加或网络可访问存储。存储108中的程序108被加载至存储器106中并由CPU 104执行。使用输入设备150向CPU 104提供用户输入,输入设备可包括键盘、鼠标、指示笔、麦克风、触敏显示屏或本领域中已知的任何其它激活或输入机制。输出设备152能够呈现从CPU 104或诸如显示监视器、打印机、存储等其它组件传送的信息。
在某些实施例中,除存储驱动器120以外,计算机102可包括其它驱动器。
网络适配器128可包括执行附加操作来处理从计算机102或网络176接收的分组的附加硬件逻辑。此外,网络适配器128可实现传输层卸载引擎(TOE)来实现与计算机存储驱动器120相对的网络适配器中的传输协议层,以便进一步减少计算机102的处理负担。或者,传输层可在存储驱动器或其它驱动器120(例如,由操作系统提供)中实现。
在某些实施例中,各种结构和/或缓冲器(未示出)可驻留在存储器106中,或可位于与存储器106分开的存储单元中。
图1B示出了其中实现某些特定实施例的计算环境。图1B中,计算机102包括与主机总线适配器(HBA)128a、128b和128c交互的存储驱动器120。每一HBA128a、128b和128c可被描述为网络适配器128(图1A)。计算机102和HBA 128a、128b和128c可被描述为启动者,而数据存储140可被描述为目标。数据存储140示出了代表逻辑单元的逻辑单元号(LUN)。
图2A在框图中示出带有可任选低类过滤驱动器(Class lower filter driver)的
Figure C200480041815D0010145632QIETU
存储设备驱动器栈200。存储设备驱动器栈200包括上层协议(ULP)210,它可将分组发送至存储类驱动器212或从中接收分组。存储类驱动器212可将分组发送到低类过滤驱动器214或从中接收分组。低类过滤驱动器214在某些实施例中是可任选的。低类过滤驱动器214可将分组发送到端口驱动器216或从中接收分组。端口驱动器216可与小型端口驱动器218通信。小型端口驱动器218能够经由各实施例提供的回调接口与低类过滤驱动器214通信。
各实施例提供了基于端口驱动器216上方的低类过滤驱动器214的特殊的过滤驱动器,以便用于在跨HBA连接之间进行故障转移和负载平衡。过滤驱动器处理HBA的上下文切换和路径控制。过滤驱动器也提供分组分发。具体地,过滤驱动器监听包含在存储类驱动器212与端口驱动器216之间的输入/输出请求分组(IRP)中的SCSI请求块(SRB)分组。在某些实施例中,过滤驱动器被实现为低级类过滤驱动器。一旦创建存储设备实例之后即通知过滤驱动器,然后,过滤驱动器将其自己连接至低类过滤驱动器214之下的存储驱动器栈200。
图2B以框图示出了根据某些实施例可在SCSI环境中使用的具有故障转移和负载平衡能力的存储设备驱动器栈250。存储设备驱动器栈250可与
Figure C200480041815D00101
200、
Figure C200480041815D00102
XP或
Figure C200480041815D00103
.NET操作系统一起使用。存储设备驱动器栈250包括上层协议(ULP)260,它可将IRP发送给SCSI磁盘类驱动器262或从中接收IRP。SCSI磁盘类驱动器262可将SRB/IRP发送到低级类过滤驱动器264中或从中接收SRB/IRP。低级类过滤驱动器264可将SRB/IRP发送到SCSI端口驱动器266或从中接收SRB/IRP。SCSI端口驱动器266与SCSI小型端口驱动器268通信。SCSI小型端口驱动器268能够经由回调接口与低级类过滤驱动器264通信。
图3以框图示出了根据某些实施例具有故障转移和负载平衡能力的启动者的配置的示例。在图3中,存储类驱动器与过滤驱动器通信,后者与端口/小型端口驱动器通信。例如,存储类驱动器使用存储类驱动器1设备对象310和过滤驱动器1设备对象312与过滤驱动器通信,该过滤驱动器使用过滤驱动器1设备对象312和端口/小型端口驱动器设备对象316、314与端口/小型端口驱动器通信。小型端口经由端口驱动器导出的例程与HBA通信。每一HBA具有至一个或多个目标的通信路径。例如,HBA1 318具有到目标1320和目标2340的通信路径。HBA2 338具有到目标1320和目标2340的通信路径。HBA3 358具有到目标2340和目标3360的通信路径。各实施例提供了跨HBA 318、338和358的故障转移和负载平衡,HBA中的某一些具有到同一目标的连接。在某些实施例中,所提出的故障转移和负载平衡方法是基于建立在iSCSI门户组概念上的HBA成队。
再一次,在某些实施例中,HBA队是基于目标和LUN来组织的(即,可将数据路由至目标的特定LUN的每一HBA被组合成一个HBA队),且一个HBA可属于不同的HBA队。例如,数据可经由包括过滤驱动器1设备对象312、过滤驱动器4设备对象332和过滤驱动器5设备对象352的数据路径传递至目标2340内的同一LUN(未示出)。这些数据路径中的每一条经由不同的HBA(分别是HBA1 318、HBA2 338和HBA3 358)传递,因此HBA1 318、HBA2 338和HBA3358在一个HBA队中。即,对HBA队中的每一HBA,路由至目标2340内的一LUN的数据可流经该HBA队中的任何HBA(用于故障转移),或可同时流经该HBA队中的每一HBA(用于负载平衡)。作为另一示例,HBA队也由HBA1 318和HBA2 338形成,因为相应的数据路径通过HBA1 318和HBA2 338到目标1320中的LUN(未示出)。
各实施例提供了用于在过滤驱动器中实现故障转移和负载平衡能力的新的回调接口。
故障转移技术提供了当第一HBA或数据路径认为第一HBA发生故障时到目标的通信路径的高度可用性(即,分组被路由至连接至同一目标的第二HBA)。为进行故障转移,各实施例提供了辅助存储设备栈隐藏和通知机制。
图4A和4B示出了根据某些实施例用于辅助存储设备栈隐藏的操作。控制在框400处以为逻辑单元建立存储设备栈开始。在框402中,确定这是否是用于该逻辑单元的第一存储设备栈。如果是,则处理继续至框404,否则处理继续至框404。即,当存在连接至同一目标的若干HBA时,为每一HBA的目标的每一SCSI LUN创建存储设备栈,以使过滤驱动器能够为每一HBA处理和重定向SRB。如果要在为同一目标建立的每一存储设备栈上安装文件系统,由于对同一存储设备实例的多重访问,这可导致同步问题。从而,为每一LUN建立的第一存储设备栈成为“主要”存储设备栈。滞后,为该LUN建立的所有其它存储设备栈作为“辅助”存储设备栈来对待。因此,在框404中,存储设备栈被指定为主要存储设备栈。在框406中,存储设备栈被指定为辅助存储设备栈。
例如,存储类驱动器1设备对象310、过滤驱动器1设备对象312、端口/小型端口驱动器设备对象314、316的存储设备栈在该示例中被指定为主要存储设备栈。存储类驱动器1a设备对象330、过滤驱动器4设备对象332、端口/小型端口驱动器设备对象334、336的存储设备栈在该示例中被指定为辅助存储设备栈。存储类驱动器1a设备对象350、过滤驱动器5设备对象352、端口/小型端口驱动器设备对象354、356的存储设备栈在该示例中被指定为辅助存储设备栈。过滤驱动器允许文件系统安装在一个主要存储设备栈(例如,存储设备栈310、312、314和316)上,并阻止文件系统安装在其它的辅助存储设备栈(例如,存储设备栈330、332、334和336以及存储设备栈350、352、354和356)上。同样,以存储类驱动器2设备对象开始的存储设备栈是主要存储设备栈,而以存储类驱动器2a设备对象开始的存储设备栈是辅助存储设备栈。由于辅助存储设备栈隐藏,因此数据经由主要存储设备栈而不是辅助存储设备栈被路由。
图4B中,控制在框420处以分组以成功状态从辅助存储设备栈完成开始。在框422中,过滤驱动器将成功状态改成出错状态。在框424中,过滤驱动器将传感键(sense key)值置为未准备好。在框426中,过滤驱动器对传感码置位,用于指示在存储设备中没有媒体。因此,在某些实施例中,为防止文件系统安装在辅助存储设备栈上,过滤驱动器将以成功状态从辅助存储设备栈中完成的SRB的状态翻转成出错状态(例如,SRB_STATUS_ERROR),将传感键值置为SCSI_SENSE_NOT_READY,并将附加的传感码置为SCSI_ADSENSE_NO_MEDIA_IN_DEVICE。
图5A、5B和5C示出了根据某些实施例的通知机制的操作。过滤驱动器和小型端口驱动器实现用于彼此交互的协议。
图5A示出了根据某些实施例在小型端口驱动器中实现的故障转移处理的操作。在图5A中,控制在框500处以在小型端口驱动器处接收对特定HBA数据路径的分组开始。术语“HBA数据路径”可被描述为从小型端口经由HBA到目标的数据路径。一种类型的分组可以是SRB。在框502中,如果HBA数据路径发生故障,则处理继续至框504,否则处理继续至框508。
在框504中,小型端口驱动器使用通知回调方法来通知过滤驱动器HBA数据路径发生故障。可任选地,小型端口驱动器向过滤驱动器提供新的HBA数据路径标识符,且过滤驱动器将分组重定向至该新的HBA数据路径。例如,对由HBA1318、HBA2 338和HBA3 358组成的HBA队,如果HBA1 318发生故障,则小型端口可指定包括HBA2 338或者HBA3 358中的任一个的新的HBA数据路径。在某些实施例中,可经由I/O控制(IOCTL)以过滤驱动器的添加设备方法将指向通知回调方法的指针和指向当前HBA数据路径的过滤设备扩展的指针发送给小型端口驱动器。在某些实施例中,当HBA数据路径发生故障,小型端口驱动器通过以状态参数和指针参数调用通知回调方法来向过滤驱动器通知HBA数据路径发生故障,其中指针指向过滤驱动器的设备扩展,对应于当前路径。
小型端口驱动器不以出错状态完成分组,因为这可引起端口驱动器冻结SRB队列或启动总线复位。相反,在框506中,小型端口驱动器以成功状态为发生故障的HBA数据路径完成未决(即未完成)和新接收的分组。在框508中,由于HBA数据路径未发生故障,小型端口驱动器经由HBA数据路径将分组发送到目标。
例如,如果在小型端口316处接收到SRB以便路由至HBA1 318,且如果HBA1318发生故障,则小型端口驱动器316为HBA1 318完成所有未决的SRB,作为通知过滤驱动器312将SRB重定向至另一HBA的协议的一部分。例如,过滤驱动器312可将SRB重定向至HBA2 338或HBA3 358。
图5B示出了根据某些实施例用于故障转移处理的过滤驱动器中实现的操作。控制在框510处以过滤驱动器接收HBA数据路径故障通知开始。在框512中,如果由小型端口驱动器指定新的HBA数据路径标识符,则处理继续至框514,否则处理继续至框518。在框514中,过滤驱动器将从发生故障的路径完成的每一分组的状态从成功状态改成忙碌状态。对状态的这种改变使得类驱动器重发分组。当分组被重发时,过滤驱动器将它们作为新请求来对待,如果可能,则将它们重定向到新路径。
在框516中,过滤驱动器将类驱动器遗漏的分组发送到所指定的HBA数据路径。在框518中,由于没有指定新的路径标识符,则过滤驱动器选择新的路径。在某些实施例中,如果HBA队中仅存在一条路径,则过滤驱动器继续将新分组发送到发生故障的HBA数据路径(例如,以PATH_THROUGH模式工作)。
图5C示出了根据某些实施例当HBA还原时小型端口驱动器中实现的操作。控制在框520处以HBA数据路径还原(例如,使HBA在线或者HBA或数据路径认为之前发生故障的该HBA还原)开始。当HBA数据路径还原时,小型端口驱动器通过调用通知回调方法通知过滤驱动器(框522)。在某些实施例中,小型端口驱动器通过以状态参数和指针参数调用通知回调方法向过滤驱动器通知HBA数据路径的还原,其中指针指向过滤驱动器的设备扩展,对应于当前路径。小型端口驱动器也可向过滤驱动器传送过滤驱动器应将新分组重定向至的新路径标识符。在框524中,如果指定了新的HBA数据路径,则处理继续至框526,否则处理继续至框528。
当还原通知之后,如果指定了新的HBA数据路径,则过滤驱动器将新分组发送到新HBA数据路径(框526)。如果没有指定新HBA数据路径,则过滤驱动器继续在当前活动的路径上发送分组。
除故障转移处理之外,各实施例提供了用于在跨多个HBA的多条HBA数据路径上平衡I/O工作负载的过滤驱动器。各实施例提供了静态负载平衡和动态负载平衡。
图6A和6B示出了根据某些实施例用于负载平衡的操作。对负载平衡,HBA队中的每一HBA数据路径具有一相关联的值,被称为负载平衡份额,它代表总I/O工作负载中给定HBA数据路径能够处理的百分比。
图6A示出了根据某些实施例用于静态负载平衡的操作。控制在框600处以在过滤驱动器处接收要发送的数据分组开始。在框612中,过滤驱动器确定与HBA队中的每一HBA数据路径相关联的负载平衡份额。对静态负载平衡,负载平衡份额可手动指定,并将其存储在例如
Figure C200480041815D0010145632QIETU
注册表中。小型端口驱动器检索负载平衡份额值,并经由通知回调方法将这些值转发给过滤驱动器。当接收到所检索的负载平衡份额值时,过滤驱动器以新值更新负载平衡份额。
在框604中,过滤驱动器为每一HBA数据路径确定所发送的分组的移动平均数据长度(MDL)(例如,分组的SCSI传送长度)。在某些实施例中,负载平衡可以是基于所发送的分组的实际数据长度而不是分组数。在框606中,过滤驱动器为每一HBA数据路径确定数据限额。在某些实施例中,HBA数据路径的数据限额是HBA数据路径的MDL乘以该HBA数据路径的负载平衡份额与HBA队中负载平衡份额的最小值的比率(即,数据限额=MDL*(负载平衡份额/队中的最小负载平衡份额))。
在某些实施例中,为每一分组或分组的组重新计算MDL,而周期性地重新计算数据限额(例如,当传送了某一数量的分组之后)。周期性间隔可由HBA队中HBA数据路径的条数与可调负载平衡频率更新因子的乘积来确定。负载平衡频率更新因子允许调节负载平衡并提高性能。负载平衡频率更新因子例如可由系统管理员设定。数据限额的更新频率越高,所指定的与实际的负载平衡份额之间的差异越小。同样,较频繁的更新会占据较多的处理器时间。
在框608中,过滤驱动器为目标逻辑单元确定最大命令数。在框610中,过滤驱动器使用循环技术选择在其上发送分组的HBA数据路径,其中沿一条HBA数据路径发送分组,直到达到了数据限额或达到了每个目标逻辑单元的最大命令数。
即,对静态负载平衡,可使用循环技术。在某些实施例中,为循环操作在双链表中收集当前HBA队的有效HBA数据路径。然后,使用该列表在负载平衡操作期间切换HBA数据路径。否则,分组流切换至下一HBA队成员。即,在某些实施例中,继续对给定路径的分组发送,直到所传送的数据量达到为该HBA数据路径预先计算的数据限额,或达到每个目标LUN的最大SCSI命令数。
对静态负载平衡,HBA数据路径之中分组的实际分配可不同于指定分配(即,例如由系统管理员指定的负载平衡份额)。实际与指定分配之间的差异越小,则静态负载平衡的质量越高。所指定的负载平衡份额值影响静态负载平衡的性能。
图6B示出了根据某些实施例的用于动态负载平衡的操作。动态负载平衡只要在其它路径上存在可用带宽就可通过在路径之间动态调节I/O工作负载来避免单个HBA数据路径上的拥塞。
控制在框620处以过滤驱动器接收数据分组开始。在框622中,过滤驱动器为HBA队中的每一HBA数据路径确定数据传送速度。在某些实施例中,为每一HBA数据路径计算作为所传送的总数据与传送数据所花费的总时间的比率的数据传送速度。更新例程确定传送速度以何种频率更新。对动态负载平衡的可调参数是传送速度更新频率因子,它定义每隔多久调用更新例程。传送速度更新频率因子可以基于传递子系统的具体行为来调节。
在框624中,过滤驱动器为每一HBA数据路径更新负载平衡份额。对HBA队中的每一路径的负载平衡份额可与它们的数据传送速度成比例地更新(即,所选HBA数据路径的数据传送速度除以HBA队的数据传送速度)。在框626中,过滤驱动器基于负载平衡份额选择将在其上发送分组的HBA数据路径。
当以故障转移和负载平衡模式工作时,HBA故障将禁用一个或多个HBA队成员。根据各实施例,其余的HBA队成员继续工作,从而维持所指定的负载平衡份额之间的相同比率。
因此,各实施例提供了高度可用性与静态和动态负载平衡的组合。实现该解决方案的软件模块相对较小,且对系统施加最小的开销。各实施例通过将过滤驱动器插入设备栈/从设备栈移除来提供快速且容易地开启和关闭由该解决方案的各实施例提供的功能。各实施例可跨各种平台(例如,
Figure C200480041815D0010145632QIETU
平台,32位或64位)兼容。同样,各实施例可适用于任何基于SCSI和/或基于iSCSI的SAN和/或网络附加存储(NAS)系统。而且,对故障转移和负载平衡的实施例支持多个(两个或更多)HBA。
其它实施例细节
对故障转移和负载平衡所描述的技术可被实现为使用标准程序设计和/或工程技术来生产软件、固件、硬件或其任何组合的方法、装置或制品。如此处所使用的,术语“制品”指的是以硬件逻辑(例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等)或诸如磁存储介质(例如,硬盘驱动器、软盘、磁带等)、光存储(CD-ROM、光盘等)、易失性和非易失性存储器设备(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可编程逻辑等)等的计算机可读介质实现的代码或逻辑。计算机可读介质中的代码由处理器访问和执行。其中实现较佳实施例的代码还可经由传输介质或通过网络从文件服务器访问。在这样的情况中,其中实现代码的制品可包括传输介质,诸如网络传输线、无线传输介质、信号传播空间、无线电波、红外信号等。因此“制品”可包括其中具体化代码的介质。此外,制品可包括其中具体化、处理和执行代码的硬件和软件组件的组合。当然,本领域的技术人员认识到,可对该配置进行众多修改,而不背离实施例的范围,且制品可包括本领域中已知的任何信息承载介质。
在所述实施例中,某些逻辑是在驱动器中实现的。在替换实施例中,在驱动器和/或网络适配器中实现的逻辑可全部或部分在网络硬件中实现。
在某些实施例中,网络适配器可被实现为PCI卡。在替换实施例中,网络适配器可包括安装在计算机102主板上的集成电路组件。
在某些实施例中,网络适配器可被配置成通过连接至网络适配器上的端口的电缆发送数据。在替换实施例中,网络适配器实施例可被配置成经由诸如无线LAN等无线网络或连接发送数据。
图4A、4B、5A、5B、5C、6A和6C所示的逻辑示出以某一顺序发生的某些事件。在替换实施例中,某些操作能以不同的顺序执行、修改或移除。而且,可对上述逻辑添加操作,而仍旧遵循所述实施例。此外,此处所述的操作可顺序发生,或某些操作可并行处理。再者,操作可由单个处理单元或由分布式处理单元执行。
为说明和描述的目的呈现了对各种实施例的前述描述。它不旨在是详尽的,或将实施例限于所公开的精确形式。考虑到以上教导,各种修改和变化皆有可能。各实施例的范围旨在不是由该详细描述,而是由所附的权利要求书来限制。以上的说明书、示例和数据提供了对各实施例的组成部分的制造和使用的完整描述。由于可进行众多实施例,而不背离各实施例的精神和范围,因此这些实施例归于所附权利要求书。

Claims (30)

1.一种用于在第一网络适配器和通过第一网络适配器的数据路径的至少其中之一发生故障时进行故障转移的计算机系统中的方法,其中所述计算机系统包括过滤驱动器,且其中所述第一网络适配器连接至第二网络适配器,所述方法包括:
使用所述过滤驱动器接收所述第一网络适配器与通过所述第一网络适配器的数据路径的至少其中之一发生故障的路径故障通知;以及
使用所述过滤驱动器将定向到所述第一网络适配器的分组重新路由到所述第二网络适配器。
2.如权利要求1所述的方法,其特征在于,还包括:
使用所述过滤驱动器将在接收到路径故障通知之前定向到所述第一网络适配器的每一分组的成功状态改成忙碌状态。
3.如权利要求1所述的方法,其特征在于,还包括:
使用所述过滤驱动器确定包含所述第二网络适配器的新的数据路径。
4.如权利要求1所述的方法,其特征在于,还包括:
使用所述过滤驱动器接收所述第一网络适配器还原的通知;以及
使用所述过滤驱动器基于所述的第一网络适配器还原的通知是否指定新的数据路径来为新数据分组确定数据路径。
5.如权利要求1所述的方法,其特征在于,还包括:
响应于为逻辑单元建立第一存储设备栈,使用所述过滤驱动器将所述第一存储设备栈指定为主要存储设备栈;以及
响应于为所述逻辑单元建立后继存储设备栈,使用所述过滤驱动器将所述后继存储设备栈指定为辅助存储设备栈。
6.如权利要求5所述的方法,其特征在于,还包括:
使用所述过滤驱动器防止文件系统安装在所述辅助存储设备栈上。
7.一种用于在网络适配器和通过所述网络适配器的数据路径的至少其中之一发生故障时进行故障转移的方法,其中所述网络适配器被连接至与过滤驱动器相连的小型端口驱动器,所述方法包括:
使用所述小型端口驱动器确定所述网络适配器发生故障;以及
使用所述小型端口驱动器向所述过滤驱动器通知所述网络适配器发生故障。
8.如权利要求7所述的方法,其特征在于,还包括:
使用所述小型端口驱动器指定将由所述过滤驱动器用来重新路由分组的新数据路径。
9.如权利要求7所述的方法,其特征在于,还包括:
使用所述小型端口驱动器以成功的状态完成对定向到所述网络适配器的未决分组的处理。
10.如权利要求7所述的方法,其特征在于,还包括:
使用所述小型端口驱动器确定所述网络适配器被还原;以及
使用小型端口驱动器向过滤驱动器通知所述网络适配器被还原。
11.一种耦合至网络和数据存储器的系统,包括:
主计算机;
管理对所述数据存储器的输入/输出(I/O)访问的存储控制器,其中所述存储控制器被耦合至所述主计算机;
第一网络适配器;
第二网络适配器;
以及
所述主计算机处的过滤驱动器,其中所述过滤驱动器能够:
接收所述第一网络适配器和通过所述第一网络适配器的数据路径的至少其中之一发生故障的路径故障通知,并将定向到所述第一网络适配器的分组重新路由至所述第二网络适配器。
12.如权利要求11所述的系统,其特征在于,所述过滤驱动器还能够:
将在接收到所述路径故障通知之前定向到所述第一网络适配器的每一分组的成功状态改成忙碌状态。
13.如权利要求11所述的系统,其特征在于,所述过滤驱动器还能够:
确定包含所述第二网络适配器的新数据路径。
14.如权利要求11所述的系统,其特征在于,所述过滤驱动器还能够:
接收所述第一网络适配器被还原的通知;以及
基于所述的第一网络适配器被还原的通知是否指定新数据路径来为新数据分组确定数据路径。
15.如权利要求11所述的系统,其特征在于,所述过滤驱动器还能够:
响应于为逻辑单元建立第一存储设备栈,将所述第一存储设备栈指定为主要存储设备栈;以及
响应于为所述逻辑单元建立后继存储设备栈,将所述后继存储设备栈指定为辅助存储设备栈。
16.如权利要求15所述的系统,其特征在于,所述过滤驱动器还能够:
防止文件系统安装在所述辅助存储设备栈上。
17.一种耦合至网络和数据存储器的系统,包括:
主计算机;
管理对所述数据存储器的输入/输出(I/O)访问的存储控制器,其中所述存储控制器耦合至所述主计算机;
所述主计算机处的过滤驱动器;
所述主计算机处的至少两个网络适配器;以及
所述主计算机处的小型端口驱动器,其中所述小型端口驱动器能够确定所述网络适配器的至少其中之一发生故障并向所述过滤驱动器通知所述网络适配器发生故障。
18.如权利要求17所述的系统,其特征在于,所述小型端口驱动器还能够:
指定将由所述过滤驱动器用来重新路由分组的新数据路径。
19.如权利要求17所述的系统,其特征在于,所述小型端口驱动器还能够:
以成功状态完成对定向到所述发生故障的网络适配器的未决分组的处理。
20.如权利要求17所述的系统,其特征在于,所述小型端口驱动器还能够:
确定所述发生故障的网络适配器被还原;以及
向所述过滤驱动器通知所述发生故障的网络适配器被还原。
21.一种计算机系统中的用于在第一网络适配器和通过第一网络适配器的数据路径的至少其中之一发生故障时进行故障转移的装置,其中所述计算机系统包括过滤驱动器,且其中所述第一网络适配器连接至第二网络适配器,所述装置包括:
使用所述过滤驱动器接收第一网络适配器与通过所述第一网络适配器的数据路径的至少其中之一发生故障的路径故障通知的装置;以及
使用所述过滤驱动器将定向到所述第一网络适配器的分组重新路由至第二网络适配器的装置。
22.如权利要求21所述的装置,其特征在于还包括:
使用所述过滤驱动器将在接收到所述路径故障通知之前定向到所述第一网络适配器的每一分组的成功状态改成忙碌状态的装置。
23.如权利要求21所述的装置,其特征在于还包括:
使用所述过滤驱动器确定包含所述第二网络适配器的新数据路径的装置。
24.如权利要求21所述的装置,其特征在于还包括:
使用所述过滤驱动器接收所述第一网络适配器被还原的通知的装置;以及
使用所述过滤驱动器基于所述通知是否指定新数据路径来为新数据分组确定数据路径的装置。
25.如权利要求21所述的装置,其特征在于还包括:
响应于为逻辑单元建立第一存储设备栈,使用所述过滤驱动器将所述第一存储设备栈指定为主要存储设备栈的装置;以及
响应于为所述逻辑单元建立后继存储设备栈,使用所述过滤驱动器将所述后继存储设备栈指定为辅助存储设备栈的装置。
26.如权利要求25所述的装置,其特征在于还包括:
使用所述过滤驱动器防止文件系统安装在所述辅助存储设备栈上的装置。
27.一种用于在网络适配器和通过所述网络适配器的数据路径的至少其中之一发生故障时进行故障转移的装置,其中所述网络适配器被连接至与过滤驱动器相连的小型端口驱动器,所述装置包括:
使用所述小型端口驱动器确定所述网络适配器发生故障的装置;以及
使用所述小型端口驱动器向所述过滤驱动器通知所述网络适配器发生故障的装置。
28.如权利要求27所述的装置,其特征在于还包括:
使用所述小型端口驱动器指定将由所述过滤驱动器用来重新路由分组的新数据路径的装置。
29.如权利要求27所述的装置,其特征在于还包括:
使用所述小型端口驱动器以成功的状态完成对定向到所述网络适配器的未决分组的处理的装置。
30.如权利要求27所述的装置,其特征在于还包括:
使用所述小型端口驱动器确定所述网络适配器被还原的装置;以及
使用所述小型端口驱动器向过滤驱动器通知所述网络适配器被还原的装置。
CNB2004800418159A 2004-03-19 2004-03-19 故障转移和负载平衡 Expired - Fee Related CN100501684C (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2004/000105 WO2005091141A1 (en) 2004-03-19 2004-03-19 Failover and load balancing

Publications (2)

Publication Number Publication Date
CN1942862A CN1942862A (zh) 2007-04-04
CN100501684C true CN100501684C (zh) 2009-06-17

Family

ID=34993888

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800418159A Expired - Fee Related CN100501684C (zh) 2004-03-19 2004-03-19 故障转移和负载平衡

Country Status (6)

Country Link
US (3) US7721150B2 (zh)
JP (1) JP4430710B2 (zh)
CN (1) CN100501684C (zh)
DE (1) DE112004002797B4 (zh)
GB (1) GB2426609B (zh)
WO (1) WO2005091141A1 (zh)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7391865B2 (en) 1999-09-20 2008-06-24 Security First Corporation Secure data parser method and system
US7443867B2 (en) * 2003-08-15 2008-10-28 Nortel Networks Limited Method for performing network services
DE112004002797B4 (de) * 2004-03-19 2015-12-31 Zakrytoe Aktsionernoe Obschestvo "Intel A/O" Ausfallsicherung und Lastausgleich
US8266438B2 (en) 2004-10-25 2012-09-11 Security First Corp. Secure data parser method and system
US7636345B2 (en) * 2006-02-01 2009-12-22 Comsys Communication & Signal Processing Ltd. Apparatus for and method of time related communications between multiple devices having different time bases
US7743129B2 (en) * 2006-05-01 2010-06-22 International Business Machines Corporation Methods and arrangements to detect a failure in a communication network
US7821973B2 (en) * 2006-10-24 2010-10-26 Hewlett-Packard Development Company, L.P. Sharing of host bus adapter context
US8677014B2 (en) 2006-11-27 2014-03-18 Cisco Technology, Inc. Fine granularity exchange level load balancing in a multiprocessor storage area network
US7882283B2 (en) 2006-11-27 2011-02-01 Cisco Technology, Inc. Virtualization support in a multiprocessor storage area network
EP2482218A3 (en) * 2006-12-05 2012-10-31 Security First Corporation Improved storage backup method using a secure data parser
US7688753B1 (en) * 2007-12-28 2010-03-30 Emc Corporation Selection of a data path based on one or more performance characteristics of a computer system
US8656167B2 (en) 2008-02-22 2014-02-18 Security First Corp. Systems and methods for secure workgroup management and communication
US8103775B2 (en) 2008-03-13 2012-01-24 Harris Corporation System and method for distributing a client load from a failed server among remaining servers in a storage area network (SAN)
US20090254924A1 (en) * 2008-04-04 2009-10-08 Microsoft Corporation Operating system interfaces for virtual wifi and softap capable drivers
CN101299201B (zh) 2008-05-08 2010-06-02 成都市华为赛门铁克科技有限公司 存储系统数据备份方法及装置
US7839788B2 (en) * 2008-05-19 2010-11-23 Lsi Corporation Systems and methods for load balancing storage system requests in a multi-path environment based on transfer speed of the multiple paths
EP2131279B1 (en) * 2008-06-04 2012-03-28 Software AG System and method for a generic integration of a database into a high availability cluster
US8041987B2 (en) * 2008-11-10 2011-10-18 International Business Machines Corporation Dynamic physical and virtual multipath I/O
US8274881B2 (en) * 2009-05-12 2012-09-25 International Business Machines Corporation Altering access to a fibre channel fabric
CA2781872A1 (en) 2009-11-25 2011-06-09 Security First Corp. Systems and methods for securing data in motion
EP2362651A1 (en) * 2010-02-19 2011-08-31 Thomson Licensing Multipath delivery for adaptive streaming
JP5663083B2 (ja) 2010-03-31 2015-02-04 セキュリティー ファースト コープ. 移動中のデータをセキュア化するためのシステムおよび方法
US8824492B2 (en) * 2010-05-28 2014-09-02 Drc Computer Corporation Accelerator system for remote data storage
US8281033B1 (en) * 2010-06-29 2012-10-02 Emc Corporation Techniques for path selection
CN105071936B (zh) 2010-09-20 2018-10-12 安全第一公司 用于安全数据共享的系统和方法
KR20120037785A (ko) * 2010-10-12 2012-04-20 삼성전자주식회사 부하 균형을 유지하는 시스템 온 칩 및 그것의 부하 균형 유지 방법
US8954808B1 (en) * 2010-11-30 2015-02-10 Symantec Corporation Systems and methods for performing input/output path failovers
US8321617B1 (en) * 2011-05-18 2012-11-27 Hitachi, Ltd. Method and apparatus of server I/O migration management
JP5422611B2 (ja) * 2011-06-24 2014-02-19 株式会社日立製作所 計算機システム、ホストバスアダプタ制御方法及びそのプログラム
US20130124916A1 (en) * 2011-11-16 2013-05-16 Microsoft Corporation Layout of mirrored databases across different servers for failover
US9015372B2 (en) 2012-01-12 2015-04-21 Hewlett-Packard Development Company, L.P. Managing data paths between computer applications and data storage devices
US9916456B2 (en) 2012-04-06 2018-03-13 Security First Corp. Systems and methods for securing and restoring virtual machines
TW201413461A (zh) * 2012-09-17 2014-04-01 Hon Hai Prec Ind Co Ltd 磁碟陣列卡擴展管理方法及系統
US9407601B1 (en) 2012-12-21 2016-08-02 Emc Corporation Reliable client transport over fibre channel using a block device access model
US9270786B1 (en) * 2012-12-21 2016-02-23 Emc Corporation System and method for proxying TCP connections over a SCSI-based transport
US9647905B1 (en) 2012-12-21 2017-05-09 EMC IP Holding Company LLC System and method for optimized management of statistics counters, supporting lock-free updates, and queries for any to-the-present time interval
US9531765B1 (en) * 2012-12-21 2016-12-27 Emc Corporation System and method for maximizing system data cache efficiency in a connection-oriented data proxy service
US9712427B1 (en) 2012-12-21 2017-07-18 EMC IP Holding Company LLC Dynamic server-driven path management for a connection-oriented transport using the SCSI block device model
US9514151B1 (en) 2012-12-21 2016-12-06 Emc Corporation System and method for simultaneous shared access to data buffers by two threads, in a connection-oriented data proxy service
US9563423B1 (en) * 2012-12-21 2017-02-07 EMC IP Holding Company LLC System and method for simultaneous shared access to data buffers by two threads, in a connection-oriented data proxy service
US9473590B1 (en) 2012-12-21 2016-10-18 Emc Corporation Client connection establishment over fibre channel using a block device access model
US9591099B1 (en) 2012-12-21 2017-03-07 EMC IP Holding Company LLC Server connection establishment over fibre channel using a block device access model
US9338819B2 (en) * 2013-05-29 2016-05-10 Medtronic Minimed, Inc. Variable data usage personal medical system and method
US9274989B2 (en) 2013-06-12 2016-03-01 International Business Machines Corporation Impersonating SCSI ports through an intermediate proxy
US9769062B2 (en) 2013-06-12 2017-09-19 International Business Machines Corporation Load balancing input/output operations between two computers
US8819317B1 (en) 2013-06-12 2014-08-26 International Business Machines Corporation Processing input/output requests using proxy and owner storage systems
US9274916B2 (en) 2013-06-12 2016-03-01 International Business Machines Corporation Unit attention processing in proxy and owner storage systems
US9779003B2 (en) 2013-06-12 2017-10-03 International Business Machines Corporation Safely mapping and unmapping host SCSI volumes
US9940019B2 (en) 2013-06-12 2018-04-10 International Business Machines Corporation Online migration of a logical volume between storage systems
TWI514250B (zh) 2013-11-18 2015-12-21 Synology Inc 用來管理一儲存系統之方法與裝置以及計算機程式產品
US9286171B2 (en) * 2013-12-12 2016-03-15 International Business Machines Corporation Priming failover of stateful offload adapters
TWI544342B (zh) * 2013-12-17 2016-08-01 緯創資通股份有限公司 伺服器品質驗證方法及其系統
CN107210971A (zh) * 2014-12-18 2017-09-26 诺基亚通信公司 网络负载平衡器
US9954799B2 (en) 2015-05-14 2018-04-24 International Business Machines Corporation Adaptive service chain management
US9477489B1 (en) * 2015-07-09 2016-10-25 Dell Products L.P. Software based self-encrypting drive (SED) sleep resuming method
CN105376095A (zh) * 2015-11-26 2016-03-02 曙光信息产业股份有限公司 一种访问ip均衡方法及装置
US10102074B2 (en) 2015-12-01 2018-10-16 International Business Machines Corporation Switching allocation of computer bus lanes
US10296484B2 (en) 2015-12-01 2019-05-21 International Business Machines Corporation Dynamic re-allocation of computer bus lanes
US9870162B2 (en) * 2016-03-18 2018-01-16 Dell Products L.P. Method to virtualize PCIe controllers to support boot/hibernation/crash-dump from a spanned virtual disk
CN106371922A (zh) * 2016-08-29 2017-02-01 成都支付通卡友电子商务有限公司 动态负载平衡批量处理系统
US10275327B2 (en) 2017-01-05 2019-04-30 Hewlett Packard Enterprises Development LP Virtual fibre channel port migration
US11050660B2 (en) * 2018-09-28 2021-06-29 EMC IP Holding Company LLC Host device with multi-path layer implementing path selection based at least in part on fabric identifiers
US11748278B2 (en) 2019-06-20 2023-09-05 Intel Corporation Multi-protocol support for transactions

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4403286A (en) 1981-03-06 1983-09-06 International Business Machines Corporation Balancing data-processing work loads
US5168208A (en) 1988-05-09 1992-12-01 Onan Corporation Microprocessor based integrated generator set controller apparatus and method
US5006781A (en) 1988-05-09 1991-04-09 Onan Corporation Microprocessor based integrated generator set controller apparatus and method
US5086499A (en) * 1989-05-23 1992-02-04 Aeg Westinghouse Transportation Systems, Inc. Computer network for real time control with automatic fault identification and by-pass
US5724569A (en) 1991-03-29 1998-03-03 Bull S.A. Apparatus for evaluating database query performance having libraries containing information for modeling the various system components of multiple systems
US5493689A (en) 1993-03-01 1996-02-20 International Business Machines Corporation System for configuring an event driven interface including control blocks defining good loop locations in a memory which represent detection of a characteristic pattern
US5495426A (en) 1994-01-26 1996-02-27 Waclawsky; John G. Inband directed routing for load balancing and load distribution in a data communication network
US5790775A (en) * 1995-10-23 1998-08-04 Digital Equipment Corporation Host transparent storage controller failover/failback of SCSI targets and associated units
JP3628777B2 (ja) * 1995-10-30 2005-03-16 株式会社日立製作所 外部記憶装置
US6185601B1 (en) 1996-08-02 2001-02-06 Hewlett-Packard Company Dynamic load balancing of a network of client and server computers
US6081511A (en) 1996-08-14 2000-06-27 Cabletron Systems, Inc. Load sharing for redundant networks
US7760627B2 (en) 1996-10-24 2010-07-20 Hewlett-Packard Development Company, L.P. Method and apparatus for automatic load-balancing on a multi-segment network
US6314525B1 (en) * 1997-05-13 2001-11-06 3Com Corporation Means for allowing two or more network interface controller cards to appear as one card to an operating system
US6208616B1 (en) * 1997-05-13 2001-03-27 3Com Corporation System for detecting errors in a network
US6253334B1 (en) * 1997-05-13 2001-06-26 Micron Electronics, Inc. Three bus server architecture with a legacy PCI bus and mirrored I/O PCI buses
US6430610B1 (en) * 1998-09-02 2002-08-06 Steeleye Technology, Inc. TCP/IP address protection mechanism in a clustered server environment
US6438133B1 (en) 1998-09-09 2002-08-20 Cisco Technology, Inc. Load balancing mechanism for a translational bridge environment
US6381218B1 (en) * 1998-09-11 2002-04-30 Compaq Computer Corporation Network controller system that uses directed heartbeat packets
US6470397B1 (en) * 1998-11-16 2002-10-22 Qlogic Corporation Systems and methods for network and I/O device drivers
US6728748B1 (en) 1998-12-01 2004-04-27 Network Appliance, Inc. Method and apparatus for policy based class of service and adaptive service level management within the context of an internet and intranet
US6654801B2 (en) * 1999-01-04 2003-11-25 Cisco Technology, Inc. Remote system administration and seamless service integration of a data communication network management system
US6453360B1 (en) 1999-03-01 2002-09-17 Sun Microsystems, Inc. High performance network interface
US6711137B1 (en) 1999-03-12 2004-03-23 International Business Machines Corporation System and method for analyzing and tuning a communications network
US6526521B1 (en) * 1999-06-18 2003-02-25 Emc Corporation Methods and apparatus for providing data storage access
US6658018B1 (en) * 1999-06-30 2003-12-02 Intel Corporation Method and system of providing advanced teaming functionality capable of utilizing heterogeneous adapters to improve utility and performance
JP3601393B2 (ja) 2000-01-11 2004-12-15 日本電気株式会社 データグラム中継装置及びその方法
US7139282B1 (en) 2000-03-24 2006-11-21 Juniper Networks, Inc. Bandwidth division for packet processing
US6687735B1 (en) 2000-05-30 2004-02-03 Tranceive Technologies, Inc. Method and apparatus for balancing distributed applications
US6718481B1 (en) * 2000-05-26 2004-04-06 Emc Corporation Multiple hierarichal/peer domain file server with domain based, cross domain cooperative fault handling mechanisms
US6629166B1 (en) * 2000-06-29 2003-09-30 Intel Corporation Methods and systems for efficient connection of I/O devices to a channel-based switched fabric
US6618798B1 (en) * 2000-07-11 2003-09-09 International Business Machines Corporation Method, system, program, and data structures for mapping logical units to a storage space comprises of at least one array of storage units
US6775235B2 (en) * 2000-12-29 2004-08-10 Ragula Systems Tools and techniques for directing packets over disparate networks
US6802021B1 (en) * 2001-01-23 2004-10-05 Adaptec, Inc. Intelligent load balancing for a multi-path storage system
US6823477B1 (en) * 2001-01-23 2004-11-23 Adaptec, Inc. Method and apparatus for a segregated interface for parameter configuration in a multi-path failover system
US6769071B1 (en) * 2001-01-23 2004-07-27 Adaptec, Inc. Method and apparatus for intelligent failover in a multi-path system
US7139242B2 (en) 2001-03-28 2006-11-21 Proficient Networks, Inc. Methods, apparatuses and systems facilitating deployment, support and configuration of network routing policies
JP2002304331A (ja) 2001-04-05 2002-10-18 Nec Corp 冗長パス制御装置及び方法
RU2202123C2 (ru) 2001-06-06 2003-04-10 Бачериков Геннадий Иванович Параллельная вычислительная система с программируемой архитектурой
US7016299B2 (en) * 2001-07-27 2006-03-21 International Business Machines Corporation Network node failover using path rerouting by manager component or switch port remapping
US20030074473A1 (en) 2001-10-12 2003-04-17 Duc Pham Scalable network gateway processor architecture
US7318095B2 (en) * 2001-11-21 2008-01-08 Clearcube Technology, Inc. Data fail-over for a multi-computer system
US7126910B1 (en) 2001-12-13 2006-10-24 Alcatel Load balancing technique for a resilient packet ring
US7111084B2 (en) 2001-12-28 2006-09-19 Hewlett-Packard Development Company, L.P. Data storage network with host transparent failover controlled by host bus adapter
JP3964212B2 (ja) * 2002-01-16 2007-08-22 株式会社日立製作所 記憶装置システム
US6779064B2 (en) * 2002-01-24 2004-08-17 Hewlett-Packard Development Company, L.P. System, method, and computer program product for on-line replacement of a host bus adapter
CA2371654A1 (en) 2002-02-13 2003-08-13 Alcatel Canada Inc. System and method for parallel connection selection in a communication network
US7134040B2 (en) * 2002-04-17 2006-11-07 International Business Machines Corporation Method, system, and program for selecting a path to a device to use when sending data requests to the device
US20060242313A1 (en) 2002-05-06 2006-10-26 Lewiz Communications Network content processor including packet engine
CN100520724C (zh) * 2002-08-02 2009-07-29 草谷(U.S)公司 用于实现故障切换恢复的网络系统及方法
US7307948B2 (en) * 2002-10-21 2007-12-11 Emulex Design & Manufacturing Corporation System with multiple path fail over, fail back and load balancing
US7280482B2 (en) 2002-11-01 2007-10-09 Nokia Corporation Dynamic load distribution using local state information
JP2004227098A (ja) * 2003-01-20 2004-08-12 Hitachi Ltd 記憶デバイス制御装置の制御方法、及び記憶デバイス制御装置
JP3769544B2 (ja) 2003-01-31 2006-04-26 富士通株式会社 伝送帯域制御装置
DE502004001427D1 (de) 2003-05-15 2006-10-19 Siemens Ag Verfharen und netzknoten fuer eine selbst-regulierende, autonome und dezentrale verkehrsverteilung in einem mehrwege-netz
US20050010837A1 (en) * 2003-07-10 2005-01-13 International Business Machines Corporation Method and apparatus for managing adapters in a data processing system
DE60324037D1 (de) 2003-08-07 2008-11-20 Telecom Italia Spa Verfahren zur statistischen schätzung der verkehrsdispersion in einem telekommunikationsnetz
US7443867B2 (en) 2003-08-15 2008-10-28 Nortel Networks Limited Method for performing network services
US7783779B1 (en) * 2003-09-19 2010-08-24 Vmware, Inc Storage multipath management in a virtual computer system
US7330972B2 (en) * 2003-09-26 2008-02-12 Intel Corporation Remote management device key administration using network adapters
US7313681B2 (en) * 2003-11-20 2007-12-25 International Business Machines Corporation Apparatus, system, and method for adapter fastload
US7603463B2 (en) 2003-12-12 2009-10-13 Nortel Networks Limited Method and apparatus for allocating processing capacity of system processing units in an extranet gateway
US7281169B2 (en) * 2004-01-30 2007-10-09 Dell Products L.P. Method, software and system for multi-path fail-over recovery in sequential storage systems
US20050185789A1 (en) * 2004-01-30 2005-08-25 Goodwin Kevin M. Forestalling actions that otherwise would defeat access-control mechanism for volume
DE112004002797B4 (de) 2004-03-19 2015-12-31 Zakrytoe Aktsionernoe Obschestvo "Intel A/O" Ausfallsicherung und Lastausgleich
US7760626B2 (en) 2004-03-31 2010-07-20 Intel Corporation Load balancing and failover
US7636309B2 (en) 2005-06-28 2009-12-22 Alcatel-Lucent Usa Inc. Multi-path routing using intra-flow splitting
US7710872B2 (en) 2005-12-14 2010-05-04 Cisco Technology, Inc. Technique for enabling traffic engineering on CE-CE paths across a provider network
US20070153763A1 (en) 2005-12-29 2007-07-05 Rampolla Richard A Route change monitor for communication networks
US8555288B2 (en) 2006-05-17 2013-10-08 Teradata Us, Inc. Managing database utilities to improve throughput and concurrency
US7756029B2 (en) 2007-05-24 2010-07-13 Harris Stratex Networks Operating Corporation Dynamic load balancing for layer-2 link aggregation
US8738752B2 (en) 2008-01-30 2014-05-27 Cisco Technology, Inc. Local placement of large flows to assist load-balancing

Also Published As

Publication number Publication date
GB0616648D0 (en) 2006-10-04
CN1942862A (zh) 2007-04-04
US7992039B2 (en) 2011-08-02
US7721150B2 (en) 2010-05-18
JP2007527172A (ja) 2007-09-20
US20100185794A1 (en) 2010-07-22
US20110258484A1 (en) 2011-10-20
US20080222661A1 (en) 2008-09-11
WO2005091141A1 (en) 2005-09-29
JP4430710B2 (ja) 2010-03-10
DE112004002797T5 (de) 2007-01-11
US8429452B2 (en) 2013-04-23
GB2426609B (en) 2008-05-14
GB2426609A (en) 2006-11-29
DE112004002797B4 (de) 2015-12-31

Similar Documents

Publication Publication Date Title
CN100501684C (zh) 故障转移和负载平衡
CN1902585B (zh) 用于与支持多个设备的网络适配器接口的方法、系统和程序
US7356581B2 (en) Storage network switch
US8447860B2 (en) Storage area network with target side recognition and routing table upload
CN102158386B (zh) 系统管理程序级的分布式负载平衡
EP3235199B1 (en) Multicast advertisement message for a network switch in a storage area network
CN103621027B (zh) 通信路由控制系统和通信路由控制方法
JP5090408B2 (ja) ネットワーク通信において送信データの宛先を動的に制御する方法及び機器
CN102845035A (zh) 在虚拟环境中识别目的地的方法
CN106020926B (zh) 一种用于虚拟交换机技术中数据传输的方法及装置
CN102347905A (zh) 一种网络设备及其转发信息更新方法
CN102299846A (zh) 一种bfd报文传输方法和设备
JP2008228150A (ja) スイッチ装置及びフレーム交換方法とそのプログラム
CN110830574B (zh) 一种基于docker容器实现内网负载均衡的方法
CN105900068A (zh) 路径管理的系统、装置和方法
JP3646787B2 (ja) 負荷分散機能を有するネットワーク中継装置、ネットワーク中継装置の負荷分散方法、及びプログラム
US20220342831A1 (en) Virtual network storage array data transmissions
CN108696427A (zh) 一种数据传输方法及装置
CN109981437B (zh) 一种基于vpc的多数据中心互通方法及相关设备
JP5200658B2 (ja) サーバシステム
Cisco Configuring CLAW and TCP/IP Offload Support
JP2009009408A (ja) ストレージシステムとストレージシステムにおける管理方法
KR20190048324A (ko) 다중 네트워크 기반의 서비스를 제공하는 방법 및 장치
KR102024267B1 (ko) 탄력적 침입 탐지 시스템 및 그 동작 방법
EP4221098A1 (en) Integrated broadband network gateway (bng) device for providing a bng control plane for one or more distributed bng user plane devices

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090617

Termination date: 20190319