首页 / 添加IPV6和DHCP支持到网络支持包的方法和设备

添加IPV6和DHCP支持到网络支持包的方法和设备失效专利 发明

技术内容

技术领域 本发明一般地涉及计算机系统,并且具体地涉及计算机系统的引导过 程、以及在计算机网络系统中使用网络支持包(network support package)。 更具体地,本发明涉及一种用于从因特网小型计算机系统接口(iSCSI)设 备完成计算机系统的引导过程的方法和系统、用于计算机系统的远程网络 引导操作(boot operation)、以及用于使用网络支持包从引导服务器加载 计算机系统的引导映像的增强方法。 背景技术 紧随着计算机系统的上电(或重新引导),系统经历引导过程;借助 该引导过程,系统的固件通过标识以及设置/启动系统中的设备而准备该系 统以便进行操作。在引导过程期间,固件将系统硬件表示(represent)成 带有附属设备的互连总线的分级体系。这种分级表示通常描述用户配置选 择,并且包含用于硬件设备的固件设备驱动程序和供那些驱动程序使用的 支持例程。 另外,固件通过从某个存储位置/设备加载(引导)操作系统来准备该 计算机系统以便进行操作。在单机计算机系统的正常操作期间,当用户向 计算机发出引导命令时,计算机响应于该引导命令,尝试从该计算机系统 的本地存储器检索操作系统文件。还需要配置数据文件来用特定硬件配置 所必须的硬件参数来配置特定系统。 某些计算机系统经由网络连接到服务器或网络可访问的其它设备。在 使用单机系统(其中当关断电源时在本地维护计算机的存储装置)时,OS 典型地存储在计算机系统自身中。在具有当关断电源时会丢失的临时(易 失性)存储装置的其它系统中(或者甚至在使用具有有限的非易失性存储 能力的系统时),计算机不能从该计算机自身内检索引导信息。在这些情 形下,计算机系统的固件可配置成经由网络向用作引导服务器的服务器发 送针对OS文件的请求。远程引导操作在分布式和网络计算的世界中变得 常见,特别是在具备从引导服务器进行引导的优势的情况下,诸如节省计 算机系统的有限的存储器资源。 当创造出新设备时,现有计算机系统典型地不能从这些新设备引导客 户端程序或操作系统,除非固件提供对该引导过程的某种类型的支持。当 新设备不适合先前所定义的设备类型或系统中典型地存在的标准设备类型 时,现有系统(在缺少特别提供的固件的情况下)不具备完成针对新设备 的引导过程的这种能力是尤其正确的。正被更加频繁地使用但尚未被提供 直接固件支持的一种这样的新设备是因特网小型计算机系统接口(iSCSI) 设备。 iSCSI协议允许客户端系统使用iSCSI启动器来连接诸如IP网络上的 磁盘或磁带驱动器之类的远程目标以便进行块级输入/输出(I/O)。SCSI 体系结构是基于客户端/服务器模型,其中客户端(“启动器”)典型地是 发出请求以读或写数据的诸如文件服务器之类的主机系统,而服务器(“目 标”)是对客户端请求做出响应的诸如磁盘阵列之类的资源。服务器(目 标)包括一个或多个被分配有标识号或逻辑单元号(LUN)的逻辑单元。 本领域的技术人员熟知iSCSI协议和它的一般实现。在IETF(因特网工程 任务组)的RFC储存库中公布的RFC 3720:Internet Small Computer Systems Interface(iSCSI)中可获得该协议的更多描述。 因为iSCSI协议还未被完全集成进诸如由固件指导的远程引导操作之 类的现有系统功能,所以常规系统使用若干现有发现协议以从公知服务器 获得关于iSCSI客户端和目标的信息。由IETF RFC 4173在网站 “www.ietf.org/rfc/rfc4173.txt”上在线发表的标题为“Bootstrapping Clients using the iSC SI Protocol”的文章内提供了对这些现有发现协议的 描述。然而,当前没有任何高效方法,用以提供用来从iSCSI设备(目标) 引导操作系统的受指导的引导过程。因此,本发明认识到存在以下需求: 由iSCSI客户端从iSCSI设备(目标)高效地引导它的操作系统,而无需 完全重新设计/修改现有的远程引导过程和发现协议。 网络计算机系统在计算机领域中是众所周知的。利用普通文件传送协 议(TFTP)从位于跨网络的远程服务器加载计算机系统的引导映像/文件 的通用方法也是已知的。特别地,当在诸如局域网(LAN)的网络上引导 计算机系统(即,网络设备)时,计算机系统的固件通常利用TFTP自举 (bootstrap)方法来从跨网络的引导服务器/设备获得引导文件。 利用该TFTP自举方法,提供了网络支持包来协助网络引导操作。具 体而言,网络支持包利用TFTP自举方法来检索和/或定义访问和检索位于 引导服务器处的引导映像/文件所需要的特定引导变元(boot arguments)。 网络支持包还处理从计算机系统获得的引导变元,并且建立与远程服务器 的连接来获得引导文件。可以在由开放固件工作组(Open Firmware Working Group)发布的开放固件推荐规程(Open Firmware Recommended Practice):TFTP引导扩展版本1.0(TFTP Booting Extension 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:TFTP Booting 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 设备地址中的分量并将那些变元(也即引导参数)传递给盘支持包(disk support 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 Recommended Practice: TFTP Booting Extension Version 1.0(已确认在2006年8月22日发表在 http://playground.sun.com/1275/practice/obptftp/tftp1_0.pdf#search=%22 Open%20Firmware%20Recommended%20Practice%3A%20TFTP%20B ooting%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适配器,则该固件创建对该iSCSI TOE(也即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 Reference Platform(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,其表示目标的CHAP ID并被用于向启动器认证目标。特别地,目标将在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所发表的RFC 2131: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适配器/HCA 2113,由于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引导的引导串(boot string),如块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,tflp-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,ciaddr, 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:promiscuous,speed=100,duplex=full,,dbcp,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适配器/HCA 4113,由于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的主机设备。如所说明的,提供了两个外部网络,即LAN 4145和因特网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 的引导映像。如以下所描述的,可以通过盘支持包来访问存储在LUN 4167/4168上的包括引导映像在内的数据。因而,通过直接或经由存储区域 网4164而依附于远程IB节点(第三TCA 4160)的存储设备(LUN 4167/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)的存储设(备(LUN 4167/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)和诸如数字和模拟通 信链路之类的传输类型媒体。 尽管已经参考优选的实施例具体地示出并描述了本发明,但是本领域 的技术人员应当理解,在不偏离本发明的精神和范围的条件下可以在形式 和细节中做出各种改变。

相关技术
支持包相关技术
支持网络相关技术
C·B·埃尔南德斯发明人的其他相关专利技术