CN101821725B - 带有目标侧识别和路由表上载的存储区域网络 - Google Patents
带有目标侧识别和路由表上载的存储区域网络 Download PDFInfo
- Publication number
- CN101821725B CN101821725B CN2008801004163A CN200880100416A CN101821725B CN 101821725 B CN101821725 B CN 101821725B CN 2008801004163 A CN2008801004163 A CN 2008801004163A CN 200880100416 A CN200880100416 A CN 200880100416A CN 101821725 B CN101821725 B CN 101821725B
- Authority
- CN
- China
- Prior art keywords
- client
- server
- iscsi
- mpio
- resource
- 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.)
- Active
Links
- 238000003860 storage Methods 0.000 title claims abstract description 51
- 238000000034 method Methods 0.000 claims abstract description 75
- 230000002596 correlated effect Effects 0.000 claims description 4
- 230000008676 import Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 10
- 230000009471 action Effects 0.000 abstract description 3
- 239000003999 initiator Substances 0.000 abstract 5
- 230000008569 process Effects 0.000 description 47
- 230000006399 behavior Effects 0.000 description 20
- 230000004044 response Effects 0.000 description 16
- 230000008859 change Effects 0.000 description 9
- 238000009826 distribution Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000037361 pathway Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012797 qualification Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种使用iSCSI和基于微软MPIO的网络通信协议来提供对资源的访问的数据处理器的网络。系统使用MPIO磁盘结构的目标侧考虑,使iSCSI启动程序利用iSCSI会话对象通知iSCSI目标,和/或从iSCSI目标将路由表上载到iSCSI启动程序。实施还可以包括请求路由表的内容从iSCSI目标被提供给iSCSI启动程序,所述iSCSI启动程序影响在启动程序侧的路径选择,和/或将信息从iSCSI启动程序发送到iSCSI目标,所述iSCSI目标将连接识别为属于相同的MPIO磁盘,从iSCSI目标存储服务器接收关于应该被创建的连接的信息,并使用在存储服务器上的连接负载平衡器来处理相关的连接,所述连接需要被分配给在存储服务器上的不同的网络接口。
Description
相关申请
本发明要求2007年6月25日提交的申请号为60/937,058的美国临时专利申请的优先权。上述申请的整个方案被作为参考合并于此。
背景技术
本发明涉及网络数据存储,更具体地,涉及目标侧识别和主页路由表更新,以适用于多路径输入输出(MPIO)或类似的协议。
随着计算机用户越来越依赖于访问远程存储的信息,所述远程存储的信息诸如数据库、网络应用程序、电子商务、在线交易处理等等,需要管理和存储的位于远程的信息的数量也不断增加。这种信息的管理给信息系统管理员不断地带来难题。
在标准磁盘服务器相当能够存储数据的同时,其容量是有限的。如果太多用户试图同时访问相同的存储装置,那么标准磁盘服务器也可能变成瓶颈。在一种解决这种问题的传统方法中,大量存储装置被连接到单个网络服务器。网络管理员可以创建用于给定应用程序的这种服务器的“农场(farm)”。
然而,随着服务器农场大小的增加,以及随着公司更加严重地依赖于数据密集型应用程序,即使这种存储模型也完全没用。最近,一些厂商合作开发一种所谓的存储区域网络(SAN)技术。SAN给网络存储提供更多的选择,包括比用作网络附属存储(NAS)的外围装置更快的访问。SAN还提供灵活性以创建独立的网络来处理大量数据。
SAN是将不同种类的数据存储装置与代表很大的用户网络的关联数据服务器相互连接的高速专用网络。SAN可以集中在其他的计算资源附近,但也可以延伸至使用宽区域网络技术(诸如异步传送模式(ATM)、光纤信道、因特网小型计算机系统接口(iSCSI)等)的远程地点。
SAN通常支持磁盘镜像、备份和恢复、存档数据的存档和检索、从一个存储装置到另一个存储装置的数据迁移、以及在不同服务器之间的数据共享。SAN也可以合并在网络附属存储系统内的子网。
例如在公开号为2004/0143637、题为“Adaptive Storage Block DataDistribution”的美国专利申请中描述了对SAN进行的一些改进,该专利申请被整体作为参考合并于此。该设计允许存储区域网络管理员控制如何存储和管理数据而不需要网关来监控所有进入的请求通信量。例如,在该专利申请中描述的特定系统提供了iSCSI环境中的块级数据存储服务。这样的服务可以被用于在多个等价服务器(iSCSI术语中也称作“目标”)上划分可用的数据存储。每个等价服务器对客户端提供相似的接口(在iSCSI术语中称作“启动程序”),以及每个等价服务器对来自客户端的相同的请求提供相同的响应。所以每个服务器也可以与其他服务器进行通信,从而当对某些数据块的响应性从一个服务器移到另一个服务器时可以通知彼此。
为了维持对数据块存储系统所保存的在不同分区上和在不同磁盘卷上的不同数据块的位置的了解,每个等价服务器保存有路由表。为此,每个等价服务器执行路由表进程,所述路由表进程跟踪正存储在数据块存储系统上的不同数据块和对每个数据块负责的特定的等价服务器。可以通过路由表进程来传播路由表的改变。更具体地,由于数据块的位置可能不时地改变,所以路由表需要被更新来反映这些改变。
这样,在所述系统中,路由表显示给定卷的哪些部分(哪页)位于哪个服务器;每个服务器被认为是特定服务器组中的一员。然而,路由表不需要列出组中的所有成员,跟踪组成员不是路由表的职能。
在某些版本的MicrosoftTM Windows(微软TM窗口)中实施的“MPIO”利用所谓的多路径I/O协议最近成为一种用于提供更高可用性和更高性能存储区域连接性的解决方案。多路径输入/输出(MPIO)是一种服务器、网络和存储配置,该配置允许在主机计算机和目标存储阵列之间的多个物理连接。该配置的好处是提高了经由多个冗余通信路径的可用性,和通过同时利用所有的可用路径改善了性能。
通过使用MPIO,存储阵列可以支持多个网络连接,以及网络可以被配置成支持多个物理连接。主机系统也可以具有多个启动程序进程。MPIO可以在许多标准操作系统配置(诸如单机系统和群集)中工作。
MPIO的实施有些复杂,然而,在所述多路径软件中,启动程序、网络单元和存储阵列软件必须全部一起工作来提供强健的解决方案。缺少任何组件都可能引起解决方案不满足高可用性、快速恢复和高性能操作的需求。
MPIO解决方案在历史上被实施,从而每个存储阵列厂家具有定制的软件解决方案。这在终端用户想要使用不同的解决方案的情况下给终端用户造成了配置管理负担。
微软最近开发了其自己的多路径I/O框架以用于WindowsTM环境中。微软MPIO架构允许多个存储系统共享相同的MPIO解决方案。该框架允许例如多个物理装置对象结合在一起成为被称为“MPIO磁盘”的单个功能装置对象。然而,该框架需要存储厂商为每个产品创建装置专用模块(DSM)从而将物理对象“声明”成单个功能对象。
在一个标准MPIO解决方案中,服务器(“iSCSI目标”)能够识别这种MPIO磁盘结构。这通过使DSM改变iSCSI端口名称而被支持,例如使用厂商专用SCSI运算码从而MPIO磁盘的所有连接共享通用的SCSI端口名称。
然而,即使利用该方法仍然有至少一些问题如下:
1、该信息不能被单独用来提供多个物理连接之间的负载平衡。从而,不能将连接从单个MPIO磁盘扩展到所有的卷成员,甚至也不能定位在单个卷成员的相同接口上的两个连接。换句话说,试图负载平衡不能够考虑将一组连接完美地扩展到其他可用磁盘卷的情况。在网络故障的情况下,多个连接可能在故障的公共物理路径上,但该路径不能被删除。最好使可用连接彼此远离地扩展到所有可用物理路径上。
2、另外,标准DSM不是一直从更高级别的MPIO进程接收重新建立iSCSI连接的通知。在这种情形下,iSCSI储备将不会正确地工作,这意味着群集也不会正确的操作。
发明内容
这里所述的设备和方法包括数据操作系统,该数据操作系统管理多个客户端访问资源组的请求。在一个实施方式中,系统包括多个服务器,其中在多个服务器上划分资源组。服务器执行负载监控器进程,该负载监控器进程能够与另一个用于生成在整个系统上的客户端负载和分别在每个服务器上的客户端负载的度量的负载监控器进程进行通信。服务器还与客户端进程交换可用路径信息。更具体地,客户端进程还给服务器进程提供关于服务于多路径对象的连接的信息,从而服务器能够在将路径信息提供回给客户端时考虑该信息。
在优选的实施方式中,例如在使用iSCSI和微软基于MPIO的网络通信协议的存储区域网络中所实施的,其通常包括:
(a)MPIO磁盘结构的目标侧(服务器)考虑,例如通过经由可由服务动作设定的iSCSI会话对象告知MPIO磁盘结构信息的目标侧;和/或
(b)从iSCSI目标侧向iSCSI启动程序侧上载路由表,例如向iSCSI启动程序侧上的装置专用模块(DSM)上载路由表。
在优选的实施方式中,实施还可以包括;
(1)请求从iSCSI目标侧存储服务器向iSCSI启动程序提供路由表的内容,以及使用该路由表作为影响在启动程序侧在MPIO DSM中执行的路径选择的因素之一;和/或
(2)从iSCSI启动程序向iSCSI目标存储服务器发送识别属于相同MPIO磁盘的连接的信息,然后从iSCSI目标存储服务器接收回关于应该被创建的连接的信息,以及然后再使存储服务器上的连接负载平衡器处理每个都需要指定存储服务器上的不同的网络接口(NIC)的关联连接的这些连接。
下面将讨论进一步的实施细节和所述技术特征的优点。
附图说明
根据下面对在附图中示出的本发明的示例性实施方式的更详细的描述,前面所述的将更加明显,其中在附图中,在不同的视图中相似的参考标记指示相似的部件。附图不需要改变尺寸和强调,而是被用来示出本发明的实施方式。
图1是启用MPIO的存储区域网络的高级图,在所述存储区域网络中可以实施本发明。
图2示出了与图1中的网络一起使用的目标侧进程的细节。
图3示出了路由表。
图4示出了由启动程序侧客户端执行的步骤。
图5示出了由目标侧服务器执行的步骤序列。
图6示出了多个连接的处理。
具体实施方式
下面描述本发明的示例性实施方式。
I.介绍
图1示出了可以实施本发明的示例性系统。总的来说,系统可以是存储区域网络(SAN),诸如由科宁(Koning)等人在2003年8月12日提交的、公开号为2004/0030755、题为“Transparent Request Routing for a PartitionedApplication Server”的美国专利申请中所述的SAN;由科宁等人在2003年1月20日提交的、公开号为2004/0143637、题为“Adaptive Storage Block DataDistribution”的美国专利申请中所述的SAN;和/或由科宁等人在2004年1月21日提交的、公开号为2004/0215792、题为“Client Load Distribution”的美国专利申请中所述的SAN,上述每个专利申请都被整体作为参考合并于此。
特别地,参考图1,一个或多个客户端12-1、12-2、……、12-c(共同被称作客户端12)经由网络14或通过其他连接被连接到作为服务器组16的一部分的服务器16-1、16-2、16-3、……、16-s,所述网络14诸如互联网、内联网、广域网(WAN)或局域网(LAN)。
客户端12可以是任何适当的数据处理系统,诸如个人电脑(PC)、工作站、手持计算装置、无线通信装置或装备有能够访问服务器组16并与服务器组16交互以与服务器组16交换信息的任何其他这种装置。网络客户端12可以是允许用户与服务器交换数据的任何客户端应用程序。
优选地,给每个客户端12和服务器16提供多个网络接口,从而使得在客户端12和服务器16之间存在多个通信路径20-p;所述多个路径将在下面被详细描述。
客户端12和服务器组16可以使用不安全通信路径来访问在远程服务器组16上的服务。为了给这样的布置增加安全性,客户端和服务器可以利用任何已知的安全组机制,诸如网景公司(Netscape)的安全套接字层(SSL)。
在优选的实施方式中,主机和目标依赖于支持多个通信路径20-p的存储网络通信协议(优选运行于TCP/IP上的iSCSI)。从而,每个客户端12还优选地包括多路径进程,诸如微软TM多路径输入输出(MPIO)42、装置专用模块(DSM)进程44、iSCSI启动程序进程46以及网络堆栈(例如由一个或多个TCP/IP网络接口(NIC)48-1、……、48-m提供的网络堆栈)。在这里客户端12有时还被称为iSCSI启动程序,服务器有时被称为iSCSI目标。
每个服务器16-1、16-2和16-3可以包括商业上可用的服务器平台,诸如运行Unix操作系统的Sun SparcTM系统。每个服务器16还可以包括其他软件组件,所述软件组件扩展其操作以完成这里所述的处理,以及服务器的架构可以根据应用程序变化。
例如,每个服务器16可以具有内置的扩展(通常被称为模块)以允许服务器16执行下面所述的操作。或者服务器16可以访问可执行文件的目录,每个可执行文件可以被用于执行下面所述的操作或操作的一部分。如图1所述的某些这种对于本发明感兴趣的模块是iSCSI目标进程28-3和一个或多个TCP/IP网络接口模块(NIC)26-3。
而且,在其他实施方式中,服务器16-1、16-2和16-3可以使用将某些下面所述的进程构建到服务器的操作系统中、装置驱动器中或在外围装置(诸如磁带库、RAID存储系统或一些其他装置)上操作的软件进程中的软件架构。在任何情况下,本领域的普通技术人员应该理解,这里所述的系统和方法可以通过许多不同的实施方式和实践被实现,所使用的特定的实施方式和实践可以随着感兴趣的应用程序的功能而改变,所有这些实施方式和实践都落入这里的范围内。
在操作中,客户端12将需要访问在服务器组16上被划分的资源。因而,每个客户端12将发送请求到服务器组16。在通常的操作中,客户端12-2中的一个客户端将连接组16中的一个服务器(例如服务器16-2)来访问资源,诸如数据块、页、文件、数据库、应用程序或其他资源。连接的服务器16-2本身不具有对整个请求的资源的控制权。为了解决这个问题,服务器组16被配置成使得被划分的资源对于客户端12可用。例如,图中显示了两个资源,一个是资源18,另一个是资源17,资源18在所有的三个服务器16-1、16-2和16-3上被划分,资源17只在两个服务器16-1和16-2上被划分。在是块数据存储系统的服务器组16的示例性应用程序中,每个资源17和18可以是被划分的块数据卷。在一些服务器16上分布的资源可以是目录、目录内的单个文件或甚至是文件内的块。
可以设想其他被划分的服务。例如,可能能够以类似的方式划分数据库或提供分布式的文件系统、或支持正在互联网上发送的应用程序的分布式或划分的服务器。总的来说,方法可以被应用到其中客户端请求可以被解释为对一部分总资源的请求的任何服务,在多个部分上的操作不需要在所有部分中的全局协调。
在图1的实施方式中,服务器组16提供可以作为存储区域网络(SAN)操作的块数据存储服务,所述存储区域网络包括多个等价服务器(服务器16-1、16-2和16-3)。服务器16-1、16-2和16-3中的每个服务器可以支持被划分的块数据卷18和17的一个或多个部分。在所述的系统10中,有两个数据卷和三个服务器,然而在服务器的数量上没有特定的限制。类似地,在资源或数据卷的数量上没有特定的限制。而且,每个数据卷可以被整个被包括在单个服务器上,或者可以在一些服务器上(在服务器组中的所有服务器上或者在服务器组的子集上)被划分。在实践中,由于实施的原因,例如在服务器16-1、16-2和16-3中可用的存储器的数量和服务器16-1、16-2和16-3的计算限度当然是有限制的。而且,组合本身(即决定哪个服务器会组成组16)在一个实施方式中可能包括管理决策。在通常的情形中,组首先可以只包括一些服务器,或者只包括一个服务器。系统可以根据需要将服务器添加到组中以获得所需的服务级别。增加服务器为存储的资源创造了更多空间(存储器和磁盘存储),更大的CPU处理能力以作用于客户端请求,以及更大的网络容量(网络接口)以传送来自客户端的请求和对客户端的响应。本领域的技术人员可以理解,这里所述的系统通过向组16增加额外的服务器可以容易地调节为处理增加的客户端要求。
II.总的负载分配
客户端通常独立行动,这样,在服务器组16上的客户端负载将会随时变化。当客户端访问资源的要求变化时,系统可以重新分配客户端负载来更好地利用服务器组16中的可用资源。为此,在一个实施方式中,系统10包括多个等价服务器。当客户端请求被发送到等价服务器时,等价服务器相互之间进行协调以生成系统负载的度量和生成每个等价服务器的客户端负载的度量。在优选实践中,该协调以对客户端透明的方式被完成,从而客户端12只看到在客户端12和服务器组16之间传送的请求和响应。
在优选的实施方式中,连接到特定服务器16-1的给定客户端12会看到由整个服务器组16所管理的资源,好像组是单个的服务器16-1一样。客户端12没有意识到服务器组16实际上可能由大量的服务器16-1、16-2、……、16-s组成,也没有意识到在一些服务器16-1、16-2、……、16-s上划分块数据卷17和18。所以,服务器的确切数目和资源在服务器16之间被划分的方式可以在不影响客户端12所见的网络环境的情况下被改变。
继续参考图1,在被划分的服务器组16中,任何卷可以在组16内的任意数目的服务器上分布。在上面所述的示例中,一个卷17(资源1)在两个服务器16-1和16-2上分布,而另一个卷18(资源2)可以在三个服务器16-1、16-2和16-3上分布。有利地,各个卷以固定大小的块组(也被称为“页”)的方式排放,其中示例性的页包括8192个块。其他合适的页大小也可以被使用。
组16中的每个服务器优选包括用于每个卷的相应的路由表15,路由表15识别在其上可以找到特定卷的特定页的服务器。例如,当服务器16-1从客户端12接收对被划分的“卷18,块93847”的请求时,服务器16-1通过根据页大小分割所请求的块数来计算页号(在该示例中8192页大小的页号11),以及在各自的路由表15-1中查找包括请求的页号11的服务器的编号。如果服务器16-3包括页号11,则请求被转发到服务器16-3,该服务器16-3读取数据并将数据返回到服务器16-1。然后服务器16-1将请求的数据发送到客户端12。换句话说,响应总是经由从客户端12接收请求的同一个服务器16-1来被返回给客户端12。所以,对于客户端12来说其连接的服务器16-1、16-2和16-3是透明的。反而,客户端只“看到”服务器组16并请求服务器组16的资源。
应该注意的是对于每个请求来说客户端请求的路由选择是单独完成的。这允许资源的一部分在不同服务器上存在。这也允许当客户端连接到服务器组16上时资源或者资源的一部分被移除。为此,路由表15-1、15-2、15-3、……、15-s在需要时被更新,以及随后的客户端请求被转发到现在负责处理该请求的新的服务器。
至少对于给定的资源17,路由表15是相同的。例如,对于资源17,进入服务器16-1和16-2的路由表15-1和15-2是相同的。
所以系统与“重新指向”机构不同,其中服务器16确定其不能处理来自客户端的请求并将客户端重新指向能够处理请求的服务器。然后客户端需要建立到另一个服务器的新连接。由于建立连接相对效率较低,所以重新指向机构不适于处理频繁的请求。
如图1中所示,示例性的服务器16-3还包括一个或多个网络接口(NIC)26-3-1、26-3-2、……、26-3-q、iSCSI目标进程28-3、请求处理进程40-3、负载监控器进程22-3和客户端分配进程30-3。请求处理进程40-3通过检查在初始服务器上是否存在所请求的资源来处理在被划分的服务器16环境中的客户端请求,所述初始服务器从客户端12接收请求。然后请求处理进程40-3检查其路由表15-3,从而确定所请求的资源位于哪个服务器上。如果所请求的资源在初始服务器16-3上,则初始服务器16-3将所请求的资源返回给客户端12。相反地,如果所请求的资源没有存在于初始服务器16-3上,则初始服务器将使用来自路由表15-3的数据以确定哪个服务器实际上具有客户端所请求的资源。然后请求被转发到具有所请求的资源的服务器,该服务器然后将所请求的资源返回给初始服务器。进程请求处理进程40-3然后使初始服务器将所请求的资源转发到客户端12。
现在转到图2,更加详细地显示了块数据服务系统10的一个特定实施方式。更具体地,图2描述了系统10,其中客户端12与服务器组16进行通信。服务器组16包括三个服务器,服务器16-1、16-2和16-3。每个服务器包括描述为路由表15-1、15-2和15-3的路由表(对应于图1中的路由表15)。除了路由表,每个等价服务器16-1、16-2和16-3还分别包括负载监控器进程22-1、22-2和22-3。
每个服务器16-1、16-2和16-3与其各自组16中的其他服务器进行通信,从而共享路由表15-1、15-2和15-3。如上所述,路由表15跟踪单独的等价服务器中哪个等价服务器负责由服务器组16所保持的特定资源。在示出的实施方式中,服务器组16可以是SAN或SAN的一部分,其中每个等价服务器16-1、16-2和16-3具有单独的IP地址,该IP地址可以被客户端12用于访问SAN上的特定的等价服务器。
如上所述,每个等价服务器16-1、16-2和16-3能够向来自客户端12的相同请求提供相同的响应。为此,单独的等价服务器16-1、16-2和16-3的路由表彼此相互协调以提供不同资源的全局数据库。在示例性的实施方式中,服务器包括数据块、页或其他数据块组织,以及负责所述各自的数据块、页、文件或其他存储组织的单独的等价服务器。
图3示出了示例性的路由表15。服务器组16中的每个路由表15(例如表15-1)包括支持被划分的数据块存储服务的每个等价服务器16-1、16-2和16-3的标识符(服务器ID)。另外,每个路由表15包括识别与各自的等价服务器中的每个等价服务器相关的数据块和页的信息。在图3所示的实施方式中,等价服务器支持两个被划分的卷。卷的第一个卷18在所有三个等价服务器16-1、16-2和16-3上被分配或被划分。第二个被划分的卷17分别在等价服务器中的两个等价服务器16-2和16-3上被划分。
路由表15可以被系统10用于平衡可用服务器上的客户端负载。具体地,每个负载监控器进程22-1、22-2和22-3观察到达其各自的等价服务器的请求形式,从而确定来自客户端12的形式或请求是否被转发到SAN以及所述形式是否可以被客户端连接的不同布置更有效地或可靠地提供给一些服务器。在一个实施方式中,负载监控器进程22-1、22-2和22-3监控进入其各自的等价服务器的客户端请求。
在一个实施方式中,每个负载监控器进程22建立表示被单个请求监控器进程看见的不同请求的表。每个负载监控器进程22-1、22-2和22-3能够相互之间通信以用于建立每个等价服务器所看见的请求的全局数据库。因而,在该实施方式中,每个负载监控器进程能够集成来自每个等价服务器16-1、16-2和16-3的请求数据以生成表示整个块数据存储系统10所看见的请求通信量的全局请求数据库。在一个实施方式中,该全局请求数据库被制成是客户端分配进程30-1、30-2和30-3可用的,以用于确定客户端连接的更有效或可靠的布置是否可用。
图2还示出了服务器组16能够通过使客户端12-3被重新分配给服务器16-2来重新分配客户端负载,所述客户端12-3最初与服务器16-1相连接(进行通信)。为此,图2示出了其中服务器16-1与客户端12-1、12-2和12-3进行通信的初始情况。这通过将服务器16-1耦合到各个客户端12-1、12-2和12-3的双向箭头来显示。在初始情况中还进一步显示了客户端12-4和12E与服务器16-3进行通信,以及没有客户端(在初始情况下)与服务器16-2进行通信。因而,在该初始情况中,服务器16-1向来自三个客户端12-1、12-2和12-3的请求提供服务。服务器16-2没有向来自任何一个客户端的请求提供服务或响应于来自任何一个客户端的请求。
因而,在该初始情况中服务器组16可以确定服务器16-1超负荷或资源受限。根据服务器16-1在假定所具有的资源可用的情况下被过度利用的分析来得到该确定。例如,可以是服务器16-1具有有限的存储器和由客户端12-1、12-2和12-3生成的请求使服务器16-1可用的存储器资源超负荷。所以,服务器16-1可以以低于可接受的限度的性能水平响应于客户端请求。可替换地,可以确定尽管以可接受的水平执行和响应于客户端请求,但服务器16-1关于服务器16-2承受的客户端负载(或带宽)来说还是超负荷的。因而,服务器组16的客户端分配进程30确定,通过将来自初始情况的客户端负载重新分配给其中服务器16-2服务于来自客户端12-3的请求的情况可以改善总体效果。
驱使作出连接负载平衡决策的考虑事项可能发生改变。一个示例可以是需要减少路由:例如,如果相比其他服务器(其上具有部分例如卷的资源),一个服务器是较大一部分请求的目的地,将连接移到该服务器可能是有利的。另一个示例可以是平衡服务器通信负载:如果在服务器上的总通信负载基本大于在某个其他服务器上的总通信负载,将来自高负载的服务器的连接中的一些连接移到轻负载的服务器可能是有用的;以及资源访问负载(例如磁盘I/O负载)的平衡——如之前的示例,但是该资源访问负载的平衡用于磁盘I/O负载而不是用于通信负载。这是包括多个方面的优化进程,对于给定一组度量做出的特定的决策取决于管理政策、关于客户端活动的历史数据、各种服务器和网络组件的容量等。
为此,图2通过示出客户端12-3和服务器16-2之间的连接325(由虚线双向箭头表示)来表示客户端负载的重新分配。可以理解,在重新分配客户端负载之后,客户端12-3和服务器16-1之间的通信路径可以终止。
平衡客户端负载还适用于来自新的客户端的新的连接。当客户端12-6确定需要访问由服务器组16提供的资源时,客户端12-6创建到该组16的初始连接。该连接在服务器16-1、16-2和16-3中的一者处终止。由于组对客户端来说呈现为单个系统,不会意识到16-1、16-2和16-3的地址之间的不同,所以连接端点的选择可以是任意的、循环的或固定的,这不需要响应于在组16中的服务器之间的当前负载形式。
当接收到该初始客户端连接时,接收服务器可以在此时做出客户端负载平衡决策。如果完成该决策,则结果可以是选择更合适的服务器来终止新的连接,以及客户端连接被相应地移动。在这种情况下的负载平衡决策可以基于在各个服务器上的负载的总水平、当建立连接时客户端12-6所请求的资源的特定种类、可用于服务器组16中的负载监控器的关于来自服务器12-6的之前访问形式的历史数据、由服务器组16的管理员建立的政策参数等等。
处理初始客户端连接的另一个考虑事项是所请求的资源的分配。如之前所述的,给定的资源可以在服务器组的合适子集上分配。如果这样的话,可能发生客户端12-6为其连接初始挑选的服务器不服务于所请求的资源的任何部分。当能够接受该连接时,这不是特别有效的布置,因为在这种情况下,来自客户端的所有请求而不仅仅是请求中的一部分都需要转发。为此,只从服务器组16中的服务器的子集之间选择用于初始客户端连接的服务器是有用的,所述服务器组16实际上服务于新的客户端12-6所请求的资源的至少某部分。
可以通过引入第二路由数据库来有效地做出决策。之前描述的第一路由数据库15指定感兴趣的资源的每个单独移动的部分的精确位置。第一路由数据库的备份需要在每个服务器上可以用,所述每个服务器终止客户端连接,在所述客户端连接上客户端请求访问考虑的资源。然而,第二“连接平衡”路由数据库为给定的资源(作为整体)简单地指出在服务器组16中的服务器之间哪些服务器当前提供所述资源的某些部分。例如,描述图1中所示的资源布置的连接平衡路由数据库包括两项:用于资源17的一项列出了服务器16-2和16-3,用于资源18的一项列出了服务器16-1、16-2和16-3。分享卷的服务器具有图3中所示的用于卷的整个路由表,而不共享(non-participate)的服务器只具有所示出的路由表的下面的部分。在图1所示的两个卷的划分中,这表示服务器16-1具有图3中所示的左下方的表和图的右侧上的两个表,而服务器16-1和16-2具有所有的四个示出的表。
III.带有MPIO的目标侧识别和路由表上载的连接负载平衡
如先前参考图1所提到的,客户端12优选可以是运行微软的MPIO 42的iSCSI可兼容主机40、DSM 44和iSCSI启动程序46进程。MPIO解决方案使用冗余物理网络组件(诸如多个网络接口26、电缆和开关)来创建每个客户端12(主机)和服务器(存储装置)16之间的多个逻辑和物理路径。例如,给定的服务器16-3实际上可以具有三个NIC 26-3-1、26-3-2和26-3-3。除了被用于进一步的负载平衡,在一个或多个组件故障从而导致路径故障的情况下,由MPIO模块42实施的逻辑使用可替换的I/O路径从而使得应用程序仍然可以访问其数据。从而在给定主机40(在客户端12-1上)和给定服务器16-2之间提供多个物理网络连接20-1、20-2、……、20-n。
可以在安全的环境中以各种方式提供额外的连接。在一个优选的实施方式中,这可以使用迪菲-赫尔曼(Diffie-Hellman(DH))算法来完成,避免对管理主机密码等等的需要。例如,一旦用户使用主机侧安全协议登录,额外的连接使用IPsec(IP安全协议)中已知的DH协议被安装为安全信道。从而路由请求的理想解决方案还在可用的多个MPIO连接上分配请求。
i.MPIO磁盘的目标侧识别
所以需要通过包括在运行于iSCSI启动程序12中的进程中的会话对象来给先前的MPIO解决方案提供增强。会话对象可以传送MPIO结构的标识符到iSCSI目标16。在一个实施方式中,MPIO标识符可以被iSCSI厂商指定的操作码的新的服务行为来设置。
在优选的实施方式中,通知MPIO磁盘结构的目标侧能够包括在客户端(iSCSI启动程序)12上的各种模块(诸如核心DSM 44和特定的Windows服务(EHCM 49))和在服务器(iSCSI目标16)上的其他模块(特别是客户端分配进程30-3的连接负载平衡器(CLB)33部分)之间的合作。特别地,在主机EHCM进程和在目标中的CLB之间创建对话。从而,目标不需要自动“识别”MPIO磁盘结构,而是优选地,通知MPIO磁盘结构的存在。在一个实施方式中,可以如下进行。
在客户端中的EHCM模块49服务器发送工作请求(IOCTL_EQLDSM_EHCM_WORK_RQST ioctl)到主机上的DSM 44。响应告诉EHCM 49需要哪种类型的工作。利用每个工作请求响应,DSM核心还可以返回EHCM应该发送下一个请求的时间。
这里在客户端侧的两个工作是相关的:
EqlDsmIoctlJob::CONNECTION_SETUP以及
EqlDsmIoctlJob::TABLE_UPLOAD;
现在将参考图4更加详细地描述每个工作。
EqlDsmIoctlJob::CONNECTION_SETUP
步骤401:额外的MPIO和iSCSI信息从各种用户空间源获得。
步骤402:使用厂商指定的操作码(诸如操作码20h)的特定服务行为,对DSM端点信息(例如,如果iSCSI移动了连接)做出任何必要的校正。
步骤403:然后所有的信息被发送到目标16(CLB 33)。
步骤404:目标16确定最佳MPIO配置并将其推荐发送回给客户端12。
步骤405:EHCM 49(当然,在客户端12用户空间中)移除和添加合适的连接。
EqlDsmIoctlJob::TABLE_UPLOAD
步骤410:表上载请求被发送到目标。
步骤411:然后对需要的DSM端点信息(如上所述)做出校正。
步骤412:然后读取整个路由表(例如以64KB的块)。
步骤413:使用ioctl IOCTL_EQLDSM_ROUTING_TABLE_UPLOAD,路由表被下载到DSM 44中。
图5示出了在目标侧的相应的响应进程的更详细的细节,所述响应进程将连接的TCP/IP端点返回以被iSCSI启动程序使用。由在厂商指定的操作码上的服务行为启动,第一个步骤500是确定哪个服务器16是所请求的资源的保持部分,诸如通过咨询路由表15。接下来,在步骤502中,确定哪个NIC 26-3实际上存在于所述相应的服务器16上。在步骤504中,现在没有操作的NIC或者对正考虑的启动程序(根据CLB进程33-3)的分配不可用的NIC中的任何一个NIC都从列表中删去。最终,在步骤406,生成的列表被返回给启动程序12。
通过返回应该被创建的连接的列表(TCP/IP地址对),然后有一个任何其他存在的连接应该被终止的暗示返回给启动程序12。
以这种方式,通知启动程序12可允许的连接信息,而不需要通知启动程序12服务器16在他们之中使用的在表15中的信息。这样启动程序12可以使用任何合适的算法(例如循环、最小队列深度、最低时延等)来管理被告知的连接。
图6显示了结果。这里,给定的iSCSI启动程序12现在可以使用四(4)个物理NIC,而不需要知道在iSCSI目标(每个具有三(3)个可用NIC)处的组16中可用的三(3)个服务器的进一步的细节,其中总共有九(9)个物理连接。在启动程序12处的MPIO进程现在可以简单地平衡被通知的所述可用连接之间的负载。
现在可以理解该实施提供了下列优点。
1、关于MPIO磁盘的信息现在可以被连接负载平衡器(CLB 33)组件使用,该连接负载平衡组件在逻辑上是组16的函数。从而,当连接进程向在每个给定存储服务器16上的网络协议堆栈26询问信息时,连接进程可以返回[连接、MPIO标识符]对。由于EHCM 49现在将MPIO配置信息直接发送到CLB 33,系统剩下的部分不需要知道MPIO标识符信息。换句话说,连接负载平衡器现在也知道一组连接是相关的以及所述一组连接应该在多个可用物理连接20上分布并彼此分开。这可以通过使连接转到不同的存储阵列(不同的服务器16)或转到服务于给定服务器16的不同的NIC 26来实施。
2、当连接被启动程序12关闭时,连接可以通知对应于相同的MPIO磁盘的其他会话和可以将厂商指定检查情况返回给DSM 44的那些会话。这给DSM 44提供连接改变的可靠的通知机制。
ii.路由表的上载
微软的MPIO中指定的DSM模型允许硬件厂商执行装置指定的负载平衡。利用现有技术,例如,这可以使得将iSCSI命令传送到最不忙的NIC 26。在这种情况下,可以将命令直接传送到请求的数据所位于的服务器16上,而不用强迫iSCSI目标侧(也就是服务器16)在它们之间进行传送,如上所述。
优选地在DSM 44需要的情况下,该方法需要将路由表上载到主机中的DSM 44进程。这可以是周期性的或者是在做出改变时完成。这是一个低开销的进程,因为路由表通常非常小。利用该方法,DSM 44不需要实际上平衡连接,因为DSM 44没有必须的每个接口信息。DSM 44现在可以创建至少卷成员那么多的连接。所以总是除了确定最好的目标侧端点外还能够规定客户端侧路由。
一旦创建了连接,DSM 44可以使用服务行为(下面所述的厂商指定的操作码20h和服务行为03h)来访问环境,但这可能包括目标侧路由。可能有负载平衡考虑或网络考虑,即子网络考虑,这比在客户端12上完成全部的路由要更加重要。
新的目标功能性可以在厂家指定SCSI操作码20h从启动程序(DSM 44)被发送到iSCSI目标时被实施为用于所述操作码20h的三个新的服务行为。新的目标功能性从而能够将三个操作码20h服务行为定义为:
enum SCSI_VENDOR_SPECIFIC_20_SERVICE_ACTIONS{
EQLCDB_SA_GET_PAGE_TABLES=0,/*读取会话页表*/
EQLCDB_SA_SET_MPIO_ID=1,/*有效载荷是二进制通用存储阵列标识符*/
EQLCDB_SA_GET_TCPIP_INFO=2,/*读取主机/目标tcp/ip端口信息*/
};
服务行为分配
A.服务行为0
这是为操作码20h执行的标准服务行为。它将信息发送给卷头(volumeleader),告知它名称改变并之后更新会话iSCSI端口名称。服务行为可以保持不变以用于向后兼容性,尽管向后兼容性不再被使用。
B.服务行为1
为了响应该服务行为,采取下面的行为。
1.关于被用于特定MPIO对象的连接的信息被传送给目标。这可以作为连接列表来被传送。然而,在可选的配置中,不提供这样的列表,而是可以定义全局唯一标识符(GUID),随后GUID可以被用于每个MPIO对象。
2.然后运行标准服务行为0。这包括将消息发送给卷头以使其更新其表,从而不会使会话已具有的任何保存孤立。
C.服务行为2
该服务行为也不具有输入参数。响应数据是路由表。在一个实施方式中,这可以是消息,该消息开始于报头,该报头给出卷页、卷成员和每个卷成员的存储阵列标识符的号码,跟在报头之后的是每个卷成员的比特域。然而,其他格式也是可能的。
D.服务行为3
该服务行为不具有输入。其返回卷成员的通用存储阵列标识符(UUID),在所述卷成员上连接终止。
另外,下面的两个请求/响应消息也在进程之间被提供:
CDHKeyExchReq/CDHKeyExchRsp;以及
CHostConnectionReconfigurationReq/
CHostConnectionReconfigurationRsp
这些消息对中的第一个消息对被用于动态地创建临时安全/登录(CHAP)资格,该CHAP资格被用于安全地“复制”初始iSCSI连接,该初始iSCSI连接由用户直接创建(使用上面所述的迪菲赫尔曼算法)。
消息对中的第二个消息对是主机如何将MPIO配置信息发送给目标(即发送给CLB 33进程),随后接收关于如何最优地建立MPIO连接网的指令。
通过将更新后的路由表发送给主机,主机DSM 44之后在执行路径选择时可以考虑路由问题。
而且,该进程通知主机12参与提供卷17或18(这是路由数据的一部分)的存储服务器16的数目。这允许主机12打开至少那么多连接。当打开了连接时,存储组识别全部来自相同的主机12的那些连接以及存储组现在将所述连接分布在存储服务器上,而不是简单地为每个连接单独地进行连接负载平衡。
更具体地,所有的连接都被标记为属于MPIO磁盘,例如经由在服务行为1中传送的信息。这允许连接负载平衡器33知道所述连接是相关的,以及进行与这种方式不同的平衡。通常,当与一组要处理的连接一起存在时,连接负载平衡器33会分别放置每个连接,由于连接负载平衡器33不知道或没有想到在连接之间的任何联系。所以,根据组中的当前负载形式,一些连接可以共享资源(诸如存储服务器NIC)。
然而,当连接负载平衡器33处理一组连接时,所述连接全部与单个MPIO磁盘相关,连接负载平衡器33现在可以避免将一组连接分配给相同的NIC。这保证多个MPIO连接实际上不会共享路径,共享路径会打击容错性和打击提高MPIO准备发送的好处的性能。存储服务器(通过连接平衡器)告知MPIO客户端多少连接应该被创建,这考虑诸如故障接口的问题。结果,通常应该是有多少连接能够分布在可用接口上客户端就打开多少连接并且不能打开更多连接,以及连接负载平衡器33能够实际上这样分布连接是因为连接负载平衡器知道这些连接都与相同的MPIO磁盘相关。
在参考示例性实施方式具体地显示和描述了本发明的情况下,本领域的技术人员应该理解,在不背离所附的权利要求所涉及的本发明的范围的情况下,可以在形式和细节上对本发明做出各种改变。
Claims (34)
1.一种用于提供对共享资源的访问的数据处理器的网络系统,该系统包括:
客户端,该客户端包括客户端数据处理器,在所述客户端数据处理器上生成访问所述资源的请求,所述客户端具有多路径输入/输出(MPIO)功能,以及所述客户端根据所述请求提供MPIO配置信息;以及
多个服务器数据处理器,在该多个服务器数据处理器上具有被划分的资源,至少一个服务器从所述客户端接收MPIO配置信息,以及所述至少一个服务器将关于一组连接的信息返回给所述客户端,所述客户端能够利用所述一组连接来获得对所述资源的访问,其中从所述客户端发送到所述服务器的配置信息将多个连接识别为属于特定的MPIO数据卷。
2.根据权利要求1所述的系统,其中所述资源是被划分的数据卷。
3.根据权利要求2所述的系统,其中所述客户端是因特网小型计算机系统接口(iSCSI)启动程序,以及所述服务器是iSCSI目标。
4.根据权利要求3所述的系统,其中所述MPIO配置信息作为iSCSI会话对象的一部分被提供。
5.根据权利要求4所述的系统,其中所述MPIO配置信息作为所述iSCSI会话对象中的可设置服务行为而被提供。
6.根据权利要求1所述的系统,其中所述MPIO配置信息在至少一个服务器中的连接负载平衡器上被接收。
7.根据权利要求3所述的系统,其中定义哪个服务器包括所述资源的路由表从iSCSI目标侧存储服务器被上载到iSCSI启动程序客户端。
8.根据权利要求7所述的系统,其中所述路由表被上载到所述iSCSI启动程序客户端中的装置专用模块DSM模块。
9.根据权利要求8所述的系统,其中所述路由表被用来确定在所述DSM模块中执行的路径选择。
10.根据权利要求3所述的系统,其中在所述iSCSI目标服务器上的连接负载平衡器将所识别的多个连接作为相关的连接来处理,所述相关的连接中的每个连接被分配给iSCSI存储服务器上的不同的网络接口(NIC)。
11.一种用于提供对共享资源的访问的数据处理器的网络系统,该系统包括:
客户端,该客户端包括客户端数据处理器,在所述客户端数据处理器上生成访问所述资源的请求,所述客户端具有多路径输入/输出(MPIO)功能,以及所述客户端根据所述请求来接收指示一个或多个服务器中的哪个服务器具有所述资源的路由表信息;以及
多个服务器,在所述多个服务器上具有被划分的所请求的资源,每个服务器从所述客户端接收MPIO配置信息,以及根据所述客户端的请求提供所述路由表信息,其中从所述客户端发送到所述服务器的MPIO配置信息将多个连接识别为属于特定的MPIO数据卷。
12.根据权利要求11所述的系统,其中所述资源是被划分的数据卷。
13.根据权利要求12所述的系统,其中所述客户端是iSCSI启动程序,以及所述服务器是iSCSI目标。
14.根据权利要求13所述的系统,其中所述MPIO配置信息作为iSCSI会话对象的一部分而被提供。
15.根据权利要求14所述的系统,其中所述MPIO配置信息作为所述iSCSI会话对象中的可设置服务行为而被提供。
16.根据权利要求13所述的系统,其中所述路由表被上载到iSCSI启动程序客户端中的DSM模块。
17.根据权利要求11所述的系统,其中所述MPIO配置信息在至少一个所述服务器中的连接负载平衡器上被接收。
18.根据权利要求16所述的系统,其中所述路由表被用来确定在所述DSM模块中执行的路径选择。
19.一种用于操作提供对共享资源的访问的数据处理器的网络系统的方法,该方法包括以下步骤:
在服务器的服务器数据处理器处从客户端的客户端数据处理器接收访问所述资源的请求;
在所述服务器的所述服务器数据处理器处从所述客户端接收多路径输入/输出(MPIO)配置信息;以及
将关于一组连接的信息返回给所述客户端,所述客户端能够利用所述一组连接从一个或多个服务器获得对所述资源的访问,其中从所述客户端接收的配置信息将多个连接识别为属于特定的MPIO数据卷。
20.根据权利要求19所述的方法,其中所述资源是被划分的数据卷。
21.根据权利要求20所述的方法,其中所述客户端是iSCSI启动程序,以及所述服务器是iSCSI目标。
22.根据权利要求21所述的方法,其中所述MPIO配置信息作为iSCSI会话对象的一部分而被提供。
23.根据权利要求22所述的方法,其中所述MPIO配置信息作为所述iSCSI会话对象中的可设置服务行为而被提供。
24.根据权利要求19所述的方法,该方法还包括:
在连接负载平衡器上接收所述MPIO配置信息。
25.根据权利要求21所述的方法,该方法还包括:
上载用于定义哪个服务器包括所述资源的路由表,所述路由表被上载到iSCSI启动程序客户端。
26.根据权利要求25所述的方法,其中所述路由表被上载到所述iSCSI启动程序客户端中的DSM模块。
27.根据权利要求21所述的方法,该方法还包括:
将所指示的多个连接作为相关的连接来处理,每个所述相关的连接被分配到不同的网络接口(NIC)。
28.一种用于操作提供对共享资源的访问的数据处理器的网络系统的方法,该方法包括以下步骤:
在服务器的服务器数据处理器处从客户端的客户端数据处理器接收访问所述资源的请求和所述客户端处的多路径输入/输出(MPIO)配置信息;以及
将指示一个或多个服务器中的哪个服务器提供对所述资源的访问的路由表信息提供给所述客户端,其中从所述客户端接收的配置信息将多个连接识别为属于特定的MPIO数据卷。
29.根据权利要求28所述的方法,其中所述资源是被划分的数据卷。
30.根据权利要求29所述的方法,其中所述客户端是iSCSI启动程序,以及所述服务器是iSCSI目标。
31.根据权利要求30所述的方法,其中所述MPIO配置信息作为iSCSI会话对象的一部分而被提供。
32.根据权利要求31所述的方法,其中所述MPIO配置信息作为所述iSCSI会话对象中的可设置服务行为而被提供。
33.根据权利要求30所述的方法,其中所述路由表被提供到iSCSI启动程序客户端中的DSM模块。
34.根据权利要求33所述的方法,其中所述路由表定义在所述DSM模块中执行的路径选择。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US93705807P | 2007-06-25 | 2007-06-25 | |
US60/937,058 | 2007-06-25 | ||
PCT/US2008/007911 WO2009002514A2 (en) | 2007-06-25 | 2008-06-25 | Storage area network with target side recognition and routing table upload |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101821725A CN101821725A (zh) | 2010-09-01 |
CN101821725B true CN101821725B (zh) | 2013-09-25 |
Family
ID=40186220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008801004163A Active CN101821725B (zh) | 2007-06-25 | 2008-06-25 | 带有目标侧识别和路由表上载的存储区域网络 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8447860B2 (zh) |
CN (1) | CN101821725B (zh) |
BR (1) | BRPI0813883A2 (zh) |
DE (1) | DE112008001682B4 (zh) |
GB (1) | GB2462787B (zh) |
WO (1) | WO2009002514A2 (zh) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8784336B2 (en) | 2005-08-24 | 2014-07-22 | C. R. Bard, Inc. | Stylet apparatuses and methods of manufacture |
US8388546B2 (en) | 2006-10-23 | 2013-03-05 | Bard Access Systems, Inc. | Method of locating the tip of a central venous catheter |
US7794407B2 (en) | 2006-10-23 | 2010-09-14 | Bard Access Systems, Inc. | Method of locating the tip of a central venous catheter |
US10449330B2 (en) | 2007-11-26 | 2019-10-22 | C. R. Bard, Inc. | Magnetic element-equipped needle assemblies |
US8781555B2 (en) | 2007-11-26 | 2014-07-15 | C. R. Bard, Inc. | System for placement of a catheter including a signal-generating stylet |
US10524691B2 (en) | 2007-11-26 | 2020-01-07 | C. R. Bard, Inc. | Needle assembly including an aligned magnetic element |
US9521961B2 (en) | 2007-11-26 | 2016-12-20 | C. R. Bard, Inc. | Systems and methods for guiding a medical instrument |
US8849382B2 (en) | 2007-11-26 | 2014-09-30 | C. R. Bard, Inc. | Apparatus and display methods relating to intravascular placement of a catheter |
WO2009070616A2 (en) | 2007-11-26 | 2009-06-04 | C. R. Bard, Inc. | Integrated system for intravascular placement of a catheter |
US10751509B2 (en) | 2007-11-26 | 2020-08-25 | C. R. Bard, Inc. | Iconic representations for guidance of an indwelling medical device |
US9649048B2 (en) | 2007-11-26 | 2017-05-16 | C. R. Bard, Inc. | Systems and methods for breaching a sterile field for intravascular placement of a catheter |
US9253256B2 (en) * | 2007-11-27 | 2016-02-02 | International Business Machines Corporation | Automatic multipath iSCSI session establishment over an arbitrary network topology |
US8478382B2 (en) | 2008-02-11 | 2013-07-02 | C. R. Bard, Inc. | Systems and methods for positioning a catheter |
CN101316273B (zh) * | 2008-05-12 | 2012-08-22 | 华中科技大学 | 一种分布式安全存储系统 |
US8935336B2 (en) * | 2008-06-18 | 2015-01-13 | Cisco Technology, Inc. | Optimizing program requests over a wide area network |
US8015343B2 (en) | 2008-08-08 | 2011-09-06 | Amazon Technologies, Inc. | Providing executing programs with reliable access to non-local block data storage |
US8019732B2 (en) | 2008-08-08 | 2011-09-13 | Amazon Technologies, Inc. | Managing access of multiple executing programs to non-local block data storage |
US9901714B2 (en) | 2008-08-22 | 2018-02-27 | C. R. Bard, Inc. | Catheter assembly including ECG sensor and magnetic assemblies |
US8437833B2 (en) | 2008-10-07 | 2013-05-07 | Bard Access Systems, Inc. | Percutaneous magnetic gastrostomy |
US9125578B2 (en) | 2009-06-12 | 2015-09-08 | Bard Access Systems, Inc. | Apparatus and method for catheter navigation and tip location |
WO2010144922A1 (en) | 2009-06-12 | 2010-12-16 | Romedex International Srl | Catheter tip positioning method |
US9532724B2 (en) | 2009-06-12 | 2017-01-03 | Bard Access Systems, Inc. | Apparatus and method for catheter navigation using endovascular energy mapping |
WO2011019760A2 (en) | 2009-08-10 | 2011-02-17 | Romedex International Srl | Devices and methods for endovascular electrography |
WO2011041450A1 (en) | 2009-09-29 | 2011-04-07 | C. R. Bard, Inc. | Stylets for use with apparatus for intravascular placement of a catheter |
WO2011044421A1 (en) | 2009-10-08 | 2011-04-14 | C. R. Bard, Inc. | Spacers for use with an ultrasound probe |
EP2575610B1 (en) | 2010-05-28 | 2022-10-05 | C. R. Bard, Inc. | Insertion guidance system for needles and medical components |
WO2011150376A1 (en) | 2010-05-28 | 2011-12-01 | C.R. Bard, Inc. | Apparatus for use with needle insertion guidance system |
US8281033B1 (en) * | 2010-06-29 | 2012-10-02 | Emc Corporation | Techniques for path selection |
AU2011289513B2 (en) | 2010-08-09 | 2014-05-29 | C.R. Bard, Inc. | Support and cover structures for an ultrasound probe head |
US20120046562A1 (en) | 2010-08-20 | 2012-02-23 | C. R. Bard, Inc. | Reconfirmation of ecg-assisted catheter tip placement |
WO2012058461A1 (en) | 2010-10-29 | 2012-05-03 | C.R.Bard, Inc. | Bioimpedance-assisted placement of a medical device |
EP2466810B1 (en) * | 2010-12-17 | 2015-09-23 | Alcatel Lucent | Method and router for a service dependent routing |
US8799393B1 (en) * | 2010-12-31 | 2014-08-05 | Emc Corporation | Dynamic data movement |
US8782007B1 (en) | 2010-12-31 | 2014-07-15 | Emc Corporation | Efficient data movement |
JP6008960B2 (ja) | 2011-07-06 | 2016-10-19 | シー・アール・バード・インコーポレーテッドC R Bard Incorporated | 挿入案内システムのためのニードル長決定および較正 |
USD699359S1 (en) | 2011-08-09 | 2014-02-11 | C. R. Bard, Inc. | Ultrasound probe head |
US9211107B2 (en) | 2011-11-07 | 2015-12-15 | C. R. Bard, Inc. | Ruggedized ultrasound hydrogel insert |
WO2013118194A1 (en) | 2012-02-10 | 2013-08-15 | Hitachi, Ltd. | Storage system with virtual volume having data arranged astride storage devices, and volume management method |
US9229645B2 (en) | 2012-02-10 | 2016-01-05 | Hitachi, Ltd. | Storage management method and storage system in virtual volume having data arranged astride storage devices |
WO2013188833A2 (en) | 2012-06-15 | 2013-12-19 | C.R. Bard, Inc. | Apparatus and methods for detection of a removable cap on an ultrasound probe |
WO2014077451A1 (ko) * | 2012-11-13 | 2014-05-22 | 주식회사 유투엔 | Iscsi 스토리지 시스템을 이용한 네트워크 분산 파일 시스템 및 방법 |
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 |
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 |
CN104468677B (zh) * | 2013-09-25 | 2018-08-03 | 中国科学院声学研究所 | 基于通用服务器和嵌入式服务器的双层iSCSI目标器系统 |
JP2015097006A (ja) * | 2013-11-15 | 2015-05-21 | 富士通株式会社 | ストレージ制御装置、制御方法、及びプログラム |
EP3073910B1 (en) | 2014-02-06 | 2020-07-15 | C.R. Bard, Inc. | Systems for guidance and placement of an intravascular device |
US9749445B2 (en) * | 2014-04-28 | 2017-08-29 | Oracle International Corporation | System and method for updating service information for across-domain messaging in a transactional middleware machine environment |
US10469580B2 (en) * | 2014-12-12 | 2019-11-05 | International Business Machines Corporation | Clientless software defined grid |
US10554749B2 (en) | 2014-12-12 | 2020-02-04 | International Business Machines Corporation | Clientless software defined grid |
US10973584B2 (en) | 2015-01-19 | 2021-04-13 | Bard Access Systems, Inc. | Device and method for vascular access |
US10349890B2 (en) | 2015-06-26 | 2019-07-16 | C. R. Bard, Inc. | Connector interface for ECG-based catheter positioning system |
US11000207B2 (en) | 2016-01-29 | 2021-05-11 | C. R. Bard, Inc. | Multiple coil system for tracking a medical device |
DE102017217057A1 (de) * | 2017-09-26 | 2019-03-28 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum Aufbau eines Kommunikationskanals zwischen einer ersten und einer zweiten Einrichtung |
US11044313B2 (en) * | 2018-10-09 | 2021-06-22 | EMC IP Holding Company LLC | Categorizing host IO load pattern and communicating categorization to storage system |
US10992079B2 (en) | 2018-10-16 | 2021-04-27 | Bard Access Systems, Inc. | Safety-equipped connection systems and methods thereof for establishing electrical connections |
US11082531B2 (en) * | 2019-11-18 | 2021-08-03 | International Business Machines Corporation | Communication with an application flow in an integration system |
CN111901245B (zh) * | 2020-07-28 | 2022-05-24 | 苏州浪潮智能科技有限公司 | 一种iscsi多路径管理系统、方法、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1268703A (zh) * | 1999-03-25 | 2000-10-04 | 戴尔美国公司 | 存储域管理系统 |
CN1643870A (zh) * | 2002-03-14 | 2005-07-20 | 皇家飞利浦电子股份有限公司 | 用于多路径通信的方法和系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999053415A1 (en) * | 1998-04-15 | 1999-10-21 | Hewlett-Packard Company | Distributed processing over a network |
US20020129146A1 (en) * | 2001-02-06 | 2002-09-12 | Eyal Aronoff | Highly available database clusters that move client connections between hosts |
US20030204602A1 (en) * | 2002-04-26 | 2003-10-30 | Hudson Michael D. | Mediated multi-source peer content delivery network architecture |
US7571206B2 (en) | 2002-08-12 | 2009-08-04 | Equallogic, Inc. | Transparent request routing for a partitioned application service |
US7461146B2 (en) | 2003-01-20 | 2008-12-02 | Equallogic, Inc. | Adaptive storage block data distribution |
US8499086B2 (en) | 2003-01-21 | 2013-07-30 | Dell Products L.P. | Client load distribution |
JP4230410B2 (ja) * | 2004-05-11 | 2009-02-25 | 株式会社日立製作所 | 仮想ストレージの通信品質制御装置 |
US20050283545A1 (en) | 2004-06-17 | 2005-12-22 | Zur Uri E | Method and system for supporting write operations with CRC for iSCSI and iSCSI chimney |
US7496745B1 (en) * | 2005-02-04 | 2009-02-24 | Qlogic, Corporation | Method and system for managing storage area networks |
US7484039B2 (en) * | 2005-05-23 | 2009-01-27 | Xiaogang Qiu | Method and apparatus for implementing a grid storage system |
US7529816B2 (en) * | 2005-06-03 | 2009-05-05 | Hewlett-Packard Development Company, L.P. | System for providing multi-path input/output in a clustered data storage network |
-
2008
- 2008-06-25 WO PCT/US2008/007911 patent/WO2009002514A2/en active Application Filing
- 2008-06-25 BR BRPI0813883-4A2A patent/BRPI0813883A2/pt not_active Application Discontinuation
- 2008-06-25 DE DE112008001682.8T patent/DE112008001682B4/de active Active
- 2008-06-25 GB GB0922445.2A patent/GB2462787B/en active Active
- 2008-06-25 US US12/215,194 patent/US8447860B2/en active Active
- 2008-06-25 CN CN2008801004163A patent/CN101821725B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1268703A (zh) * | 1999-03-25 | 2000-10-04 | 戴尔美国公司 | 存储域管理系统 |
CN1643870A (zh) * | 2002-03-14 | 2005-07-20 | 皇家飞利浦电子股份有限公司 | 用于多路径通信的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
DE112008001682T5 (de) | 2010-06-10 |
WO2009002514A2 (en) | 2008-12-31 |
CN101821725A (zh) | 2010-09-01 |
DE112008001682B4 (de) | 2022-01-05 |
GB2462787B (en) | 2012-07-25 |
GB2462787A (en) | 2010-02-24 |
BRPI0813883A2 (pt) | 2015-01-13 |
US8447860B2 (en) | 2013-05-21 |
US20090019157A1 (en) | 2009-01-15 |
GB0922445D0 (en) | 2010-02-03 |
WO2009002514A3 (en) | 2009-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101821725B (zh) | 带有目标侧识别和路由表上载的存储区域网络 | |
US10791181B1 (en) | Method and apparatus for web based storage on-demand distribution | |
CN103999031B (zh) | 云服务器的虚拟私有存储阵列服务 | |
EP1682978B1 (en) | Method and system for accessing and managing virtual machines | |
US7506073B2 (en) | Session-based target/LUN mapping for a storage area network and associated method | |
US6687733B2 (en) | Method and system for automatically configuring a client-server network | |
US7281062B1 (en) | Virtual SCSI bus for SCSI-based storage area network | |
WO2007006625A1 (en) | Method and system for dynamically rebalancing client sessions within a cluster of servers connected to a network | |
JP2006510976A5 (zh) | ||
JP2006526301A (ja) | ネットワークに対する知能型トラフィック管理システムおよびそれを利用した知能型トラフィック管理方法 | |
JP2003030012A (ja) | 広域san環境での要求適応型ストレージシステム及び方法 | |
CN109327332B (zh) | 一种Ceph云存储下基于LIO的iSCSI GateWay高可用实现方法 | |
CN110830574B (zh) | 一种基于docker容器实现内网负载均衡的方法 | |
US20180150234A1 (en) | Cloud volume storage | |
KR100834361B1 (ko) | 단일 시스템에서 효율적으로 지원하는 다중 원시 네트워크 프로토콜 구현 | |
CN113014611A (zh) | 一种负载均衡方法及相关设备 | |
KR100633500B1 (ko) | 컴퓨터 시스템들의 네트워크에서 작업 부하 조정을 위한방법 및 시스템 | |
TW200532553A (en) | Method and apparatus for controlling access to logical units | |
CN108829340B (zh) | 存储处理方法、装置、存储介质及处理器 | |
US10798159B2 (en) | Methods for managing workload throughput in a storage system and devices thereof | |
CN115623081A (zh) | 数据下载方法、上传方法及分布式存储系统 | |
CN115516842A (zh) | 编排代理服务 | |
CN102118389A (zh) | 一种通过iSCSI多路径访问存储设备的方法和一种存储设备 | |
Mohamed et al. | A collaborative fault-tolerant transfer protocol for replicated data in the cloud | |
Ledwon et al. | Streamlining XR Application Deployment with a Localized Docker Registry at the Edge |
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 |