CN101252582B - 启用InfiniBand网络自举的方法以及InfiniBand主机设备 - Google Patents

启用InfiniBand网络自举的方法以及InfiniBand主机设备 Download PDF

Info

Publication number
CN101252582B
CN101252582B CN2008100817163A CN200810081716A CN101252582B CN 101252582 B CN101252582 B CN 101252582B CN 2008100817163 A CN2008100817163 A CN 2008100817163A CN 200810081716 A CN200810081716 A CN 200810081716A CN 101252582 B CN101252582 B CN 101252582B
Authority
CN
China
Prior art keywords
guiding
network
argument
support package
keyword
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
CN2008100817163A
Other languages
English (en)
Other versions
CN101252582A (zh
Inventor
C·B·埃尔南德斯
S·D·利南
J·T·奥坎二世
M·W·温宁
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Priority claimed from US11/678,116 external-priority patent/US7886139B2/en
Priority claimed from US11/678,132 external-priority patent/US7734818B2/en
Priority claimed from US11/678,124 external-priority patent/US7689679B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101252582A publication Critical patent/CN101252582A/zh
Application granted granted Critical
Publication of CN101252582B publication Critical patent/CN101252582B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了启用InfiniBand(IB)网络自举的方法和InfiniBand主机设备。InfiniBand主计算机设备的固件在系统初始化期间在层次数据结构内提供了IB主机通道适配器(HCA)的表示。ib-引导支持包封装了用于使用ib端口设备来在IB网络上进行引导的变元。所述ib-引导支持包支持使用一个或多个命令关键字,每一个命令关键字均标识了用于检索引导映像的支持包的特定类型。当提供了srp关键字时,使用SRP协议来访问存储引导设备和检索引导文件。因而通过支持包之一提供了对引导服务器的访问,并且经由所述IB网络将所述引导映像返回给所述主机设备用于完成引导操作。

Description

启用InfiniBand网络自举的方法以及InfiniBand主机设备
技术领域
本发明一般地涉及计算机系统,并且具体地涉及计算机系统的引导过程、以及在计算机网络系统中使用网络支持包(network support package)。更具体地,本发明涉及一种用于从因特网小型计算机系统接口(iSCSI)设备完成计算机系统的引导过程的方法和系统、用于计算机系统的远程网络引导操作(boot operation)、以及用于使用网络支持包从引导服务器加载计算机系统的引导映像的增强方法。
背景技术
紧随着计算机系统的上电(或重新引导),系统经历引导过程;借助该引导过程,系统的固件通过标识以及设置/启动系统中的设备而准备该系统以便进行操作。在引导过程期间,固件将系统硬件表示(represent)成带有附属设备的互连总线的分级体系。这种分级表示通常描述用户配置选择,并且包含用于硬件设备的固件设备驱动程序和供那些驱动程序使用的支持例程。
另外,固件通过从某个存储位置/设备加载(引导)操作系统来准备该计算机系统以便进行操作。在单机计算机系统的正常操作期间,当用户向计算机发出引导命令时,计算机响应于该引导命令,尝试从该计算机系统的本地存储器检索操作系统文件。还需要配置数据文件来用特定硬件配置所必须的硬件参数来配置特定系统。
某些计算机系统经由网络连接到服务器或网络可访问的其它设备。在使用单机系统(其中当关断电源时在本地维护计算机的存储装置)时,OS典型地存储在计算机系统自身中。在具有当关断电源时会丢失的临时(易失性)存储装置的其它系统中(或者甚至在使用具有有限的非易失性存储能力的系统时),计算机不能从该计算机自身内检索引导信息。在这些情形下,计算机系统的固件可配置成经由网络向用作引导服务器的服务器发送针对OS文件的请求。远程引导操作在分布式和网络计算的世界中变得常见,特别是在具备从引导服务器进行引导的优势的情况下,诸如节省计算机系统的有限的存储器资源。
当创造出新设备时,现有计算机系统典型地不能从这些新设备引导客户端程序或操作系统,除非固件提供对该引导过程的某种类型的支持。当新设备不适合先前所定义的设备类型或系统中典型地存在的标准设备类型时,现有系统(在缺少特别提供的固件的情况下)不具备完成针对新设备的引导过程的这种能力是尤其正确的。正被更加频繁地使用但尚未被提供直接固件支持的一种这样的新设备是因特网小型计算机系统接口(iSCSI)设备。
iSCSI协议允许客户端系统使用iSCSI启动器来连接诸如IP网络上的磁盘或磁带驱动器之类的远程目标以便进行块级输入/输出(I/O)。SCSI体系结构是基于客户端/服务器模型,其中客户端(“启动器”)典型地是发出请求以读或写数据的诸如文件服务器之类的主机系统,而服务器(“目标”)是对客户端请求做出响应的诸如磁盘阵列之类的资源。服务器(目标)包括一个或多个被分配有标识号或逻辑单元号(LUN)的逻辑单元。本领域的技术人员熟知iSCSI协议和它的一般实现。在IETF(因特网工程任务组)的RFC储存库中公布的RFC 3720:Internet Small ComputerSystems Interface(iSCSI)中可获得该协议的更多描述。
因为iSCSI协议还未被完全集成进诸如由固件指导的远程引导操作之类的现有系统功能,所以常规系统使用若干现有发现协议以从公知服务器获得关于iSCSI客户端和目标的信息。由IETF RFC 4173在网站“www.ietf.org/rfc/rfc4173.txt”上在线发表的标题为“BootstrappingClients using the iSCSI Protocol”的文章内提供了对这些现有发现协议的描述。然而,当前没有任何高效方法,用以提供用来从iSCSI设备(目标)引导操作系统的受指导的引导过程。因此,本发明认识到存在以下需求:由iSCSI客户端从iSCSI设备(目标)高效地引导它的操作系统,而无需完全重新设计/修改现有的远程引导过程和发现协议。
网络计算机系统在计算机领域中是众所周知的。利用普通文件传送协议(TFTP)从位于跨网络的远程服务器加载计算机系统的引导映像/文件的通用方法也是已知的。特别地,当在诸如局域网(LAN)的网络上引导计算机系统(即,网络设备)时,计算机系统的固件通常利用TFTP自举(bootstrap)方法来从跨网络的引导服务器/设备获得引导文件。
利用该TFTP自举方法,提供了网络支持包来协助网络引导操作。具体而言,网络支持包利用TFTP自举方法来检索和/或定义访问和检索位于引导服务器处的引导映像/文件所需要的特定引导变元(boot arguments)。网络支持包还处理从计算机系统获得的引导变元,并且建立与远程服务器的连接来获得引导文件。可以在由开放固件工作组(Open FirmwareWorking Group)发布的开放固件推荐规程(Open FirmwareRecommended Practice):TFTP引导扩展版本1.0(TFTP BootingExtension Version 1.0)中找到关于利用网络支持包来启用经由TFTP自举从位于跨LAN的引导服务器加载引导映像的概要信息。
虽然以上TFTP自举方法被应用于标准的基于LAN的和其它类似配置的网络内并且运行良好,但是已经证明这样的方法在不同的网络配置或网络类型的情况下并不有效。举例来说,TFTP自举方法在InfiniBand(IB,无限带宽)网络的情况下无效。
如本领域中已知的,InfiniBand(IB)网络是一种分组交换的窄并行(narrow parallel)网络,其操作于高数据速率和大物理范围,从而将远程设备互连至主计算机系统(或服务器)。IB网络包括将主计算机系统耦合至子网的主机通道适配器(HCA)。该网络进一步包括一个或多个目标通道适配器(TCA),而这一个或多个目标通道适配器(TCA)又将其它设备耦合至子网。子网通常包括至少一个交换机以及将HCA和TCA连接到交换机的多条链路。例如,简单的IB网络可以具有一个交换机,HCA和TCA通过相应的链路连接至该交换机。
IB网络常常经由适配器和路由器连接至局域或广域通信网络。例如,可以利用以太网适配器来启用在以太网上的通信。网络适配器具有其自己的TCA,作为IB网络内用于耦合于以太网的端节点。IB规范进一步提供了一种原始数据报通信模式,其桥接从以太网接收到的分组用于在IB网络上传输,并且反之亦然。类似地,IB网络可以包括连接至因特网的路由器或适配器。
假定提高对完成计算机设备的引导的远程引导操作的信赖,并且诸如IB网络这样的新网络的复杂性增加,那么需要扩展在LAN内完成的远程引导过程,以便使得主计算机能够完成来自位于跨IB网络的引导服务器的远程引导过程。目前还没有支持经由连接至IB结构的网络设备的标准网络引导过程来无缝实现网络引导操作的开放固件,其中该引导设备直接连接至IB结构或连接至耦合于IB结构的端节点的外部网络。
网络计算机系统通常在本领域中是公知的。用于通过网络从远程引导服务器加载计算机系统的引导映像的常规方法也是公知的。当通过网络引导计算机系统时,计算机系统的固件通常使用简单文件传输协议(TFTP)通过网络从引导设备获取引导文件。提供了网络支持包以通过处理从计算机系统获取的引导变元以及建立与远程服务器的连接来帮助此远程(网络)引导操作获取引导文件。网络支持包使用TFTP自举方法来检索和/或定义特定的引导变元。有关使用网络支持包以使能从远程引导服务器加载引导映像的一般信息可以在Open Firmware Recommended Practice:TFTPBooting Extension Version 1.0(其由Open Firmware Working Group发布)中找到。
标准网络支持包使用TFTP自举方法以通过网络引导系统。TFTP自举方法的引导变元提供了指定自举协议(BOOTP)协议以查找引导服务器和引导文件的选项。因此,引导变元的当前(现有)定义提供了例如使用BOOTP而不是RARP/ARP(地址解析协议)以查找引导服务器并获取引导文件的选项。如果未指定BOOTP协议,则可以使用诸如RARP/ARP之类的其他协议获取引导文件。此外,使用常规方法,以IPv4格式(网际协议版本4)指定所有表示网络地址的变元。
不断的发展已导致创建更高级的IP格式,例如IPv6。但是,用于启用远程引导操作的现有变元和相应方法仍使用IPv4格式,因为先前尚未定义IPv6格式。此外,使用现有方法,尚未将动态主机配置协议(DHCP)视为用于TFTP自举的备选引导发现协议。因此,本发明认识到需要升级远程引导操作的现有方法以便允许使用IPv6格式和DHCP获取使用远程服务器上存储的引导文件来引导系统所需的信息。
发明内容
公开了一种使系统固件能够从网络连接的因特网小型计算机系统接口(iSCSI)设备高效地引导操作系统(OS)和/或客户端程序的方法和系统。该方法一般包括:(1)定义iSCSI设备在表示系统硬件的分级数据结构内的固件表示;以及(2)扩展网络支持包以容纳额外的引导变元,该额外的引导变元允许系统固件获取从该网络连接的iSCSI设备进行引导所需的信息,而同时使用现有发现协议之一。
从以下理解中提供了本发明的特定方法:为了从iSCSI设备引导系统,该系统的引导固件需要识别iSCSI硬件或使能iSCSI软件启动器、标识iSCSI客户端和目标iSCSI设备、与该目标建立通信、以及从该目标加载引导文件。表示设备的固件数据结构的这种分级性质允许信息在父设备和子设备之间以及在设备与支持包之间进行传递。根据一个实施例,iSCSI设备类型被表征为类网络的设备类型,目的是支持(leverage)已扩展的网络支持包并因此使用网络服务来发现和获取iSCSI设备地址的不同分量。通过这种分级表示,iSCSI设备提供网络专用引导参数(例如速度、模式等等)并将那些引导参数传递给网络支持包。网络支持包获取并处理iSCSI设备地址中的分量并将那些变元(也即引导参数)传递给盘支持包(disksupport package)。接着,盘支持包加载引导映像并将OS转发给iSCSI客户端以使能在iSCSI客户端处完成对OS的引导。
公开了一种方法和系统,用于使得InfiniBand(IB)主计算机设备能够通过IB网络从远程引导设备引导操作系统。增强所述设备的固件,以便在表示计算机设备的硬件的层次数据结构内提供IB主机通道适配器(HCA)的表示。相应地,定义新的设备类型,“hca”设备类型,其表示IB HCA。hca设备在层次固件数据结构内通过节点全局唯一标识符(node-GUID)来描述特征。所述hca设备含有用于开启和关闭设备的接口以及从设备读取和写入设备的接口。所述“hca”设备包括多个“子设备”,其被称为“ib端口(ibport)”设备,并且由端口全局唯一标识符(port-GUID)来标识。除了为父hca设备定义的开启、关闭、读和写接口以外,ib端口设备还包括使得该设备能够被用作引导设备的加载接口。
创建“ib-引导(ib-boot)”支持包来协助封装用于使用ib端口设备通过IB网络进行引导的变元,并且定义引导变元集来由所述ib-引导支持包利用。所述ib-引导支持包对指定目标IB端节点以及一个或多个关键字的引导变元进行处理。在一个实施例中,所述ib-引导支持包还实现特定的分组传送协议,当通过IB网络进行引导时,通常通过hca设备驱动器来利用所述特定的分组传送协议。
利用固件结构的层次特性,基于指定关键字来将这些IB专用变元(IB-specific arguments)传递至适当的支持包,以便完成引导处理。在一个实施例中,提供了两个关键字,各自标识网络支持包和套接字直接协议(Sockets Direct Protocol,SDP)支持包中特定的一个。第一关键字指定将要实现IPoIB(基于IB的网际协议(IP))网络引导方法,由此使用IPoIB网络协议来到达引导服务器并且找到引导文件。第二关键字指定将要实现IB网络引导方法,由此使用SDP网络协议来访问引导设备。因而通过支持包之一提供了对所述引导服务器的访问,并且经由IB网络将引导映像返回给主机设备用于完成引导操作。
披露了一种扩展网络支持包的功能以接受IPv6格式的网络地址并允许使用诸如动态主机配置协议(DHCP)之类的其他引导发现协议以便获取使用来自远程引导服务器的引导文件引导系统所需的信息的方法和系统。向所述网络支持包添加了一种机制以使能/允许支持其他引导发现协议和其他网络地址格式。所述机制定义了添加到引导变元并由所述网络支持包处理的限定符关键字。所述限定符关键字通过指定获取变元(即,特定的引导发现协议)、变元格式以及与变元关联的其他参数的方法来修改与自举方法关联的引导变元。可选地在与所述自举方法关联的变元之前指定限定符关键字以便修改引导变元的处理。一次可以向引导变元添加多个限定符关键字,并且可以按照关键字在所述变元中的顺序来应用所述关键字。
在一个实施例中,定义了两个限定符关键字,即ipv6和dhcp。可选地将ipv6关键字添加在第一引导变元之前以指示将使用IPv6格式来表达引导变元中提供的任何网络地址。没有关键字“ipv6”指示以IPv4格式表达所有网络地址。dhcp关键字用于指示网络支持包应使用DHCP服务器来获取引导参数。可以可选地提供diaddr值以指定要使用的DHCP服务器的因特网地址。否则,所述网络支持包执行广播查询以查找DHCP服务器。diaddr值以IPv6或IPv4表示法表达,具体取决于是否指定了可选的限定符关键字ipv6。
公开了一种方法和系统,用于使得InfiniBand(IB)主计算机设备能够通过IB网络从远程存储设备引导操作系统。增强所述设备的固件,以便在表示计算机设备的硬件的层次数据结构内提供IB主机通道适配器(HCA)的表示。相应地,定义新的设备类型,“hca”设备类型,其表示IB HCA。hca设备在层次固件数据结构内通过节点全局唯一标识符来描述特征。所述hca设备含有用于开启和关闭设备的接口以及从设备读取和写入设备的接口。所述“hca”设备可以具有一个或多个“子设备”,其被称为“ib端口(ibport)”设备,并且由端口全局唯一标识符来标识。除了为父hca设备定义的开启、关闭、读和写接口以外,ib端口设备还包括使得该设备能够被用作引导设备的加载接口。
提供“ib-引导(ib-boot)”支持包,并且定义引导变元集以便由所述ib-引导支持包利用。所述ib-引导支持包接收随特定关键字一起指定目标IB端节点的引导变元。利用固件结构的层次特性,基于指定关键字来将这些IB专用变元(IB-specific arguments)传递至适当的支持包,以便完成引导处理。所述ib-引导支持包还实现特定的分组传送协议,当通过IB网络进行引导时,通过hca设备驱动器来利用所述特定的分组传送协议。
在一个实施例中,提供了特定关键字,其标识SCSI(小型计算机系统接口)RDMA(远程直接存储器访问)协议--SRP--支持包。所述SRP支持包指定将要实现存储器引导方法,由此,利用SRP来通过IB结构传输SCSI命令以及访问引导设备。主机设备然后从通过通道适配器连接至I/O结构的存储设备(引导服务器)读取数据块(包括引导映像)。因而通过所述SRP支持包提供了对所述引导服务器的访问,并且经由IB网络将所述引导映像返回至所述主机设备用于完成所述主机放备的引导操作。
本发明的上述以及其它的目的、特征、和优点在以下详细写出的描述中将变得明显。
附图说明
当结合附图进行阅读时,通过参考以下对说明性实施例的详细描述,将最佳地理解本发明自身以及优选的使用模式、其它目的、以及其优点,在附图中:
图1A是图示根据本发明的一个实施例的经由网络耦合到因特网小型计算机系统接口(iSCSI)设备(目标)的示例计算机系统(客户端)的框图;
图1B是图示根据本发明的一个实施例的图1A中的计算机系统的内部布局(硬件和软件结构)的框图;
图1C图示根据本发明的一个说明性实施例的示例过程流程,通过该示例过程流程,系统固件将变元和参数传输给网络支持包并最终传输给iSCSI设备(目标)以使能从该iSCSI设备检索并引导OS;
图1D是图示根据本发明的说明性实施例的、表示在固件生成的分级结构内的iSCSI设备以及传送引导参数给网络支持包的过程的流程图;
图1E是图示根据本发明的说明性实施例的、经由所选发现过程检索额外引导变元用以传送给iSCSI设备(目标)的过程的流程图;
图1F是图示根据本发明的一个实施例的、与远程SCSI设备建立iSCSI会话以从该SCSI盘获取引导映像并完成对客户端设备的OS引导的过程的流程图;
图2A是根据本发明的一个实施例,在InfiniBand(IB)网络内的主计算机设备的主要硬件组件的高级框图;
图2B依照本发明的说明性实施例说明了示例流程,通过该流程,在固件生成的层次结构内表示了IB主机通道适配器(HCA),并且将引导参数传送至ib-引导支持包;
图2C是根据本发明的一个实施例的框图,其说明了共同在如图2A所提供的IB网络上启用远程引导的互连功能组件(硬件、固件和软件结构);
图2D依照本发明的一个实施例说明了示例流程,通过该流程,ib-引导支持包处理引导变元并且选择网络支持包或SDP支持包来转发该引导变元用于完成远程引导处理;
图2E根据本发明的一个说明性实施例说明了示例流程,通过该流程,网络支持包处理从ib-引导支持包接收的引导变元,并且实现一系列过程以便访问适当的发现服务器(discovery server)从而获得附加引导参数来访问引导设备;
图2F是依照本发明的说明性实施例说明了一过程的流程图,通过该过程,SDP包处理从ib-引导支持包接收的引导变元,以便完成经由IB端节点加载来自引导服务器的引导映像;
图3A是示出了根据本发明的一个实施例的通过网络连接到因特网小型计算机系统接口(iSCSI)设备(引导服务器或目标)的示例计算机系统(客户端)的方块图;
图3B示出了根据本发明的一个示例性实施例的计算机系统的系统固件借助其将扩展有特定关键字的引导变元传送到已修改网络支持包(此支持包最终访问DHCP服务器来获取引导参数)的示例过程流;
图3C是示出了根据本发明的示例性实施例的网络支持包借助其处理扩展引导变元以便使用IPv6地址格式以及从DHCP服务器检索的参数来完成从引导服务器加载引导映像的过程的流程图;
图4A是根据本发明的一个实施例,在InfiniBand(IB)网络内的主计算机设备的主要硬件组件的高级框图;
图4B根据本发明的一个方面说明了示例流程,通过该流程,计算机系统的系统固件处理被传输至ib-引导支持包的引导变元;
图4C是根据本发明的一个实施例的框图,其说明了通过支持包(包括SRP支持包)共同在IB网络上启用远程引导的互连功能组件(硬件、固件和软件结构);
图4D依照本发明的一个实施例说明了示例流程,通过该流程,ib-引导支持包处理引导变元并且选择SCSI(小型计算机系统接口)RDMA(远程直接存储器访问)协议--SRP--支持包来转发该引导变元用于完成远程引导处理;以及
图4E根据本发明的一个说明性实施例说明了示例流程,通过该流程,SRP支持包处理从ib-引导支持包接收的引导变元并且启动对引导设备的访问以及检索引导映像。
具体实施方式
本发明提供一种使系统固件能够从网络连接的因特网小型计算机系统接口(iSCSI)设备高效地引导操作系统(OS)和/或客户端程序的方法和系统。该方法一般包括:(1)定义iSCSI设备在表示系统硬件的分级数据结构内的固件表示;以及(2)扩展网络支持包以容纳额外的引导变元,该额外的引导变元允许系统固件获取从该网络连接的iSCSI设备进行引导所需的信息,而同时使用现有发现协议之一。
在以下对本发明的示例实施例的详细描述中,足够详细地描述了其中可实现本发明的具体示例实施例,以使本领域的技术人员能够实现本发明,并且应当理解,还可使用其它实施例,以及在不偏离本发明的精神或范围的条件下可做出逻辑的、体系结构的、程序的、机械的、电气的以及其它的改变。由此,以下详细描述不是理解为限制的意思,并且本发明的范围仅由所附各权利要求限定。
在对附图的描述中,类似的组件被提供与先前图中的那些组件相类似的名字和标号。当后面的图在不同环境中使用该组件或使用具有不同功能的该组件时,该组件被提供表示该图号的不同前导数字(例如11xx用于图1A以及12xx用于图1B)。分配给组件的具体数字仅被提供用以帮助进行描述并且其意思不是暗示对本发明的任何限制(结构的或功能的)。
现在参考附图,图1A是图示对经由网络1160连接到远程iSCSI设备(1170)(例如,网络存储装置、引导服务器、或目标)的计算机系统1100以及一个或多个信息源1180的结构性表示的框图。贯穿对说明性实施例的该描述,iSCSI设备1170可以可互换地称为“目标”或者“iSCSI服务器”或“引导服务器”。计算机系统1100还可称为“启动器”或“客户端”或者“客户端设备”或“iSCSI客户端”。计算机系统1100可以是个人计算机、服务器、移动或手持电子设备、或者其它数据处理设备。网络1160可以是局域网、城域网、广域网、或其它类型的计算机网络。网络1160可以是有线或无线网络并可使用诸如因特网协议(IP)之类的无连接的分组交换协议和/或其它网络协议。
计算机系统1100包括将计算机系统1100连接到网络1160的网络接口设备1110。网络接口设备1110表示计算机系统1100的硬件部件并且可以是网络接口卡(NIC)或集成的网络设备(例如构建到计算机系统1100中的诸如母板之类的主电路板的网络适配器)。
设备驱动器1120控制网络接口设备1110,提供一种管道,通过所述管道操作系统(OS)1125以及计算机系统1100的应用层中的一个或多个软件应用1150可以与网络1160进行通信。设备驱动器1120允许通过使用网络接口设备1110通过网络1160来执行数据存储操作1130。例如,设备驱动器1120可包括iSCSI启动器,其允许SCSI命令在网络1160上与存储目标(iSCSI设备1170)相互作用。
设备驱动器1120中的至少一个可支持通过网络1160引导iSCSI设备1170,在这种情况下iSCSI设备1170表示远程引导设备。作为远程引导设备,iSCSI设备1170在经由通过网络1160完成的一系列过程将(操作系统的)引导映像加载到计算机系统1100之前被初始化。iSCSI设备1170可位于靠近或者远离计算机系统1100的物理空间。例如,iSCSI设备1170可通过局域网1160(例如,吉比特以太网)连接到计算机系统1100并且可与计算机系统1100位于相同的建筑、机架或机柜中。
另外,设备驱动器1120允许使用网络接口设备1110通过网络1160来执行网络业务操作1140。设备驱动器1120中的至少一个可以向操作系统将自身呈现为网络设备驱动器并支持通用网络业务。因此,操作系统可查看并与驱动器1120之一交互作用,仿佛该驱动器是在机器引导过程中的总线驱动器和存储装置驱动器之后被加载的常规网络设备驱动器。所支持的网络业务取决于实现可以包括多个不同的组网协议,诸如TCP/IP、ODI(开放数据链路接口)、PXE(预引导执行环境)、以及各种其它经标准化的和/或基于公司/操作系统的组网协议。通常,设备驱动器1120允许计算机系统1100使用多个组网协议与一个或多个信息源1180进行通信。
虽然计算机系统1100的设备驱动器1120在图1A中呈现在与操作系统和硬件相分开的层中,但是应当理解,取决于实现设备驱动器可在计算机系统1100内的不同环境中操作,从断电、经过引导序列、直到到达其中操作系统被完全加载并控制了计算机系统1100的操作模式的操作模式。此外,可以用硬件、固件和/或软件来实现此处所描述的各种驱动器功能。
如上所述,设备驱动器1120可支持对远程引导设备(iSCSI设备1170)的引导并支持通用网络业务,而设备驱动器1120中的至少一个可以向操作系统将自身呈现为网络设备驱动器。可以通过使用iSCSI来完成对远程引导设备的引导,其中将SCSI命令封装在TCP/IP协议中。iSCSI引导典型地涉及通过一个或多个(通常是两个)iSCSI启动器来引导iSCSI目标。这些iSCSI启动器典型地是软件/固件,其在计算机系统1100内执行并使用现有网络接口设备1110来经由网络1160访问iSCSI目标。iSCSI启动器是对来自iSCSI目标的数据的请求者/接收者,并且iSCSI目标典型地在其上存储有数据,该数据对于该iSCSI启动器是可访问的并且是响应于接收到请求被返回的。在两个iSCSI启动器的情况下,启动器中的一个或二者可位于固件中或通过PXE来递送。同样,启动器中的一个可与计算机系统1100正对其进行引导的操作系统相接口。在某些实现中,并且如图1A内所提供,计算机系统1100包括iSCSI TCP减载引擎(TOE)1115,其是代替软件iSCSI启动器用于与目标/iSCSI设备1170进行通信而无需网络接口设备1110的独立硬件设备。
本领域的普通技术人员将意识到,图1A中所描绘的硬件可以进行变更。例如,作为所描绘的硬件的补充或替代,可使用诸如光盘驱动器等等之类的其它外围设备。因此,所描绘的例子意思不是暗示对于本发明的体系结构限制。图1A中所描绘的计算机系统可以例如是纽约阿蒙克的国际商业机器公司的产品的IBM eServer pSeries系统。
在图1A中,当在计算机系统1100内没有提供iSCSI TOE时,软件iSCSI启动器被提供给设备驱动器并启动经由网络接口卡1110对目标/iSCSI设备1170的连接。为了使能该操作,计算机系统固件加载总线驱动器。例如,操作系统中的许多当前固件安装允许在SCSI驱动器插入点处添加第三方SCSI驱动器,并且设备驱动器1120可以在引导序列中在该点处被加载。
图1B图示示例设备驱动器体系结构和其它软件部件,其使(图1A中的)计算机系统1100能够在加载操作系统之前经由iSCSI TOE与网络1160(图1A)进行通信。在一个实施例中,设备驱动器体系结构使iSCSI TOE能够在加载操作系统之前访问网络1160并连接到引导服务器设备(例如图1A中的目标/iSCSI设备1170)。
在图1B中,计算机系统是装备有iSCSI TOE的iSCSI客户端。如所示出那样,固件1225提供iSCSI总线设备驱动器1220,其包括直接与网络进行通信的iSCSI(硬件)接口设备1215。iSCSI驱动器1230包含它自己的TCP/IP栈用以使能通过网络对目标/iSCSI设备的连接以检索引导映像。iSCSI驱动器1230响应于iSCSI引导操作生成iSCSI业务1235。在系统引导期间,固件1225安装iSCSI驱动器1230和iSCSI总线设备驱动器1220以使能经由iSCSI接口设备1215的iSCSI引导操作。在该驱动器体系结构中,控制硬件接口的设备驱动器(例如,iSCSI总线设备驱动器1220)区别接收到的对于机器总线命令的响应和其它网络业务。
通过上述示例计算机系统和网络环境,如下面所描述那样实现了本发明的各种特征。所描述的实施例引用了用于网络设备的标准支持包。在由Open Firmware Working Group发表的Open Firmware RecommendedPractice:TFTP Booting Extension Version 1.0(已确认在2006年8月22日发表在http://playground.sun.com/1275/practice/obptftp/tftp1_0.pdf#search=%22Open%20Firmware%20Recommended%20Practice%3A%20TFTP%20Booting%20Extension%20Version%201.0%22)中描述了该标准支持包。在此,通过参考的方式并入与对本发明特征的描述相关的该文档的内容。
本发明的各实施例的具体方法是从以下理解中进行描述的,即为了从iSCSI设备引导系统,该系统的引导固件1225需要识别iSCSI硬件(或使能iSCSI软件启动器)、标识iSCSI客户端和目标iSCSI设备、与该目标建立通信、以及从该目标加载引导文件。表示设备的固件数据结构的这种分级性质允许信息在设备与支持包之间进行传递。
根据一个实施例,当在计算机系统1100内提供iSCSI TOE时,该固件将iSCSI启动器类型表征为类网络的设备类型,目的是支持已扩展的网络支持包并因此使用网络服务来发现和获取目标iSCSI设备地址的不同分量。通过这种分级表示,iSCSI设备(启动器)提供网络专用引导参数(例如速度、模式等等)并将那些引导参数传递给网络支持包。网络支持包获取并处理iSCSI设备地址中的分量并将那些变元(也即引导参数)传递给盘支持包。接着,盘支持包加载引导映像并将引导映像转发给iSCSI客户端以使能在iSCSI客户端处完成对操作系统的引导。
网络支持包提供对于使用在远程服务器上发现的引导文件来引导系统的支持。如在上面的参考内所进一步描述那样,支持包还覆盖自举协议(BOOTP)的使用以发现引导服务器并获取使用已建立的引导变元标准组的引导文件。本发明提供对网络支持包的扩展/增强,以容纳另外的新的引导变元,该新的变元允许网络支持包通过使用发现协议来标识iSCSI设备地址分量。如此处所描述的实施例所提供的那样,这些扩展/增强适用于iSCSI设备以及“网络”设备。
用于网络设备的标准支持包提供对于使用在远程服务器上发现的引导文件来引导系统的支持。另外,支持包还提供对于BOOTP自举协议的使用来发现引导服务器和引导文件。然而,为了从iSCSI设备引导系统,需要引导固件处理来(a)标识iSCSI客户端和目标,(b)与目标建立通信,以及(c)从目标(或子设备)加载引导文件。下面描述了由本发明的一个实施例提供的对网络支持包的扩展。
由本发明的一个实施例提供的对网络支持包的一种类型的扩展使网络支持包能够容纳下述引导变元,其允许固件用包括对于现有和未来的发现协议的使用的方法来标识iSCSI设备地址分量变元。这些第一扩展适用于iSCSI设备以及“网络”设备,以适应当缺少iSCSI TCP减载引擎(TOE)硬件时由软件iSCSI启动器建立iSCSI会话的情形。
另一种类型的扩展将一种机制添加到网络支持包以区别不同类型的自举方法(例如,TFTP(简单文件传输协议)自举相对于iSCSI自举)以及这些方法各自的引导变元。根据本发明的一个实施例,使用在第一引导变元之前被添加的“命令关键词”来选择自举方法。多个命令关键词被定义以指定不同的自举方法和它们的相关引导变元。命令关键词定义/确定自举方法以及与该方法相关联的引导变元组。因为已定义的当前引导变元组对应于TFTP自举方法,所以当如本发明的一个实施例所提供的那样缺少命令关键词时,暗示着对于TFTP自举方法的使用。在一个实施例中,命令关键词是互斥的。在该实施例中,在变元中只允许一个命令关键词,并且多个命令关键词的输入导致产生被报告的错误。接着,各种引导变元被定义为或者被需要或者可选。
一个或多个发现协议可用于获取与所选自举方法相关联的引导变元。如此处所使用那样,发现协议定义了用以与远程服务器建立连接的机制和可从该特定服务器获取的信息二者。例如,动态主机配置协议(DHCP)可用于获取诸如客户端地址之类的配置参数,BOOTP协议可用于获取关于iSCSI目标的信息,而因特网存储命名服务器(iSNS)协议和服务位置协议(SLP)可用于获取iSCSI客户端和iSCSI目标信息。根据一个实施例,使用在命令关键词之后和在第一引导变元之前插入的“限定符关键词”来选择具体的发现协议。每个限定符关键词标识公知的发现协议和通过/可以通过使用该发现协议来获取的引导变元。多个限定符关键词可在命令关键词之后被指定。如本发明所提供那样,限定符关键词的例子包括但不限于dhcp、bootp、isns和slp,它们分别标识DHCP、BOOTP、iSNS和SLP协议。
提供了其中各扩展适用于网络设备的实施例,目的是适应当缺少iSCSI TCP减载引擎(TOE)硬件时使用软件iSCSI启动器来建立iSCSI会话的情形。iSCSI TOE设备执行对iSCSI命令的封装并提供以太网硬件用于通过网络传送iSCSI命令。
因此,如下面所进一步描述那样,另外的引导变元(关键词)被建立并添加到由网络支持包用来完成以下操作的变元:(1)区别不同类型的自举方法,也即TFTP自举相对于iSCSI自举程序,以及它们各自的引导变元,以及(2)指定发现协议以从iSCSI设备获取在OS引导处理期间所需的缺失引导参数。
iSCSI协议将SCSI命令封装进网络包以便在客户端(iSCSI启动器,例如计算机系统1100)与iSCSI目标(1170)之间进行传输。标准iSCSI设备地址包含以下信息:
(a)iSCSI目标服务器(target-server)的IP地址;
(b)TCP端口号,其缺省是3260(target-port);
(c)iSCSI目标名字(target-name);以及
(d)iSCSI LUN,其缺省是0(target-lun)。
另外,以下附加信息可用在iSCSI协议中以使能在安全环境中对iSCSI设备的访问:
(a)CHAP目标ID(target-chapid)
(b)CHAP口令(target-chappw)。
根据本发明的实施例,当在客户端设备(例如,图1A中的计算机系统1100)内提供了iSCSI TOE时,该iSCSI设备在分级固件数据结构内被表示成类网络的设备类型。由此,该iSCSI设备类型由与用于描述网络设备的相同类型信息(也即,机器(MAC)地址、帧大小、所支持的网络类型,等等)来描述。该类网络的设备类型表示的优点之一是,网络支持包可以得到iSCSI设备类型的支持。网络服务因此可用于发现并获取iSCSI设备地址中的不同分量。
表示设备的固件数据结构的分级性质允许信息在各设备和支持包之间传递。当存在iSCSI TOE设备时,OS引导功能由子设备提供,并且该引导功能的变元被传递给盘支持包。然而,通过将iSCSI设备表示成类网络的设备,该iSCSI设备提供网络专用引导参数(也即,速度、模式等等)并将这些参数传递给网络支持包。网络支持包处理这些引导变元、从信息服务器获取iSCSI设备地址和其它参数、以及将那些参数传递给盘支持包。与iSCSI设备表示无关,该盘支持功能执行对引导文件的实际加载。
如前面所介绍,根据本发明的一个实施例,为了支持将iSCSI设备类型表示成网络类型的设备,网络支持包被扩展。不论是使用软件iSCSI启动器还是iSCSI硬件TOE的描述以从目标iSCSI设备进行引导,对本发明的实施例的其余描述都适用。
再次参考附图,并且特别地参考图1C,提供了根据本发明的一个示例性实施例的示例系统,该系统图示使能从iSCSI设备(目标)进行远程引导处理的主要部件(硬件/软件)。如所示,该系统包括可通信地耦合到网络支持包1320的客户端设备(启动器,例如计算机系统1100)的固件1300。网络支持包1320接着通信地耦合到服务器1330和iSCSI设备(目标)1370。根据所描述的实施例,服务器1330表示可通过对应的发现协议1325进行访问以获取访问iSCSI设备1370所需的参数的不同服务器类型的集合。iSCSI设备1370包括盘支持包1375,其用于访问与iSCSI设备1370相关联的(或者可从iSCSI设备1370进行访问的)逻辑单元1380。盘支持包1375使能基于系统固件1300提供给网络支持包1320的变元而在客户端设备1100处完成的远程OS引导操作。
现在转到图1D,其图示了在设备的固件初始化以及随后传送变元给网络支持包以触发远程OS引导操作期间,在分级结构内标识iSCSI设备的过程。特别地,该流程图图示了直到网络参数被传送给网络支持包之前由固件进行的设备发现过程。如方框1402处所示出,当系统开始引导时该过程开始。如方框1404所描绘,固件在搜索可能包括可选ROM(只读存储器)的设备时遍历系统总线。这种搜索是标识系统的I/O拓扑的过程的一部分。在方框1406,固件检查是否检测到可选ROM。如果在附着到总线的任何设备中检测到可选ROM,则该可选ROM被加载并且它的代码被执行,如在方框1408中所示出。一旦可选ROM代码被执行或如果没有检测到任何ROM,则在方框1410处该固件检查是否发现/检测到iSCSI TOE适配器。如果发现/检测到iSCSI TOE适配器,则该固件创建对该iSCSITOE(也即iSCSI设备)的表示,如在方框1412处所示出,并且该iSCSI设备表示被添加到主分级固件结构,如在方框1414处所示出。
如果在方框1410处固件没有检测到iSCSI TOE,则在方框1411处该固件检查是否检测到网络适配器。如果没有检测到任何网络适配器,则过程在方框1415处结束。如果检测到网络适配器,则固件创建“网络”设备,如在方框1413处所示出,并且在方框1414处该网络设备被添加到主分级固件结构。所发现的iSCSI设备或所创建的类网络的设备使得该固件处理网络相关的引导变元(例如,速度、模式等等),如在方框1416中示出。紧随方框1416,各参数被传递给在引导过程中起帮助作用的网络支持包,如在方框1418处所指示。通过I/O拓扑表示的分级性质,无论iSCSI启动器是“网络”设备还是iSCSI设备,发送给网络支持包的读和写操作最终都由目标iSCSI设备执行。
现在参考图1E,其是图示网络支持包当接收到在图1D中的硬件初始化过程的结束处所生成和转发的引导变元时所提供的处理的流程图。特别地,图1E图示当选择了iSCSI自举方法时由网络支持包的一个实施例执行的对限定符关键词的处理。无论软件iSCSI启动器与“网络”设备一起被使用还是iSCSI TOE设备中的硬件iSCSI启动器被使用,与iSCSI自举方法相关的各参数被从设备(iSCSI TOE或“网络”设备)传递给网络支持包。网络支持包接收到引导变元,如在方框1502处所示出,并且该网络支持包解析引导变元,如在方框1504处所提供。在方框1506处,网络支持包确定该引导变元是否包括指示或对应于iSCSI发现过程的关键词。如果该变元不包括iSCSI专用关键词,则网络支持包启动标准TFTP自举过程,如在方框1508处所指示。根据一个实施例,当选择了TFTP方法时,所提供的引导变元是:
[bootp,]siaddr,filename,ciaddr,giaddr,bootp-retries,tftp-tetries,subnet-mask,blksize
然而,根据本发明的一个实施例,需要具体的引导变元组来定义iSCSI命令关键词,目的是选择iSCSI自举方法和它对应的引导变元。因此,当选择了iSCSI自举方法时,提供iSCSI相关的参数(关键词)组,随后是盘相关变元。通过网络支持包的开放方法将这些盘相关变元传递给盘支持包。本领域的技术人员熟知盘变元,其在Open Firmware Working Group所发表的PowerPC Microprocessor Common Hardware ReferencePlatform(CHRP)Binding中被进一步描述。在此通过参考的方式并入该发表的相关内容。
根据本发明的一个实施例,与iSCSI自举方法相关联的引导变元包括以下:iscsi,[itname=init-name,][ichapid=init-chapid,][ichappw=init-chappw,]ciaddr=initaddr,[giaddr=gateway-addr,][subnet-mask=net-mask,]siaddr=target-server,[iport]target-port,]iname=target-name,[ilun=target-lun,][chapid=target-chapid,][chappw=target-chappw,]disk-args。
在本发明的一个实施例中,当添加限定符关键词以选择用于iSCSI方法的发现协议时,引导变元采取以下形式:iscsi,[dhcp[=diaddr],][bootp,][slp[=SLP-server],][isns=iSNS-server,][itname=init-name,][ichapid=init-chapid,][ichappw=init-chappw,]ciaddr=init-addr,[giaddr=gateway-addr,][subnetmask=net-mask,]siaddr=target-server,[iport=target-port,]iname=target-name,[ilun=target-lun,][chapid=target-chapid,][chappw=target-chappw,]disk-args。
在这些变元内,以下术语被定义/描述:
(a)dhcp[=diaddr]是可选参数,其指示使用动态主机配置协议(DHCP)服务器来获取配置参数。diaddr值可以被可选地提供并指定待使用的DHCP服务器的因特网地址。否则,执行广播查询以定位/找到DHCP服务器。取决于是否指定了限定符关键词IPv6,用IPv6或IPv4符号表示法来表示diaddr值。在本说明书以下部分中更详细地描述了修改/增强网络支持包以支持在已扩展引导变元内使用IPv6和DHCP的方法。在此通过参考的方式并入该申请的相关内容。DHCP服务器可提供iSCSI启动器地址(ciaddr)、iSCSI目标地址(siaddr)、iSCSI目标端口(iport)、iSCSI目标lun(ilun)和iSCSI目标名字(iname)。
(b)bootp是可选的常数,其将BOOTP指定为“发现”协议以获取通过网络进行引导所需的参数。BOOTP服务器可提供iSCSI目标地址(siaddr)、iSCSI目标端口(iport)、iSCSI目标lun(ilun)和iSCSI目标名字(iname)。
(c)isns=iSNS-server是可选的关键词值,其指示使用iSNS服务器来获取与iSCSI引导相关联的参数。iSNS-server值是因特网存储命名服务器(iSNS)的因特网地址。取决于是否指定限定符关键词IPv6,用IPv6或IPv4符号表示法来表示该IP地址。iSNS服务器可提供用于iSCSI引导的iSCSI目标名字(iname)。给定iSCSI目标名字,则iSNS提供iSCSI目标服务器地址(siaddr)和iSCSI目标端口(iport)。
(d)slp[=SLP-server]是可选参数,其指示使用SLP服务器来获取引导所需的参数。SLP-server值可被可选地提供并指定待使用的服务位置协议(SLP)服务器的因特网地址。否则,执行广播查询以找到SLP服务器。取决于是否指定可选的关键词IPv6,用IPv6或IPv4符号表示法来表示SLP-server值。SLP服务器可提供用于iSCSI引导的iSCSI目标名字(iname)。给定iSCSI目标名字,则SLP服务器可提供iSCSI目标服务器地址(siaddr)和iSCSI目标端口(iport)。
(e)itname=init-name是遵从iSCSI RFC的串,其表示iSCSI启动器。iSCSI RFC[1]指定了给定的名字在长度上可以多至233个字节。itname在iSCSI会话期间被用作事务请求者的iSCSI身份。该变元对于“网络”设备是必需参数,但是对于iSCSI设备是可选参数。如果针对iSCSI设备没有指定itname,则使用缺省的硬件值。
(f)ichapid=init-chapid是遵从IETF的标识符(ID),其表示启动器CHAP ID并被用于帮助向目标认证启动器。特别地,启动器在iSCSI会话建立期间编码该信息并将该信息发送给目标,其中目标检查启动器实际有效。如果不需要任何认证并且不需要任何明确的启动器ID用以在发现过程中使用,则可省略ichapid。
(g)ichappw=init-chappw是遵从IETF的口令,其表示启动器CHAP口令,并且与启动器CHAP ID一起用于帮助向目标认证启动器。如果不需要任何认证,则可省略该变元。
(h)ciaddr=init-addr是客户端的IP地址(也即iSCSI启动器的IP地址)。取决于是否指定可选关键词IPv6,用IPv6或IPv4符号表示法来表示该IP地址。iSCSI启动器的IP地址在iSCSI会话期间被用作事务请求者的IP地址。它与表示iSCSI启动器的身份的iSCSI IQN串相关联。除非指定了DHCP,否则需要该参数。
(i)giaddr=gateway-addr是至iSCSI目标服务器的网关的IP地址。取决于是否指定可选关键词IPv6,用IPv6或IPv4符号表示法来表示该IP地址。该参数是可选的并且在siaddr已知并且没有在客户端的子网中的条件下可被指定。
(j)subnet-mask=net-mask是32比特掩码,其在没有指定IPv6时定义在该特定子网上的所有IP地址的本地网络范围。
(k)siaddr=target-server是iSCSI目标服务器的IP地址。取决于是否指定可选关键词IPv6,用IPv6或IPv4符号表示法来表示该IP地址。iSCSI目标IP地址在iSCSI会话期间被用作事务响应者的IP地址。如果没有指定发现协议,则需要该参数。
(l)iport-target-port是与iSCSI目标(目标端口)相关联的TCP端口号。iport标识启动器将与哪一个目标端口进行通信。该参数可以通过指定发现协议之一来获取。该参数的缺省值是3260。
(m)iname=target-name是遵从iSCSI RFC的串,其表示iSCSI目标。ISCSI RFC指定了给定的名字在长度上可以多至223个字节。iname在iSCSI会话期间被用作事务响应者的iSCSI身份。如果没有指定发现协议,则需要该参数。
(n)ilun=target-lun是iSCSI目标设备的逻辑单元号(目标lun)。该参数可以通过指定BOOTP或DHCP协议来获取。该参数的缺省值是0。
(o)chapid=target-chapid是遵从IETF的ID,其表示目标的CHAPID并被用于向启动器认证目标。特别地,目标将在iSCSI会话建立期间编码该信息并将参数的变元发送给启动器,其中启动器将检查目标实际有效。如果不需要任何认证,则可省略该参数。
(p)chappw=target-chappw是遵从IETF的口令,其表示CHAP口令并且与目标CHAP ID一起用于帮助向启动器认证目标。如果不需要任何认证,则可省略该变元。
根据上述的本发明的实施例,基于是(1)可假定缺省值还是(2)可使用发现协议以获取该值,来确定对“可选的”的具体标记,而对“必需的”的标记适用于其值必须在引导变元组中被指定的那些参数。
现在回到图1E,如果在方框1506处,在引导变元内存在iSCSI专用关键词,则网络支持包启动由判决方框1510、1514、1518和1522所图示的一系列检查以确定需要哪一个发现过程。尽管被图示为一个序列,但是各种确定可以由网络支持包同时而不是顺序地完成,或者作为替代这些确定可以以相对于彼此不同的次序来完成。在方框1510处,网络支持包检查变元是否指示DHCP(动态主机配置协议)发现过程。如果变元指示了DHCP发现过程,则网络支持包从已标识的DHCP服务器获取DHCP所存储的参数,如在方框1512处所示出。在由TRTF所发表的RFC2131:Dynamic Host Configuration Protocol处描述了DHCP。在此通过参考的方式并入该发表的相关内容。
在方框1514处,网络支持包还检查变元是否指示BOOTP发现过程。如果变元指示了BOOTP发现过程,则网络支持包从已标识的BOOTP服务器获取BOOTP所存储的参数,如在方框1516处所示出。类似地,在方框1518处,网络支持包检查变元是否指示SLP发现过程,并且如果变元指示了SLP发现过程则网络支持包从所标识的SLP服务器获取SLP所存储的参数,如在方框1520处所示出。最后,在方框1522处,网络支持包检查变元是否指示iSNS发现过程。如果指示了iSNS发现过程则网络支持包从iSNS服务器获取iSNS所存储的参数,如在方框1524处所示出。
在一个实施例中,当在变元内指定了SLP或iSNS时,则可基于“iname”在开放变元内存在或不存在而使能两个不同处理之一。因此,如果在开放变元中提供了iname,则所指定的iname被用于查询SLP或iSNS服务器以获取iport和siaddr。然而,如果没有提供iname,则查询SLP或iSNS以获取可能的目标服务器的名字列表。
通过所需额外参数的特定服务器类型和存储位置,网络支持包使用针对引导变元中所指定的服务器类型的特定发现协议来获取缺失的参数。某些iSCSI引导参数可以通过多个发现协议也即DHCP和BOOTP来获取。在引导变元中所指定的所有这些发现协议可用于(同时或顺序地)获取iSCSI设备地址和其它引导参数。在一个实施例中,如果参数是获自不同服务器,则将使用从最后被查询的服务器所获取的值。作为替代,参数发现可在获取所有引导变元时立刻停止。一旦获取了所有这些引导变元,则网络支持包使用这些额外的参数来创建引导串,如在方框1526处所示出,并且网络支持包将该引导串传送给由这些参数所标识的iSCSI设备(目标)。因此,根据本发明所描述的实施例,当需要经由特定发现过程来访问iSCSI设备时,网络支持包被扩展以使能对多个可用发现协议中的每个的iSCSI支持。
图1F是图示在OS引导期间在iSCSI设备(目标)处发生的处理的流程图。在方框1602处,iSCSI设备接收由网络支持包创建的引导串。在方框1604处,iSCSI解释/解析引导串,并在方框1606处与客户端设备(计算机系统1100)建立iSCSI登录会话。在方框1608处,iSCSI设备检查该登录会话是否根据预先建立的操作标准进行工作。如果没有,则iSCSI生成错误,并且该引导过程在方框1610处终止。然而,假设iSCSI会话被建立并正确地工作,则该iSCSI设备将在引导变元中所找到的盘相关的参数传递给盘支持包,如在方框1612处所示出。客户端设备通过网络传送SCSI命令以从附着到目标SCSI控制器的盘获得引导文件。SCSI命令由盘支持包在方框1614处接收,而盘支持包完成从远程SCSI盘将引导映像实际加载到客户端设备,如在方框1616处所示出。接着,客户端设备的OS引导过程完成(也即,OS在客户端设备上执行),如在方框1618处所示出。
以下例子图示由iSCSI自举方法内所提供的变元和特殊关键词所标识的两个不同OS引导过程。在第一过程中,通用网络设备在分级结构内由固件(例子1)所标识,而在第二过程中,iSCSI设备被标识(例子2和例子3)。接着,两个过程使用不同的变元组。由设备所处理的网络相关的参数在iSCSI相关的参数之前被示出。盘相关的参数在iSCSI相关的参数之后被示出。
例子1:通过本例,BOOTP服务器用于获取siaddr、iport和iname。未被指定的其它变元取缺省值。同样,ciaddr被用IPv6格式表示。在本说明书以下部分中更详细地描述了用于通过iSCSI协议使用IPv6的过程。
open network-device:promiscuous,speed=100,duplex=full,iscsi,ipv6,bootp,itname=init-name,ciaddr=init-addr,2
例子2:通过当前例子,SLP服务器提供siaddr和iport用于指定的iname。再次,未被指定的其它变元取缺省值,并且ciaddr被用IPv6格式表示。
open iscsi-device:speed=100,duplex=full,iscsi,ipv6,sip,iname=target-name,ciadd=init-addr,2
例子3:通过该第三例子,diaddr DHCP服务器提供siaddr、ciaddr、ilun、iport和iname,而diaddr被用IPv6格式来表示。
open iscsi-device:duplex=full,iscsi,ipv6,dhcp=diaddr,chapid=target-chapid,chappw=target-chappw,2
本发明提供了一种方法和系统,用于使得InfiniBand(IB)主计算机设备能够通过IB网络从远程引导设备引导操作系统。增强设备的固件,以便在表示计算机设备的硬件的层次数据结构内提供IB主机通道适配器(HCA)的表示。提供了“ib-引导”支持包来协助封装用于使用ib端口设备通过IB网络进行引导的变元,并且定义引导变元集来由所述ib-引导支持包利用。ib-引导支持包对指定目标IB端节点以及一个或多个关键字的引导变元进行处理。
利用固件结构的层次特性,基于指定关键字来将这些IB专用变元传递至适当的支持包,以便完成引导处理。在一个实施例中,提供了两个关键字,各自标识网络支持包和套接字直接协议(SDP)支持包中特定的一个。引导平台使用IB结构来连接至LAN NIC以获得对该LAN中的引导服务器的访问,或者连接至IB结构中的端节点。第一关键字指定将要实现IPoIB(基于IB的网际协议(IP))网络引导方法,由此使用IPoIB网络协议来到达引导服务器并且找到引导文件。第二关键字指定将要实现IB网络引导方法,由此使用SDP网络协议来连接至IB结构中的引导服务器并且找到引导文件。因而通过支持包之一提供了对引导服务器的访问,并且经由IB网络将引导映像返回给主机设备用于完成引导操作。
现参照附图,图2A根据本发明描述的实施例,提供了利用InfiniBand(IB)网络连接来与各种外围和组网设备(包括一个或多个远程引导服务器)进行通信的组网计算机系统的主要硬件组件的高级表示。如所示出的,计算机系统2100(文中可互换地称为IB网络内的主计算机或主计算机设备)包括经由存储总线2103耦合于存储器2102的中央处理器(CPU)2101,存储总线2103又通过输入/输出(I/O)总线接口2105提供到各种其它外围或网络设备的连接。CPU 2101是执行来自主存储器2102的指令以及处理来自主存储器2102的数据的通用可编程处理器。主存储器2102可以是动态随机访问存储器(DRAM),在其中,从存储器(2123/2124)加载数据用于由CPU 2101进行处理。
存储总线2103提供了用于在CPU 2101、主存储器2102和I/O总线接口2105之间传送数据的数据通信路径。I/O总线接口2105进一步耦合于系统I/O总线2104,其用于传送数据到各种I/O单元和传送来自各种I/O单元的数据。I/O总线接口2105通过系统I/O总线2104与多个I/O接口单元2111-2113进行通信,I/O接口单元2111-2113也被称为I/O处理器(IOP)或I/O适配器(IOA)。系统I/O总线2104可以是工业标准PCI总线或任何其它适当的总线技术。I/O接口单元支持与各种存储器和I/O设备进行通信。举例来说,终端接口单元2111支持连接一个或多个用户终端2121-2122。存储接口单元2112支持连接一个或多个直接访问存储设备(DASD)2123-2124(其可以表示独立磁盘冗余阵列(RAID)存储器,被配置作为主计算机的单个大型存储设备)。各种其它类型的I/O设备(未示出)可以依附于I/O接口单元,例如磁带驱动、打印机和网络收发机。
根据本发明的一个实施例,I/O接口单元之一是IB I/O适配器/HCA2113,由于IB I/O适配器/HCA 2113使得主计算机2100能够连接至IB网络,因此文中可互换地将IB I/O适配器/HCA 2113称为主机通道适配器(HCA)。HCA是可编程DMA(直接存储器访问)引擎,其生成和消耗分组。
IB I/O适配器2113支持到InfiniBand网络2130的连接,InfiniBand网络2130包括交换机2131和多个点到点连接2132-2135。InfiniBand网络是可以用于连接至各种设备的本地网。如所说明的,InfiniBand网络2130提供到其它计算机系统(例如,经由目标通道适配器(TCA)2136耦合于交换机2131的IB-引导服务器2137)的连接。InfiniBand网络2130还提供到路由器或适配器的连接,而路由器或适配器又将InfiniBand网络2130耦合到其它局域或广域网络。在图2A的示例性实施例中,TCA 2139经由以太网适配器2140连接至局域网(LAN)2145。LAN 2145提供对远程引导服务器2150的访问。此外,路由器2138连接至因特网2146,其提供对第二远程引导服务器2151的访问。如文中所提供的,除了InfiniBand I/O适配器(HCA)2113和相连的IB网络2130以外,文中将计算机系统2100的组件也称为“主计算机”,以便区别需要来自位于跨IB网络2130的引导服务器的引导OS的主机设备。如所说明的,提供了两个外部网络,即LAN 2145和因特网2146。将通过主机设备2100对因特网2146和LAN 2145的访问描述为发生在IB网络2130的“端节点”,例如TCA 2139。
尽管图2A中所示的IB网络2130具有单个交换机2131和对于相应的数字设备的四个连接2132-2135,然而应当理解,IB网络可以具有不同数目的交换机、适配器、路由器和链路(但可能不具有交换机或路由器)。IB网络的拓扑可以是显著不同并且更加复杂的,并且因而不同数目或类型的设备可以耦合于IB网络。
应当理解,图2A旨在高级地描绘计算机系统2100的代表性主要组件,并且各个组件可以具有比图2A中所表示的组件更大的复杂性。应当进一步认识到,可以给出不同于或除了图2A中所示的那些组件以外的组件,并且这样的组件的数目、类型和配置是可以改变的。因而,仅仅通过举例的方式给出图2A,且并不旨在隐含对本发明的任何限制。
本发明通过跨IB网络2130发生的引导过程,为连接至IB网络2130的计算机设备2100启用了远程引导过程。在一个实施例中,在IB结构上支持完成网络引导过程的两种不同方法,即(a)LAN类型网络引导和(b)IB网络引导。LAN类型网络引导方法涉及连接至位于依附于远程IB端节点的LAN中的引导服务器,以及使用在IB结构上发送的传输控制协议/网际协议(TCP/IP)命令(在此称为IPoIB)。IB网络引导方法涉及连接至位于远程IB端节点处/中的引导服务器,以及使用诸如套接字直接协议(SDP)的传输协议来获得引导文件。
另外,如在本说明书中描述的,在远程引导操作的全面实施中,可以通过计算机设备2100来支持存储器引导方法。存储器引导方法涉及连接至直接或通过存储区域网(SAN)而依附于远程IB节点的存储设备,以及通过IB结构发送存储协议命令,例如SCSI(小型计算机系统接口)RDMA(远程直接存储器访问)协议(SRP)。在本说明书中提供了对该实施方式的详细说明。
在以上示例计算机系统和网络环境中,本发明的第一方面涉及修改系统固件,以便使得该固件能够标识和表示在系统初始化期间系统固件按照使得IB端节点用于引导操作的方式所生成的层次结构内的IB端节点。在计算机系统通电(或重新引导)之后,系统经历引导过程,通过该引导过程,系统固件通过标识和建立/启动系统中的设备来准备用于操作的系统。在引导过程期间,固件将系统硬件表示为具有附属设备的互连总线的层次。该层次表示描述了用户配置选择,并且含有用于硬件设备的固件设备驱动器以及由那些驱动器使用的支持路由器。
在IB网络内,在本发明的一个实施例中,增强主机系统的引导固件以便识别存在IB HCA以及一个或多个IB端节点设备。根据一个实施例,将新的设备类型定义为“hca”设备类型,其表示IB HCA。hca设备的特征在层次固件数据结构中通过节点全局唯一标识符来描述。hca设备含有开启和关闭设备的接口以及从设备读取和写入设备的接口。hca设备包括若干“子设备”,其被称为“ib端口”设备并且由端口全局唯一标识符来标识。除了为父hca设备定义的开启、关闭、读和写接口以外,ib端口设备还包括使该设备能够作为引导设备来使用的加载接口。
本发明的第二相关方面涉及命令/限定符关键字的创建和利用,该命令/限定符关键字被添加到在系统初始化期间由系统固件所生成的引导变元。命令关键字指定分组传送协议和关联的变元集。通过ib-引导支持包来理解这些命令关键字,ib-引导支持包接收来自系统固件的引导变元。在本发明的一个实施例中,通过在用于ib引导支持包的开启接口的变元中使用命令关键字来选择特定的网络引导方法。命令关键字通过指定待采用的具体网络引导方法来修改与自举方法关联的引导变元。根据一个实施例,命令关键字是引导变元中的第一变元,并且每次只可以指定一个命令关键字。如以下进一步描述的,这些命令关键字是互斥的,并且因而,仅将限定符关键字之一添加到标准引导变元之前来启用IB级远程引导操作。如果指定了超过一个的命令关键字,则发送具有警告消息的失败结果给主计算机设备的用户,并且该设备不开启。
因而,在本发明的说明性实施例中,创建了以下两种命令关键字,且提供其相应的定义为:
(a)ipoib:其指定IPoIB网络引导方法。当指定ipoib时,使用IPoIB网络协议来访问引导服务器和找到引导文件。引导平台使用IB结构来连接至LAN NIC(网络接口卡)以获得对LAN中的引导服务器的访问;以及
(b)sdp:其指定IB网络引导方法。当指定sdp时,使用SDP网络协议来访问IB结构中的引导服务器。
在以上引导变元内,IB专用变元及其描述包括:
(a)iocguid=IOC-GUID:其是标识目标I/O控制器或I/O单元的64位全局唯一EUI-64顺应标识符(compliant identifier);以及
(b)portgid=IOC-GID:其是标识目标I/O单元中的端口的128位数。以IPv6格式表示该变元并且该变元由64位GID前缀和分派给I/O控制器的64位端口GUID组成。
如文中所提供的,IOC-GUID和IOC-GID唯一标识InfiniBand结构中的端节点。ib-引导过程建立与目标I/O控制器或端节点的连接,并且然后利用通过命令关键字所指定的协议在IB传输上发送分组。在本说明书中还描述了网络相关的变元(network-args)的例子。
如在下面详细描述的,本发明的一个实施例与增强的网络支持包进行操作,该网络支持包支持对限定符关键字的引导变元的附加,例如ipv6和dhcp。视情况在第一引导变元之前添加ipv6关键字以指示使用IPv6格式来表示引导变元内所提供的任何/所有网络地址。由于IB网络以IPv6格式传输地址,因此当随引导变元提供命令关键字IPoIB时,可以假定ipv6关键字为缺省地址格式。
本发明的第三方面涉及利用ib-引导支持包来使得能够无缝连接到来自远程引导设备的SDP网络引导过程或IPoIB网络引导过程。ib-引导支持包实现通常由hca设备驱动器利用的特定分组传送协议,当在IB上引导时利用该特定分组传送协议。
ib-引导支持包协助封装用于使用ib端口设备在IB网络上进行引导的变元,并且定义引导变元集来由ib-引导支持包利用。ib-引导支持包处理指定了目标IB端节点(即,耦合于IB结构的TCA或路由器或适配器,以及直接或经由网络连接到IB结构的引导服务器)的引导变元。在一个实施例中,ib-引导支持包还实现通常由hca设备驱动器利用的特定分组传送协议,当在IB上引导时利用该特定分组传送协议。
利用固件结构的层次特性,基于如ib-引导支持包所处理的指定关键字,将这些IB专用变元传递至适当的支持包,以便启动对引导映像的检索。在一个实施例中,提供了两个关键字,各自标识网络支持包和套接字直接协议(SDP)支持包中特定的一个。引导平台使用IB结构来连接至LAN NIC以获得对LAN中的引导服务器的访问,或者连接至IB结构中的端节点。第一关键字指定将要实现IPoIB网络引导方法,由此使用IPoIB网络协议来到达引导服务器并且找到引导文件。第二关键字指定将要实现IB网络引导方法,由此使用SDP网络协议来连接至使用SDP的IB结构中的引导服务器。
因而,取决于随引导变元提供的关键字,ib-引导支持包可以将引导变元传递至网络支持包来完成网络引导方法。可选地,ib-引导支持包可以将引导变元传递至SDP支持包来完成IB-网络引导。根据一个实施例,用于IPoIB引导的引导变元如下:
open ibport-device:iocguid=IOC-GUID,portgid=IOC-GID,ipoib,network-args
当引导变元指定IPoIB网络引导方法时,ib-引导支持包处理IB专用引导变元并且将网络相关的变元传送至网络支持包。
图2B是根据本发明的一个实施例描绘了一过程的流程图,通过该过程,系统固件发现IB HCA并且表示层次拓扑内的设备及其子设备。参照图2A所示的系统组件描述了图2B的过程。过程从块2202开始,在此,在诸如主机系统2100(图2A)的主机系统上,由诸如系统固件2145(图2A)的固件启动硬件初始化。如块2204所示,在系统初始化期间,系统固件2145遍历系统总线并且标识出主机系统2100的I/O拓扑。在判定块2206处,如果在附于总线的任何设备中检测到选项ROM,则加载该选项ROM并且执行其代码,如块2208所示。作为执行代码的结果,创建设备的表示并且将其添加到主层次I/O拓扑,如块2214所示。
在判定块2206处,如果未检测到选项ROM,则在块2210处系统固件2145确定是否检测到IB HCA(或“hca”设备)。如果检测到IB HCA设备,则系统固件2145创建hca设备及其子ib端口设备的表示,如块2214所示。系统固件2145还创建I/O拓扑内ib端口设备的位置的设备表示,如块2214处所指示的。因为“ib端口”设备是利用特定的引导变元集开启的,所以系统固件2145获得开启ib端口设备所需要的引导变元。系统固件然后将引导变元传递至ib-引导支持包用于处理,如块2218所指示的。
现转至图2C,其根据本发明的一个说明性实施例,提供了示例系统的框图表示,该示例系统具有这样的主要组件(硬件和软件实用体),即其使得能够通过IB-引导支持包来利用IB-引导变元,从而启用来自远程引导设备的IBoIP引导或SDP引导。如所示出的,正被引导的设备的系统固件2145(例如,主机系统2100(图2A))在通信上耦合于ib-引导支持包2310。ib-引导支持包建立与引导变元中所指定的目标I/O控制器的连接。当从IB连接的引导设备引导时,ib-引导支持包2310传输SDP引导变元到SDP支持包2330,其利用SDP网络协议来获得来自引导服务器2137(图2A)的引导文件。当从通过IP网络连接的服务器引导时,ib-引导支持包2310将IPoIB-引导变元转发至增强的网络支持包2320。
网络支持包2320又经由IP网络在通信上耦合于引导服务器2150(图2A)。根据一个实施例,网络支持包2320进一步连接至多个其它的服务器,例如DCHP服务器和BOOTP服务器(未具体示出),这些服务器表示了可以通过对应的发现协议来访问以便获得用于访问引导服务器2150所需要的附加参数/变元的不同服务器类型的集合。
IP引导服务器2150和IB引导服务器2137(图2A)能够将引导映像提供给计算机系统2100的系统固件2145,以便使得计算机系统2100能够完成引导操作。服务器2150和2137分别从网络支持包2320和SDP支持包2330接收相应的引导变元集。然而,网络支持包2320通过IPoIB消息接收变元并且传输IPoIB消息,这与SDP支持包2330所支持的消息传输的类型/格式(即IB信息)不同。
根据说明性实施例,为增强的网络支持包2320提供了一种机制,该机制使得网络支持包2320能够接收包括关键字(包括ipv6和dchp在内)的引导变元,这是因为IB通过IPv6寻址格式进行操作。更具体而言,增强的网络支持包2320提供对IPv6地址格式的支持并且使得能够经由IPoIB消息检索引导映像。在本说明书中较为详细地描述了使得网络支持包2320能够利用IPv6地址格式的方法。
图2D描绘了在ib-引导支持包与根据包括在引导变元内的命令关键字所选择的其它两种支持包之间的引导变元的流程。ib-引导支持包提供指定了目标IB端节点的引导变元。利用固件结构的层次特性将这些IB专用变元传递至适当的支持包以便完成引导处理。过程开始于块2402,其说明了ib-引导支持包从系统固件接收引导变元。ib-引导支持包解析引导变元,如块2404所示,并且在块2406处确定变元是否指示IPoIB引导操作。如果指示IPoIB引导操作,则ib-引导支持包创建用于IPoIB引导的引导串(bootstring),如块2408处所提供的,并且然后将创建的引导串转发至网络支持包2320(图2C),如块2410所示。因而,如果选择了IBoIP网络方法,则ib-引导包向网络支持包2320传送控制,并且通过ib-引导支持包促进整个网络结构。
如果引导变元未指示IPoIB引导,那么在块2412处进行引导变元是否指示SDP引导的下一确定。如果指示SDP引导,则ib-引导支持包生成SDP引导所需要的引导串,如块2414所示,并且将生成的引导串转发至SDP引导支持包,如块2416处所描绘的。因而,当选择IB网络方法时,ib-引导支持包向SDP支持包或在InfiniBand链路上促进或提供直接文件传输协议的任何其它的包传送控制。否则,如果引导变元既未指示IPoIB引导,也未指示SDP引导,则报告错误,如块2418处所示,并且引导过程结束。
图2E是根据本发明的一个实施例描绘了对引导变元的处理的流程图,当利用在IB链路(IPoIB)上传输TCP/IP消息来加载来自LAN服务器(例如图2A的引导服务器2150)的引导文件时,网络支持包2320进行对引导变元的这一处理。通过I/O拓扑表示的层次特性,由网络支持包所进行的读和写操作被传递至ib-引导支持包2310并且实际上是由HCA设备(例如图2A的HCA设备2113)实现的。HCA 2113封装TCP/IP命令并且经由IB链路(例如图2A的2133)将命令发送至指定的IB目标节点(例如图2A的TCA 2139)。如果TCP/IP命令的目标不是目标IB节点,则目标IB节点中的LAN驱动器转发分组到LAN 2145(图2A)内适当的目的地(例如,引导服务器2150)。
该过程开始于块2502,其说明了诸如图2C的网络支持包2320这样的增强网络支持包(从图2C的ib-引导支持包2310)接收引导变元。增强的网络支持包2320解析引导变元,如块2504所示,并且在块2506处确定引导变元是否含有关键字ipv6。当关键字ipv6含于引导变元内时,网络支持包2320配置所有的寻址功能来支持IPv6格式的地址,如块2508所提供的。
然后在块2510处,网络支持包2320确定引导变元是否含有关键字dhcp。如果关键字dhcp含于引导变元内,则网络支持包2320发送并接收IPoIB消息,以便从DHCP服务器获得引导信息(即寻址和其它参数),如块2512处所示。关键字dhcp可以具有变元“diaddr”,其将增强的网络支持包2320定向到准确的DHCP服务器,将从该DHCP服务器获得引导服务器地址和其它参数。可选地,当没有随关键字dhcp提供变元时,网络支持包2320发布广播以便在网络上找到DHCP服务器。
当在块2514处确定完成了从DHCP服务器检索引导参数之后,(或者当dhcp没有包括在引导变元内时),网络支持包2320在块2516处确定在引导变元内是否指示了自举过程(bootp)。当bootp是引导变元之一时(即在以上关键字之一或二者之后,或者没有任一关键字出现在引导变元内),网络支持包2320从BOOTP服务器检索寻址和其它参数作为利用IPoIB消息的自举操作,如块2518所说明的。一旦自举操作完成,如在判定块2520处所确定的(或者如果在引导变元内没有包括自举变元),则网络支持包2320生成/创建引导串,如块2522处所示。然后网络支持包2320在IB上利用TFTP消息来从远程服务器加载引导映像,如块2524所示。然后固件在计算机系统2100(图2A)处完成引导过程,如块2526所指示的。
图2F是描述了当利用SDP协议来从IB端节点(例如图2A的服务器2137)加载引导文件时,由诸如图2C的SDP支持包2330这样的SDP支持包所进行的对引导变元的处理的流程图。通过I/O拓扑表示的层次特性,由SDP支持包所进行的读和写操作被传递至ib-引导支持包并且实际上是由HCA设备实现的。HCA设备封装SDP消息并且经由IB链路将消息发送至指定的IB目标节点。
该过程开始于块2602,其说明了SDP支持包2330从ib-引导支持包2310接收ib-引导变元。SDP支持包2330解析该引导变元,如块2604所示,并且然后通过IB将SDP命令发送至引导服务器(例如图2A的引导服务器2137),如块2606处所示。在块2608处进行是否已经完成SDP命令的传输的确定,并且当该传输已经完成时,引导服务器2137提供引导映像,其被加载到主计算机2100(图2A)上,如块2610所示。然后,在主计算机2100处着手并完成引导操作,如块2612所指示的。
本发明提供了一种扩展计算机网络系统的网络支持包以接受IPv6格式的网络地址和允许使用诸如DHCP之类的其他引导发现协议以便获取使用远程服务器上存储的引导文件引导系统所需的信息的方法和系统。
现在参考附图,图3A是示出了通过网络3160连接到远程iSCSI设备(3170)(例如,引导服务器或目标)以及一个或多个信息源3180(例如,DHCP服务器或BOOT服务器)的计算机系统3100的结构表示的方块图。贯穿此说明,将iSCSI设备3170可互换地称为“目标”或“iSCSI服务器”或“引导服务器”。计算机系统3100还可以称为“启动器”或“客户端”或“客户端设备”。计算机系统3100可以是个人计算机、服务器、移动或手持电子设备或其他数据处理机器。网络3160可以是局域网、城域网、广域网或其他类型的机器网络。网络3160可以是有线或无线网络,并且可以使用诸如网际协议(IP)之类的无连接分组交换协议和/或其他网络协议。
计算机系统3100包括将计算机系统3100连接到网络3160的网络接口设备3110。网络设备3110表示计算机系统3100的硬件组件,并且可以是网络接口卡(NIC)或集成网络设备(例如,内置在诸如计算机系统3100的母板之类的主电路板内的网络适配器)。
设备驱动器3120控制网络接口设备3110以提供通道,操作系统(OS)3125以及计算机系统3100的应用层中的一个或多个软件应用3150可以通过该通道与网络3160通信。设备驱动器3120允许使用网络接口设备3110通过网络3160执行数据存储操作3130。例如,设备驱动器3120可以包括允许SCSI命令通过网络3160与存储目标(iSCSI设备3170)交互的iSCSI启动器。
至少一个设备驱动器3120可以支持通过网络3160从iSCSI设备3170引导,在此情况下iSCSI设备3170表示远程引导设备。作为远程引导设备,iSCSI设备3170在借助通过网络3160完成的一系列过程将(操作系统的)引导映像加载到计算机系统3100之前进行初始化。iSCSI设备3170可以位于靠近或远离计算机系统3100的物理空间。例如,iSCSI设备3170可以通过局域网3160(例如,吉比特以太网)连接到计算机系统3100,并且可以与计算机系统3100位于同一建筑物、机架或机箱中。
此外,设备驱动器3120允许使用网络接口设备3110通过网络3160执行网络业务操作3140。至少一个设备驱动器3120可以将自身作为网络设备驱动器呈现给操作系统并支持通用网络业务。因此,操作系统可以查看其中一个驱动器3120并与其交互,好像此驱动器是在计算机系统的引导过程中的总线驱动器和存储驱动器之后加载的常规网络设备驱动器。支持的网络业务可以包括多个不同的组网协议,例如TCP/IP、ODI(开放式数据链路接口)、PXE(预引导执行环境)以及各种其他标准化和/或基于公司/操作系统的网络协议,具体取决于实施方式。通常,设备驱动器3120允许计算机系统3100使用多个组网协议与一个或多个信息源3180通信。
虽然计算机系统3100的设备驱动器3120在图3A中出现在与操作系统和硬件分离的层中,但是应理解,所述设备驱动器可以在计算机系统3100内的不同上下文中运行,具体取决于实施方式和操作状态(从关闭电源到引导序列,直至到达运行模式,此时操作系统完全加载并且控制计算机系统3100)。此外,在此所述的各种驱动器功能可以在硬件、固件和/或软件中实现。
如上所述,设备驱动器3120可以支持引导到远程引导服务器(目标iSCSI设备3170)并支持通用网络业务,而至少一个设备驱动器3120将自身作为网络设备驱动器呈现给固件。可以使用iSCSI协议完成引导到远程引导设备,其中将SCSI命令封装在TCP/IP协议中,并使用表示为固件层次结构内的网络型设备的软件iSCSI启动器或iSCSI TOE适配器将其发送到目标设备。因此,虽然从标准网络引导过程的角度描述和说明了本发明,但是所述的本发明的特性同样适用于iSCSI引导过程,其中远程引导服务器(目标iSCSI设备3170)是iSCSI设备。在本申请的相关部分提供了对iSCSI引导过程的具体描述。
本领域的技术人员将理解,图3A中示出的硬件可以有所变化。例如,除所示硬件以外或替代所示硬件,还可以使用诸如光盘驱动器之类的其他外围设备。因此,示出的例子并非旨在暗示对本发明的体系结构限制。图3A中示出的计算机系统可以例如是IBM eServer pSeries系统,其是位于纽约阿蒙克的国际商业机器公司的产品。
在上述示例计算机系统和网络环境中,向网络支持包添加了一种机制以使能/允许支持其他引导发现协议和其他网络地址格式。所述机制定义了添加到由系统固件生成的引导变元并由网络支持包处理的限定符关键字。在一个实施例中,所述限定符关键字通过指定获取其他参数/变元(即,通过特定的引导发现协议)、参数/变元格式以及与远程引导过程关联的其他参数的方法,来修改与自举方法关联的引导变元。可选地在与所述自举方法关联的变元之前添加限定符关键字以便修改引导变元。一次可以向引导变元添加多个限定符关键字,并且可以按照关键字在所述变元中的顺序来应用所述关键字。
以下提供了在本发明之前与标准自举操作一起使用的当前/现有引导参数。然后为每个变元提供了其各自的定义和/或说明。因此,现有的引导变元提供了:
[bootp,]siaddr,filename,ciaddr,giaddr,bootp-retries,tftp-retries,subnet-mask,blksize
在此引导变元中,所提供术语的定义和用法包括:
siaddr,其是TFTP服务器的IP地址;
filename,其是要由TP从服务器加载的文件的文件名。
ciaddr,其是客户端(即,被引导的系统)的IP地址;
qiaddr,其是BOOTP“网关”的IP地址,并且它不一定与网络网关相同;
bootp-retries,其是在确定BOOTP过程已失败之前尝试的最大重试次数;
tftp-retries,其是在TFTP过程停止之前尝试的最大重试次数;
subnet-mask,其是定义此特定子网上所有IP地址的本地网络范围的32位掩码;以及
blksize,其是指定TFTP读取或写入请求的块中的八位组数的十进制数。
上述为网络支持包提供的变元指定了用于通过网络引导计算机系统的TFTP自举方法。TFTP自举方法的引导变元提供了指定BOOTP协议以查找引导服务器和引导文件的选项。如果未指定BOOTP协议,则可以使用具体包括RARP/APR的其他协议来获取引导文件。
本发明的一个实施例扩展了上述引导变元以包括其他关键字和关联的变元(如果适用)。在示例性实施例中,由修改后的网络支持包支持的示例扩展引导变元包括以下内容:
[ipv6,][dhcp[=diaddr,]]
[bootp,]siaddr,filename,ciaddr,giaddr,bootp-retries,tfip-retries,subnetmask,blksize.
如扩展引导变元的上述示例性实施例中所提供的,在扩展的引导变元中定义了两个限定符关键字(以粗体表示),即ipv6和dhcp,并且dhcp具有相应的变元diaddr。可选地将ipv6关键字添加在第一个引导变元之前以指示使用IPv6格式来表达引导变元中提供的任何/所有网络地址。在示出的实施例中,没有关键字“ipv6”指示以IPv4格式表达所有网络地址。因此,IPv4仍为默认的网络地址格式并且不必专门添加在变元之前。根据所述的实施例,关键字ipv6位于变元中使用的任何其他限定符关键字之前。
dhcp关键字用于指示将使用动态主机配置协议(DHCP)服务器以获取引导参数。可以可选地提供diaddr值以指定要使用的DHCP服务器的因特网地址。否则,如果未提供diaddr值,则网络支持包将发出广播查询以在网络上查找DHCP服务器。diaddr值以IPv6或IPv4表示法表达,具体取决于是否指定了可选的限定符关键字ipv6。当被访问时,DHCP服务器可以提供用于TFTP自举的客户端地址(ciaddr)、服务器地址(siaddr)以及文件名。在由IETF发布的RFC 2131:动态主机配置协议中提供了如何从DHCP服务器获取这些和其他变元的说明。
图3B是根据本发明的一个示例性实施例的示例系统的方块图表示,所述系统具有主要组件(硬件和软件实用程序),其通过修改/增强后的网络支持包3220利用扩展引导变元以使能使用IPv6地址格式和备选协议以便查找诸如DHCP的引导参数。如所示出的,所述系统包括例如计算机系统3100的客户端设备(其为iSCSI环境中的启动器)的固件3200,所述固件可通信地连接到修改/增强后的网络支持包3220。网络支持包3220又可通信地连接到服务器3230,后者包括DHCP服务器3230A、BOOTP服务器3230B以及引导服务器(iSCSI设备)3270(其为iSCSI环境中的目标)。根据所述的实施例,服务器3230表示可以由相应引导发现协议3225访问以获取访问引导服务器3270所需的参数的不同服务器类型的集合。
当在iSCSI环境中实现时,引导服务器3270包括用于访问与引导服务器3270关联(或可从引导服务器3270访问)的逻辑单元(LUN)的盘支持包。对于此备选实施方式,盘支持包允许根据系统固件3200提供给网络支持包3220的引导变元和/或网络支持包3220从服务器3230检索的参数,来检索引导映像以供客户端设备3100使用。
根据本发明的一个实施例,为修改/增强后的网络支持包3220提供了一种机制,其使得网络支持包能够接收包括关键字(包括ipv6和dhcp)的引导变元。更具体地说,修改/增强后的网络支持包3220提供对IPv6地址格式的支持,并且能够从DHCP服务器检索引导服务器地址和其他信息。
ipv6和dhcp扩展同样适用于网络引导和iSCSI引导,后者是涉及访问目标服务器中的盘(LUN)以获取OS映像的另一种自举方法。但是,如下面进一步描述的,对于网络引导,TFTP是用于完成网络引导的自举方法,并且当未向引导变元添加iSCSI关键字时,TFTP是默认的自举方法。在本申请的相关部分中描述了向引导变元添加iSCSI关键字。可以使用TFTP自举方法或iSCSI自举方法,并且ipv6和dhcp的扩展适用于网络引导过程以及iSCSI引导过程。
图3C是示出了根据本发明的一个实施例的网络支持包借助其使用扩展引导变元以便使用IPv6寻址格式以及指定备选协议以便查找引导参数(如DHCP)的过程的流程图。过程开始于方块3302,方块3302示出了修改/增强后的网络支持包3220(从系统固件)接收引导变元。增强后的网络支持包3220解析引导变元(如方块3304所示)并在方块3306判定引导变元是否包含关键字ipv6。当引导变元中包含关键字ipv6时,网络支持包3220将处理IPv6格式的地址并使用IPv6格式的地址执行寻址功能,如方块3308所示。
然后在方块3310,网络支持包3220判定引导变元是否包含关键字dhcp。如果引导变元中包含关键字dhcp,则网络支持包3220将从DHCP服务器获取寻址和其他参数,如方块3312所示。如上所述,关键字dhcp可以包括变元“diaddr”,此变元将网络支持包3220导向从其获取引导服务器地址和其他参数的准确的DHCP服务器。备选地,当变元不具备关键字dhcp时,网络支持包3220将发出广播以在网络上查找DHCP服务器。
在从DHCP服务器检索各种寻址参数之后(或者当引导变元中不包括dhcp时),网络支持包3220将在方块3314判定引导变元中是否指示了其他引导发现协议。当BOOTP是引导变元之一(即,在上述两个关键字之一或全部之后或者引导变元中不存在任何关键字)时,网络支持包3220将从BOOTP服务器检索寻址和其他引导参数,如方块3316所示。网络支持包3220将生成/创建引导串,如方块3318所示。然后,网络支持包3220使用默认的自举协议TFTP从远程服务器加载引导映像,如方块3320所示。然后,固件在计算机系统3100处完成引导过程,如方块3322所示。
下面的例子提供了以下两者的说明:(a)用于通过IPv4寻址格式和BOOTP发现协议完成引导映像检索的常规引导变元,以及(b)用于通过IPv6寻址格式和/或使用DHCP发现协议完成引导映像检索的扩展引导变元。后者的例子依赖于使用常规自举方法中提供的其他变元之外的特定关键字和变元。以下是前两个常规例子:
例子1:对于本例子,在命令行中提供所有变元。不使用引导发现协议。此外,所有地址(即siaddr、ciaddr)均以IPv4格式表达。
open network-device:promiscuous,speed=100,duplex=full,siaddr,filename,oiaddr,giaddr,bootp-retries,tftp-retries,subnet-mask
例子2:在第二个常规例子中,使用BOOTP服务器来获取siaddr和filename。其他未指定的变元采用默认值。
open network-device:duplex=full,bootp
现在,以下例子示出了用于选择备选引导发现协议和不同的地址表示(即DHCP和IPv6)的方法。
例子3:对于当前例子,使用由diaddr指定的DHCP服务器来获取ciaddr、siaddr和filename。其他未指定的变元采用默认值。diaddr以IPv6格式表达。
open network-device:promiscuous,speed=100,duplex=full,ipv6,dhcp=diaddr
例子4:在本例子中,网络支持包发出广播查询以查找DHCP服务器。然后,使用由查询返回的DHCP服务器来获取ciaddr、siaddr和filename。此外,其他未指定的变元采用默认值。diaddr以IPv4格式表达。
open network-device:duplex=full,dhcp
例子5:对于本例子,使用DHCP服务器获取ciaddr。其他未指定的变元采用默认值。
open network-device:prorniscuous,speed=100,duplex=full,,dhcp,siaddr,filename,,,bootp-retries,,subnet-mask,blksize
例子6:在此最后的例子中,使用siaddr和ciaddr连接到引导服务器并获取引导文件的文件名。siaddr和ciaddr以IPv6格式表达。其他未指定的变元采用默认值。
open network-device:duplex=full,ipv6,siaddr,filename,ciaddr,,,,,blksize
本发明提供了一种方法和系统,用于使得InfiniBand(IB)主计算机设备能够通过IB网络从远程存储设备引导操作系统。增强该设备的固件,以便在表示计算机设备的硬件的层次数据结构内提供IB主机通道适配器(HCA)的表示。相应地,定义新的设备类型,“hca”设备类型,其表示IB HCA。hca设备在层次固件数据结构内通过节点全局唯一标识符来描述特征。hca设备含有用于开启和关闭设备的接口以及从设备读取和写入设备的接口。“hca”设备可以具有一个或多个“子设备”,其被称为“ib端口”设备,并且由端口全局唯一标识符来标识。除了为父hca设备定义的开启、关闭、读和写接口以外,ib端口设备还包括使得该设备能够被用作引导设备的加载接口。
提供了一种“ib-引导”支持包,并且定义引导变元集以便由该ib-引导支持包利用。ib-引导支持包接收随特定关键字一起指定目标IB端节点的引导变元。利用固件结构的层次特性,基于指定关键字来将这些IB专用变元传递至适当的支持包,以便完成引导处理。ib-引导支持包还实现特定的分组传送协议,当通过IB网络进行引导时,通过hca设备驱动器来利用这些特定的分组传送协议。
在一个实施例中,提供了特定关键字,其标识SCSI(小型计算机系统接口)RDMA(远程直接存储器访问)协议--SRP--支持包。SRP支持包指定将要实现存储器引导方法,由此,利用SRP来通过IB结构传输SCSI命令以及访问引导设备。主机设备然后从通过通道适配器连接至I/O结构的存储设备(引导服务器)读取数据块(包括引导映像)。因而通过SRP支持包提供了对引导服务器的访问,并且经由IB网络将引导映像返回至主机设备用于完成主机设备的引导操作。
现参照附图,图4A根据本发明描述的实施例,提供了利用InfiniBand(IB)网络连接来与各种外围和组网设备(包括一个或多个远程引导服务器)进行通信的组网计算机系统的主要硬件组件的高级表示。如所示出的,计算机系统4100(文中可互换地称为IB网络内的主计算机或主计算机设备)包括经由存储总线4103耦合于存储器4102的中央处理器(CPU)4101,存储总线4103又通过输入/输出(I/O)总线接口4105提供到各种其它外围或网络设备的连接。CPU 4101是执行来自主存储器4102的指令以及处理来自主存储器4102的数据的通用可编程处理器。主存储器4102可以是动态随机访问存储器(DRAM),在其中,从存储器(4123/4124)加载数据用于由CPU 4101进行处理。
存储总线4103提供了用于在CPU 4101、主存储器4102和I/O总线接口4105之间传送数据的数据通信路径。I/O总线接口4105进一步耦合于系统I/O总线4104,其用于传送数据到各种I/O单元和传送来自各种I/O单元的数据。I/O总线接口4105通过系统I/O总线4104与多个I/O接口单元4111-4113进行通信,I/O接口单元4111-4113也被称为I/O处理器(IOP)或I/O适配器(IOA)。系统I/O总线4104可以是工业标准PCI总线或任何其它适当的总线技术。I/O接口单元支持与各种存储器和I/O设备进行通信。举例来说,终端接口单元4111支持连接一个或多个用户终端4121-4122。存储接口单元4112支持连接一个或多个直接访问存储设备(DASD)4123-4124(其可以表示独立磁盘冗余阵列(RAID)存储器,被配置作为主计算机的单个大型存储设备)。各种其它类型的I/O设备(未示出)可以依附于I/O接口单元,例如磁带驱动、打印机和网络收发机。
根据本发明的一个实施例,I/O接口单元之一是IB I/O适配器/HCA4113,由于IB I/O适配器/HCA 4113使得主计算机4100能够连接至IB网络,因此文中可互换地将IB I/O适配器/HCA 4113称为主机通道适配器(HCA)。HCA是可编程DMA(直接存储器访问)引擎,其生成和消耗分组。
IB I/O适配器4113支持到InfiniBand网络4130的连接,InfiniBand网络4130包括交换机4131和多个点到点连接4132-4135。InfiniBand网络是可以用于连接至各种设备的本地网。如所说明的,InfiniBand网络4130提供到其它计算机系统的连接,例如IB-引导服务器4142经由目标通道适配器(TCA)4141到交换机4131。InfiniBand网络4130还提供到路由器或适配器的连接,而路由器或适配器又将InfiniBand网络4130耦合到其它局域或广域网络。在图4A的示例性实施例中,TCA 4139经由以太网适配器4140连接至局域网(LAN)4145。LAN 4145提供对远程引导服务器4150的访问。此外,路由器4138连接至因特网4146,其提供对第二远程引导服务器4151的访问。如文中所提供的,除了InfiniBand I/O适配器(HCA)4113和相连的IB网络4130以外,文中将计算机系统4100的组件也称为“主计算机”,以便区别需要来自位于跨IB网络4130的引导服务器的引导OS的主机设备。如所说明的,提供了两个外部网络,即LAN4145和因特网4146。将通过主机设备4100对因特网4146和LAN 4145的访问描述为发生在IB网络4130的“端节点”,例如TCA 4139。
除了以上组件之外,IB网络4130进一步包括连接到SCSI 4162的第三TCA 4160。存储区域网(SAN)4164连接至SCSI设备4162,该存储区域网4164包括存储服务器4166。存储服务器4166进一步包括一个或多个子设备,其在文中被称为逻辑单元(LUN)4167/4168,并且连接至存储服务器4166。至少一个LUN 4167/4168含有被利用来引导主计算机4100的引导映像。如以下所描述的,可以通过盘支持包来访问存储在LUN4167/4168上的包括引导映像在内的数据。因而,通过直接或经由存储区域网4164而依附于远程IB节点(第三TCA 4160)的存储设备(LUN4167/4168),支持远程引导操作。
尽管图4A中所示的IB网络4130具有单个交换机4131和对于相应的数字设备的五个连接4132-4136,然而应当理解,IB网络可以具有不同数目的交换机、适配器、路由器和链路(但可能不具有交换机或路由器)。IB网络的拓扑可以是显著不同并且更加复杂的,并且因而不同数目或类型的设备可以耦合于IB网络。
应当理解,图4A旨在高级地描绘计算机系统4100的代表性主要组件,并且各个组件可以具有比图4A中所表示的组件更大的复杂性。应当进一步认识到,可以给出不同于或除了图4A中所示的那些组件以外的组件,并且这样的组件的数目、类型和配置是可以改变的。因而,仅仅通过举例的方式给出图4A,且并不旨在隐含对本发明的任何限制。
本发明通过跨IB网络4130发生的引导过程,为连接至IB网络4130的计算机设备4100启用了远程引导过程。本发明的一个实施例使得能够在IB结构上完成网络引导过程,即存储器引导方法。该存储器引导方法涉及连接至位于远程IB端节点的存储设备(例如,LUN 4167/4168)以及使用诸如SRP的传输协议来获得引导文件。
如文中较为详细描述的,在远程引导操作的全面实施中,通过计算机设备4100来支持特定的存储器引导方法。存储器引导方法涉及连接至直接或通过SAN 4164而依附于远程IB节点(第二TCA 4160)的存储设备(LUN4167/4168),以及通过IB结构发送存储协议命令,例如SCSI(小型计算机系统接口)RDMA(远程直接存储器访问)协议(SRP)。
在以上示例计算机系统和网络环境中,本发明的第一方面涉及修改系统固件,以便使得该固件能够标识和表示在系统初始化期间系统固件按照使得IB端节点用于引导操作的方式所生成的层次结构内的IB端节点。在计算机系统通电(或重新引导)之后,系统经历引导过程,通过该引导过程,系统固件通过标识和建立/启动系统中的设备来准备用于操作的系统。在引导过程期间,固件将系统硬件表示为具有附属设备的互连总线的层次。该层次表示描述了用户配置选择,并且含有用于硬件设备的固件设备驱动器以及由那些驱动器使用的支持路由器。
在IB网络内,增强主机系统的引导固件以便识别存在IB HCA以及一个或多个IB端节点设备。根据一个实施例,将新的设备类型定义为“hca”设备类型,其表示IB HCA。hca设备的特征在层次固件数据结构中通过节点全局唯一标识符来描述。hca设备含有开启和关闭设备的接口以及从设备读取和写入设备的接口。hca设备包括若干“子设备”,其被称为“ib端口”设备并且由端口全局唯一标识符来标识。除了为父hca设备定义的开启、关闭、读和写接口以外,ib端口设备还包括使该设备能够作为引导设备来使用的加载接口。
本发明的第二相关方面涉及命令关键字的创建和利用,该命令关键字被添加到在系统初始化期间由系统固件所生成的引导变元。在一个实施例中,命令关键字指定分组传送协议和关联的变元集。通过ib-引导支持包来理解这些命令关键字,ib-引导支持包接收来自系统固件的引导变元。命令关键字通过指定待采用的具体网络引导方法来修改与自举方法关联的引导变元。根据所描述的实施例,命令关键字是引导变元中的第一变元,并且每次只可以指定一个命令关键字。如以下进一步描述的,在一个实施例中,所有的命令关键字都是互斥的,并且因而,仅将关键字之一添加到标准引导变元之前来启用IB级远程引导操作。如果指定了超过一个的命令关键字,则发送具有警告消息的失败结果给主计算机设备的用户并且该设备不开启。
通过在用于ib-引导支持包的开启接口的变元中使用命令关键字来选择特定的网络引导方法。该命令关键字指定了分组传送协议和关联的变元集。在本说明书中还描述了对于多个命令关键字的使用和/或应用。在本发明的一个实施例中,定义命令关键字“srp”,以便选择存储器引导方法,并且使用SRP提供了特定的引导功能。
srp关键字指定了存储器引导方法,当指定存储器引导方法时,其触发使用SCSI RDMA协议(SRP),以便在IB结构上传输SCSI命令并且访问引导设备(图4A的LUN 4167/4168)。引导平台(即,主机设备)从通过通道适配器连接至IB结构的存储设备读取数据块。当指定了存储器方法时,提供IB专用引导变元集,并且其后是与盘相关的变元。通过ib-引导开启方法将与盘相关的变元传递至盘支持包。在由开放固件工作组发行的PowerPC Micro-processor Common Hardware Reference Platform (CHRP)Binding中描述了对盘变元的利用,在此通过引用的方式将其相关内容纳入本文。
根据本发明的一个实施例,用于SRP引导的引导变元如下:
open ibport-device:iocguid=IOC-GUID,portgid=IOC-GID,srp,srpiport=init-portid,srptport=target-port-id,tlun=target-lun,disk-label args
在以上引导变元中,对特定变元的描述包括:
(a)iocguid=IOC-GUID:其是标识目标I/O控制器或I/O单元的64位全局唯一EUI-64顺应标识符;
(b)portgid=IOC-GID:其是标识目标I/O单元中的端口的128位数。以IPv6格式表示该变元并且该变元由64位GID前缀和分派给I/O控制器的64位端口GUID组成;
(c)srpiport=init-port-id:其是唯一标识SRP启动器端口的128位数。该数含有用于启动器端口的GUID和确保所有的SRP启动器端口标识符都是唯一的64位数;
(d)srptport=target-port-id:其是唯一标识SRP目标端口的128位数。该数含有用于目标I/O控制器的GUID和目标端口的服务ID;以及
(e)tlun=target-lun:其是SRP目标设备的64位逻辑单元数。
如文中所提供的,IOC-GUID和IOC-GID唯一标识InfiniBand结构中的端节点。ib-引导过程建立与目标I/O控制器或端节点的连接,并且然后利用通过命令关键字指定的协议在IB传输上发送分组。在本说明书中还描述了网络相关的变元(network-args)的例子。
本发明的第三方面涉及ib-引导支持包的扩展,以便能够无缝连接到除了来自远程引导设备的SDP网络引导过程或IPoIB网络引导过程的SRP网络引导过程。提供ib-引导支持包来协助封装用于使用ib端口设备在IB网络上进行引导的变元,并且定义引导变元集来由ib-引导支持包利用。ib-引导支持包处理指定了目标IB端节点(即,耦合于IB结构的TCA或路由器或适配器,以及直接或经由网络连接到IB结构的引导服务器)的引导变元。在一个实施例中,ib-引导支持包还实现通常由hca设备驱动器利用的特定分组传送协议,当在IB上引导时利用该特定分组传送协议。
利用固件结构的层次特性,基于如ib-引导支持包所处理的指定关键字,将这些IB专用变元传递至适当的支持包,以便启动对引导映像的检索。因而,当提供给引导变元的关键字是srp时,ib-引导支持包将引导变元传送至SRP支持包。可选地,并且如本说明书中所描述的,关键字可以指定使用网络支持包来完成网络引导方法,或者ib-引导支持包可以将引导变元传递至SDP支持包以完成IB网络引导。
图4B是根据本发明的一个实施例描绘了一过程的流程图,通过该过程,系统固件发现IB HCA并且表示层次拓扑内的设备及其子设备。参照图4A所示的系统组件描述了图4B的过程。过程从块4202开始,在此,在诸如主机系统4100(图4A)的主机系统上,由诸如系统固件4145(图4A)的固件启动硬件初始化。如块4204所示,在系统初始化期间,系统固件4145遍历系统总线并且标识出主机系统4100的I/O拓扑。在判定块4206处,如果在附于总线的任何设备中检测到选项ROM,则加载该选项ROM并且执行其代码,如块4208所示。作为执行代码的结果,创建设备的表示并且将其添加到主层次I/O拓扑,如块4214所示。
在判定块4206处,如果未检测到选项ROM,则在块4210处系统固件4145确定是否检测到IB HCA(或“hca”设备)。如果检测到IB HCA设备,则系统固件4145创建hca设备及其子ib端口设备的表示,如块4214所示。系统固件4145还创建I/O拓扑内ib端口设备的位置的设备表示,如块4214处所指示的。在判定块4210处,如果未检测到IB HCA,那么过程结束,如块4211所提供的。因为“ib端口”设备是利用特定的引导变元集开启的,所以系统固件4145获得开启ib端口设备所需要的引导变元,如块4216所示。系统固件然后将引导变元传递至ib-引导支持包用于处理,如块4218所指示的。
现转至图4C,其根据本发明的一个说明性实施例,提供了示例系统的框图表示,该示例系统具有这样的主要组件(硬件和软件实用体),即其使得能够通过IB-引导支持包来利用IB-引导变元,从而启用来自远程引导设备的SRP引导或IBoIP引导或SDP引导。如所示出的,正被引导的设备的系统固件4145(图4A),例如,主机系统4100(图4A)在通信上耦合于ib-引导支持包4310。ib-引导支持包建立与引导变元中所指定的目标I/O控制器的连接。当从IB连接的引导设备引导时,ib-引导支持包4310传输SDP引导变元到SDP支持包4330,其利用SDP网络协议来获得来自引导服务器4137的引导文件。当从通过IP网络连接的服务器引导时,ib-引导支持包4310将IPoIB-引导变元转发至增强的网络支持包4320。最后,当从连接至服务器(其又直接或经由SAN连接至TCA)的LUN(或其它设备)引导时,ib-引导支持包4310将SCSI引导变元转发至SRP支持包4340。
所示出的SRP支持包4340连接至存储服务器4166,存储服务器4166具有与其相连的LUN 4167/4168。在服务器4166中的是盘支持包4255,利用盘支持包4255来接收引导变元,访问LUN 4167/4168中适当的一个,并且从LUN 4167/4168之一检索引导映像/文件。然后将所检索的引导映像/文件经由IB网络提供给主机系统固件4145。
SRP支持包有助于在IB链路上发送SCSI命令,以便到达存储服务器,并且SRP支持包然后向盘支持包传送控制。盘支持包完成从远程SCSI盘(LUN 4148)对引导映像的实际加载。
IP引导服务器4150和IB引导服务器4166能够将引导映像提供给计算机系统4100(图4A)的系统固件4145,以便使得计算机系统4100能够完成引导操作。服务器4150和4137分别从网络支持包4320和SDP支持包4330接收相应的引导变元集。然而,网络支持包4320通过IPoIB消息接收变元并且传输IPoIB消息,这与SDP支持包4330所支持的消息传输的类型/格式(即IB信息)不同。
图4D描绘了在ib-引导支持包与根据包括在引导变元内的命令关键字所选择的其它三种支持包之间的引导变元的流程。ib-引导支持包提供指定了目标IB端节点的引导变元。具体而言,关于本发明,图4D的流程图描绘了当选择存储网络方法时,在ib-引导包和SRP支持包之间的信息流。ib-引导包通过远程直接存储器访问(RDMA)接口向SRP支持包传送控制以便促进SCSI命令的传输。
利用固件结构的层次特性将这些IB专用变元传递至适当的支持包以便完成引导处理。过程开始于块4402,其说明了ib-引导支持包从系统固件接收引导变元。ib-引导支持包解析引导变元,如块4404所示,并且在块4406处确定变元是否指示IPoIB引导操作。如果指示IPoIB引导操作,则ib-引导支持包创建用于IPoIB引导的引导串(boot string),如块4408处所提供的,并且然后将创建的引导串转发至网络支持包4320,如块4410所示。因而,如果选择了IBoIP网络方法,则ib-引导包向网络支持包4320传送控制,并且通过ib-引导支持包促进整个网络结构。
如果引导变元未指示IPoIB引导,那么在块4412处进行引导变元是否指示SDP引导的下一确定。如果指示SDP引导,则ib-引导支持包再次生成SDP引导所需要的引导串,如块4414所示,并且将生成的引导串转发至SDP引导支持包,如块4416处所描绘的。因而,当选择IB网络方法时,ib-引导支持包向SDP支持包或在InfiniBand链路上促进或提供直接文件传输协议的任何其它的包传送控制。
否则,如果引导变元既未指示IPoIB引导,也未指示SDP引导,则在块4418处进行是否指示SRP引导的最后确定。当指示SRP引导时,ib-引导支持包生成SRP专用引导变元,如块4420所示,并且ib-引导支持包将引导串传送至SRP支持包4340来完成存储器引导过程,如块4422处所指示的。当未指示特定的引导方法时(或者如果指示了多种引导方法),则报告错误,如块4424所示,并且引导过程结束。
在本说明书中还详细描述了网络支持包和SDP支持包接收和处理引导变元的过程。
图4E是根据本发明的一个实施例描绘了对引导变元的处理的流程图,当利用在IB链路(IPoIB)上传输TCP/IP消息来加载来自LAN服务器(例如图4A的引导服务器4150)的引导文件时,SRP支持包4340(图4C)进行对引导变元的该处理。通过I/O拓扑表示的层次特性,由SRP支持包所进行的读和写操作被传递至ib-引导支持包并且实际上是由HCA设备实现的。HCA设备封装SCSI命令并且经由IB链路将命令发送至指定的IB目标节点。参照图4C的组件进一步描述该过程。
该过程开始于块4502,其说明了SRP支持包4340(图4C)从ib-引导支持包4310(图4C)接收ib-引导变元。SRP支持包4340解析引导变元,如块4504所示,并且然后通过IB将SCSI命令发送至存储服务器4164(图4C),如块4506处所指示的。在块4508处确定是否已经完成对SCSI命令的传输,并且当已经完成传输时,在块4510处,将特定的加载变元传递至盘支持包4255(图4C),并且盘支持包4255导致启动引导过程来从目标盘(LUN 4168)引导映像文件。目标设备(4167/4168)提供引导映像,在主计算机4100上加载引导映像,如块4512所示。然后,在主计算机4100(图4A)处着手并完成引导操作,如块4514所指示的。
本发明的上面的描述涉及特定术语/专门名词的使用,其中某些由IETF标准部门所定义。当其它名字被用于描述类似的功能和/或功能性时,应当理解,本发明在范围上扩展以覆盖所有一般功能和/或特征,而不管所使用的命名法。还应当理解,特定的参数名字的使用仅是用于举例而不是意味着暗示对本发明的任何限制。因此,本发明可不受任何限制地通过被用于描述上面的参数不同的命名法/专门名词来实现。
作为最后一个问题,重要的是:尽管在安装有软件的全功能计算机系统的环境中已经并将继续描述本发明的说明性实施例,但是本领域的技术人员将意识到,本发明的说明性实施例的软件方面能够以各种形式作为程序产品分布,并且无论被用于实际实现该分布的特定类型的信号承载媒体如何,本发明的说明性实施例都同等地适用。信号承载媒体的例子包括可记录类型媒体(诸如软盘、硬盘驱动器、CD ROM)和诸如数字和模拟通信链路之类的传输类型媒体。
尽管已经参考优选的实施例具体地示出并描述了本发明,但是本领域的技术人员应当理解,在不偏离本发明的精神和范围的条件下可以在形式和细节中做出各种改变。

Claims (15)

1.一种用在无限带宽InfiniBand IB网络环境的方法,包括:
接收引导变元集,所述引导变元集包括标识出特定支持包的关键字,其中将要利用所述特定支持包来从经由所述IB网络连接至主机设备的特定引导服务器中检索用于IB主机设备的引导映像;
确定所述关键字是否是第一关键字,所述第一关键字触发对第一支持包的利用,所述第一支持包使得能够通过小型计算机系统接口协议与第一引导服务器进行通信;以及
当所述关键字是所述第一关键字时,自动将第一类型的引导变元转发至所述第一支持包,所述第一支持包被配置成响应于接收到所述第一类型的引导变元,动态启动对第一存储设备的访问,以便利用所述小型计算机系统接口协议从所述第一存储设备中检索所述引导映像。
2.根据权利要求1的方法,其中:
所述第一关键字是srp,所述srp指定了小型计算机系统接口远程直接存储器访问协议--SRP--支持包,其利用小型计算机系统接口通信方法来跨所述IB网络访问所述第一引导服务器。
3.根据权利要求1的方法,其中,当所述关键字是所述第一关键字时,所述方法进一步包括:
当确定所述第一关键字处于所述引导变元集内时,生成用于访问相应的第一存储设备的引导变元和参数的对应串,由所述第一关键字所标识的所述第一支持包来利用所述变元;以及
将所述引导变元和参数的对应串转发至所述第一支持包。
4.根据权利要求2的方法,其进一步包括:
在系统初始化期间生成用于所述主机设备的引导变元,其中生成系统组件的层次表示,在所述层次表示中具有标识所述引导映像所处位置的、对IB主机通道适配器以及子ib端口设备的表示,其中,所述子ib端口设备是IB主机通道适配器的子设备;
利用第一命令关键字扩展所述引导变元以便创建所述引导变元集,所述第一命令关键字指示激活提供SRP包传送的SRP引导方法;以及
将所述引导变元集转发至ib-引导支持包,以便触发选择适当的引导方法并且通过所选择的引导方法启动对所述引导映像的检索;
其中所述ib-引导支持包生成指定了目标IB端节点的引导变元;
其中所述ib-引导支持包实现了特定的小型计算机系统接口分组传送协议,当通过IB网络引导时由主机通道适配器设备驱动器利用所述特定的小型计算机系统接口分组传送协议;并且
其中由所述SRP支持包所实现的包括读和写操作在内的访问操作是通过所述ib-引导支持包传递的并且由所述IB主机通道适配器实现。
5.根据权利要求4的方法,其进一步包括:
在系统初始化期间,检测表示IB主机通道适配器的主机通道适配器设备类型;
利用节点全局唯一标识符node-GUID来描述所述主机通道适配器设备类型的特征;以及
表示所述层次表示内的ib端口设备,其中所述ib端口设备包括使得所述ib端口设备能够被利用为引导设备的加载接口;
其中所述IB主机通道适配器封装SRP消息,并且经由IB链路将所述命令和消息传输至指定的IB目标节点。
6.根据权利要求2的方法,其进一步包括:
在所述SRP支持包处生成表示用于访问所述存储设备所需要的参数的引导串;以及
将所述引导串转发至与所述存储设备关联的服务器的盘支持包。
7.根据权利要求6的方法,其中所述存储设备是所述服务器的子设备,并且其能够通过所述引导串内的参数来访问,所述方法进一步包括:
加载来自所述存储设备的引导映像;以及
经由启用了在所述IB网络上的通信的小型计算机系统接口远程直接存储器访问协议,将所述引导映像转发至所述IB主机设备。
8.一种无限带宽InfiniBand IB主机设备,其包括:
用于耦合于IB网络的主机通道适配器的装置;
用于接收引导变元集的装置,所述引导变元集包括标识出特定支持包的关键字,其中将要利用所述特定支持包来从经由所述IB网络连接至主机设备的特定引导服务器中检索用于IB主机设备的引导映像;
用于确定所述关键字是否是第一关键字的装置,所述第一关键字触发对相应的第一支持包的利用,所述第一支持包使得能够通过小型计算机系统接口协议与第一引导服务器进行通信;以及
当所述关键字是所述第一关键字时,用于自动将第一类型的引导变元转发至所述第一支持包的装置,所述第一支持包被配置成响应于接收到所述第一类型的引导变元,动态启动对第一存储设备的访问,以便利用所述小型计算机系统接口协议从所述第一存储设备中检索所述引导映像。
9.根据权利要求8的IB主机设备,其中所述第一关键字是srp,所述srp指定了小型计算机系统接口远程直接存储器访问协议--SRP--支持包,其利用小型计算机系统接口通信方法来跨所述IB网络访问所述第一引导服务器。
10.根据权利要求9的IB主机设备,其中,当所述关键字是所述第一关键字时,所述设备进一步包括:
当确定所述第一关键字处于所述引导变元集内时,用于生成用于访问相应的第一存储设备的引导变元和参数的对应串的装置,由所述第一关键字所标识的所述第一支持包来利用所述变元;以及
用于将所述引导变元和参数的对应串转发至所述第一支持包的装置。
11.根据权利要求9的IB主机设备,其进一步包括:
用于在系统初始化期间生成用于所述主机设备的引导变元的装置,其中生成系统组件的层次表示,在所述层次表示中具有标识所述引导映像所处位置的、对IB主机通道适配器以及子ib端口设备的表示,其中,所述子ib端口设备是IB主机通道适配器的子设备;
用于利用第一命令关键字扩展所述引导变元以便创建所述引导变元集的装置,所述第一命令关键字指示激活提供SRP包传送的SRP引导方法;以及
用于将所述引导变元集转发至ib-引导支持包以便触发选择适当的引导方法并且通过所选择的引导方法启动对所述引导映像的检索的装置;
其中所述ib-引导支持包生成指定了目标IB端节点的引导变元;
其中所述ib-引导支持包实现了特定的小型计算机系统接口分组传送协议,当通过IB网络引导时由主机通道适配器设备驱动器利用所述特定的小型计算机系统接口分组传送协议;并且
其中由所述SRP支持包所实现的包括读和写操作在内的访问操作是通过所述ib-引导支持包传递的并且由所述IB主机通道适配器实现。
12.根据权利要求9的IB主机设备,其进一步包括:
用于在系统初始化期间检测表示IB主机通道适配器的主机通道适配器设备类型的装置;
用于利用节点全局唯一标识符node-GUID来描述所述主机通道适配器设备类型的特征的装置;以及
用于表示系统组件的层次表示内的ib端口设备的装置,其中所述ib端口设备包括使得所述ib端口设备能够被利用为引导设备的加载接口;
其中所述IB主机通道适配器封装SRP消息,并且经由IB链路将所述命令和消息传输至指定的IB目标节点。
13.根据权利要求9的IB主机设备,其进一步包括:
用于在所述SRP支持包处生成表示用于访问所述存储设备所需要的参数的引导串的装置;以及
用于将所述引导串转发至与所述存储设备关联的服务器的盘支持包的装置。
14.根据权利要求13的IB主机设备,其中所述存储设备是所述服务器的子设备,并且其能够通过所述引导串内的参数来访问,所述设备进一步包括:
用于加载来自所述存储设备的引导映像的装置;以及
用于经由启用了在所述IB网络上的通信的小型计算机系统接口远程直接存储器访问协议将所述引导映像转发至所述IB主机设备的装置。
15.一种具有根据权利要求8配置的IB主机设备的IB网络,并且所述IB网络进一步包括:
具有用于连接所述IB网络内的组件的链路的交换机;
经由所述链路之一连接至所述交换机的端节点;以及
经由以下二者之一而连接至所述端节点的引导设备:直接小型计算机系统接口连接,以及耦合于所述IB网络的端节点的存储区域网。
CN2008100817163A 2007-02-23 2008-02-25 启用InfiniBand网络自举的方法以及InfiniBand主机设备 Expired - Fee Related CN101252582B (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US11/678,116 US7886139B2 (en) 2007-02-23 2007-02-23 Method to enable firmware to boot a system from an ISCSI device
US11/678,124 2007-02-23
US11/678,132 2007-02-23
US11/678,116 2007-02-23
US11/678,133 2007-02-23
US11/678,133 US7734743B2 (en) 2007-02-23 2007-02-23 Method to enable infiniband network bootstrap
US11/678,132 US7734818B2 (en) 2007-02-23 2007-02-23 Method to add IPV6 and DHCP support to the network support package
US11/678,124 US7689679B2 (en) 2007-02-23 2007-02-23 Method to enable infiniband network bootstrap

Publications (2)

Publication Number Publication Date
CN101252582A CN101252582A (zh) 2008-08-27
CN101252582B true CN101252582B (zh) 2012-11-07

Family

ID=39717427

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100817163A Expired - Fee Related CN101252582B (zh) 2007-02-23 2008-02-25 启用InfiniBand网络自举的方法以及InfiniBand主机设备

Country Status (2)

Country Link
US (1) US7734743B2 (zh)
CN (1) CN101252582B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689679B2 (en) * 2007-02-23 2010-03-30 International Business Machines Corporation Method to enable infiniband network bootstrap
JP5333579B2 (ja) * 2009-03-30 2013-11-06 富士通株式会社 管理サーバ、ブートサーバ、ネットワークブートシステムおよびネットワークブート方法
US8862865B2 (en) 2011-08-30 2014-10-14 International Business Machines Corporation Rebooting infiniband clusters
US10474625B2 (en) 2012-01-17 2019-11-12 International Business Machines Corporation Configuring compute nodes in a parallel computer using remote direct memory access (‘RDMA’)
US9264398B2 (en) 2013-10-24 2016-02-16 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Loading an operating system of a diskless compute node using a single virtual protocol interconnect (‘VPI’) adapter
CN104601410A (zh) * 2015-02-02 2015-05-06 浪潮电子信息产业股份有限公司 一种服务器自动测试hca卡带宽的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1494003A (zh) * 2002-10-30 2004-05-05 华为技术有限公司 一种实现接口转换的装置及方法
US6857069B1 (en) * 2003-03-24 2005-02-15 Cisco Technology, Inc. Modified operating system boot sequence for iSCSI device support

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6466985B1 (en) 1998-04-10 2002-10-15 At&T Corp. Method and apparatus for providing quality of service using the internet protocol
US8165155B2 (en) * 2004-07-01 2012-04-24 Broadcom Corporation Method and system for a thin client and blade architecture
US6345294B1 (en) 1999-04-19 2002-02-05 Cisco Technology, Inc. Methods and apparatus for remote configuration of an appliance on a network
US6895590B2 (en) * 2001-09-26 2005-05-17 Intel Corporation Method and system enabling both legacy and new applications to access an InfiniBand fabric via a socket API
US7155537B1 (en) * 2001-09-27 2006-12-26 Lsi Logic Corporation Infiniband isolation bridge merged with architecture of an infiniband translation bridge
US20030126242A1 (en) * 2001-12-28 2003-07-03 Chang Albert H. Network boot system and method using remotely-stored, client-specific boot images created from shared, base snapshot image
US6983303B2 (en) * 2002-01-31 2006-01-03 Hewlett-Packard Development Company, Lp. Storage aggregator for enhancing virtualization in data storage networks
WO2003092261A2 (en) * 2002-04-25 2003-11-06 August Technology Corporation Data grabber with switched fabric interface
US7111202B2 (en) * 2002-06-28 2006-09-19 Hewlett-Packard Development Company, L.P. Autonomous boot failure detection and recovery
US8180928B2 (en) * 2002-08-30 2012-05-15 Broadcom Corporation Method and system for supporting read operations with CRC for iSCSI and iSCSI chimney
US7376717B2 (en) 2003-04-17 2008-05-20 Lenovo (Singapore) Pte Ltd. Method and apparatus for automatically configuring a computer for different local area networks
JP2005071242A (ja) 2003-08-27 2005-03-17 Toshiba Corp 計算機システム及び動的ブートイメージ切替プログラム
US20050138346A1 (en) 2003-08-28 2005-06-23 Cauthron David M. iSCSI boot drive system and method for a scalable internet engine
US20050216715A1 (en) 2004-03-29 2005-09-29 Matheny David L System and method for flexible option ROM booting
US7475153B2 (en) * 2004-07-16 2009-01-06 International Business Machines Corporation Method for enabling communication between nodes
US7715822B2 (en) * 2005-02-04 2010-05-11 Qualcomm Incorporated Secure bootstrapping for wireless communications
US7398337B2 (en) * 2005-02-25 2008-07-08 International Business Machines Corporation Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization
US7610480B2 (en) 2005-04-01 2009-10-27 Alcatel Lucent System and method for controlling boot-up process in a communications network switch
FI20050384A0 (fi) * 2005-04-14 2005-04-14 Nokia Corp Geneerisen todentamisarkkitehtuurin käyttö Internet-käytäntöavainten jakeluun matkaviestimissä
US8369329B2 (en) 2005-05-16 2013-02-05 Rockstar Consortium Us Lp Dynamic hierarchical address resource management architecture, method and apparatus
US8006011B2 (en) * 2006-02-07 2011-08-23 Cisco Technology, Inc. InfiniBand boot bridge with fibre channel target

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1494003A (zh) * 2002-10-30 2004-05-05 华为技术有限公司 一种实现接口转换的装置及方法
US6857069B1 (en) * 2003-03-24 2005-02-15 Cisco Technology, Inc. Modified operating system boot sequence for iSCSI device support

Also Published As

Publication number Publication date
CN101252582A (zh) 2008-08-27
US7734743B2 (en) 2010-06-08
US20080209450A1 (en) 2008-08-28

Similar Documents

Publication Publication Date Title
CN101251806B (zh) 使固件能从iSCSI设备引导系统的方法、系统和设备
CN101252604B (zh) 添加ipv6和dhcp支持到网络支持包的方法和设备
CN101252583B (zh) 启用InfiniBand网络自举的方法以及InfiniBand主机设备
Bjorklund A YANG Data Model for Interface Management
US7899047B2 (en) Virtual network with adaptive dispatcher
CN102986171B (zh) 分布式虚拟桥接器环境中的寄存器访问
US7257817B2 (en) Virtual network with adaptive dispatcher
US9350558B2 (en) Systems and methods for providing multicast routing in an overlay network
CN101252582B (zh) 启用InfiniBand网络自举的方法以及InfiniBand主机设备
CN106464564B (zh) 用于网络分组封装和路由的方法、系统和计算机可读介质
US7876713B2 (en) Label switched routing in SAS expanders
CN102299976A (zh) 分布式和可缩放的网络地址转换
US9548923B2 (en) System and method for utilizing a unique identifier while registering a device in a network
CN101409670A (zh) 管理组件传输协议互连滤波和路由
US10050859B2 (en) Apparatus for processing network packet using service function chaining and method for controlling the same
US10574570B2 (en) Communication processing method and apparatus
US20080301293A1 (en) Method and apparatus for discovering universal plug and play device using resource information
US20160043948A1 (en) Communications over multiple protocol interfaces in a computing environment
CN103763195A (zh) 一种传输报文的方法及装置
CN103503421A (zh) 负荷平衡系统中的sctp关联端点重定位
CN101969478A (zh) 一种智能dns报文处理方法及处理装置
TW201211785A (en) Addressing a workload partition
US20130003600A1 (en) Configuration of Interfaces Communicatively Coupled to Link-Local Zones in a Network
CN112953858A (zh) 虚拟网络中报文的传输方法、电子设备及存储介质
US11882090B2 (en) Efficiently mapping a distributed resource to a virtual network

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

Granted publication date: 20121107

Termination date: 20160225

CF01 Termination of patent right due to non-payment of annual fee