專利名稱:使固件能從iSCSI設(shè)備引導(dǎo)系統(tǒng)的方法、系統(tǒng)和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及計(jì)算機(jī)系統(tǒng),并且具體地涉及計(jì)算機(jī)系統(tǒng)的引導(dǎo)過 程、以及在計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中使用網(wǎng)絡(luò)支持包(network support package). 更具體地,本發(fā)明涉及一種用于從因特網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口 (iSCSI)設(shè) 備完成計(jì)算機(jī)系統(tǒng)的引導(dǎo)過程的方法和系統(tǒng)、用于計(jì)算機(jī)系統(tǒng)的遠(yuǎn)程網(wǎng)絡(luò) 引導(dǎo)操作(boot operation )、以及用于使用網(wǎng)絡(luò)支持包從引導(dǎo)服務(wù)器加載 計(jì)算機(jī)系統(tǒng)的引導(dǎo)映像的增強(qiáng)方法。
背景技術(shù):
緊隨著計(jì)算機(jī)系統(tǒng)的上電(或重新引導(dǎo)),系統(tǒng)經(jīng)歷引導(dǎo)過程;借助 該f 1導(dǎo)過程,系統(tǒng)的固件通過標(biāo)識(shí)以及設(shè)置/啟動(dòng)系統(tǒng)中的設(shè)備而準(zhǔn)備該系統(tǒng)以便進(jìn)行操作。在引導(dǎo)過程期間,固件將系統(tǒng)硬件表示(represent)成 帶有附屬設(shè)備的互連總線的分級(jí)體系。這種分級(jí)表示通常描述用戶配置選支持例程。 、 — 、 — 、另外,固件通過從某個(gè)存儲(chǔ)位置/設(shè)備加載(引導(dǎo))操作系統(tǒng)來準(zhǔn)備該 計(jì)算機(jī)系統(tǒng)以便進(jìn)行操作。在單機(jī)計(jì)算機(jī)系統(tǒng)的正常操作期間,當(dāng)用戶向 計(jì)算機(jī)發(fā)出引導(dǎo)命令時(shí),計(jì)算機(jī)響應(yīng)于該引導(dǎo)命令,嘗試從該計(jì)算機(jī)系統(tǒng) 的本地存儲(chǔ)器檢索操作系統(tǒng)文件。還需要配置數(shù)據(jù)文件來用特定硬件配置 所必須的硬件參數(shù)來配置特定系統(tǒng)。某些計(jì)算機(jī)系統(tǒng)經(jīng)由網(wǎng)絡(luò)連接到服務(wù)器或網(wǎng)絡(luò)可訪問的其它設(shè)備。在 使用單機(jī)系統(tǒng)(其中當(dāng)關(guān)斷電源時(shí)在本地維護(hù)計(jì)算機(jī)的存儲(chǔ)裝置)時(shí),OS 典型地存儲(chǔ)在計(jì)算機(jī)系統(tǒng)自身中。在具有當(dāng)關(guān)斷電源時(shí)會(huì)丟失的臨時(shí)(易 失性)存儲(chǔ)裝置的其它系統(tǒng)中(或者甚至在使用具有有限的非易失性存儲(chǔ) 能力的系統(tǒng)時(shí)),計(jì)算機(jī)不能從該計(jì)算機(jī)自身內(nèi)檢索引導(dǎo)信息。在這些情形下,計(jì)算機(jī)系統(tǒng)的固件可配置成經(jīng)由網(wǎng)絡(luò)向用作引導(dǎo)服務(wù)器的服務(wù)器發(fā)送針對(duì)OS文件的請(qǐng)求。遠(yuǎn)程引導(dǎo)操作在分布式和網(wǎng)絡(luò)計(jì)算的世界中變得常見,特別是在具備從引導(dǎo)服務(wù)器進(jìn)行引導(dǎo)的優(yōu)勢(shì)的情況下,諸如節(jié)省計(jì) 算機(jī)系統(tǒng)的有限的存儲(chǔ)器資源。當(dāng)創(chuàng)造出新設(shè)備時(shí),現(xiàn)有計(jì)算機(jī)系統(tǒng)典型地不能從這些新設(shè)備引導(dǎo)客 戶端程序或操作系統(tǒng),除非固件提供對(duì)該引導(dǎo)過程的某種類型的支持。當(dāng) 新設(shè)備不適合先前所定義的設(shè)備類型或系統(tǒng)中典型地存在的標(biāo)準(zhǔn)設(shè)備類型 時(shí),現(xiàn)有系統(tǒng)(在缺少特別提供的固件的情況下)不具備完成針對(duì)新設(shè)備 的引導(dǎo)過程的這種能力是尤其正確的。正被更加頻繁地使用但尚未被提供直接固件支持的 一種這樣的新設(shè)備是因特網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口 ( iSCSI)設(shè)備。iSCSI協(xié)議允許客戶端系統(tǒng)使用iSCSI啟動(dòng)器來連接諸如IP網(wǎng)絡(luò)上的 磁盤或磁帶驅(qū)動(dòng)器之類的遠(yuǎn)程目標(biāo)以便進(jìn)行塊級(jí)輸入/輸出(I/O) 。 SCSI 體系結(jié)構(gòu)是基于客戶端/服務(wù)器模型,其中客戶端("啟動(dòng)器")典型地是 發(fā)出請(qǐng)求以讀或?qū)憯?shù)據(jù)的諸如文件服務(wù)器之類的主機(jī)系統(tǒng),而服務(wù)器("目 標(biāo)")是對(duì)客戶端請(qǐng)求做出響應(yīng)的諸如磁盤陣列之類的資源。服務(wù)器(目 標(biāo))包括一個(gè)或多個(gè)被分配有標(biāo)識(shí)號(hào)或邏輯單元號(hào)(LUN)的邏輯單元。 本領(lǐng)域的技術(shù)人員熟知iSCSI協(xié)議和它的一般實(shí)現(xiàn)。在IETF(因特網(wǎng)工程 任務(wù)組)的RFC儲(chǔ)存庫中公布的RFC 3720: Internet Small Computer Systems Interface (iSCSI)中可獲得該協(xié)議的更多描述。因?yàn)閕SCSI協(xié)議還未被完全集成進(jìn)諸如由固件指導(dǎo)的遠(yuǎn)程引導(dǎo)操作之 類的現(xiàn)有系統(tǒng)功能,所以常規(guī)系統(tǒng)使用若干現(xiàn)有發(fā)現(xiàn)協(xié)議以從公知服務(wù)器 獲得關(guān)于iSCSI客戶端和目標(biāo)的信息。由IETF RFC 4173在網(wǎng)站 "www.ietf.org/rfc/rfc4173.txt"上在線發(fā)表的標(biāo)題為"Bootstrapping Clients using the iSCSI Protocol"的文章內(nèi)提供了對(duì)這些現(xiàn)有發(fā)現(xiàn)協(xié)議的 描述。然而,當(dāng)前沒有任何高效方法,用以提供用來從iSCSI設(shè)備(目標(biāo)) 引導(dǎo)操作系統(tǒng)的受指導(dǎo)的引導(dǎo)過程。因此,本發(fā)明認(rèn)識(shí)到存在以下需求由iSCSI客戶端從iSCSI設(shè)備(目標(biāo))高效地引導(dǎo)它的操作系統(tǒng),而無需 完全重新設(shè)計(jì)/修改現(xiàn)有的遠(yuǎn)程引導(dǎo)過程和發(fā)現(xiàn)協(xié)議。網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)在計(jì)算機(jī)領(lǐng)域中是眾所周知的。利用普通文件傳送協(xié)議(TFTP)從位于跨網(wǎng)絡(luò)的遠(yuǎn)程服務(wù)器加載計(jì)算機(jī)系統(tǒng)的引導(dǎo)映像/文件 的通用方法也是已知的。特別地,當(dāng)在諸如局域網(wǎng)(LAN)的網(wǎng)絡(luò)上引導(dǎo) 計(jì)算機(jī)系統(tǒng)(即,網(wǎng)絡(luò)設(shè)備)時(shí),計(jì)算機(jī)系統(tǒng)的固件通常利用TFTP自舉 (bootstrap )方法來從跨網(wǎng)絡(luò)的引導(dǎo)服務(wù)器/設(shè)備獲得引導(dǎo)文件。利用該TFTP自舉方法,提供了網(wǎng)絡(luò)支持包來協(xié)助網(wǎng)絡(luò)引導(dǎo)操作。具 體而言,網(wǎng)絡(luò)支持包利用TFTP自舉方法來檢索和/或定義訪問和檢索位于 引導(dǎo)服務(wù)器處的引導(dǎo)映像/文件所需要的特定引導(dǎo)變?cè)?boot arguments )。 網(wǎng)絡(luò)支持包還處理從計(jì)算機(jī)系統(tǒng)獲得的引導(dǎo)變?cè)?,并且建立與遠(yuǎn)程服務(wù)器 的連接來獲得引導(dǎo)文件。可以在由開放固件工作組(Open Firmware Working Group )發(fā)布的開i文固件推薦*見考呈(Open Firmware Recommended Practice) : TFTP引導(dǎo)擴(kuò)展版本1.0 (TFTP Booting Extension Version 1.0 )中找到關(guān)于利用網(wǎng)絡(luò)支持包來啟用經(jīng)由TFTP自舉 從位于跨LAN的引導(dǎo)服務(wù)器加載引導(dǎo)映像的概要信息。雖然以上TFTP自舉方法被應(yīng)用于標(biāo)準(zhǔn)的基于LAN的和其它類似配 置的網(wǎng)絡(luò)內(nèi)并且運(yùn)行良好,但是已經(jīng)證明這樣的方法在不同的網(wǎng)絡(luò)配置或 網(wǎng)絡(luò)類型的情況下并不有效。舉例來說,TFTP自舉方法在InfiniBand( IB, 無限帶寬)網(wǎng)絡(luò)的情況下無效。如本領(lǐng)域中已知的,InfiniBand (IB)網(wǎng)絡(luò)是一種分組交換的窄并行 (narrow parallel)網(wǎng)絡(luò),其操作于高數(shù)據(jù)速率和大物理范圍,從而將遠(yuǎn) 程設(shè)備互連至主計(jì)算機(jī)系統(tǒng)(或服務(wù)器)。IB網(wǎng)絡(luò)包括將主計(jì)算機(jī)系統(tǒng)耦 合至子網(wǎng)的主機(jī)通道適配器(HCA)。該網(wǎng)絡(luò)進(jìn)一步包括一個(gè)或多個(gè)目標(biāo) 通道適配器(TCA),而這一個(gè)或多個(gè)目標(biāo)通道適配器(TCA)又將其它 設(shè)^M合至子網(wǎng)。子網(wǎng)通常包括至少 一個(gè)交換機(jī)以及將HCA和TCA連接 到交換機(jī)的多條鏈路。例如,簡(jiǎn)單的IB網(wǎng)絡(luò)可以具有一個(gè)交換機(jī),HCA 和TCA通過相應(yīng)的鏈路連接至該交換機(jī)。IB網(wǎng)絡(luò)常常經(jīng)由適配器和路由器連接至局域或廣域通信網(wǎng)絡(luò)。例如, 可以利用以太網(wǎng)適配器來啟用在以太網(wǎng)上的通信。網(wǎng)絡(luò)適配器具有其自己 的TCA,作為IB網(wǎng)絡(luò)內(nèi)用于耦合于以太網(wǎng)的端節(jié)點(diǎn)。IB規(guī)范進(jìn)一步提供了 一種原始數(shù)據(jù)報(bào)通信模式,其橋接從以太網(wǎng)接收到的分組用于在IB網(wǎng)絡(luò) 上傳輸,并且反之亦然。類似地,IB網(wǎng)絡(luò)可以包括連接至因特網(wǎng)的路由器 或適配器。假定提高對(duì)完成計(jì)算機(jī)設(shè)備的引導(dǎo)的遠(yuǎn)程引導(dǎo)操作的信賴,并且諸如 IB網(wǎng)絡(luò)這樣的新網(wǎng)絡(luò)的復(fù)雜性增加,那么需要擴(kuò)展在LAN內(nèi)完成的遠(yuǎn)程 引導(dǎo)過程,以便使得主計(jì)算機(jī)能夠完成來自位于跨IB網(wǎng)絡(luò)的引導(dǎo)服務(wù)器的 遠(yuǎn)程引導(dǎo)過程。目前還沒有支持經(jīng)由連接至IB結(jié)構(gòu)的網(wǎng)絡(luò)設(shè)備的標(biāo)準(zhǔn)網(wǎng)絡(luò) 引導(dǎo)過程來無縫實(shí)現(xiàn)網(wǎng)絡(luò)引導(dǎo)操作的開放固件,其中該引導(dǎo)i殳備直接連接 至IB結(jié)構(gòu)或連接至耦合于IB結(jié)構(gòu)的端節(jié)點(diǎn)的外部網(wǎng)絡(luò)。網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)通常在本領(lǐng)域中是公知的。用于通過網(wǎng)絡(luò)從遠(yuǎn)程51導(dǎo) 服務(wù)器加載計(jì)算機(jī)系統(tǒng)的引導(dǎo)映像的常規(guī)方法也是7>知的。當(dāng)通過網(wǎng)絡(luò)引 導(dǎo)計(jì)算機(jī)系統(tǒng)時(shí),計(jì)算機(jī)系統(tǒng)的固件通常使用簡(jiǎn)單文件傳輸協(xié)議(TFTP) 通過網(wǎng)絡(luò)從引導(dǎo)設(shè)備獲取引導(dǎo)文件。提供了網(wǎng)絡(luò)支持包以通過處理從計(jì)算 機(jī)系統(tǒng)獲取的引導(dǎo)變?cè)约敖⑴c遠(yuǎn)程服務(wù)器的連接來幫助此遠(yuǎn)程(網(wǎng)絡(luò)) 引導(dǎo)操作獲取引導(dǎo)文件。網(wǎng)絡(luò)支持包使用TFTP自舉方法來檢索和/或定義 特定的引導(dǎo)變?cè)?。有關(guān)使用網(wǎng)絡(luò)支持包以使能從遠(yuǎn)程引導(dǎo)服務(wù)器加載引導(dǎo) 映像的一般信息可以在Open Firmware Recommended Practice: TFTP Booting Extension Version 1.0 (其由Open Firmware Working Group發(fā) 布)中找到。標(biāo)準(zhǔn)網(wǎng)絡(luò)支持包使用TFTP自舉方法以通過網(wǎng)絡(luò)引導(dǎo)系統(tǒng)。TFTP自 舉方法的引導(dǎo)變?cè)峁┝酥付ㄗ耘e協(xié)議(BOOTP )協(xié)議以查找引導(dǎo)服務(wù)器 和引導(dǎo)文件的選項(xiàng)。因此,引導(dǎo)變?cè)漠?dāng)前(現(xiàn)有)定義提供了例如使用 BOOTP而不是RARP/ARP (地址解析協(xié)議)以查找引導(dǎo)服務(wù)器并獲取引 導(dǎo)文件的選項(xiàng)。如果未指定BOOTP協(xié)議,則可以使用諸如RARP/ARP 之類的其他協(xié)議獲取引導(dǎo)文件。此外,使用常規(guī)方法,以IPv4格式(網(wǎng)際 協(xié)議版本4)指定所有表示網(wǎng)絡(luò)地址的變?cè)2粩嗟陌l(fā)展已導(dǎo)致創(chuàng)建更高級(jí)的IP格式,例如IPv6。但是,用于啟 用遠(yuǎn)程引導(dǎo)操作的現(xiàn)有變?cè)拖鄳?yīng)方法仍使用IPv4格式,因?yàn)橄惹吧形炊xIPv6格式。此外,使用現(xiàn)有方法,尚未將動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP) 視為用于TFTP自舉的備選引導(dǎo)發(fā)現(xiàn)協(xié)議。因此,本發(fā)明認(rèn)識(shí)到需要升級(jí) 遠(yuǎn)程引導(dǎo)操作的現(xiàn)有方法以便允許使用IPv6格式和DHCP獲取使用遠(yuǎn)程 服務(wù)器上存儲(chǔ)的引導(dǎo)文件來引導(dǎo)系統(tǒng)所需的信息。發(fā)明內(nèi)容公開了 一種使系統(tǒng)固件能夠從網(wǎng)絡(luò)連接的因特網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口 (iSCSI) i殳備高效地引導(dǎo)操作系統(tǒng)(OS)和/或客戶端程序的方法和系統(tǒng)。 該方法一般包括(1)定義iSCSI設(shè)備在表示系統(tǒng)硬件的分級(jí)數(shù)據(jù)結(jié)構(gòu)內(nèi) 的固件表示;以及(2)擴(kuò)展網(wǎng)絡(luò)支持包以容納額外的引導(dǎo)變?cè)擃~外的 引導(dǎo)變?cè)试S系統(tǒng)固件獲取從該網(wǎng)絡(luò)連接的iSCSI設(shè)備進(jìn)行引導(dǎo)所需的信 息,而同時(shí)使用現(xiàn)有發(fā)現(xiàn)協(xié)議之一。從以下理解中提供了本發(fā)明的特定方法為了從iSCSI設(shè)備引導(dǎo)系統(tǒng), 該系統(tǒng)的引導(dǎo)固件需要識(shí)別iSCSI硬件或使能iSCSI軟件啟動(dòng)器、標(biāo)識(shí) iSCSI客戶端和目標(biāo)iSCSI設(shè)備、與該目標(biāo)建立通信、以及從該目標(biāo)加載 引導(dǎo)文件。表示設(shè)備的固件數(shù)據(jù)結(jié)構(gòu)的這種分級(jí)性質(zhì)允許信息在父設(shè)備和 子設(shè)備之間以及在設(shè)備與支持包之間進(jìn)行傳遞。根據(jù)一個(gè)實(shí)施例,iSCSI 設(shè)備類型被表征為類網(wǎng)絡(luò)的設(shè)備類型,目的是支持(leverage )已擴(kuò)展的網(wǎng) 絡(luò)支持包并因此使用網(wǎng)絡(luò)服務(wù)來發(fā)現(xiàn)和獲取iSCSI設(shè)備地址的不同分量。 通過這種分級(jí)表示,iSCSI設(shè)備提供網(wǎng)絡(luò)專用引導(dǎo)參數(shù)(例如速度、模式 等等)并將那些引導(dǎo)參數(shù)傳遞給網(wǎng)絡(luò)支持包。網(wǎng)絡(luò)支持包獲取并處理iSCSI設(shè)備地址中的分量并將那些變?cè)?也即引導(dǎo)參數(shù))傳遞給盤支持包(disk support package)。接著,盤支持包加載引導(dǎo)映像并將OS轉(zhuǎn)發(fā)給iSCSI 客戶端以使能在iSCSI客戶端處完成對(duì)OS的引導(dǎo)。公開了一種方法和系統(tǒng),用于使得InfiniBand (IB)主計(jì)算機(jī)設(shè)備能 夠通過IB網(wǎng)絡(luò)叢遠(yuǎn)程引導(dǎo)設(shè)備引導(dǎo)操作系統(tǒng)。增強(qiáng)所述設(shè)備的固件,以便 在表示計(jì)算機(jī)設(shè)備的硬件的層次數(shù)據(jù)結(jié)構(gòu)內(nèi)提供IB主機(jī)通道適配器 (HCA)的表示。相應(yīng)地,定義新的設(shè)備類型,"hca"設(shè)備類型,其表 示IB HCA。 hca設(shè)備在層次固件數(shù)據(jù)結(jié)構(gòu)內(nèi)通過節(jié)點(diǎn)全局唯一標(biāo)識(shí)符(node-GUID)來描述特征。所述hca設(shè)備含有用于開啟和關(guān)閉設(shè)備的接 口以及從設(shè)備讀取和寫入設(shè)備的接口 。所述"hca,,設(shè)備包括多個(gè)"子設(shè)備,,, 其被稱為"ib端口 ( ibport ),,設(shè)備,并且由端口全局唯一標(biāo)識(shí)符(port-GUID ) 來標(biāo)識(shí)。除了為父hca設(shè)備定義的開啟、關(guān)閉、讀和寫接口以外,ib端口 設(shè)備還包括使得該設(shè)備能夠被用作引導(dǎo)設(shè)備的加載接口 。創(chuàng)建"ib-引導(dǎo)(ib-boot),,支持包來協(xié)助封裝用于使用ib端口設(shè)備通 過IB網(wǎng)絡(luò)進(jìn)行引導(dǎo)的變?cè)⑶叶x引導(dǎo)變?cè)瘉碛伤鰅b-引導(dǎo)支持包 利用。所述ib-引導(dǎo)支持包對(duì)指定目標(biāo)IB端節(jié)點(diǎn)以及一個(gè)或多個(gè)關(guān)鍵字的 引導(dǎo)變?cè)M(jìn)行處理。在一個(gè)實(shí)施例中,所述ib-引導(dǎo)支持包還實(shí)現(xiàn)特定的分 組傳送協(xié)議,當(dāng)通過IB網(wǎng)絡(luò)進(jìn)行引導(dǎo)時(shí),通常通過hca設(shè)備驅(qū)動(dòng)器來利用 所述特定的分組傳送協(xié)議。利用固件結(jié)構(gòu)的層次特性,基于指定關(guān)鍵字來將這些IB專用變?cè)?IB -specific arguments)傳遞至適當(dāng)?shù)闹С职员阃瓿梢龑?dǎo)處理。在一個(gè) 實(shí)施例中,提供了兩個(gè)關(guān)鍵字,各自標(biāo)識(shí)網(wǎng)絡(luò)支持包和套接字直接協(xié)議(Sockets Direct Protocol, SDP )支持包中特定的一個(gè)。第一關(guān)鍵字指定 將要實(shí)現(xiàn)IPoIB(基于IB的網(wǎng)際協(xié)議(IP))網(wǎng)絡(luò)引導(dǎo)方法,由此使用IPoIB 網(wǎng)絡(luò)協(xié)議來到達(dá)引導(dǎo)服務(wù)器并且找到引導(dǎo)文件。第二關(guān)鍵字指定將要實(shí)現(xiàn) IB網(wǎng)絡(luò)引導(dǎo)方法,由此使用SDP網(wǎng)絡(luò)協(xié)議來訪問引導(dǎo)設(shè)備。因而通過支 持包之一提供了對(duì)所述引導(dǎo)服務(wù)器的訪問,并且經(jīng)由IB網(wǎng)絡(luò)將引導(dǎo)映像返 回給主機(jī)設(shè)備用于完成引導(dǎo)操作。披露了一種擴(kuò)展網(wǎng)絡(luò)支持包的功能以接受IPv6格式的網(wǎng)絡(luò)地址并允 許使用諸如動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)之類的其他引導(dǎo)發(fā)現(xiàn)協(xié)議以便獲 取使用來自遠(yuǎn)程引導(dǎo)服務(wù)器的引導(dǎo)文件引導(dǎo)系統(tǒng)所需的信息的方法和系 統(tǒng)。向所述網(wǎng)絡(luò)支持包添加了一種機(jī)制以使能/允許支持其他引導(dǎo)發(fā)現(xiàn)協(xié)議 和其他網(wǎng)絡(luò)地址格式。所述機(jī)制定義了添加到51導(dǎo)變?cè)⒂伤鼍W(wǎng)絡(luò)支持 包處理的限定符關(guān)鍵字。所述限定符關(guān)鍵字通過指定獲取變?cè)?即,特定 的引導(dǎo)發(fā)現(xiàn)協(xié)議)、變?cè)袷揭约芭c變?cè)P(guān)聯(lián)的其他參數(shù)的方法來修改與自舉方法關(guān)聯(lián)的引導(dǎo)變?cè)?蛇x地在與所迷自舉方法關(guān)聯(lián)的變?cè)爸付?限定符關(guān)鍵字以便修改引導(dǎo)變?cè)奶幚怼?一次可以向引導(dǎo)變?cè)砑佣鄠€(gè)限定符關(guān)鍵字,并且可以按照關(guān)鍵字在所述變?cè)械捻樞騺響?yīng)用所述關(guān)鍵字。在一個(gè)實(shí)施例中,定義了兩個(gè)限定符關(guān)鍵字,即ipv6和dhcp。可選 地將ipv6關(guān)鍵字添加在第一引導(dǎo)變?cè)耙灾甘緦⑹褂肐Pv6格式來表達(dá) 引導(dǎo)變?cè)刑峁┑娜魏尉W(wǎng)絡(luò)地址。沒有關(guān)鍵字"ipv6"指示以IPv4格式表 達(dá)所有網(wǎng)絡(luò)地址。dhcp關(guān)鍵字用于指示網(wǎng)絡(luò)支持包應(yīng)使用DHCP服務(wù)器 來獲取引導(dǎo)參數(shù)??梢钥蛇x地提供diaddr值以指定要使用的DHCP服務(wù) 器的因特網(wǎng)地址。否則,所述網(wǎng)絡(luò)支持包執(zhí)行廣播查詢以查找DHCP服務(wù) 器。diaddr值以IPv6或IPv4表示法表達(dá),具體取決于是否指定了可選的 限定符關(guān)鍵字ipv6。公開了一種方法和系統(tǒng),用于使得InfiniBand (IB)主計(jì)算機(jī)設(shè)備能 夠通過IB網(wǎng)絡(luò)從遠(yuǎn)程存儲(chǔ)設(shè)備引導(dǎo)操作系統(tǒng)。增強(qiáng)所述設(shè)備的固件,以便 在表示計(jì)算機(jī)設(shè)備的硬件的層次數(shù)據(jù)結(jié)構(gòu)內(nèi)提供IB主機(jī)通道適配器 (HCA)的表示。相應(yīng)地,定義新的設(shè)備類型,"hca"設(shè)備類型,其表 示IB HCA。 hca設(shè)備在層次固件數(shù)據(jù)結(jié)構(gòu)內(nèi)通過節(jié)點(diǎn)全局唯一標(biāo)識(shí)符來描 述特征。所述hca設(shè)備含有用于開啟和關(guān)閉設(shè)備的接口以及從設(shè)備讀取和 寫入設(shè)備的接口。所述"hca"設(shè)備可以具有一個(gè)或多個(gè)"子設(shè)備",其被 稱為"ib端口 (ibport)"設(shè)備,并且由端口全局唯一標(biāo)識(shí)符來標(biāo)識(shí)。除 了為父hca設(shè)備定義的開啟、關(guān)閉、讀和寫接口以外,ib端口設(shè)備還包括 使得該設(shè)備能夠被用作引導(dǎo)設(shè)備的加載接口 。提供"ib-引導(dǎo)(ib-boot)"支持包,并且定義引導(dǎo)變?cè)员阌伤?ib-引導(dǎo)支持包利用。所述ib-引導(dǎo)支持包接收隨特定關(guān)鍵字一起指定目標(biāo) IB端節(jié)點(diǎn)的引導(dǎo)變?cè)?。利用固件結(jié)構(gòu)的層次特性,基于指定關(guān)鍵字來將這 些IB專用變?cè)?IB-specific arguments)傳遞至適當(dāng)?shù)闹С职?,?更完成 引導(dǎo)處理。所述ib-引導(dǎo)支持包還實(shí)現(xiàn)特定的分組傳送協(xié)議,當(dāng)通過IB網(wǎng) 絡(luò)進(jìn)行引導(dǎo)時(shí),通過hca設(shè)備驅(qū)動(dòng)器來利用所述特定的分組傳送協(xié)議。在一個(gè)實(shí)施例中,提供了特定關(guān)鍵字,其標(biāo)識(shí)SCSI(小型計(jì)算機(jī)系統(tǒng) 接口 ) RDMA (遠(yuǎn)程直接存儲(chǔ)器訪問)協(xié)議—SRP—支持包。所述SRP支 持包指定將要實(shí)現(xiàn)存儲(chǔ)器引導(dǎo)方法,由此,利用SRP來通過IB結(jié)構(gòu)傳輸 SCSI命令以及訪問引導(dǎo)設(shè)備。主機(jī)設(shè)備然后從通過通道適配器連接至I/O結(jié)構(gòu)的存儲(chǔ)設(shè)備(引導(dǎo)服務(wù)器)讀取數(shù)據(jù)塊(包括引導(dǎo)映像)。因而通過所述SRP支持包提供了對(duì)所述引導(dǎo)服務(wù)器的訪問,并且經(jīng)由IB網(wǎng)絡(luò)將所 述引導(dǎo)映像返回至所述主機(jī)設(shè)備用于完成所述主機(jī)設(shè)備的引導(dǎo)操作。本發(fā)明的上述以及其它的目的、特征、和優(yōu)點(diǎn)在以下詳細(xì)寫出的描述 中將變得明顯。
當(dāng)結(jié)合附圖進(jìn)行閱讀時(shí),通過參考以下對(duì)說明性實(shí)施例的詳細(xì)描述, 將最佳地理解本發(fā)明自身以及優(yōu)選的使用模式、其它目的、以及其優(yōu)點(diǎn), 在附圖中圖1A是圖示根據(jù)本發(fā)明的一個(gè)實(shí)施例的經(jīng)由網(wǎng)絡(luò)耦合到因特網(wǎng)小型 計(jì)算機(jī)系統(tǒng)接口 (iSCSI)設(shè)備(目標(biāo))的示例計(jì)算機(jī)系統(tǒng)(客戶端)的框圖;圖1B是圖示根據(jù)本發(fā)明的一個(gè)實(shí)施例的圖1A中的計(jì)算機(jī)系統(tǒng)的內(nèi)部 布局(硬件和軟件結(jié)構(gòu))的框圖;圖1C圖示根據(jù)本發(fā)明的一個(gè)說明性實(shí)施例的示例過程流程,通過該 示例過程流程,系統(tǒng)固件將變?cè)蛥?shù)傳輸給網(wǎng)絡(luò)支持包并最終傳輸給 iSCSI設(shè)備(目標(biāo))以使能從該iSCSI設(shè)備檢索并引導(dǎo)OS;圖ID是圖示根據(jù)本發(fā)明的說明性實(shí)施例的、表示在固件生成的分級(jí) 結(jié)構(gòu)內(nèi)的iSCSI設(shè)備以及傳送引導(dǎo)參數(shù)給網(wǎng)絡(luò)支持包的過程的流程圖;圖IE是圖示根據(jù)本發(fā)明的說明性實(shí)施例的、經(jīng)由所選發(fā)現(xiàn)過程檢索 額外引導(dǎo)變?cè)靡詡魉徒oiSCSI設(shè)備(目標(biāo))的過程的流程圖;圖1F是圖示根據(jù)本發(fā)明的一個(gè)實(shí)施例的、與遠(yuǎn)程SCSI設(shè)備建立iSCSI流程圖;圖2A是根據(jù)本發(fā)明的一個(gè)實(shí)施例,在InfiniBand (IB)網(wǎng)絡(luò)內(nèi)的主 計(jì)算機(jī)設(shè)備的主要硬件組件的高級(jí)框圖;圖2B依照本發(fā)明的說明性實(shí)施例說明了示例流程,通過該流程,在 固件生成的層次結(jié)構(gòu)內(nèi)表示了 IB主機(jī)通道適配器(HCA),并且將引導(dǎo)參數(shù)傳送至ib-引導(dǎo)支持包;圖2C是根據(jù)本發(fā)明的一個(gè)實(shí)施例的框圖,其說明了共同在如圖2A所 提供的IB網(wǎng)絡(luò)上啟用遠(yuǎn)程引導(dǎo)的互連功能組件(硬件、固件和軟件結(jié)構(gòu));圖2D依照本發(fā)明的一個(gè)實(shí)施例說明了示例流程,通過該流程,ib-引 導(dǎo)支持包處理引導(dǎo)變?cè)⑶疫x擇網(wǎng)絡(luò)支持包或SDP支持包來轉(zhuǎn)發(fā)該引導(dǎo) 變?cè)糜谕瓿蛇h(yuǎn)程引導(dǎo)處理;圖2E根據(jù)本發(fā)明的一個(gè)說明性實(shí)施例說明了示例流程,通過該流程, 網(wǎng)絡(luò)支持包處理從ib-引導(dǎo)支持包接收的引導(dǎo)變?cè)⑶覍?shí)現(xiàn)一系列過程以 便訪問適當(dāng)?shù)陌l(fā)現(xiàn)服務(wù)器(discovery server )從而獲得附力口引導(dǎo)'參數(shù)來訪 問引導(dǎo)設(shè)備;圖2F是依照本發(fā)明的說明性實(shí)施例說明了一過程的流程圖,通過該 過程,SDP包處理從ib-引導(dǎo)支持包接收的引導(dǎo)變?cè)员阃瓿山?jīng)由IB端 節(jié)點(diǎn)加載來自引導(dǎo)服務(wù)器的引導(dǎo)映像;圖3A是示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的通過網(wǎng)絡(luò)連接到因特網(wǎng)小 型計(jì)算機(jī)系統(tǒng)接口 (iSCSI)設(shè)備(引導(dǎo)服務(wù)器或目標(biāo))的示例計(jì)算機(jī)系統(tǒng) (客戶端)的方塊圖;圖3B示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的計(jì)算機(jī)系統(tǒng)的系統(tǒng)固 件借助其將擴(kuò)展有特定關(guān)鍵字的引導(dǎo)變?cè)獋魉偷揭研薷木W(wǎng)絡(luò)支持包(此支 持包最終訪問DHCP服務(wù)器來獲取引導(dǎo)參數(shù))的示例過程流;圖3C是示出了根據(jù)本發(fā)明的示例性實(shí)施例的網(wǎng)絡(luò)支持包借助其處理 擴(kuò)展引導(dǎo)變?cè)员闶褂肐Pv6地址格式以及從DHCP服務(wù)器檢索的參數(shù)來 完成從引導(dǎo)服務(wù)器加載引導(dǎo)映像的過程的流程圖;圖4A是根據(jù)本發(fā)明的一個(gè)實(shí)施例,在InfiniBand (IB)網(wǎng)絡(luò)內(nèi)的主 計(jì)算機(jī)設(shè)備的主要硬件組件的高級(jí)框圖;圖4B根據(jù)本發(fā)明的一個(gè)方面說明了示例流程,通過該流程,計(jì)算機(jī) 系統(tǒng)的系統(tǒng)固件處理被傳輸至ib-引導(dǎo)支持包的引導(dǎo)變?cè)?;圖4C是才艮據(jù)本發(fā)明的一個(gè)實(shí)施例的框圖,其說明了通過支持包(包 括SRP支持包)共同在IB網(wǎng)絡(luò)上啟用遠(yuǎn)程引導(dǎo)的互連功能組件(硬件、 固件和軟件結(jié)構(gòu));圖4D依照本發(fā)明的一個(gè)實(shí)施例說明了示例流程,通過該流程,ib-引 導(dǎo)支持包處理引導(dǎo)變?cè)⑶疫x擇SCSI (小型計(jì)算機(jī)系統(tǒng)接口 ) RDMA (遠(yuǎn) 程直接存儲(chǔ)器訪問)協(xié)議-SRP-支持包來轉(zhuǎn)發(fā)該引導(dǎo)變?cè)糜谕瓿蛇h(yuǎn)程引 導(dǎo)處理;以及圖4E根據(jù)本發(fā)明的一個(gè)說明性實(shí)施例說明了示例流程,通過該流程, SRP支持包處理從ib-引導(dǎo)支持包接收的引導(dǎo)變?cè)⑶覇?dòng)對(duì)引導(dǎo)設(shè)備的 訪問以及檢索引導(dǎo)映像。
具體實(shí)施方式
本發(fā)明提供一種使系統(tǒng)固件能夠從網(wǎng)絡(luò)連接的因特網(wǎng)小型計(jì)算機(jī)系統(tǒng) 接口 (iSCSI)設(shè)備高效地引導(dǎo)操作系統(tǒng)(OS)和/或客戶端程序的方法和 系統(tǒng)。該方法一般包括(1)定義iSCSI設(shè)備在表示系統(tǒng)硬件的分級(jí)數(shù)據(jù) 結(jié)構(gòu)內(nèi)的固件表示;以及(2)擴(kuò)展網(wǎng)絡(luò)支持包以容納額外的引導(dǎo)變?cè)?,?額外的引導(dǎo)變?cè)试S系統(tǒng)固件獲取從該網(wǎng)絡(luò)連接的iSCSI設(shè)備進(jìn)行引導(dǎo)所 需的信息,而同時(shí)使用現(xiàn)有發(fā)現(xiàn)協(xié)議之一。在以下對(duì)本發(fā)明的示例實(shí)施例的詳細(xì)描述中,足夠詳細(xì)地描述了其中可實(shí)現(xiàn)本發(fā)明的具體示例實(shí)施例,以使本領(lǐng)域的技術(shù)人員能夠?qū)崿F(xiàn)本發(fā)明, 并且應(yīng)當(dāng)理解,還可使用其它實(shí)施例,以及在不偏離本發(fā)明的精神或范圍 的條件下可做出邏輯的、體系結(jié)構(gòu)的、程序的、機(jī)械的、電氣的以及其它的改變。由此,以下詳細(xì)描述不是理解為限制的意思,并且本發(fā)明的范圍 僅由所附各權(quán)利要求限定。在對(duì)附圖的描述中,類似的組件被提供與先前圖中的那些組件相類似 的名字和標(biāo)號(hào)。當(dāng)后面的圖在不同環(huán)境中使用該組件或使用具有不同功能的該組件時(shí),該組件被提供表示該圖號(hào)的不同前導(dǎo)數(shù)字(例如llxx用于圖 1A以及12xx用于圖IB)。分配給組件的具體數(shù)字僅被提供用以幫助進(jìn)行 描述并且其意思不是暗示對(duì)本發(fā)明的任何限制(結(jié)構(gòu)的或功能的)。現(xiàn)在參考附圖,圖1A是圖示對(duì)經(jīng)由網(wǎng)絡(luò)1160連接到遠(yuǎn)程iSCSI設(shè)備 (1170)(例如,網(wǎng)絡(luò)存儲(chǔ)裝置、引導(dǎo)服務(wù)器、或目標(biāo))的計(jì)算機(jī)系統(tǒng)1100 以及一個(gè)或多個(gè)信息源1180的結(jié)構(gòu)性表示的框圖。貫穿對(duì)說明性實(shí)施例的該描述,iSCSI設(shè)備1170可以可互換地稱為"目標(biāo)"或者"iSCSI服務(wù)器,, 或"引導(dǎo)服務(wù)器"。計(jì)算機(jī)系統(tǒng)1100還可稱為"啟動(dòng)器"或"客戶端"或 者"客戶端設(shè)備"或"iSCSI客戶端"。計(jì)算機(jī)系統(tǒng)1100可以是個(gè)人計(jì)算 機(jī)、服務(wù)器、移動(dòng)或手持電子設(shè)備、或者其它數(shù)據(jù)處理設(shè)備。網(wǎng)絡(luò)1160 可以是局域網(wǎng)、城域網(wǎng)、廣域網(wǎng)、或其它類型的計(jì)算機(jī)網(wǎng)絡(luò)。網(wǎng)絡(luò)1160 可以是有線或無線網(wǎng)絡(luò)并可使用諸如因特網(wǎng)協(xié)議(IP)之類的無連接的分 組交換協(xié)議和/或其它網(wǎng)絡(luò)協(xié)議。計(jì)算機(jī)系統(tǒng)1100包括將計(jì)算機(jī)系統(tǒng)1100連接到網(wǎng)絡(luò)1160的網(wǎng)絡(luò)接口 設(shè)備1110。網(wǎng)絡(luò)接口設(shè)備1110表示計(jì)算機(jī)系統(tǒng)1100的硬件部件并且可以是網(wǎng)絡(luò)接口卡(NIC)或集成的網(wǎng)絡(luò)設(shè)備(例如構(gòu)建到計(jì)算機(jī)系統(tǒng)1100中 的諸如母板之類的主電路板的網(wǎng)絡(luò)適配器)。設(shè)備驅(qū)動(dòng)器1120控制網(wǎng)絡(luò)接口設(shè)備1110,提供一種管道,通過所述 管道操作系統(tǒng)(OS) 1125以及計(jì)算機(jī)系統(tǒng)1100的應(yīng)用層中的一個(gè)或多個(gè) 軟件應(yīng)用1150可以與網(wǎng)絡(luò)1160進(jìn)行通信。設(shè)備驅(qū)動(dòng)器1120允許通過4吏用 網(wǎng)絡(luò)接口設(shè)備1110通過網(wǎng)絡(luò)1160來執(zhí)行數(shù)據(jù)存儲(chǔ)操作1130。例如,設(shè)備 驅(qū)動(dòng)器1120可包括iSCSI啟動(dòng)器,其允許SCSI命令在網(wǎng)絡(luò)1160上與存 儲(chǔ)目標(biāo)(iSCSI設(shè)備1170 )相互作用。設(shè)備驅(qū)動(dòng)器1120中的至少一個(gè)可支持通過網(wǎng)絡(luò)1160引導(dǎo)iSCSI設(shè)備 1170,在這種情況下iSCSI設(shè)備1170表示遠(yuǎn)程引導(dǎo)設(shè)備。作為遠(yuǎn)程引導(dǎo)設(shè) 備,iSCSI設(shè)備1170在經(jīng)由通過網(wǎng)絡(luò)1160完成的一系列過程將(操作系 統(tǒng)的)引導(dǎo)映像加載到計(jì)算機(jī)系統(tǒng)1100之前被初始化。iSCSI設(shè)備1170 可位于靠近或者遠(yuǎn)離計(jì)算機(jī)系統(tǒng)1100的物理空間。例如,iSCSI設(shè)備1170 可通過局域網(wǎng)1160 (例如,吉比特以太網(wǎng))連接到計(jì)算機(jī)系統(tǒng)1100并且 可與計(jì)算機(jī)系統(tǒng)1100位于相同的建筑、機(jī)架或機(jī)柜中。另外,設(shè)備驅(qū)動(dòng)器1120允許使用網(wǎng),口設(shè)備1110通過網(wǎng)絡(luò)1160 來執(zhí)行網(wǎng)絡(luò)業(yè)務(wù)操作1140。設(shè)備驅(qū)動(dòng)器1120中的至少一個(gè)可以向操作系 統(tǒng)將自身呈現(xiàn)為網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)器并支持通用網(wǎng)絡(luò)業(yè)務(wù)。因此,操作系統(tǒng)可 查看并與驅(qū)動(dòng)器1120之一交互作用,仿佛該驅(qū)動(dòng)器是在機(jī)器引導(dǎo)過程中的 總線驅(qū)動(dòng)器和存儲(chǔ)裝置驅(qū)動(dòng)器之后被加載的常規(guī)網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)器。所支持的網(wǎng)絡(luò)業(yè)務(wù)取決于實(shí)現(xiàn)可以包括多個(gè)不同的組網(wǎng)協(xié)議,諸如TCP/IP、 ODI (開放數(shù)據(jù)鏈路接口 ) 、 PXE (預(yù)引導(dǎo)執(zhí)行環(huán)境)、以及各種其它經(jīng)標(biāo)準(zhǔn) 化的和/或基于公司/操作系統(tǒng)的組網(wǎng)協(xié)議。通常,設(shè)備驅(qū)動(dòng)器1120允許計(jì) 算機(jī)系統(tǒng)IIOO使用多個(gè)組網(wǎng)協(xié)議與一個(gè)或多個(gè)信息源1180進(jìn)行通信。雖然計(jì)算機(jī)系統(tǒng)1100的設(shè)備驅(qū)動(dòng)器1120在圖1A中呈現(xiàn)在與操作系 統(tǒng)和硬件相分開的層中,但是應(yīng)當(dāng)理解,取決于實(shí)現(xiàn)設(shè)備驅(qū)動(dòng)器可在計(jì)算 機(jī)系統(tǒng)1100內(nèi)的不同環(huán)境中操作,從斷電、經(jīng)過引導(dǎo)序列、直到到達(dá)其中 操作系統(tǒng)被完全加載并控制了計(jì)算機(jī)系統(tǒng)1100的操作模式的操作模式。此 外,可以用硬件、固件和/或軟件來實(shí)現(xiàn)此處所描述的各種驅(qū)動(dòng)器功能。如上所述,設(shè)備驅(qū)動(dòng)器1120可支持對(duì)遠(yuǎn)程引導(dǎo)設(shè)備(iSCSI設(shè)備1170 ) 的引導(dǎo)并支持通用網(wǎng)絡(luò)業(yè)務(wù),而設(shè)備驅(qū)動(dòng)器1120中的至少一個(gè)可以向操作 系統(tǒng)將自身呈現(xiàn)為網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)器??梢酝ㄟ^使用iSCSI來完成對(duì)遠(yuǎn)程引 導(dǎo)設(shè)備的引導(dǎo),其中將SCSI命令封裝在TCP/IP協(xié)議中。iSCSI引導(dǎo)典型 地涉及通過一個(gè)或多個(gè)(通常是兩個(gè))iSCSI啟動(dòng)器來引導(dǎo)iSCSI目標(biāo)。 這些iSCSI啟動(dòng)器典型地是軟件/固件,其在計(jì)算機(jī)系統(tǒng)1100內(nèi)執(zhí)行并使 用現(xiàn)有網(wǎng)洛接口設(shè)備1110來經(jīng)由網(wǎng)絡(luò)1160訪問iSCSI目標(biāo)。iSCSI啟動(dòng) 器是對(duì)來自iSCSI目標(biāo)的數(shù)據(jù)的請(qǐng)求者/接收者,并且iSCSI目標(biāo)典型地在 其上存儲(chǔ)有數(shù)據(jù),該數(shù)據(jù)對(duì)于該iSCSI啟動(dòng)器是可訪問的并且是響應(yīng)于接 收到請(qǐng)求被返回的。在兩個(gè)iSCSI啟動(dòng)器的情況下,啟動(dòng)器中的一個(gè)或二 者可位于固件中或通過PXE來遞送。同樣,啟動(dòng)器中的一個(gè)可與計(jì)算機(jī)系 統(tǒng)IIOO正對(duì)其進(jìn)行引導(dǎo)的操作系統(tǒng)相接口。在某些實(shí)現(xiàn)中,并且如圖1A 內(nèi)所提供,計(jì)算機(jī)系統(tǒng)IIOO包括iSCSI TCP減載引擎(TOE) 1115,其 是代替軟件iSCSI啟動(dòng)器用于與目標(biāo)/iSCSI設(shè)備1170進(jìn)行通信而無需網(wǎng)絡(luò) 接口設(shè)備1110的獨(dú)立硬件設(shè)備。本領(lǐng)域的普通技術(shù)人員將意識(shí)到,圖1A中所描繪的硬件可以進(jìn)行變 更。例如,作為所描繪的硬件的補(bǔ)充或替代,可使用諸如光盤驅(qū)動(dòng)器等等 之類的其它外圍設(shè)備。因此,所描繪的例子意思不是暗示對(duì)于本發(fā)明的體 系結(jié)構(gòu)限制。圖1A中所描繪的計(jì)算機(jī)系統(tǒng)可以例如是紐約阿蒙克的國(guó)際 商業(yè)才幾器乂>司的產(chǎn)品的IBM eServer pSeries系統(tǒng)。在圖1A中,當(dāng)在計(jì)算機(jī)系統(tǒng)1100內(nèi)沒有提供iSCSI TOE時(shí),軟件 iSCSI啟動(dòng)器被提供給設(shè)備驅(qū)動(dòng)器并啟動(dòng)經(jīng)由網(wǎng)絡(luò)接口卡1110對(duì)目標(biāo) /iSCSI設(shè)備1170的連接。為了使能該操作,計(jì)算機(jī)系統(tǒng)固件加載總線驅(qū)動(dòng) 器。例如,操作系統(tǒng)中的許多當(dāng)前固件安裝允許在SCSI驅(qū)動(dòng)器插入點(diǎn)處 添加第三方SCSI驅(qū)動(dòng)器,并且設(shè)備驅(qū)動(dòng)器1120可以在引導(dǎo)序列中在該點(diǎn) 處被力口載。圖1B圖示示例設(shè)備驅(qū)動(dòng)器體系結(jié)構(gòu)和其它軟件部件,其使(圖1A中 的H十算機(jī)系統(tǒng)1100能夠在加栽操作系統(tǒng)之前經(jīng)由iSCSI TOE與網(wǎng)絡(luò)1160 (圖1A)進(jìn)行通信。在一個(gè)實(shí)施例中,設(shè)備驅(qū)動(dòng)器體系結(jié)構(gòu)使iSCSITOE 能夠在加載操作系統(tǒng)之前訪問網(wǎng)絡(luò)1160并連接到引導(dǎo)服務(wù)器設(shè)備(例如圖 1A中的目標(biāo)/iSCSI設(shè)備1170 )。在圖1B中,計(jì)算機(jī)系統(tǒng)是裝備有iSCSI TOE的iSCSI客戶端。如所 示出那樣,固件1225提供iSCSI總線設(shè)備驅(qū)動(dòng)器1220,其包括直接與網(wǎng) 絡(luò)進(jìn)行通信的iSCSI (硬件)接口設(shè)備1215。 iSCSl驅(qū)動(dòng)器1230包含它自 己的TCP/IP棧用以使能通過網(wǎng)絡(luò)對(duì)目標(biāo)/iSCSI設(shè)備的連接以檢索引導(dǎo)映 像。iSCSI驅(qū)動(dòng)器1230響應(yīng)于iSCSI引導(dǎo)操作生成iSCSI業(yè)務(wù)1235。在系 統(tǒng)引導(dǎo)期間,固件1225安裝iSCSI驅(qū)動(dòng)器1230和iSCSI總線設(shè)備驅(qū)動(dòng)器 1220以使能經(jīng)由iSCSI接口設(shè)備1215的iSCSI引導(dǎo)操作。在該驅(qū)動(dòng)器體 系結(jié)構(gòu)中,控制硬件接口的設(shè)備驅(qū)動(dòng)器(例如,iSCSI總線設(shè)備驅(qū)動(dòng)器1220) 區(qū)別接收到的對(duì)于機(jī)器總線命令的響應(yīng)和其它網(wǎng)絡(luò)業(yè)務(wù)。通過上述示例計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)環(huán)境,如下面所描述那樣實(shí)現(xiàn)了本發(fā)明 的各種特征。所描述的實(shí)施例引用了用于網(wǎng)絡(luò)設(shè)備的標(biāo)準(zhǔn)支持包。在由Open Firmware Working Group發(fā)表的Open Firmware Recommended Practice: TFTP Booting Extension Version 1.0 (已確認(rèn)在2006年8月22日發(fā)^jfr http:〃playground.sun.com/1275/practice/obptftp/tftpl_0.pdf#search=o/>22 Open%20Firmware%20Recommended%20Practice%3A%20TFTP%20B ooting%20Extension%20Version%201.0%22)中描述了該標(biāo)準(zhǔn)支持包。在 此,通過參考的方式并入與對(duì)本發(fā)明特征的描述相關(guān)的該文檔的內(nèi)容。本發(fā)明的各實(shí)施例的具體方法是從以下理解中進(jìn)行描述的,即為了從iSCSI設(shè)備引導(dǎo)系統(tǒng),該系統(tǒng)的引導(dǎo)固件1225需要識(shí)別iSCSI硬件(或使 能iSCSI軟件啟動(dòng)器)、標(biāo)識(shí)iSCSI客戶端和目標(biāo)iSCSI設(shè)備、與該目標(biāo) 建立通信、以及從該目標(biāo)加載引導(dǎo)文件。表示設(shè)備的固件數(shù)據(jù)結(jié)構(gòu)的這種 分級(jí)性質(zhì)允許信息在設(shè)備與支持包之間進(jìn)行傳遞。根據(jù)一個(gè)實(shí)施例,當(dāng)在計(jì)算機(jī)系統(tǒng)1100內(nèi)提供iSCSI TOE時(shí),該固 件將iSCSI啟動(dòng)器類型表征為類網(wǎng)絡(luò)的設(shè)備類型,目的是支持已擴(kuò)展的網(wǎng) 絡(luò)支持包并因此使用網(wǎng)絡(luò)服務(wù)來發(fā)現(xiàn)和獲取目標(biāo)iSCSI設(shè)備地址的不同分 量。通過這種分級(jí)表示,iSCSI設(shè)備(啟動(dòng)器)提供網(wǎng)絡(luò)專用引導(dǎo)參數(shù)(例 如速度、模式等等)并將那些引導(dǎo)參數(shù)傳遞給網(wǎng)絡(luò)支持包。網(wǎng)絡(luò)支持包獲 取并處理iSCSI設(shè)備地址中的分量并將那些變?cè)?也即引導(dǎo)參數(shù))傳遞給 盤支持包。接著,盤支持包加載引導(dǎo)映像并將引導(dǎo)映像轉(zhuǎn)發(fā)給iSCSI客戶 端以使能在iSCSI客戶端處完成對(duì)操作系統(tǒng)的引導(dǎo)。網(wǎng)絡(luò)支持包提供對(duì)于使用在遠(yuǎn)程服務(wù)器上發(fā)現(xiàn)的引導(dǎo)文件來引導(dǎo)系統(tǒng) 的支持。如在上面的參考內(nèi)所進(jìn)一步描述那樣,支持包還覆蓋自舉協(xié)議 (BOOTP )的使用以發(fā)現(xiàn)引導(dǎo)服務(wù)器并獲取使用已建立的引導(dǎo)變?cè)獦?biāo)準(zhǔn)組 的引導(dǎo)文件。本發(fā)明提供對(duì)網(wǎng)絡(luò)支持包的擴(kuò)^/增強(qiáng),以容納另外的新的引 導(dǎo)變?cè)?,該新的變?cè)试S網(wǎng)絡(luò)支持包通過使用發(fā)現(xiàn)協(xié)議來標(biāo)識(shí)iSCSI設(shè)備 地址分量。如此處所描述的實(shí)施例所提供的那樣,這些擴(kuò)展/增強(qiáng)適用于 iSCSI設(shè)備以及"網(wǎng)絡(luò),,設(shè)備。用于網(wǎng)絡(luò)設(shè)備的標(biāo)準(zhǔn)支持包提供對(duì)于使用在遠(yuǎn)程服務(wù)器上發(fā)現(xiàn)的引導(dǎo) 文件來引導(dǎo)系統(tǒng)的支持。另外,支持包還提供對(duì)于BOOTP自舉協(xié)議的使 用來發(fā)現(xiàn)引導(dǎo)服務(wù)器和引導(dǎo)文件。然而,為了從iSCSI設(shè)備引導(dǎo)系統(tǒng),需 要引導(dǎo)固件處理來(a)標(biāo)識(shí)iSCSI客戶端和目標(biāo),(b)與目標(biāo)建立通信, 以及(c)從目標(biāo)(或子設(shè)備)加載引導(dǎo)文件。下面描述了由本發(fā)明的一個(gè) 實(shí)施例提供的對(duì)網(wǎng)絡(luò)支持包的擴(kuò)展。由本發(fā)明的一個(gè)實(shí)施例提供的對(duì)網(wǎng)絡(luò)支持包的一種類型的擴(kuò)展^f吏網(wǎng)絡(luò) 支持包能夠容納下述引導(dǎo)變?cè)?,其允許固件用包括對(duì)于現(xiàn)有和未來的發(fā)現(xiàn) 協(xié)議的使用的方法來標(biāo)識(shí)iSCSI設(shè)備地址分量變?cè)?。這些第一擴(kuò)展適用于 iSCSI設(shè)備以及"網(wǎng)絡(luò),,設(shè)備,以適應(yīng)當(dāng)缺少iSCSITCP減載引擎(TOE)硬件時(shí)由軟件iSCSI啟動(dòng)器建立iSCSI會(huì)話的情形。另 一種類型的擴(kuò)展將一種機(jī)制添加到網(wǎng)絡(luò)支持包以區(qū)別不同類型的自舉方法(例如,TFTP (簡(jiǎn)單文件傳輸協(xié)議)自舉相對(duì)于iSCSI自舉)以及 這些方法各自的引導(dǎo)變?cè)8鶕?jù)本發(fā)明的一個(gè)實(shí)施例,使用在第一引導(dǎo)變 元之前被添加的"命令關(guān)鍵詞,,來選擇自舉方法。多個(gè)命令關(guān)鍵詞被定義 以指定不同的自舉方法和它們的相關(guān)引導(dǎo)變?cè)C铌P(guān)鍵詞定義/確定自舉 方法以及與該方法相關(guān)聯(lián)的引導(dǎo)變?cè)M。因?yàn)橐讯x的當(dāng)前引導(dǎo)變?cè)M對(duì) 應(yīng)于TFTP自舉方法,所以當(dāng)如本發(fā)明的一個(gè)實(shí)施例所提供的那樣缺少命 令關(guān)鍵詞時(shí),暗示著對(duì)于TFTP自舉方法的使用。在一個(gè)實(shí)施例中,命令 關(guān)鍵詞是互斥的。在該實(shí)施例中,在變?cè)兄辉试S一個(gè)命令關(guān)鍵詞,并且 多個(gè)命令關(guān)鍵詞的輸入導(dǎo)致產(chǎn)生被報(bào)告的錯(cuò)誤。接著,各種引導(dǎo)變?cè)欢?義為或者被需要或者可選。如此處所使用那樣,發(fā)現(xiàn)協(xié)議定義了用以與遠(yuǎn)程服務(wù)器建立連接的機(jī)制和 可從該特定服務(wù)器獲取的信息二者。例如,動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP) 可用于獲取諸如客戶端地址之類的配置參數(shù),BOOTP協(xié)議可用于獲取關(guān) 于iSCSI目標(biāo)的信息,而因特網(wǎng)存儲(chǔ)命名服務(wù)器(iSNS)協(xié)議和服務(wù)位置 協(xié)議(SLP )可用于獲取iSCSI客戶端和iSCSI目標(biāo)信息。根據(jù)一個(gè)實(shí)施 例,使用在命令關(guān)鍵詞之后和在第一引導(dǎo)變?cè)安迦氲?限定符關(guān)鍵詞" 來選擇具體的發(fā)現(xiàn)協(xié)議。每個(gè)限定符關(guān)鍵詞標(biāo)識(shí)公知的發(fā)現(xiàn)協(xié)議和通過/ 可以通過使用該發(fā)現(xiàn)協(xié)議來獲取的引導(dǎo)變?cè)?。多個(gè)限定符關(guān)鍵詞可在命令 關(guān)鍵詞之后被指定。如本發(fā)明所提供那樣,限定符關(guān)鍵詞的例子包括但不 限于dhcp、 bootp、 isns和slp,它們分別標(biāo)識(shí)DHCP、 BOOTP、 iSNS和 SLP協(xié)議。提供了其中各擴(kuò)展適用于網(wǎng)絡(luò)設(shè)備的實(shí)施例,目的是適應(yīng)當(dāng)缺少 iSCSI TCP減栽引擎(TOE)硬件時(shí)使用軟件iSCSI啟動(dòng)器來建立iSCSI 會(huì)話的情形。iSCSI TOE設(shè)備執(zhí)行對(duì)iSCSI命令的封裝并提供以太網(wǎng)硬件 用于通過網(wǎng),送iSCSI命令。因此,如下面所進(jìn)一步描述那樣,另外的引導(dǎo)變?cè)?關(guān)鍵詞)被建立并添加到由網(wǎng)絡(luò)支持包用來完成以下操作的變?cè)?1)區(qū)別不同類型的自 舉方法,也即TFTP自舉相對(duì)于iSCSI自舉程序,以及它們各自的引導(dǎo)變 元,以及(2)指定發(fā)現(xiàn)協(xié)議以從iSCSI設(shè)備獲取在OS引導(dǎo)處理期間所需 的缺失引導(dǎo)參數(shù)。iSCSI協(xié)議將SCSI命令封裝進(jìn)網(wǎng)絡(luò)包以便在客戶端(iSCSI啟動(dòng)器, 例如計(jì)算機(jī)系統(tǒng)1100)與iSCSI目標(biāo)(1170)之間進(jìn)行傳輸。標(biāo)準(zhǔn)iSCSI 設(shè)備地址包含以下信息(a ) iSCSI目標(biāo)服務(wù)器(target-server)的IP地址; (b )TCP端口號(hào),其缺省是3260 (target-port);(c) iSCSI目標(biāo)名字(target-name);以及(d) iSCSILUN,其缺省是0 (target-lim)。另夕卜,以下附加信息可用在iSCSI協(xié)議中以使能在安全環(huán)境中對(duì)iSCSI i殳備的訪問(a ) CHAP目標(biāo)ID (target-chapid ) (b )CHAP 口令(target國(guó)chappw )。根據(jù)本發(fā)明的實(shí)施例,當(dāng)在客戶端設(shè)備(例如,圖1A中的計(jì)算機(jī)系 統(tǒng)1100)內(nèi)提供了 iSCSI TOE時(shí),該iSCSI設(shè)備在分級(jí)固件數(shù)據(jù)結(jié)構(gòu)內(nèi) 被表示成類網(wǎng)絡(luò)的設(shè)備類型。由此,該iSCSI設(shè)備類型由與用于描述網(wǎng)絡(luò) 設(shè)備的相同類型信息(也即,機(jī)器(MAC)地址、幀大小、所支持的網(wǎng)絡(luò) 類型,等等)來描述。該類網(wǎng)絡(luò)的設(shè)備類型表示的優(yōu)點(diǎn)之一是,網(wǎng)絡(luò)支持 包可以得到iSCSI設(shè)備類型的支持。網(wǎng)絡(luò)服務(wù)因此可用于發(fā)現(xiàn)并獲取iSCSI 設(shè)備地址中的不同分量。表示設(shè)備的固件數(shù)據(jù)結(jié)構(gòu)的分級(jí)性質(zhì)允許信息在各設(shè)備和支持包之間 傳遞。當(dāng)存在iSCSI TOE設(shè)備時(shí),OS引導(dǎo)功能由子設(shè)備提供,并且該引 導(dǎo)功能的變?cè)粋鬟f給盤支持包。然而,通過將iSCSI設(shè)備表示成類網(wǎng)絡(luò) 的設(shè)備,該iSCSI設(shè)備提供網(wǎng)絡(luò)專用引導(dǎo)參數(shù)(也即,速度、模式等等) 并將這些參數(shù)傳遞給網(wǎng)絡(luò)支持包。網(wǎng)絡(luò)支持包處理這些引導(dǎo)變?cè)?、從信?服務(wù)器獲取iSCSI設(shè)備地址和其它參數(shù)、以及將那些參數(shù)傳遞給盤支持包。 與iSCSI設(shè)備表示無關(guān),該盤支持功能執(zhí)行對(duì)引導(dǎo)文件的實(shí)際加載。如前面所介紹,根據(jù)本發(fā)明的一個(gè)實(shí)施例,為了支持將iSCSI設(shè)備類 型表示成網(wǎng)絡(luò)類型的設(shè)備,網(wǎng)絡(luò)支持包被擴(kuò)展。不論是使用軟件iSCSI啟 動(dòng)器還是iSCSI硬件TOE的描述以從目標(biāo)iSCSI設(shè)備進(jìn)行引導(dǎo),對(duì)本發(fā) 明的實(shí)施例的其余描述都適用。再次參考附圖,并且特別地參考圖1C,提供了根據(jù)本發(fā)明的一個(gè)示例 性實(shí)施例的示例系統(tǒng),該系統(tǒng)圖示使能從iSCSI設(shè)備(目標(biāo))進(jìn)行遠(yuǎn)程引 導(dǎo)處理的主要部件(硬件/軟件)。如所示,該系統(tǒng)包括可通信地耦合到網(wǎng) 絡(luò)支持包1320的客戶端設(shè)備(啟動(dòng)器,例如計(jì)算機(jī)系統(tǒng)1100 )的固件1300。 網(wǎng)絡(luò)支持包1320接著通信地耦合到服務(wù)器1330和iSCSI設(shè)似目標(biāo))1370。 才艮據(jù)所描述的實(shí)施例,服務(wù)器1330表示可通過對(duì)應(yīng)的發(fā)現(xiàn)協(xié)議1325進(jìn)行 訪問以獲取訪問iSCSI設(shè)備1370所需的參數(shù)的不同服務(wù)器類型的集合。 iSCSI設(shè)備1370包括盤支持包1375,其用于訪問與iSCSI設(shè)備1370相關(guān) 聯(lián)的(或者可從iSCSI設(shè)備1370進(jìn)行訪問的)邏輯單元1380。盤支持包 1375使能基于系統(tǒng)固件1300提供給網(wǎng)絡(luò)支持包1320的變?cè)诳蛻舳嗽O(shè) 備1100處完成的遠(yuǎn)程OS引導(dǎo)操作?,F(xiàn)在轉(zhuǎn)到圖1D,其圖示了在設(shè)備的固件初始化以及隨后傳送變?cè)o網(wǎng) 絡(luò)支持包以觸發(fā)遠(yuǎn)程OS引導(dǎo)操作期間,在分級(jí)結(jié)構(gòu)內(nèi)標(biāo)識(shí)iSCSI設(shè)備的 過程。特別地,該流程示了直到網(wǎng)絡(luò)參數(shù)被傳送給網(wǎng)絡(luò)支持包之前由 固件進(jìn)行的設(shè)備發(fā)現(xiàn)過程。如方框1402處所示出,當(dāng)系統(tǒng)開始引導(dǎo)時(shí)該過 程開始。如方框1404所描繪,固件在搜索可能包括可選ROM (只讀存儲(chǔ) 器)的設(shè)備時(shí)遍歷系統(tǒng)總線。這種搜索是標(biāo)識(shí)系統(tǒng)的1/0拓樸的過程的一 部分。在方框1406,固件檢查是否檢測(cè)到可選ROM。如果在附著到總線 的任何設(shè)備中檢測(cè)到可選ROM,則該可選ROM被加載并且它的代碼被 執(zhí)行,如在方框1408中所示出。 一旦可選ROM代碼被執(zhí)行或如果沒有檢 測(cè)到任何ROM,則在方框1410處該固件檢查是否發(fā)現(xiàn)/檢測(cè)到iSCSI TOE 適配器。如果發(fā)現(xiàn)/檢測(cè)到iSCSI TOE適配器,則該固件創(chuàng)建對(duì)該iSCSI TOE (也即iSCSI設(shè)備)的表示,如在方框1412處所示出,并且該iSCSI 設(shè)備表示被添加到主分級(jí)固件結(jié)構(gòu),如在方框1414處所示出。如果在方框1410處固件沒有檢測(cè)到iSCSI TOE,則在方框1411處該固件檢查是否檢測(cè)到網(wǎng)絡(luò)適配器。如果沒有檢測(cè)到任何網(wǎng)絡(luò)適配器,則過程在方框1415處結(jié)束。如果檢測(cè)到網(wǎng)絡(luò)適配器,則固件創(chuàng)建"網(wǎng)絡(luò)"設(shè)備, 如在方框1413處所示出,并且在方框1414處該網(wǎng)絡(luò)i殳備凈皮添加到主分級(jí) 固件結(jié)構(gòu)。所發(fā)現(xiàn)的iSCSI設(shè)備或所創(chuàng)建的類網(wǎng)絡(luò)的設(shè)備4吏得該固件處理 網(wǎng)絡(luò)相關(guān)的引導(dǎo)變?cè)?例如,速度、模式等等),如在方框1416中示出。 緊隨方框1416,各參數(shù)被傳遞給在引導(dǎo)過程中起幫助作用的網(wǎng)絡(luò)支持包, 如在方框1418處所指示。通過I/0拓樸表示的分級(jí)性質(zhì),無論iSCSI啟動(dòng) 器是"網(wǎng)絡(luò)"設(shè)備還是iSCSI設(shè)備,發(fā)送給網(wǎng)絡(luò)支持包的讀和寫操作最終 都由目標(biāo)iSCSI i殳備執(zhí)行。現(xiàn)在參考圖1E,其是圖示網(wǎng)絡(luò)支持包當(dāng)接收到在圖1D中的硬件初始 化過程的結(jié)束處所生成和轉(zhuǎn)發(fā)的引導(dǎo)變?cè)獣r(shí)所提供的處理的流程圖。特別 地,圖1E圖示當(dāng)選擇了 iSCSI自舉方法時(shí)由網(wǎng)絡(luò)支持包的一個(gè)實(shí)施例執(zhí) 行的對(duì)限定符關(guān)鍵詞的處理。無論軟件iSCSI啟動(dòng)器與"網(wǎng)絡(luò)"設(shè)備一起 被使用還是iSCSI TOE設(shè)備中的硬件iSCSI啟動(dòng)器被使用,與iSCSI自舉 方法相關(guān)的各參數(shù)被從設(shè)備(iSCSITOE或"網(wǎng)絡(luò)"設(shè)備)傳遞給網(wǎng)絡(luò)支 持包。網(wǎng)絡(luò)支持包接收到引導(dǎo)變?cè)?,如在方?502處所示出,并且該網(wǎng)絡(luò) 支持包解析引導(dǎo)變?cè)?,如在方?504處所提供。在方框1506處,網(wǎng)絡(luò)支 持包確定該引導(dǎo)變?cè)欠癜ㄖ甘净驅(qū)?yīng)于iSCSI發(fā)現(xiàn)過程的關(guān)鍵詞。如 果該變?cè)话╥SCSI專用關(guān)鍵詞,則網(wǎng)絡(luò)支持包啟動(dòng)標(biāo)準(zhǔn)TFTP自舉過 程,如在方框1508處所指示。根據(jù)一個(gè)實(shí)施例,當(dāng)選擇了TFTP方法時(shí),所提供的引導(dǎo)變?cè)荌bootp,siaddr,filename,ciaddr,giaddr,bootp-retries,tftp-tetries,subnet-mask,blksize然而,根據(jù)本發(fā)明的一個(gè)實(shí)施例,需要具體的引導(dǎo)變?cè)M來定義iSCSI 命令關(guān)鍵詞,目的是選擇iSCSI自舉方法和它對(duì)應(yīng)的引導(dǎo)變?cè)?。因此,?dāng) 選擇了 iSCSI自舉方法時(shí),提供iSCSI相關(guān)的參數(shù)(關(guān)鍵詞)組,隨后是 盤相關(guān)變?cè)Mㄟ^網(wǎng)絡(luò)支持包的開放方法將這些盤相關(guān)變?cè)獋鬟f給盤支持 包。本領(lǐng)域的技術(shù)人員熟知盤變?cè)湓贠pen Firmware Working Group 所發(fā)表的 PowerPC! Microprocessor Common Hardware ReferencePlatform (CHRP) Binding中被進(jìn)一步描述。在此通過參考的方式并入該發(fā) 表的相關(guān)內(nèi)容。根據(jù)本發(fā)明的一個(gè)實(shí)施例,與iSCSI自舉方法相關(guān)聯(lián)的引導(dǎo)變?cè)?以下 iscsi, [itname=init-naine,
ichapid-init-chapid,[ichappw=init-chappw,
ciaddr=initaddr, lgiaddr=gateway-addr,
[subnet-mask=net-mask,
siaddr=target-server, [iporttarget-port, J iname=target-name, [ilun=target-lun,I [chapid=target-chapid,chappw=target-chappw,l disk-args 。在本發(fā)明的一個(gè)實(shí)施例中,當(dāng)添加限定符關(guān)鍵詞以選擇用于iSCSI方 法的發(fā)現(xiàn)協(xié)i義時(shí),引導(dǎo)變?cè)扇∫韵滦问絠scsi, [dhcp-diaddr,j fbootp,
slp=SLP-serverl,Iisns=iSNS-server,
itname=init-name,llichapid=init-chapid,
[ichappw-init-chappw,
ciaddr-init-addr, [giaddr=gateway-addr,lsubnetmask=net-mask,
siaddr=target-server,iport=target-port,
iname=target-name,ilim=target-lim,chapid=target>chapid,chappw=target-chappw,I disk-args 。在這些變?cè)獌?nèi),以下術(shù)語被定義/描迷(a) dhcp卜diaddr是可選參數(shù),其指示使用動(dòng)態(tài)主機(jī)配置協(xié)議 (DHCP)服務(wù)器來獲取配置參數(shù)。diaddr值可以被可選地提供并指定待使用的DHCP服務(wù)器的因特網(wǎng)地址。否則,執(zhí)行廣播查詢以定位/找到 DHCP服務(wù)器。取決于是否指定了限定符關(guān)鍵詞IPv6,用IPv6或IPv4符 號(hào)表示法來表示diaddr值。在本說明書以下部分中更詳細(xì)地描述了修改/ 增強(qiáng)網(wǎng)絡(luò)支持包以支持在已擴(kuò)展引導(dǎo)變?cè)獌?nèi)使用IPv6和DHCP的方法。 在此通過參考的方式并入該申請(qǐng)的相關(guān)內(nèi)容。DHCP服務(wù)器可提供iSCSI 啟動(dòng)器地址(ciaddr) 、 iSCSI目標(biāo)地址(siaddr) 、 iSCSI目標(biāo)端口 ( iport)、 iSCSI目標(biāo)lun (ihm )和iSCSI目標(biāo)名字(iname)。(b) bootp是可選的常數(shù),其將BOOTP指定為"發(fā)現(xiàn),,協(xié)議以獲取 通過網(wǎng)絡(luò)進(jìn)行引導(dǎo)所需的參數(shù)。BOOTP服務(wù)器可提供iSCSI目標(biāo)地址(siaddr ) 、 iSCSI目標(biāo)端口 (iport) 、 iSCSI目標(biāo)lun (ilun )和iSCSI 目標(biāo)名字(iname)。(c)isns-iSNS-server是可選的關(guān)鍵詞值,其指示使用iSNS服務(wù)器來 獲取與iSCSI引導(dǎo)相關(guān)聯(lián)的參數(shù)。iSNS-server值是因特網(wǎng)存儲(chǔ)命名服務(wù)器 (iSNS)的因特網(wǎng)地址。取決于是否指定限定符關(guān)鍵詞IPv6,用IPv6或 IPv4符號(hào)表示法來表示該IP地址。iSNS服務(wù)器可提供用于iSCSI引導(dǎo)的 iSCSI目標(biāo)名字(iname)。給定iSCSI目標(biāo)名字,則iSNS提供iSCSI目 標(biāo)服務(wù)器地址"iaddr)和iSCSI目標(biāo)端口 (iport),(d) slp卜SLP-server是可選參數(shù),其指示使用SLP服務(wù)器來獲取引 導(dǎo)所需的參數(shù)。SLP-server值可被可選地提供并指定待使用的服務(wù)位置協(xié) 議(SLP)服務(wù)器的因特網(wǎng)地址。否則,執(zhí)行廣播查詢以找到SLP服務(wù)器。 取決于是否指定可選的關(guān)鍵詞IPv6,用IPv6或IPv4符號(hào)表示法來表示 SLP-server值。SLP服務(wù)器可提供用于iSCSI引導(dǎo)的iSCSI目標(biāo)名字 (iname )。給定iSCSI目標(biāo)名字,則SLP服務(wù)器可提供iSCSI目標(biāo)服務(wù) 器地址(siaddr)和iSCSI目標(biāo)端口 (iport)。(e ) itname - init-name是遵從iSCSI RFC的串,其表示iSCSI啟動(dòng) 器。iSCSI RFC[1指定了給定的名字在長(zhǎng)度上可以多至233個(gè)字節(jié)。itname 在iSCSI會(huì)話期間被用作事務(wù)請(qǐng)求者的iSCSI身份。該變?cè)獙?duì)于"網(wǎng)絡(luò)" 設(shè)備是必需參數(shù),但是對(duì)于iSCSI設(shè)備是可選參數(shù)。如果針對(duì)iSCSI設(shè)備 沒有指定itname,則使用缺省的硬件值。(f) ichapid-init-chapid是遵從IETF的標(biāo)識(shí)符(ID),其表示啟動(dòng) 器CHAP ID并> 皮用于幫助向目標(biāo)認(rèn)證啟動(dòng)器。特別地,啟動(dòng)器在iSCSI 會(huì)話建立期間編碼該信息并將該信息發(fā)送給目標(biāo),其中目標(biāo)檢查啟動(dòng)器實(shí) 際有效。如果不需要任何認(rèn)證并且不需要任何明確的啟動(dòng)器ID用以在發(fā) 現(xiàn)過程中4吏用,則可省略ichapid。(g )ichappw-ink-chappw是遵從IETF的口令,其表示啟動(dòng)器CHAP 口令,并且與啟動(dòng)器CHAP ID—起用于幫助向目標(biāo)認(rèn)證啟動(dòng)器。如果不 需要任何^人證,則可省略該變?cè)?h ) ciaddr - init-addr是客戶端的IP地址(也即iSCSI啟動(dòng)器的IP 地址)。取決于是否指定可選關(guān)鍵詞IPv6,用IPv6或IPv4符號(hào)表示法來 表示該IP地址。iSCSI啟動(dòng)器的IP地址在iSCSI會(huì)話期間被用作事務(wù)請(qǐng)求者的IP地址。它與表示iSCSI啟動(dòng)器的身份的iSCSI IQN串相關(guān)聯(lián)。 除非指定了DHCP,否則需要該參數(shù)。(i) giaddr-gateway-addr是至iSCSI目標(biāo)服務(wù)器的網(wǎng)關(guān)的IP地址。 取決于是否指定可選關(guān)鍵詞IPv6,用IPv6或IPv4符號(hào)表示法來表示該IP 地址。該參數(shù)是可選的并且在siaddr已知并且沒有在客戶端的子網(wǎng)中的條 件下可被指定。(j) subnet-mask-net-mask是32比特掩碼,其在沒有指定IPv6時(shí)定 義在該特定子網(wǎng)上的所有IP地址的本地網(wǎng)絡(luò)范圍。(k) siaddr-target-server是iSCSI目標(biāo)服務(wù)器的IP地址。取決于是 否指定可選關(guān)鍵詞IPv6,用IPv6或IPv4符號(hào)表示法來表示該IP地址。 iSCSI目標(biāo)IP地址在iSCSI會(huì)話期間被用作事務(wù)響應(yīng)者的IP地址。如果 沒有指定發(fā)現(xiàn)協(xié)議,則需要該參數(shù)。(1) iport-target-port是與iSCSI目標(biāo)(目標(biāo)端口 )相關(guān)聯(lián)的TCP端 口號(hào)。iport標(biāo)識(shí)啟動(dòng)器將與哪一個(gè)目標(biāo)端口進(jìn)行通信。該參數(shù)可以通過指 定發(fā)現(xiàn)協(xié)議之一來獲取。該參數(shù)的缺省值是3260。(m) iname-target-name是遵從iSCSI RFC的串,其表示iSCSI目 標(biāo)。ISCSI RFC指定了給定的名字在長(zhǎng)度上可以多至223個(gè)字節(jié)。iname 在iSCSI會(huì)話期間被用作事務(wù)響應(yīng)者的iSCSI身份。如果沒有指定發(fā)現(xiàn)協(xié) 議,則需要該參數(shù)。(n ) ihm-target-hm是iSCSI目標(biāo)設(shè)備的邏輯單元號(hào)(目標(biāo)hm )。 該參數(shù)可以通過指定BOOTP或DHCP協(xié)議來獲取。該參數(shù)的缺省值是0。(o ) chapid-target-chapid是遵從IETF的ID,其表示目標(biāo)的CHAP ID并被用于向啟動(dòng)器認(rèn)證目標(biāo)。特別地,目標(biāo)將在iSCSI會(huì)話建立期間編 碼該信息并將參數(shù)的變?cè)l(fā)送給啟動(dòng)器,其中啟動(dòng)器將檢查目標(biāo)實(shí)際有效。 如果不需要任何認(rèn)證,則可省略該參數(shù)。(p) chappw-target-chappw是遵從IETF的口令,其表示CHAP 口 令并且與目標(biāo)CHAP ID —起用于幫助向啟動(dòng)器認(rèn)證目標(biāo)。如果不需要任 何i人證,則可省略該變?cè)8鶕?jù)上述的本發(fā)明的實(shí)施例,基于是(1)可假定缺省值還是(2)可使用發(fā)現(xiàn)協(xié)議以獲取該值,來確定對(duì)"可選的"的具體標(biāo)記,而對(duì)"必需 的"的標(biāo)記適用于其值必須在引導(dǎo)變?cè)M中被指定的那些參數(shù)?,F(xiàn)在回到圖1E,如果在方框1506處,在引導(dǎo)變?cè)獌?nèi)存在iSCSI專用 關(guān)鍵詞,則網(wǎng)絡(luò)支持包啟動(dòng)由判決方框1510、 1514、 1518和1522所圖示 的一系列檢查以確定需要哪一個(gè)發(fā)現(xiàn)過程。盡管被圖示為一個(gè)序列,但是 各種確定可以由網(wǎng)絡(luò)支持包同時(shí)而不是順序地完成,或者作為替代這些確 定可以以相對(duì)于彼此不同的次序來完成。在方框1510處,網(wǎng)絡(luò)支持包檢查 變?cè)欠裰甘綝HCP (動(dòng)態(tài)主機(jī)配置協(xié)議)發(fā)現(xiàn)過程。如果變?cè)甘玖?DHCP發(fā)現(xiàn)過程,則網(wǎng)絡(luò)支持包從已標(biāo)識(shí)的DHCP服務(wù)器獲取DHCP所 存儲(chǔ)的參數(shù),如在方框1512處所示出。在由TRTF所發(fā)表的RFC 2131:Dynamic Host Configuration Protocol處描述了 DHCP。在此通過參 考的方式并入該發(fā)表的相關(guān)內(nèi)容。在方框1514處,網(wǎng)絡(luò)支持包還檢查變?cè)欠裰甘綛OOTP發(fā)現(xiàn)過程。 如果變?cè)甘玖?BOOTP發(fā)現(xiàn)過程,則網(wǎng)絡(luò)支持包從已標(biāo)識(shí)的BOOTP服 務(wù)器獲取BOOTP所存儲(chǔ)的參數(shù),如在方框1516處所示出。類似地,在方 框1518處,網(wǎng)絡(luò)支持包檢查變?cè)欠裰甘維LP發(fā)現(xiàn)過程,并且如果變?cè)?指示了 SLP發(fā)現(xiàn)過程則網(wǎng)絡(luò)支持包從所標(biāo)識(shí)的SLP服務(wù)器獲取SLP所存 儲(chǔ)的參數(shù),如在方框1520處所示出。最后,在方框1522處,網(wǎng)絡(luò)支持包 檢查變?cè)欠裰甘緄SNS發(fā)現(xiàn)過程。如果指示了 iSNS發(fā)現(xiàn)過程則網(wǎng)絡(luò)支持 包從iSNS服務(wù)器獲取iSNS所存儲(chǔ)的參數(shù),如在方框1524處所示出。在一個(gè)實(shí)施例中,當(dāng)在變?cè)獌?nèi)指定了 SLP或iSNS時(shí),則可基于"iname" 在開放變?cè)獌?nèi)存在或不存在而使能兩個(gè)不同處理之一。因此,如果在開放 變?cè)刑峁┝?iname,則所指定的iname被用于查詢SLP或iSNS服務(wù)器 以獲取iport和siaddr。然而,如果沒有提供iname,則查詢SLP或iSNS 以獲取可能的目標(biāo)服務(wù)器的名字列表。通過所需額外參數(shù)的特定服務(wù)器類型和存儲(chǔ)位置,網(wǎng)絡(luò)支持包^f吏用針 對(duì)引導(dǎo)變?cè)兴付ǖ姆?wù)器類型的特定發(fā)現(xiàn)協(xié)議來獲取缺失的參數(shù)。某 些iSCSI引導(dǎo)參數(shù)可以通過多個(gè)發(fā)現(xiàn)協(xié)議也即DHCP和BOOTP來獲取。 在引導(dǎo)變?cè)兴付ǖ乃羞@些發(fā)現(xiàn)協(xié)議可用于(同時(shí)或順序地)獲取iSCSI設(shè)備地址和其它引導(dǎo)參數(shù)。在一個(gè)實(shí)施例中,如果參數(shù)是獲自不同服務(wù)器,則將使用從最后被查詢的服務(wù)器所獲取的值。作為替代,參數(shù)發(fā) 現(xiàn)可在獲取所有引導(dǎo)變?cè)獣r(shí)立刻停止。 一旦獲取了所有這些引導(dǎo)變?cè)瑒t網(wǎng)絡(luò)支持包使用這些額外的參數(shù)來創(chuàng)建引導(dǎo)串,如在方框1526處所示出, 并且網(wǎng)絡(luò)支持包將該引導(dǎo)串傳送給由這些參數(shù)所標(biāo)識(shí)的iSCSI設(shè)備(目 標(biāo))。因此,根據(jù)本發(fā)明所描述的實(shí)施例,當(dāng)需要經(jīng)由特定發(fā)現(xiàn)過程來訪 問iSCSI設(shè)備時(shí),網(wǎng)絡(luò)支持包被擴(kuò)展以使能對(duì)多個(gè)可用發(fā)現(xiàn)協(xié)議中的每個(gè) 的iSCSI支持。圖1F是圖示在OS引導(dǎo)期間在iSCSI設(shè)備(目標(biāo))處發(fā)生的處理的流 程圖。在方框1602處,iSCSI設(shè)備接收由網(wǎng)絡(luò)支持包創(chuàng)建的引導(dǎo)串。在方 框1604處,iSCSI解釋/解析引導(dǎo)串,并在方框1606處與客戶端設(shè)備(計(jì) 算機(jī)系統(tǒng)1100)建立iSCSI登錄會(huì)話。在方框1608處,iSCSI設(shè)備檢查該 登錄會(huì)話是否根據(jù)預(yù)先建立的操作標(biāo)準(zhǔn)進(jìn)行工作。如果沒有,則iSCSI生 成錯(cuò)誤,并且該引導(dǎo)過程在方框1610處終止。然而,假設(shè)iSCSI會(huì)話被建 立并正確地工作,則該iSCSIi殳備將在引導(dǎo)變?cè)兴业降谋P相關(guān)的參數(shù) 傳遞給盤支持包,如在方框1612處所示出??蛻舳薸殳備通過網(wǎng)絡(luò)傳送SCSI 命令以從附著到目標(biāo)SCSI控制器的盤獲得引導(dǎo)文件。SCSI命令由盤支持 包在方框1614處接收,而盤支持包完成從遠(yuǎn)程SCSI盤將引導(dǎo)映像實(shí)際加 載到客戶端設(shè)備,如在方框1616處所示出。接著,客戶端設(shè)備的OS引導(dǎo) 過程完成(也即,OS在客戶端設(shè)備上執(zhí)行),如在方框1618處所示出。以下例子圖示由iSCSI自舉方法內(nèi)所提供的變?cè)吞厥怅P(guān)鍵詞所標(biāo)識(shí) 的兩個(gè)不同OS引導(dǎo)過程。在第一過程中,通用網(wǎng)絡(luò)設(shè)備在分級(jí)結(jié)構(gòu)內(nèi)由 固件(例子1)所標(biāo)識(shí),而在第二過程中,iSCSI i殳備凈皮標(biāo)識(shí)(例子2和例 子3)。接著,兩個(gè)過程使用不同的變?cè)M。由設(shè)備所處理的網(wǎng)絡(luò)相關(guān)的 參數(shù)在iSCSI相關(guān)的參數(shù)之前被示出。盤相關(guān)的參數(shù)在iSCSI相關(guān)的參數(shù) 之后被示出。例子l:通過本例,BOOTP服務(wù)器用于獲取siaddr、 iport和 iname。 未被指定的其它變?cè)∪笔≈怠M瑯?,ciaddr被用IPv6格式表示。在本說 明書以下部分中更詳細(xì)地描述了用于通過iSCSI協(xié)議使用IPv6的過程。open network-device: promiscuous, speed=100, duplex=full, iscsi, ipv6, bootp, itname=init-name, ciaddr=init-addr, 2例子2:通過當(dāng)前例子,SLP服務(wù)器提供siaddr和iport用于指定的 iimme。 再次,未被指定的其它變?cè)∪笔≈?,并且ciaddr被用IPv6格式表示。open iscsi-device: speed=100, duplex=full, iscsi, ipv6, sip, iname=target-name, ciadd=init-addr, 2例子3:通過該第三例子,diaddr DHCP服務(wù)器提供siaddr、 ciaddr、 ilun、 iport和iname, 而diaddr被用IPv6格式來表示。open iscsi-device: duplex=full, iscsi, ipv6, dhcp=diaddr, chapid=target-chapid, chappw=target-chappw, 2本發(fā)明提供了一種方法和系統(tǒng),用于使得InfiniBand (IB)主計(jì)算機(jī) 設(shè)備能夠通過IB網(wǎng)絡(luò)從遠(yuǎn)程引導(dǎo)設(shè)備引導(dǎo)操作系統(tǒng)。增強(qiáng)設(shè)備的固件,以 便在表示計(jì)算機(jī)設(shè)備的硬件的層次數(shù)據(jù)結(jié)構(gòu)內(nèi)提供IB主機(jī)通道適配器 (HCA)的表示。提供了 "ib-引導(dǎo)"支持包來協(xié)助封裝用于使用ib端口 設(shè)備通過IB網(wǎng)絡(luò)進(jìn)行引導(dǎo)的變?cè)?,并且定義引導(dǎo)變?cè)瘉碛伤鰅b-引導(dǎo) 支持包利用。ib-引導(dǎo)支持包對(duì)指定目標(biāo)IB端節(jié)點(diǎn)以及一個(gè)或多個(gè)關(guān)鍵字 的引導(dǎo)變?cè)M(jìn)行處理。利用固件結(jié)構(gòu)的層次特性,基于指定關(guān)鍵字來將這些IB專用變?cè)獋鬟f 至適當(dāng)?shù)闹С职员阃瓿梢龑?dǎo)處理。在一個(gè)實(shí)施例中,提供了兩個(gè)關(guān)鍵 字,各自標(biāo)識(shí)網(wǎng)絡(luò)支持包和套接字直接協(xié)議(SDP)支持包中特定的一個(gè)。 引導(dǎo)平臺(tái)使用IB結(jié)構(gòu)來連接至LAN NIC以獲得對(duì)該LAN中的引導(dǎo)服務(wù) 器的訪問,或者連接至IB結(jié)構(gòu)中的端節(jié)點(diǎn)。第一關(guān)鍵字指定將要實(shí)現(xiàn)IPoIB (基于IB的網(wǎng)際協(xié)議(IP))網(wǎng)絡(luò)引導(dǎo)方法,由此使用IPoIB網(wǎng)絡(luò)協(xié)議 來到達(dá)引導(dǎo)服務(wù)器并且找到引導(dǎo)文件。第二關(guān)鍵字指定將要實(shí)現(xiàn)IB網(wǎng)絡(luò)引 導(dǎo)方法,由此使用SDP網(wǎng)絡(luò)協(xié)議來連接至IB結(jié)構(gòu)中的引導(dǎo)服務(wù)器并且找 到引導(dǎo)文件。因而通過支持包之一提供了對(duì)引導(dǎo)服務(wù)器的訪問,并且經(jīng)由 IB網(wǎng)絡(luò)將引導(dǎo)映像返回給主機(jī)設(shè)備用于完成引導(dǎo)操作?,F(xiàn)參照附圖,圖2A根據(jù)本發(fā)明描述的實(shí)施例,提供了利用InfiniBand(IB)網(wǎng)絡(luò)連接來與各種外圍和組網(wǎng)設(shè)備(包括一個(gè)或多個(gè)遠(yuǎn)程引導(dǎo)服務(wù) 器)進(jìn)行通信的組網(wǎng)計(jì)算機(jī)系統(tǒng)的主要硬件組件的高級(jí)表示。如所示出的, 計(jì)算機(jī)系統(tǒng)2100 (文中可互換地稱為IB網(wǎng)絡(luò)內(nèi)的主計(jì)算機(jī)或主計(jì)算機(jī)設(shè) 備)包括經(jīng)由存儲(chǔ)總線2103耦合于存儲(chǔ)器2102的中央處理器(CPU )2101, 存儲(chǔ)總線2103又通過輸入/輸出(I/O)總線接口 2105提供到各種其它外 圍或網(wǎng)絡(luò)設(shè)備的連接。CPU 2101是執(zhí)行來自主存儲(chǔ)器2102的指令以及處 理來自主存儲(chǔ)器2102的數(shù)據(jù)的通用可編程處理器。主存儲(chǔ)器2102可以是 動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器(DRAM),在其中,從存儲(chǔ)器(2123/2124)加載數(shù) 據(jù)用于由CPU 2101進(jìn)行處理。存儲(chǔ)總線2103提供了用于在CPU 2101、主存儲(chǔ)器2102和I/O總線接 口 2105之間傳送數(shù)據(jù)的數(shù)據(jù)通信路徑。1/0總線接口 2105進(jìn)一步耦合于 系統(tǒng)I/O總線2104,其用于傳送數(shù)據(jù)到各種I/O單元和傳送來自各種I/O 單元的數(shù)據(jù)。1/0總線接口 2105通過系統(tǒng)I/O總線2104與多個(gè)I/O接口單 元2111-2113進(jìn)行通信,I/O接口單元2111-2113也被稱為I/O處理器(IOP ) 或I/O適配器(IOA )。系統(tǒng)I/O總線2104可以是工業(yè)標(biāo)準(zhǔn)PCI總線或任 何其它適當(dāng)?shù)目偩€技術(shù)。I/O接口單元支持與各種存儲(chǔ)器和I/O設(shè)備進(jìn)行 通信。舉例來說,終端接口單元2111支持連接一個(gè)或多個(gè)用戶終端 2121-2122。存儲(chǔ)接口單元2112支持連接一個(gè)或多個(gè)直接訪問存儲(chǔ)設(shè)備(DASD) 2123-2124 (其可以表示獨(dú)立磁盤冗余陣列(RAID)存儲(chǔ)器, 被配置作為主計(jì)算機(jī)的單個(gè)大型存儲(chǔ)設(shè)備)。各種其它類型的1/o設(shè)備(未 示出)可以依附于1/0接口單元,例如磁帶驅(qū)動(dòng)、打印機(jī)和網(wǎng)絡(luò)收發(fā)機(jī)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,I/O接口單元之一是IB I/O適配器/HCA 2113,由于IB I/O適配器/HCA 2113使得主計(jì)算機(jī)2100能夠連接至IB網(wǎng) 絡(luò),因此文中可互換地將IB I/O適配器/HCA 2113稱為主機(jī)通道適配器(HCA) 。 HCA是可編程DMA (直接存儲(chǔ)器訪問)引擎,其生成和消耗 分組。IB I/O適配器2113支持到InfiniBand網(wǎng)絡(luò)2130的連接,InfiniBand 網(wǎng)絡(luò)2130包括交換機(jī)2131和多個(gè)點(diǎn)到點(diǎn)連接2132-2135。 InfiniBand網(wǎng)絡(luò) 是可以用于連接至各種設(shè)備的本地網(wǎng)。如所說明的,InfiniBand網(wǎng)絡(luò)2130提供到其它計(jì)算機(jī)系統(tǒng)(例如,經(jīng)由目標(biāo)通道適配器(TCA ) 2136耦合于 交換機(jī)2131的IB-引導(dǎo)服務(wù)器2137)的連接。InfiniBand網(wǎng)絡(luò)2130還提 供到路由器或適配器的連接,而路由器或適配器又將InfiniBand網(wǎng)絡(luò)2130 耦合到其它局域或廣域網(wǎng)絡(luò)。在圖2A的示例性實(shí)施例中,TCA2139經(jīng)由 以太網(wǎng)適配器2140連接至局域網(wǎng)(LAN) 2145。 LAN2145提供對(duì)遠(yuǎn)程引 導(dǎo)服務(wù)器2150的訪問。此外,路由器2138連接至因特網(wǎng)2146,其提供對(duì) 第二遠(yuǎn)程引導(dǎo)服務(wù)器2151的訪問。如文中所提供的,除了 InfiniBand I/O 適配器(HCA)2113和相連的IB網(wǎng)絡(luò)213t)以外,文中將計(jì)算機(jī)系統(tǒng)2100 的組件也稱為"主計(jì)算機(jī)",以便區(qū)別需要來自位于跨IB網(wǎng)絡(luò)2130的引 導(dǎo)服務(wù)器的引導(dǎo)OS的主機(jī)設(shè)備。如所說明的,提供了兩個(gè)外部網(wǎng)絡(luò),即 LAN 2145和因特網(wǎng)2146。將通過主機(jī)設(shè)備2100對(duì)因特網(wǎng)2146和LAN 2145 的訪問描述為發(fā)生在IB網(wǎng)絡(luò)2130的"端節(jié)點(diǎn)",例如TCA2139。盡管圖2A中所示的1B網(wǎng)絡(luò)2130具有單個(gè)交換機(jī)2131和對(duì)于相應(yīng)的 數(shù)字設(shè)備的四個(gè)連接2132-2135,然而應(yīng)當(dāng)理解,IB網(wǎng)絡(luò)可以具有不同數(shù) 目的交換機(jī)、適配器、路由器和鏈路(但可能不具有交換機(jī)或路由器)。 IB網(wǎng)絡(luò)的拓樸可以是顯著不同并且更加復(fù)雜的,并且因而不同數(shù)目或類型 的設(shè)備可以耦合于IB網(wǎng)絡(luò)。應(yīng)當(dāng)理解,圖2A旨在高級(jí)地描繪計(jì)算機(jī)系統(tǒng)2100的代表性主要組件, 并且各個(gè)組件可以具有比圖2A中所表示的組件更大的復(fù)雜性。應(yīng)當(dāng)進(jìn)一 步認(rèn)識(shí)到,可以給出不同于或除了圖2A中所示的那些組件以外的組件, 并且這樣的組件的數(shù)目、類型和配置是可以改變的。因而,僅僅通過舉例 的方式給出圖2A,且并不旨在隱含對(duì)本發(fā)明的任何限制。本發(fā)明通過跨IB網(wǎng)絡(luò)2130發(fā)生的引導(dǎo)過程,為連接至IB網(wǎng)絡(luò)2130 的計(jì)算機(jī)設(shè)備2100啟用了遠(yuǎn)程引導(dǎo)過程。在一個(gè)實(shí)施例中,在IB結(jié)構(gòu)上 支持完成網(wǎng)絡(luò)引導(dǎo)過程的兩種不同方法,即(a)LAN類型網(wǎng)絡(luò)引導(dǎo)和(b) IB網(wǎng)絡(luò)引導(dǎo)。LAN類型網(wǎng)絡(luò)引導(dǎo)方法涉及連接至位于依附于遠(yuǎn)程IB端節(jié) 點(diǎn)的LAN中的引導(dǎo)服務(wù)器,以及使用在IB結(jié)構(gòu)上發(fā)送的傳輸控制協(xié)議/ 網(wǎng)際協(xié)議(TCP/IP)命令(在此稱為IPoIB) 。 IB網(wǎng)絡(luò)引導(dǎo)方法涉及連接 至位于遠(yuǎn)程IB端節(jié)點(diǎn)處/中的引導(dǎo)服務(wù)器,以及使用諸如套接字直接協(xié)議(SDP)的傳輸協(xié)議來獲得引導(dǎo)文件。另外,如在本說明書中描述的,在遠(yuǎn)程引導(dǎo)操作的全面實(shí)施中,可以 通過計(jì)算機(jī)設(shè)備2100來支持存儲(chǔ)器引導(dǎo)方法。存儲(chǔ)器引導(dǎo)方法涉及連接至 直接或通過存儲(chǔ)區(qū)域網(wǎng)(SAN)而依附于遠(yuǎn)程IB節(jié)點(diǎn)的存儲(chǔ)設(shè)備,以及通 過IB結(jié)構(gòu)發(fā)送存儲(chǔ)協(xié)議命令,例如SCSI (小型計(jì)算機(jī)系統(tǒng)接口 ) RDMA(遠(yuǎn)程直接存儲(chǔ)器訪問)協(xié)議(SRP)。在本說明書中提供了對(duì)該實(shí)施方 式的詳細(xì)說明。在以上示例計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)環(huán)境中,本發(fā)明的第一方面涉及修改系 統(tǒng)固件,以便使得該固件能夠標(biāo)識(shí)和表示在系統(tǒng)初始化期間系統(tǒng)固件按照 使得IB端節(jié)點(diǎn)用于引導(dǎo)操作的方式所生成的層次結(jié)構(gòu)內(nèi)的IB端節(jié)點(diǎn)。在 計(jì)算機(jī)系統(tǒng)通電(或重新引導(dǎo))之后,系統(tǒng)經(jīng)歷引導(dǎo)過程,通過該引導(dǎo)過 程,系統(tǒng)固件通過標(biāo)識(shí)和建立/啟動(dòng)系統(tǒng)中的設(shè)備來準(zhǔn)備用于操作的系統(tǒng)。 在? 1導(dǎo)過程期間,固件將系統(tǒng)硬件表示為具有附屬設(shè)備的互連總線的層次。 該層次表示描述了用戶配置選擇,并且含有用于硬件設(shè)備的固件設(shè)備驅(qū)動(dòng) 器以及由那些驅(qū)動(dòng)器使用的支持路由器。在IB網(wǎng)絡(luò)內(nèi),在本發(fā)明的一個(gè)實(shí)施例中,增強(qiáng)主機(jī)系統(tǒng)的引導(dǎo)固件以 便識(shí)別存在IB HCA以及一個(gè)或多個(gè)IB端節(jié)點(diǎn)設(shè)備。根據(jù)一個(gè)實(shí)施例,將 新的設(shè)備類型定義為"hca"設(shè)備類型,其表示IBHCA。 hca設(shè)備的特征 在層次固件數(shù)據(jù)結(jié)構(gòu)中通過節(jié)點(diǎn)全局唯一標(biāo)識(shí)符來描述。hca設(shè)備含有開 啟和關(guān)閉設(shè)備的接口以及從設(shè)備讀取和寫入設(shè)備的接口。 hca設(shè)備包括若 干"子設(shè)備",其被稱為"ib端口"設(shè)備并且由端口全局唯一標(biāo)識(shí)符來標(biāo) 識(shí)。除了為父hca設(shè)備定義的開啟、關(guān)閉、讀和寫接口以外,ib端口設(shè)備 還包括使該設(shè)備能夠作為引導(dǎo)設(shè)備來使用的加載接口 。本發(fā)明的第二相關(guān)方面涉及命令/限定符關(guān)鍵字的創(chuàng)建和利用,該命令 /限定符關(guān)鍵字4皮添加到在系統(tǒng)初始化期間由系統(tǒng)固件所生成的引導(dǎo)變?cè)?命令關(guān)鍵字指定分組傳送協(xié)議和關(guān)聯(lián)的變?cè)Mㄟ^ib-引導(dǎo)支持包來理解 這些命令關(guān)鍵字,ib-引導(dǎo)支持包接收來自系統(tǒng)固件的引導(dǎo)變?cè)T诒景l(fā)明 的一個(gè)實(shí)施例中,通過在用于ib引導(dǎo)支持包的開啟接口的變?cè)惺褂妹?關(guān)鍵字來選擇特定的網(wǎng)絡(luò)引導(dǎo)方法。命令關(guān)鍵字通過指定待采用的具體網(wǎng)絡(luò)引導(dǎo)方法來修改與自舉方法關(guān)聯(lián)的引導(dǎo)變?cè)?。根?jù)一個(gè)實(shí)施例,命令關(guān) 鍵字是引導(dǎo)變?cè)械牡谝蛔冊(cè)?,并且每次只可以指定一個(gè)命令關(guān)鍵字。如 以下進(jìn)一步描述的,這些命令關(guān)鍵字是互斥的,并且因而,僅將限定符關(guān)鍵字之一 添加到標(biāo)準(zhǔn)引導(dǎo)變?cè)皝韱⒂肐B級(jí)遠(yuǎn)程《I導(dǎo)操作。如果指定了 超過一個(gè)的命令關(guān)鍵字,則發(fā)送具有警告消息的失敗結(jié)果給主計(jì)算機(jī)設(shè)備 的用戶,并且該i殳備不開啟。因而,在本發(fā)明的說明性實(shí)施例中,創(chuàng)建了以下兩種命令關(guān)鍵字,且 提供其相應(yīng)的定義為(a) ipoib:其指定IPoIB網(wǎng)絡(luò)引導(dǎo)方法。當(dāng)指定ipoib時(shí),使用IPoIB 網(wǎng)絡(luò)協(xié)議來訪問引導(dǎo)服務(wù)器和找到引導(dǎo)文件。引導(dǎo)平臺(tái)使用IB結(jié)構(gòu)來連接 至LANNIC (網(wǎng),口卡)以獲得對(duì)LAN中的引導(dǎo)服務(wù)器的訪問;以及(b) 幽其指定IB網(wǎng)絡(luò)引導(dǎo)方法。當(dāng)指定sdp時(shí),使用SDP網(wǎng)絡(luò) 協(xié)議來訪問IB結(jié)構(gòu)中的引導(dǎo)服務(wù)器。在以上引導(dǎo)變?cè)獌?nèi),IB專用變?cè)捌涿枋霭?(a ) iocguid=IOC-GUID:其是標(biāo)識(shí)目標(biāo)I/O控制器或I/O單元的64 位全局唯一EUI-64順應(yīng)標(biāo)識(shí)符(compliant identifier);以及(b )Dortgid=IOC-GID:其是標(biāo)識(shí)目標(biāo)I/O單元中的端口的128位數(shù)。 以IPv6格式表示該變?cè)⑶以撟冊(cè)?4位GID前綴和分派給I/O控制器 的64位端口 GUID組成。如文中所提供的,IOC-GUID和IOC-GID唯一標(biāo)識(shí)InfiniBand結(jié)構(gòu) 中的端節(jié)點(diǎn)。ib-引導(dǎo)過程建立與目標(biāo)I/0控制器或端節(jié)點(diǎn)的連接,并且然 后利用通過命令關(guān)鍵字所指定的協(xié)議在IB傳輸上發(fā)送分組。在本說明書中 還描述了網(wǎng)絡(luò)相關(guān)的變?cè)?network-args )的例子。如在下面詳細(xì)描述的,本發(fā)明的一個(gè)實(shí)施例與增強(qiáng)的網(wǎng)絡(luò)支持包進(jìn)行 操作,該網(wǎng)絡(luò)支持包支持對(duì)限定符關(guān)鍵字的引導(dǎo)變?cè)母郊樱鏸pv6和 dhcp。視情況在笫一引導(dǎo)變?cè)疤砑觟pv6關(guān)鍵字以指示使用IPv6格式 來表示引導(dǎo)變?cè)獌?nèi)所提供的任何/所有網(wǎng)絡(luò)地址。由于IB網(wǎng)絡(luò)以IPv6格式 傳輸?shù)刂?,因此?dāng)隨引導(dǎo)變?cè)峁┟铌P(guān)鍵字IPoIB時(shí),可以假定ipv6關(guān) 鍵字為缺省地址格式。本發(fā)明的第三方面涉及利用ib-引導(dǎo)支持包來使得能夠無縫連接到來 自遠(yuǎn)程引導(dǎo)設(shè)備的SDP網(wǎng)絡(luò)引導(dǎo)過程或IPoIB網(wǎng)絡(luò)引導(dǎo)過程。ib-引導(dǎo)支 持包實(shí)現(xiàn)通常由hca設(shè)備驅(qū)動(dòng)器利用的特定分組傳送協(xié)議,當(dāng)在IB上引導(dǎo) 時(shí)利用該特定分組傳送協(xié)"^義。ib-引導(dǎo)支持包協(xié)助封裝用于使用ib端口設(shè)備在IB網(wǎng)絡(luò)上進(jìn)行引導(dǎo)的 變?cè)⑶叶x引導(dǎo)變?cè)瘉碛蒳b-引導(dǎo)支持包利用。ib-引導(dǎo)支持包處理指 定了目標(biāo)IB端節(jié)點(diǎn)(即,耦合于IB結(jié)構(gòu)的TCA或路由器或適配器,以 及直接或經(jīng)由網(wǎng)絡(luò)連接到IB結(jié)構(gòu)的引導(dǎo)服務(wù)器)的引導(dǎo)變?cè)T谝粋€(gè)實(shí)施 例中,ib-引導(dǎo)支持包還實(shí)現(xiàn)通常由hca設(shè)備驅(qū)動(dòng)器利用的特定分組傳送協(xié) 議,當(dāng)在IB上引導(dǎo)時(shí)利用該特定分組傳送協(xié)議。利用固件結(jié)構(gòu)的層次特性,基于如ib-引導(dǎo)支持包所處理的指定關(guān)鍵 字,將這些IB專用變?cè)獋鬟f至適當(dāng)?shù)闹С职?,以便啟?dòng)對(duì)引導(dǎo)映像的檢索。 在一個(gè)實(shí)施例中,提供了兩個(gè)關(guān)鍵字,各自標(biāo)識(shí)網(wǎng)絡(luò)支持包和套接字直接 協(xié)議(SDP )支持包中特定的一個(gè)。引導(dǎo)平臺(tái)使用IB結(jié)構(gòu)來連接至LAN NIC 以獲得對(duì)LAN中的引導(dǎo)服務(wù)器的訪問,或者連接至IB結(jié)構(gòu)中的端節(jié)點(diǎn)。 第 一 關(guān)鍵字指定將要實(shí)現(xiàn)IPoIB網(wǎng)絡(luò)引導(dǎo)方法,由此使用IPoIB網(wǎng)絡(luò)協(xié)議 來到達(dá)引導(dǎo)服務(wù)器并且找到引導(dǎo)文件。第二關(guān)鍵字指定將要實(shí)現(xiàn)IB網(wǎng)絡(luò)引 導(dǎo)方法,由此使用SDP網(wǎng)絡(luò)協(xié)議來連接至使用SDP的IB結(jié)構(gòu)中的引導(dǎo)服 務(wù)器。因而,取決于隨引導(dǎo)變?cè)峁┑年P(guān)鍵字,ib-引導(dǎo)支持包可以將引導(dǎo)變 元傳遞至網(wǎng)絡(luò)支持包來完成網(wǎng)絡(luò)引導(dǎo)方法。可選地,ib-引導(dǎo)支持包可以將 引導(dǎo)變?cè)獋鬟f至SDP支持包來完成IB-網(wǎng)絡(luò)引導(dǎo)。根據(jù)一個(gè)實(shí)施例,用于 IPoIB引導(dǎo)的引導(dǎo)變?cè)缦耾pen ibport-device: iocguid=IOC-GTJn), portgid=IOC-GID, ipoib, network-args當(dāng)引導(dǎo)變?cè)付↖PoIB網(wǎng)絡(luò)引導(dǎo)方法時(shí),ib-引導(dǎo)支持包處理IB專用 引導(dǎo)變?cè)⑶覍⒕W(wǎng)絡(luò)相關(guān)的變?cè)獋魉椭辆W(wǎng)絡(luò)支持包。圖2B是根據(jù)本發(fā)明的一個(gè)實(shí)施例描繪了一過程的流程圖,通過該過 程,系統(tǒng)固件發(fā)現(xiàn)IBHCA并且表示層次拓樸內(nèi)的設(shè)備及其子設(shè)備。參照?qǐng)D2A所示的系統(tǒng)組件描述了圖2B的過程。過程從塊2202開始,在此, 在諸如主機(jī)系統(tǒng)2100 (圖2A)的主機(jī)系統(tǒng)上,由諸如系統(tǒng)固件2145 (圖 2A)的固件啟動(dòng)硬件初始化。如塊2204所示,在系統(tǒng)初始化期間,系統(tǒng) 固件2145遍歷系統(tǒng)總線并且標(biāo)識(shí)出主機(jī)系統(tǒng)2100的I/O拓樸。在判定塊 2206處,如果在附于總線的任何設(shè)備中檢測(cè)到選項(xiàng)ROM,則加栽該選項(xiàng) ROM并且執(zhí)行其代碼,如塊2208所示。作為執(zhí)行代碼的結(jié)果,創(chuàng)建設(shè)備 的表示并且將其添加到主層次I/O拓樸,如塊2214所示。在判定塊2206處,如果未檢測(cè)到選項(xiàng)ROM,則在塊2210處系統(tǒng)固 件2145確定是否檢測(cè)到IB HCA (或"hca"設(shè)備)。如果檢測(cè)到IB HCA 設(shè)備,則系統(tǒng)固件2145創(chuàng)建hca設(shè)備及其子ib端口設(shè)備的表示,如塊2214 所示。系統(tǒng)固件2145還創(chuàng)建I/O拓樸內(nèi)ib端口i殳備的位置的it備表示, 如塊2214處所指示的。因?yàn)?ib端口"設(shè)備是利用特定的引導(dǎo)變?cè)_啟 的,所以系統(tǒng)固件2145獲得開啟ib端口設(shè)備所需要的引導(dǎo)變?cè)?。系統(tǒng)固 件然后將引導(dǎo)變?cè)獋鬟f至ib-引導(dǎo)支持包用于處理,如塊2218所指示的?,F(xiàn)轉(zhuǎn)至圖2C,其根據(jù)本發(fā)明的一個(gè)說明性實(shí)施例,提供了示例系統(tǒng)的 框圖表示,該示例系統(tǒng)具有這樣的主要組件(硬件和軟件實(shí)用體),即其 使得能夠通過IB-引導(dǎo)支持包來利用IB-引導(dǎo)變?cè)瑥亩鴨⒂脕碜赃h(yuǎn)程引導(dǎo) 設(shè)備的IBoIP引導(dǎo)或SDP引導(dǎo)。如所示出的,正被引導(dǎo)的設(shè)備的系統(tǒng)固件 2145(例如,主機(jī)系統(tǒng)2100(圖2A))在通信上耦合于ib-引導(dǎo)支持包2310。 ib-引導(dǎo)支持包建立與引導(dǎo)變?cè)兴付ǖ哪繕?biāo)I/O控制器的連接。當(dāng)從IB 連接的引導(dǎo)設(shè)備引導(dǎo)時(shí),ib-引導(dǎo)支持包2310傳輸SDP引導(dǎo)變?cè)絊DP支 持包2330,其利用SDP網(wǎng)絡(luò)協(xié)議來獲得來自引導(dǎo)服務(wù)器2137(圖2A)的 引導(dǎo)文件。當(dāng)從通過IP網(wǎng)絡(luò)連接的服務(wù)器引導(dǎo)時(shí),ib-引導(dǎo)支持包2310將 IPoIB-《1導(dǎo)變?cè)D(zhuǎn)發(fā)至增強(qiáng)的網(wǎng)絡(luò)支持包2320。網(wǎng)絡(luò)支持包2320又經(jīng)由IP網(wǎng)絡(luò)在通信上耦合于引導(dǎo)服務(wù)器2150 (圖 2A)。根據(jù)一個(gè)實(shí)施例,網(wǎng)絡(luò)支持包2320進(jìn)一步連接至多個(gè)其它的服務(wù) 器,例如DCHP服務(wù)器和BOOTP服務(wù)器(未具體示出),這些服務(wù)器表 示了可以通過對(duì)應(yīng)的發(fā)現(xiàn)協(xié)議來訪問以便獲得用于訪問引導(dǎo)服務(wù)器2150 所需要的附加參數(shù)/變?cè)牟煌?wù)器類型的集合。IP引導(dǎo)服務(wù)器2150和IB引導(dǎo)服務(wù)器2137 (圖2A )能夠?qū)⒁龑?dǎo)映像 提供給計(jì)算機(jī)系統(tǒng)2100的系統(tǒng)固件2145,以便使得計(jì)算機(jī)系統(tǒng)2100能夠 完成引導(dǎo)操作。服務(wù)器2150和2137分別從網(wǎng)絡(luò)支持包2320和SDP支持 包2330接收相應(yīng)的引導(dǎo)變?cè)?。然而,網(wǎng)絡(luò)支持包2320通過IPoIB消息 接收變?cè)⑶覀鬏擨PoIB消息,這與SDP支持包2330所支持的消息傳輸 的類型/格式(即IB信息)不同。根據(jù)說明性實(shí)施例,為增強(qiáng)的網(wǎng)絡(luò)支持包2320提供了一種機(jī)制,該機(jī) 制使得網(wǎng)絡(luò)支持包2320能夠接收包括關(guān)鍵字(包括ipv6和dchp在內(nèi))的 引導(dǎo)變?cè)?,這是因?yàn)镮B通過IPv6尋址格式進(jìn)行操作。更具體而言,增強(qiáng) 的網(wǎng)絡(luò)支持包2320提供對(duì)IPv6地址格式的支持并且使得能夠經(jīng)由IPoIB 消息檢索引導(dǎo)映像。在本說明書中較為詳細(xì)地描述了使得網(wǎng)絡(luò)支持包2320 能夠利用IPv6地址格式的方法。圖2D描繪了在ib-引導(dǎo)支持包與根據(jù)包括在引導(dǎo)變?cè)獌?nèi)的命令關(guān)鍵字 所選擇的其它兩種支持包之間的引導(dǎo)變?cè)牧鞒?。ib-引導(dǎo)支持包提供指定 了目標(biāo)IB端節(jié)點(diǎn)的引導(dǎo)變?cè)@霉碳Y(jié)構(gòu)的層次特性將這些IB專用變 元傳遞至適當(dāng)?shù)闹С职员阃瓿梢龑?dǎo)處理。過程開始于塊2402,其說明了 ib-引導(dǎo)支持包從系統(tǒng)固件接收引導(dǎo)變?cè)?。ib-引導(dǎo)支持包解析引導(dǎo)變?cè)?,?塊2404所示,并且在塊2406處確定變?cè)欠裰甘綢PoIB引導(dǎo)操作。如果 指示IPoIB引導(dǎo)操作,則ib-引導(dǎo)支持包創(chuàng)建用于IPoIB引導(dǎo)的引導(dǎo)串(boot string),如塊2408處所提供的,并且然后將創(chuàng)建的引導(dǎo)串轉(zhuǎn)發(fā)至網(wǎng)絡(luò)支 持包2320 (圖2C),如塊2410所示。因而,如果選擇了 1BoIP網(wǎng)絡(luò)方法, 則ib-引導(dǎo)包向網(wǎng)絡(luò)支持包2320傳送控制,并且通過ib-引導(dǎo)支持包促進(jìn)整 個(gè)網(wǎng)絡(luò)結(jié)構(gòu)。如果引導(dǎo)變?cè)粗甘綢PoIB引導(dǎo),那么在塊2412處進(jìn)4亍引導(dǎo)變?cè)欠?指示SDP引導(dǎo)的下一確定。如果指示SDP引導(dǎo),則ib-引導(dǎo)支持包生成SDP 引導(dǎo)所需要的引導(dǎo)串,如塊2414所示,并且將生成的引導(dǎo)串轉(zhuǎn)發(fā)至SDP 引導(dǎo)支持包,如塊2416處所描繪的。因而,當(dāng)選擇IB網(wǎng)絡(luò)方法時(shí),ib-引 導(dǎo)支持包向SDP支持包或在InfmiBand鏈路上促進(jìn)或提供直接文件傳輸協(xié) 議的任何其它的包傳送控制。否則,如果引導(dǎo)變?cè)任粗甘綢PoIB引導(dǎo),也未指示SDP引導(dǎo),則報(bào)告錯(cuò)誤,如塊2418處所示,并且引導(dǎo)過程結(jié)束。圖2E是根據(jù)本發(fā)明的一個(gè)實(shí)施例描繪了對(duì)引導(dǎo)變?cè)奶幚淼牧鞒虉D, 當(dāng)利用在IB鏈路(IPoIB )上傳輸TCP/IP消息來加載來自LAN服務(wù)器(例 如圖2A的引導(dǎo)服務(wù)器2150 )的引導(dǎo)文件時(shí),網(wǎng)絡(luò)支持包2320進(jìn)行對(duì)引導(dǎo) 變?cè)倪@一處理。通過i/o拓樸表示的層次特性,由網(wǎng)絡(luò)支持包所進(jìn)行的 讀和寫操作被傳遞至ib-引導(dǎo)支持包2310并且實(shí)際上是由HCA設(shè)備(例 如圖2A的HCA設(shè)備2113 )實(shí)現(xiàn)的。HCA 2113封裝TCP/IP命令并且經(jīng) 由IB鏈路(例如圖2A的2133 )將命令發(fā)送至指定的IB目標(biāo)節(jié)點(diǎn)(例如 圖2A的TCA 2139 )。如果TCP/IP命令的目標(biāo)不是目標(biāo)IB節(jié)點(diǎn),則目 標(biāo)IB節(jié)點(diǎn)中的LAN驅(qū)動(dòng)器轉(zhuǎn)發(fā)分組到LAN 2145(圖2A)內(nèi)適當(dāng)?shù)哪康?地(例如,引導(dǎo)服務(wù)器2150)。該過程開始于塊2502,其說明了諸如圖2C的網(wǎng)絡(luò)支持包2320這樣的 增強(qiáng)網(wǎng)絡(luò)支持包(從圖2C的ib-引導(dǎo)支持包2310)接收引導(dǎo)變?cè)T鰪?qiáng)的 網(wǎng)絡(luò)支持包2320解析引導(dǎo)變?cè)?,如塊2504所示,并且在塊2506處確定引 導(dǎo)變?cè)欠窈嘘P(guān)鍵字ipv6。當(dāng)關(guān)鍵字ipv6含于引導(dǎo)變?cè)獌?nèi)時(shí),網(wǎng)絡(luò)支持 包2320配置所有的尋址功能來支持IPv6格式的地址,如塊2508所提供的。然后在塊2510處,網(wǎng)絡(luò)支持包2320確定引導(dǎo)變?cè)欠窈嘘P(guān)鍵字 dhcp。如果關(guān)鍵字dhcp含于引導(dǎo)變?cè)獌?nèi),則網(wǎng)絡(luò)支持包2320發(fā)送并接收 IPoIB消息,以便從DHCP服務(wù)器獲得引導(dǎo)信息(即尋址和其它參數(shù)), 如塊2512處所示。關(guān)鍵字dhcp可以具有變?cè)?diaddr",其將增強(qiáng)的網(wǎng) 絡(luò)支持包2320定向到準(zhǔn)確的DHCP服務(wù)器,將從該DHCP服務(wù)器獲得引 導(dǎo)服務(wù)器地址和其它參數(shù)。可選地,當(dāng)沒有隨關(guān)鍵字dhcp提供變?cè)獣r(shí), 網(wǎng)絡(luò)支持包2320發(fā)布廣播以便在網(wǎng)絡(luò)上找到DHCP服務(wù)器。當(dāng)在塊2514處確定完成了從DHCP服務(wù)器檢索引導(dǎo)參數(shù)之后,(或 者當(dāng)dhcp沒有包括在引導(dǎo)變?cè)獌?nèi)時(shí)),網(wǎng)絡(luò)支持包2320在塊2516處確 定在引導(dǎo)變?cè)獌?nèi)是否指示了自舉過程(bootp)。當(dāng)bootp是引導(dǎo)變?cè)?時(shí)(即在以上關(guān)鍵字之一或二者之后,或者沒有任一關(guān)鍵字出現(xiàn)在引導(dǎo)變 元內(nèi)),網(wǎng)絡(luò)支持包2320從BOOTP服務(wù)器檢索尋址和其它參數(shù)作為利用 IPoIB消息的自舉操作,如塊2518所說明的。 一旦自舉操作完成,如在判定塊2520處所確定的(或者如果在引導(dǎo)變?cè)獌?nèi)沒有包括自舉變?cè)?,則網(wǎng) 絡(luò)支持包2320生成/創(chuàng)建引導(dǎo)串,如塊2522處所示。然后網(wǎng)絡(luò)支持包2320 在IB上利用TFTP消息來從遠(yuǎn)程服務(wù)器加載引導(dǎo)映像,如塊2524所示。 然后固件在計(jì)算機(jī)系統(tǒng)2100 (圖2A)處完成引導(dǎo)過程,如塊2526所指示 的。圖2F是描述了當(dāng)利用SDP協(xié)議來從IB端節(jié)點(diǎn)(例如圖2A的服務(wù)器 2137)加載引導(dǎo)文件時(shí),由諸如圖2C的SDP支持包2330這樣的SDP支 持包所進(jìn)行的對(duì)引導(dǎo)變?cè)奶幚淼牧鞒虉D。通過I/O拓樸表示的層次特性, 由SDP支持包所進(jìn)行的讀和寫操作被傳遞至ib-引導(dǎo)支持包并且實(shí)際上是 由HCA設(shè)備實(shí)現(xiàn)的。HCA設(shè)備封裝SDP消息并且經(jīng)由IB鏈路將消息發(fā) 送至指定的IB目標(biāo)節(jié)點(diǎn)。該過程開始于塊2602,其說明了 SDP支持包2330從ib-引導(dǎo)支持包 2310接收ib-引導(dǎo)變?cè)DP支持包2330解析該引導(dǎo)變?cè)?,如塊2604所 示,并且然后通過IB將SDP命令發(fā)送至引導(dǎo)服務(wù)器(例如圖2A的引導(dǎo) 服務(wù)器2137),如塊2606處所示。在塊2608處進(jìn)行是否已經(jīng)完成SDP 命令的傳輸?shù)拇_定,并且當(dāng)該傳輸已經(jīng)完成時(shí),引導(dǎo)服務(wù)器2137提供引導(dǎo) 映像,其被加載到主計(jì)算機(jī)2100 (圖2A)上,如塊2610所示。然后,在 主計(jì)算機(jī)2100處著手并完成引導(dǎo)操作,如塊2612所指示的。本發(fā)明提供了一種擴(kuò)展計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)的網(wǎng)絡(luò)支持包以接受IPv6格 式的網(wǎng)絡(luò)地址和允許使用諸如DHCP之類的其他引導(dǎo)發(fā)現(xiàn)協(xié)議以4更獲取使 用遠(yuǎn)程服務(wù)器上存儲(chǔ)的? 1導(dǎo)文件引導(dǎo)系統(tǒng)所需的信息的方法和系統(tǒng)?,F(xiàn)在參考附圖,圖3A是示出了通過網(wǎng)絡(luò)3160連接到遠(yuǎn)程iSCSI設(shè)備 (3170)(例如,引導(dǎo)服務(wù)器或目標(biāo))以及一個(gè)或多個(gè)信息源31訓(xùn)(例如, DHCP服務(wù)器或BOOT服務(wù)器)的計(jì)算機(jī)系統(tǒng)3100的結(jié)構(gòu)表示的方塊圖。 貫穿此說明,將iSCSI設(shè)備3170可互換地稱為"目標(biāo)"或"iSCSI服務(wù)器" 或"引導(dǎo)服務(wù)器"。計(jì)算機(jī)系統(tǒng)3100還可以稱為"啟動(dòng)器"或"客戶端" 或"客戶端設(shè)備"。計(jì)算機(jī)系統(tǒng)3100可以是個(gè)人計(jì)算機(jī)、服務(wù)器、移動(dòng)或 手持電子設(shè)備或其他數(shù)據(jù)處理機(jī)器。網(wǎng)絡(luò)3160可以是局域網(wǎng)、城域網(wǎng)、廣 域網(wǎng)或其他類型的機(jī)器網(wǎng)絡(luò)。網(wǎng)絡(luò)3160可以是有線或無線網(wǎng)絡(luò),并且可以使用諸如網(wǎng)際協(xié)議(IP)之類的無連接分組交換協(xié)議和/或其他網(wǎng)絡(luò)協(xié)議。計(jì)算機(jī)系統(tǒng)3100包括將計(jì)算機(jī)系統(tǒng)3100連接到網(wǎng)絡(luò)3160的網(wǎng)絡(luò)接口 設(shè)備3110。網(wǎng)絡(luò)設(shè)備3110表示計(jì)算機(jī)系統(tǒng)3100的硬件組件,并且可以是 網(wǎng)絡(luò)接口卡(NIC)或集成網(wǎng)絡(luò)設(shè)備(例如,內(nèi)置在諸如計(jì)算機(jī)系統(tǒng)3100 的母板之類的主電路板內(nèi)的網(wǎng)絡(luò)適配器)。設(shè)備驅(qū)動(dòng)器3120控制網(wǎng)絡(luò)接口設(shè)備3110以提供通道,操作系統(tǒng)(OS) 3125以及計(jì)算機(jī)系統(tǒng)3100的應(yīng)用層中的一個(gè)或多個(gè)軟件應(yīng)用3150可以通 過該通道與網(wǎng)絡(luò)3160通信。設(shè)備驅(qū)動(dòng)器3120允許使用網(wǎng)絡(luò)接口設(shè)備3110 通過網(wǎng)絡(luò)3160執(zhí)行數(shù)據(jù)存儲(chǔ)操作3130。例如,設(shè)備驅(qū)動(dòng)器3120可以包括 允許SCSI命令通過網(wǎng)絡(luò)3160與存儲(chǔ)目標(biāo)(iSCSI設(shè)備3170 )交互的iSCSI 啟動(dòng)器。至少一個(gè)設(shè)備驅(qū)動(dòng)器3120可以支持通過網(wǎng)絡(luò)3160從iSCSI設(shè)備3170 引導(dǎo),在此情況下iSCSI設(shè)備3170表示遠(yuǎn)程引導(dǎo)設(shè)備。作為遠(yuǎn)程引導(dǎo)設(shè)備, iSCSI設(shè)備3170在借助通過網(wǎng)絡(luò)3160完成的一系列過程將(操作系統(tǒng)的) 引導(dǎo)映像加載到計(jì)算機(jī)系統(tǒng)3100之前進(jìn)行初始化。iSCSI設(shè)備3170可以 位于靠近或遠(yuǎn)離計(jì)算機(jī)系統(tǒng)3100的物理空間。例如,iSCSI設(shè)備3170可 以通過局域網(wǎng)3160 (例如,吉比特以太網(wǎng))連接到計(jì)算機(jī)系統(tǒng)3100,并且 可以與計(jì)算才幾系統(tǒng)3100位于同 一建筑物、機(jī)架或才幾箱中。此外,設(shè)備驅(qū)動(dòng)器3120允許使用網(wǎng)絡(luò)接口設(shè)備3110通過網(wǎng)絡(luò)3160 執(zhí)行網(wǎng)絡(luò)業(yè)務(wù)操作3140。至少一個(gè)設(shè)備驅(qū)動(dòng)器3120可以將自身作為網(wǎng)絡(luò) 設(shè)備驅(qū)動(dòng)器呈現(xiàn)給操作系統(tǒng)并支持通用網(wǎng)絡(luò)業(yè)務(wù)。因此,操作系統(tǒng)可以查 看其中一個(gè)驅(qū)動(dòng)器3120并與其交互,好像此驅(qū)動(dòng)器是在計(jì)算機(jī)系統(tǒng)的引導(dǎo) 過程中的總線驅(qū)動(dòng)器和存儲(chǔ)驅(qū)動(dòng)器之后加載的常失見網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)器。支持 的網(wǎng)絡(luò)業(yè)務(wù)可以包括多個(gè)不同的組網(wǎng)協(xié)議,例如TCP/IP、 ODI(開方文式數(shù) 據(jù)鏈路接口 ) 、 PXE (預(yù)引導(dǎo)執(zhí)行環(huán)境)以及各種其他標(biāo)準(zhǔn)化和/或基于公 司/操作系統(tǒng)的網(wǎng)絡(luò)協(xié)議,具體取決于實(shí)施方式。通常,設(shè)備驅(qū)動(dòng)器3120 允許計(jì)算機(jī)系統(tǒng)3100使用多個(gè)組網(wǎng)協(xié)議與一個(gè)或多個(gè)信息源31洲通信。雖然計(jì)算機(jī)系統(tǒng)3100的設(shè)備驅(qū)動(dòng)器3120在圖3A中出現(xiàn)在與操作系統(tǒng)和硬件分離的層中,但是應(yīng)理解,所述設(shè)備驅(qū)動(dòng)器可以在計(jì)算機(jī)系統(tǒng)3100內(nèi)的不同上下文中運(yùn)行,具體取決于實(shí)施方式和操作狀態(tài)(從關(guān)閉電 源到引導(dǎo)序列,直至到達(dá)運(yùn)行才莫式,此時(shí)操作系統(tǒng)完全加載并且控制計(jì)算 機(jī)系統(tǒng)3100)。此外,在此所述的各種驅(qū)動(dòng)器功能可以在硬件、固件和/ 或軟件中實(shí)現(xiàn)。如上所述,設(shè)備驅(qū)動(dòng)器3120可以支持引導(dǎo)到遠(yuǎn)程引導(dǎo)服務(wù)器(目標(biāo) iSCSI設(shè)備3170 )并支持通用網(wǎng)絡(luò)業(yè)務(wù),而至少一個(gè)設(shè)備驅(qū)動(dòng)器3120將自 身作為網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)器呈現(xiàn)給固件。可以使用iSCSI協(xié)議完成引導(dǎo)到遠(yuǎn)程 引導(dǎo)設(shè)備,其中將SCSI命令封裝在TCP/IP協(xié)議中,并使用表示為固件層 次結(jié)構(gòu)內(nèi)的網(wǎng)絡(luò)型設(shè)備的軟件iSCSI啟動(dòng)器或iSCSI TOE適配器將其發(fā)送 到目標(biāo)設(shè)備。因此,雖然從標(biāo)準(zhǔn)網(wǎng)絡(luò)引導(dǎo)過程的角度描述和說明了本發(fā)明, 但是所述的本發(fā)明的特性同樣適用于iSCSI引導(dǎo)過程,其中遠(yuǎn)程引導(dǎo)服務(wù) 器(目標(biāo)iSCSI設(shè)備3170)是iSCSI設(shè)備。在本申請(qǐng)的相關(guān)部分提供了對(duì) iSCSI引導(dǎo)過程的具體描述。本領(lǐng)域的技術(shù)人員將理解,圖3A中示出的硬件可以有所變化。例如, 除所示硬件以外或替代所示硬件,還可以使用諸如光盤驅(qū)動(dòng)器之類的其他 外圍設(shè)備。因此,示出的例子并非旨在暗示對(duì)本發(fā)明的體系結(jié)構(gòu)限制。圖 3A中示出的計(jì)算機(jī)系統(tǒng)可以例如是IBM eServer pSeries系統(tǒng),其是位于 紐約阿蒙克的國(guó)際商業(yè)機(jī)器公司的產(chǎn)品。在上述示例計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)環(huán)境中,向網(wǎng)絡(luò)支持包添加了 一種機(jī)制 以使能/允許支持其他引導(dǎo)發(fā)現(xiàn)協(xié)議和其他網(wǎng)絡(luò)地址格式。所述機(jī)制定義了 添加到由系統(tǒng)固件生成的引導(dǎo)變?cè)⒂删W(wǎng)絡(luò)支持包處理的限定符關(guān)鍵字。 在一個(gè)實(shí)施例中,所述限定符關(guān)鍵字通過指定獲取其他參粉變?cè)?即,通 過特定的引導(dǎo)發(fā)現(xiàn)協(xié)議)、參數(shù)/變?cè)袷揭约芭c遠(yuǎn)程引導(dǎo)過程關(guān)聯(lián)的其他 參數(shù)的方法,來修改與自舉方法關(guān)聯(lián)的引導(dǎo)變?cè)???蛇x地在與所述自舉方 法關(guān)聯(lián)的變?cè)疤砑酉薅ǚP(guān)鍵字以便修改引導(dǎo)變?cè)?一次可以向引導(dǎo) 變?cè)砑佣鄠€(gè)限定符關(guān)鍵字,并且可以按照關(guān)鍵字在所述變?cè)械捻樞騺?應(yīng)用所述關(guān)鍵字。以下提供了在本發(fā)明之前與標(biāo)準(zhǔn)自舉操作一起使用的當(dāng)前/現(xiàn)有引導(dǎo) 參數(shù)。然后為每個(gè)變?cè)峁┝似涓髯缘亩x和/或說明。因此,現(xiàn)有的引導(dǎo)變?cè)峁┝薣bootp,] siaddr, fi〗ma,, ciaddr, gi^idr, fooo塞p-Estries, tflji;retTies' subnet-mask, b汰size在此引導(dǎo)變?cè)?,所提供術(shù)語的定義和用法包括siaddr,其是TFTP服務(wù)器的IP地址;filen匿,其是要由TP從服務(wù)器加載的文件的文件名。ciaddr,其是客戶端(即,被引導(dǎo)的系統(tǒng))的IP地址;qiaddr,其是BOOTP "網(wǎng)關(guān)"的IP地址,并且它不一定與網(wǎng)絡(luò)網(wǎng)關(guān)相同;bootp-retries,其是在確定BOOTP過程已失敗之前嘗試的最大重試次數(shù);tftD-retries,其是在TFTP過程停止之前嘗試的最大重試次數(shù); subnet-mask,其是定義此特定子網(wǎng)上所有IP地址的本地網(wǎng)絡(luò)范圍的 32位掩碼;以及blksize,其是指定TFTP讀取或?qū)懭胝?qǐng)求的塊中的八位組數(shù)的十進(jìn)制數(shù)。上述為網(wǎng)絡(luò)支持包提供的變?cè)付擞糜谕ㄟ^網(wǎng)絡(luò)引導(dǎo)計(jì)算機(jī)系統(tǒng)的 TFTP自舉方法。TFTP自舉方法的引導(dǎo)變?cè)峁┝酥付˙OOTP協(xié)議以 查找引導(dǎo)服務(wù)器和引導(dǎo)文件的選項(xiàng)。如果未指定BOOTP協(xié)議,則可以使 用具體包括RARP/APR的其他協(xié)議來獲取引導(dǎo)文件。本發(fā)明的一個(gè)實(shí)施例擴(kuò)展了上述引導(dǎo)變?cè)园ㄆ渌P(guān)鍵字和關(guān)聯(lián)的 變?cè)?如果適用)。在示例性實(shí)施例中,由修改后的網(wǎng)絡(luò)支持包支持的示 例擴(kuò)展引導(dǎo)變?cè)ㄒ韵聝?nèi)容[bootp,siaddr,filename,ciaddr,gi.addr,bootp-retries>tflp~retriesfsubnetniaskiblksize 如擴(kuò)展引導(dǎo)變?cè)纳鲜鍪纠詫?shí)施例中所提供的,在擴(kuò)展的引導(dǎo)變?cè)?中定義了兩個(gè)限定符關(guān)鍵字(以粗體表示),即ipv6和dhcp,并且dhcp具有相應(yīng)的變?cè)猟iaddr??蛇x地將ipv6關(guān)鍵字添加在第一個(gè)引導(dǎo)變?cè)?以指示使用IPv6格式來表達(dá)引導(dǎo)變?cè)刑峁┑娜魏?所有網(wǎng)絡(luò)地址。在示 出的實(shí)施例中,沒有關(guān)鍵字"ipv6"指示以IPv4格式表達(dá)所有網(wǎng)絡(luò)地址。 因此,IPv4仍為默認(rèn)的網(wǎng)絡(luò)地址格式并且不必專門添加在變?cè)?。才艮?jù) 所述的實(shí)施例,關(guān)鍵字ipv6位于變?cè)惺褂玫娜魏纹渌薅ǚP(guān)鍵字之前。dhcp關(guān)鍵字用于指示將使用動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)服務(wù)器以獲 取引導(dǎo)參數(shù)。可以可選地提供diaddr值以指定要使用的DHCP服務(wù)器的 因特網(wǎng)地址。否則,如果未提供diaddr值,則網(wǎng)絡(luò)支持包將發(fā)出廣播查詢 以在網(wǎng)絡(luò)上查找DHCP服務(wù)器。diaddr值以IPv6或IPv4表示法表達(dá),具 體取決于是否指定了可選的限定符關(guān)鍵字ipv6。當(dāng)被訪問時(shí),DHCP月艮務(wù) 器可以提供用于TFTP自舉的客戶端地址(ciaddr)、服務(wù)器地址(siaddr) 以及文件名。在由IETF發(fā)布的RFC 2131:動(dòng)態(tài)主機(jī)配置協(xié)議中提供了如 何從DHCP服務(wù)器獲取這些和其他變?cè)恼f明。圖3B是根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的示例系統(tǒng)的方塊圖表示, 所述系統(tǒng)具有主要組件(硬件和軟件實(shí)用程序),其通過修改/增強(qiáng)后的網(wǎng) 絡(luò)支持包3220利用擴(kuò)展引導(dǎo)變?cè)允鼓苁褂肐Pv6地址格式和備選協(xié)議以 便查找諸如DHCP的引導(dǎo)參數(shù)。如所示出的,所述系統(tǒng)包括例如計(jì)算機(jī)系 統(tǒng)3100的客戶端設(shè)備(其為iSCSI環(huán)境中的啟動(dòng)器)的固件3200,所迷 固件可通信地連接到修改/增強(qiáng)后的網(wǎng)絡(luò)支持包3220。網(wǎng)絡(luò)支持包3220又 可通信地連接到服務(wù)器3230,后者包括DHCP服務(wù)器3230A、 BOOTP服 務(wù)器3230B以及引導(dǎo)服務(wù)器(iSCSI設(shè)備)3270 (其為iSCSI環(huán)境中的目 標(biāo))。根據(jù)所述的實(shí)施例,服務(wù)器3230表示可以由相應(yīng)引導(dǎo)發(fā)現(xiàn)協(xié)議3225 訪問以獲取訪問引導(dǎo)服務(wù)器3270所需的參數(shù)的不同服務(wù)器類型的集合。當(dāng)在iSCSI環(huán)境中實(shí)現(xiàn)時(shí),引導(dǎo)服務(wù)器3270包括用于訪問與引導(dǎo)服務(wù) 器3270關(guān)聯(lián)(或可從引導(dǎo)服務(wù)器3270訪問)的邏輯單元(LUN)的盤支 持包。對(duì)于此備選實(shí)施方式,盤支持包允許根據(jù)系統(tǒng)固件3200提供給網(wǎng)絡(luò) 支持包3220的引導(dǎo)變?cè)?或網(wǎng)絡(luò)支持包3220從服務(wù)器3230檢索的參數(shù), 來檢索引導(dǎo)映像以供客戶端設(shè)備3100使用。根據(jù)本發(fā)明的一個(gè)實(shí)施例,為修改/增強(qiáng)后的網(wǎng)絡(luò)支持包3220提供了 一種機(jī)制,其使得網(wǎng)絡(luò)支持包能夠接收包括關(guān)鍵字(包括ipv6和dhcp) 的引導(dǎo)變?cè)?。更具體地說,修改/增強(qiáng)后的網(wǎng)絡(luò)支持包3220提供對(duì)IPv6地 址格式的支持,并且能夠從DHCP服務(wù)器檢索虧1導(dǎo)服務(wù)器地址和其他信息。 ipv6和dhcp擴(kuò)展同樣適用于網(wǎng)絡(luò)引導(dǎo)和iSCSI引導(dǎo),后者是涉及 訪問目標(biāo)服務(wù)器中的盤(LUN)以獲取OS映像的另 一種自舉方法。但是, 如下面進(jìn)一步描述的,對(duì)于網(wǎng)絡(luò)引導(dǎo),TFTP是用于完成網(wǎng)絡(luò)引導(dǎo)的自舉 方法,并且當(dāng)未向引導(dǎo)變?cè)砑觟SCSI關(guān)鍵字時(shí),TFTP是默認(rèn)的自舉方 法。在本申請(qǐng)的相關(guān)部分中描述了向引導(dǎo)變?cè)砑觟SCSI關(guān)鍵字??梢允?用TFTP自舉方法或iSCSI自舉方法,并且ipv6和dhcp的擴(kuò)展適用于網(wǎng) 絡(luò)引導(dǎo)過程以及iSCSI引導(dǎo)過程。圖3C是示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的網(wǎng)絡(luò)支持包借助其使用擴(kuò) 展引導(dǎo)變?cè)员闶褂肐Pv6尋址格式以及指定備選協(xié)議以便查找引導(dǎo)參數(shù) (如DHCP )的過程的流程圖。過程開始于方塊3302,方塊3302示出了 修改/增強(qiáng)后的網(wǎng)絡(luò)支持包3220 (從系統(tǒng)固件)接收引導(dǎo)變?cè)?。增?qiáng)后的網(wǎng) 絡(luò)支持包3220解析引導(dǎo)變?cè)?如方塊3304所示)并在方塊3306判定引導(dǎo) 變?cè)欠癜P(guān)鍵字ipv6。當(dāng)引導(dǎo)變?cè)邪P(guān)鍵字ipv6時(shí),網(wǎng)絡(luò)支持包 3220將處理IPv6格式的地址并使用IPv6格式的地址執(zhí)行尋址功能,如方 塊3308所示。然后在方塊3310,網(wǎng)絡(luò)支持包3220判定引導(dǎo)變?cè)欠癜P(guān)鍵字 dhcp。如果引導(dǎo)變?cè)邪P(guān)鍵字dhcp,則網(wǎng)絡(luò)支持包3220將從DHCP 服務(wù)器獲取尋址和其他參數(shù),如方塊3312所示。如上所述,關(guān)鍵字dhcp 可以包括變?cè)?diaddr",此變?cè)獙⒕W(wǎng)絡(luò)支持包3220導(dǎo)向從其獲取引導(dǎo)服 務(wù)器地址和其他參數(shù)的準(zhǔn)確的DHCP服務(wù)器。備選地,當(dāng)變?cè)痪邆潢P(guān)鍵 字dhcp時(shí),網(wǎng)絡(luò)支持包3220將發(fā)出廣播以在網(wǎng)絡(luò)上查找DHCP服務(wù)器。在從DHCP服務(wù)器檢索各種尋址參數(shù)之后(或者當(dāng)引導(dǎo)變?cè)胁话?dhcp時(shí)),網(wǎng)絡(luò)支持包3220將在方塊3314判定引導(dǎo)變?cè)惺欠裰甘玖似?他引導(dǎo)發(fā)現(xiàn)協(xié)議。當(dāng)BOOTP是引導(dǎo)變?cè)?(即,在上述兩個(gè)關(guān)鍵字之一或全部之后或者引導(dǎo)變?cè)胁淮嬖谌魏侮P(guān)鍵字)時(shí),網(wǎng)絡(luò)支持包3220 將從BOOTP服務(wù)器檢索尋址和其他引導(dǎo)參數(shù),如方塊3316所示。網(wǎng)絡(luò)支 持包3220將生成/創(chuàng)建引導(dǎo)串,如方塊3318所示。然后,網(wǎng)絡(luò)支持包3220 使用默認(rèn)的自舉協(xié)議TFTP從遠(yuǎn)程服務(wù)器加載引導(dǎo)映像,如方塊3320所示。 然后,固件在計(jì)算機(jī)系統(tǒng)3100處完成引導(dǎo)過程,如方塊3322所示。下面的例子提供了以下兩者的說明(a)用于通過IPv4尋址格式和 BOOTP發(fā)現(xiàn)協(xié)議完成引導(dǎo)映4綠索的常規(guī)引導(dǎo)變?cè)?,以?b)用于通過 IPv6尋址格式和/或使用DHCP發(fā)現(xiàn)協(xié)議完成引導(dǎo)映《旨索的擴(kuò)展引導(dǎo)變鍵字和變?cè)?。以下是前兩個(gè)常規(guī)例子例子1:對(duì)于本例子,在命令行中提供所有變?cè)2皇褂靡龑?dǎo)發(fā)現(xiàn)協(xié)議。此外,所有地址(即siaddr、 ciaddr)均以IPv4格式表達(dá)。鄰幼netwoii:-device: promiscTOiis, specd;咖'dup〗ex=futi, siaddr, fiienanw, ciaddr, g5addr, bootp"retrfes ,tftp-retries, subnet-mask例子2:在第二個(gè)常規(guī)例子中,使用BOOTP服務(wù)器來獲取siaddr和 filename。其他未指定的變?cè)捎媚J(rèn)值。現(xiàn)在,以下例子示出了用于選擇備選引導(dǎo)發(fā)現(xiàn)協(xié)議和不同的地址表示 (即DHCP和IPv6 )的方法。例子3:對(duì)于當(dāng)前例子,使用由diaddr指定的DHCP服務(wù)器來獲取 ciaddr、 siaddr和filename。其他未指定的變?cè)捎媚J(rèn)值。diaddr以IPv6 格式表達(dá)。open netwo.汰-devke: pro雄feeuous, speed=100, dwp3Lex^&UUpY^ dhcp^diaddr例子4:在本例子中,網(wǎng)絡(luò)支持包發(fā)出廣播查詢以查找DHCP服務(wù)器。 然后,使用由查詢返回的DHCP服務(wù)器來獲取ciaddr、 siaddr和filename。此外,其他未指定的變?cè)捎媚J(rèn)值。diaddr以IPv4格式表達(dá)。open network-device: duplex=foll, dbqp例子5:對(duì)于本例子,使用DHCP服務(wù)器獲取ciaddr。其他未指定的變?cè)捎媚J(rèn)值。open network-cievfce: pramiscuo,js,'.speed=100, (iupte)^fen,, cihcp, si.addr, fl!e加me,,, bootp-retries,, subnet-raask, Mksize例子6:在此最后的例子中,使用siaddr和ciaddr連接到引導(dǎo)服務(wù)器 并獲取引導(dǎo)文件的文件名。siaddr和ciaddr以IPv6格式表達(dá)。其他未指 定的變?cè)捎媚J(rèn)值。oj^n network-device: duplex=foll, ipv6, siad,dr, fflename, ciad(Jir, , , , ,blksize本發(fā)明提供了一種方法和系統(tǒng),用于使得InfiniBand (IB)主計(jì)算機(jī) 設(shè)備能夠通過IB網(wǎng)絡(luò)從遠(yuǎn)程存儲(chǔ)設(shè)備引導(dǎo)操作系統(tǒng)。增強(qiáng)該設(shè)備的固件, 以便在表示計(jì)算機(jī)設(shè)備的硬件的層次數(shù)據(jù)結(jié)構(gòu)內(nèi)提供IB主機(jī)通道適配器 (HCA)的表示。相應(yīng)地,定義新的設(shè)備類型,"hca"設(shè)備類型,其表 示IB HCA。 hca設(shè)備在層次固件數(shù)據(jù)結(jié)構(gòu)內(nèi)通過節(jié)點(diǎn)全局唯一標(biāo)識(shí)符來描 述特征。hca設(shè)備含有用于開啟和關(guān)閉設(shè)備的接口以及從設(shè)備讀取和寫入 設(shè)備的接口。 "hca"設(shè)備可以具有一個(gè)或多個(gè)"子設(shè)備",其被稱為"ib 端口" i殳備,并且由端口全局唯一標(biāo)識(shí)符來標(biāo)識(shí)。除了為父hcai殳備定義 的開啟、關(guān)閉、讀和寫接口以外,ib端口設(shè)備還包括使得該設(shè)備能夠被用 作引導(dǎo)設(shè)備的加載接口。提供了一種"ib-引導(dǎo),,支持包,并且定義引導(dǎo)變?cè)员阌稍搃b-引導(dǎo) 支持包利用。ib-引導(dǎo)支持包接收隨特定關(guān)鍵字一起指定目標(biāo)IB端節(jié)點(diǎn)的 引導(dǎo)變?cè)@霉碳Y(jié)構(gòu)的層次特性,基于指定關(guān)鍵字來將這些IB專用變 元傳遞至適當(dāng)?shù)闹С职?,以便完成引?dǎo)處理。ib-引導(dǎo)支持包還實(shí)現(xiàn)特定的 分組傳送協(xié)議,當(dāng)通過IB網(wǎng)絡(luò)進(jìn)行引導(dǎo)時(shí),通過hca設(shè)備驅(qū)動(dòng)器來利用這些特定的分組傳送協(xié)議。在一個(gè)實(shí)施例中,提供了特定關(guān)鍵字,其標(biāo)識(shí)SCSI(小型計(jì)算機(jī)系統(tǒng) 接口 ) RDMA (遠(yuǎn)程直接存儲(chǔ)器訪問)協(xié)議-SRP—支持包。SRP支持包指 定將要實(shí)現(xiàn)存儲(chǔ)器引導(dǎo)方法,由此,利用SRP來通過IB結(jié)構(gòu)傳輸SCSI 命令以及訪問引導(dǎo)設(shè)備。主機(jī)設(shè)備然后從通過通道適配器連接至I/O結(jié)構(gòu) 的存儲(chǔ)設(shè)備(引導(dǎo)服務(wù)器)讀取數(shù)據(jù)塊(包括引導(dǎo)映像)。因而通過SRP 支持包提供了對(duì)引導(dǎo)服務(wù)器的訪問,并且經(jīng)由IB網(wǎng)絡(luò)將引導(dǎo)映像返回至主機(jī)設(shè)備用于完成主機(jī)設(shè)備的引導(dǎo)操作。現(xiàn)參照附圖,圖4A根據(jù)本發(fā)明描述的實(shí)施例,提供了利用InfiniBand (IB)網(wǎng)絡(luò)連接來與各種外圍和組網(wǎng)設(shè)備(包括一個(gè)或多個(gè)遠(yuǎn)程引導(dǎo)服務(wù) 器)進(jìn)行通信的組網(wǎng)計(jì)算機(jī)系統(tǒng)的主要硬件組件的高級(jí)表示。如所示出的, 計(jì)算機(jī)系統(tǒng)4100 (文中可互換地稱為IB網(wǎng)絡(luò)內(nèi)的主計(jì)算機(jī)或主計(jì)算機(jī)設(shè) 備)包括經(jīng)由存儲(chǔ)總線4103耦合于存儲(chǔ)器4102的中央處理器(CPU )4101, 存儲(chǔ)總線4103又通過輸入/輸出(I/O)總線接口 4105提供到各種其它外 圍或網(wǎng)絡(luò)設(shè)備的連接。CPU 4101是執(zhí)行來自主存儲(chǔ)器4102的指令以及處 理來自主存儲(chǔ)器4102的數(shù)據(jù)的通用可編程處理器。主存儲(chǔ)器4102可以是 動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器(DRAM),在其中,從存儲(chǔ)器(4123/4124)加載數(shù) 據(jù)用于由CPU 4101進(jìn)4亍處理。存儲(chǔ)總線4103提供了用于在CPU 4101、主存儲(chǔ)器4102和I/O總線接 口 4105之間傳送數(shù)據(jù)的數(shù)據(jù)通信路徑。1/0總線接口 4105進(jìn)一步耦合于 系統(tǒng)I/O總線4104,其用于傳送數(shù)據(jù)到各種I/O單元和傳送來自各種I/O 單元的數(shù)據(jù)。I/O總線接口 4105通過系統(tǒng)I/O總線4104與多個(gè)I/O接口單 元4111-4113進(jìn)行通信,I/O接口單元4111-4113也被稱為I/O處理器(IOP ) 或I/O適配器(IOA )。系統(tǒng)I/O總線4104可以是工業(yè)標(biāo)準(zhǔn)PCI總線或任 何其它適當(dāng)?shù)目偩€技術(shù)。I/O接口單元支持與各種存儲(chǔ)器和I/O設(shè)備進(jìn)行 通信。舉例來說,終端接口單元4111支持連接一個(gè)或多個(gè)用戶終端 4121-4122。存儲(chǔ)接口單元4112支持連接一個(gè)或多個(gè)直接訪問存儲(chǔ)設(shè)備(DASD) 4123-4124 (其可以表示獨(dú)立磁盤冗余陣列(RAID)存儲(chǔ)器, 被配置作為主計(jì)算機(jī)的單個(gè)大型存儲(chǔ)設(shè)備)。各種其它類型的1/0設(shè)備(未 示出)可以依附于i/o接口單元,例如磁帶驅(qū)動(dòng)、打印機(jī)和網(wǎng)絡(luò)收發(fā)機(jī)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,I/O接口單元之一是IB I/O適配器/HCA 4113,由于IB I/O適配器/HCA 4113使得主計(jì)算機(jī)4100能夠連接至IB網(wǎng) 絡(luò),因此文中可互換地將IB I/O適配器/HCA 4113稱為主^l通道適配器 (HCA) 。 HCA是可編程DMA (直接存儲(chǔ)器訪問)引擎,其生成和消耗 分組。IB I/O適配器4113支持到InfiniBand網(wǎng)絡(luò)4130的連接,InfiniBand網(wǎng)絡(luò)4130包括交換機(jī)4131和多個(gè)點(diǎn)到點(diǎn)連接4132-4135。 InfiniBand網(wǎng)絡(luò) 是可以用于連接至各種設(shè)備的本地網(wǎng)。如所說明的,InfiniBand網(wǎng)絡(luò)4130 提供到其它計(jì)算機(jī)系統(tǒng)的連接,例如IB-引導(dǎo)服務(wù)器4142經(jīng)由目標(biāo)通道適 配器(TCA) 4141到交換機(jī)4131。 InfiniBand網(wǎng)絡(luò)4130還提供到路由器 或適配器的連接,而路由器或適配器又將InfiniBand網(wǎng)絡(luò)4130耦合到其 它局域或廣域網(wǎng)絡(luò)。在圖4A的示例性實(shí)施例中,TCA4139經(jīng)由以太網(wǎng)適 配器4140連接至局域網(wǎng)(LAN ) 4145。 LAN 4145提供對(duì)遠(yuǎn)程引導(dǎo)服務(wù)器 4150的訪問。此外,路由器4138連接至因特網(wǎng)4146,其提供對(duì)第二遠(yuǎn)程 引導(dǎo)服務(wù)器4151的訪問。如文中所提供的,除了 InfiniBand I/O適配器 (HCA) 4113和相連的IB網(wǎng)絡(luò)4130以外,文中將計(jì)算機(jī)系統(tǒng)4100的組 件也稱為"主計(jì)算機(jī),,,以便區(qū)別需要來自位于跨IB網(wǎng)絡(luò)4130的引導(dǎo)服 務(wù)器的引導(dǎo)OS的主機(jī)設(shè)備。如所說明的,提供了兩個(gè)外部網(wǎng)絡(luò),即LAN 4145和因特網(wǎng)4146。將通過主才幾i殳備4100對(duì)因特網(wǎng)4146和LAN 4145的 訪問描述為發(fā)生在IB網(wǎng)絡(luò)4130的"端節(jié)點(diǎn)",例如TCA4139。除了以上組件之外,IB網(wǎng)絡(luò)4130進(jìn)一步包括連接到SCSI 4162的第 三TCA 4160。存儲(chǔ)區(qū)域網(wǎng)(SAN) 4164連接至SCSI設(shè)備4162,該存儲(chǔ) 區(qū)域網(wǎng)4164包括存儲(chǔ)服務(wù)器4166。存儲(chǔ)服務(wù)器4166進(jìn)一步包括一個(gè)或多 個(gè)子設(shè)備,其在文中被稱為邏輯單元(LUN) 4167/4168,并且連接至存儲(chǔ) 服務(wù)器4166。至少一個(gè)LUN 4167/4168含有被利用來引導(dǎo)主計(jì)算機(jī)4100 的引導(dǎo)映像。如以下所描述的,可以通過盤支持包來訪問存儲(chǔ)在LUN 4167/4168上的包括引導(dǎo)映像在內(nèi)的數(shù)據(jù)。因而,通過直接或經(jīng)由存儲(chǔ)區(qū)域 網(wǎng)4164而依附于遠(yuǎn)程IB節(jié)點(diǎn)(第三TCA 4160)的存儲(chǔ)設(shè)備(LUN 4167/4168),支持遠(yuǎn)程引導(dǎo)操作。盡管圖4A中所示的IB網(wǎng)絡(luò)4130具有單個(gè)交換機(jī)4131和對(duì)于相應(yīng)的 數(shù)字設(shè)備的五個(gè)連接4132-4136,然而應(yīng)當(dāng)理解,IB網(wǎng)絡(luò)可以具有不同數(shù) 目的交換機(jī)、適配器、路由器和鏈路(但可能不具有交換機(jī)或路由器)。 IB網(wǎng)絡(luò)的拓樸可以是顯著不同并且更加復(fù)雜的,并且因而不同數(shù)目或類型 的設(shè)備可以耦合于IB網(wǎng)絡(luò)。應(yīng)當(dāng)理解,圖4A旨在高級(jí)地描繪計(jì)算機(jī)系統(tǒng)4100的代表性主要組件,并且各個(gè)組件可以具有比圖4A中所表示的組件更大的復(fù)雜性。應(yīng)當(dāng)進(jìn)一 步認(rèn)識(shí)到,可以給出不同于或除了圖4A中所示的那些組件以外的組件, 并且這樣的組件的數(shù)目、類型和配置是可以改變的。因而,僅僅通過舉例 的方式給出圖4A,且并不旨在隱含對(duì)本發(fā)明的任何限制。本發(fā)明通過跨IB網(wǎng)絡(luò)4130發(fā)生的引導(dǎo)過程,為連接至IB網(wǎng)絡(luò)4130 的計(jì)算機(jī)設(shè)備4100啟用了遠(yuǎn)程引導(dǎo)過程。本發(fā)明的一個(gè)實(shí)施例使得能夠在 IB結(jié)構(gòu)上完成網(wǎng)絡(luò)引導(dǎo)過程,即存儲(chǔ)器引導(dǎo)方法。該存儲(chǔ)器引導(dǎo)方法涉及 連接至位于遠(yuǎn)程IB端節(jié)點(diǎn)的存儲(chǔ)設(shè)備(例如,LUN 4167/4168 )以及使用 諸如SRP的傳輸協(xié)議來獲得引導(dǎo)文件。如文中較為詳細(xì)描述的,在遠(yuǎn)程引導(dǎo)操作的全面實(shí)施中,通過計(jì)算機(jī) 設(shè)備4100來支持特定的存儲(chǔ)器引導(dǎo)方法。存儲(chǔ)器引導(dǎo)方法涉及連接至直接 或通過SAN 4164而依附于遠(yuǎn)程IB節(jié)點(diǎn)(第二 TCA 4160 )的存儲(chǔ)設(shè)4< LUN 4167/4168),以及通過IB結(jié)構(gòu)發(fā)送存儲(chǔ)協(xié)議命令,例如SCSI(小型計(jì)算 機(jī)系統(tǒng)接口 ) RDMA (遠(yuǎn)程直接存儲(chǔ)器訪問)協(xié)議(SRP)。在以上示例計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)環(huán)境中,本發(fā)明的第 一方面涉及修改系 統(tǒng)固件,以便使得該固件能夠標(biāo)識(shí)和表示在系統(tǒng)初始化期間系統(tǒng)固件按照 使得IB端節(jié)點(diǎn)用于引導(dǎo)操作的方式所生成的層次結(jié)構(gòu)內(nèi)的IB端節(jié)點(diǎn)。在 計(jì)算機(jī)系統(tǒng)通電(或重新引導(dǎo))之后,系統(tǒng)經(jīng)歷引導(dǎo)過程,通過該引導(dǎo)過 程,系統(tǒng)固件通過標(biāo)識(shí)和建立/啟動(dòng)系統(tǒng)中的設(shè)備來準(zhǔn)備用于操作的系統(tǒng)。 在引導(dǎo)過程期間,固件將系統(tǒng)硬件表示為具有附屬設(shè)備的互連總線的層次。 該層次表示描述了用戶配置選擇,并且含有用于硬件設(shè)備的固件設(shè)備驅(qū)動(dòng) 器以及由那些驅(qū)動(dòng)器使用的支持路由器。在IB網(wǎng)絡(luò)內(nèi),增強(qiáng)主機(jī)系統(tǒng)的引導(dǎo)固件以便識(shí)別存在IBHCA以及一 個(gè)或多個(gè)IB端節(jié)點(diǎn)設(shè)備。根據(jù)一個(gè)實(shí)施例,將新的設(shè)備類型定義為"hca,, 設(shè)備類型,其表示IBHCA。 hca設(shè)備的特征在層次固件數(shù)據(jù)結(jié)構(gòu)中通過節(jié) 點(diǎn)全局唯一標(biāo)識(shí)符來描述。hca i殳備含有開啟和關(guān)閉設(shè)備的接口以及從i殳 備讀取和寫入設(shè)備的接口。 hca設(shè)備包括若干"子設(shè)備",其被稱為"ib 端口 "設(shè)備并且由端口全局唯一標(biāo)識(shí)符來標(biāo)識(shí)。除了為父hca設(shè)備定義的 開啟、關(guān)閉、讀和寫接口以外,ib端口設(shè)備還包括使該設(shè)備能夠作為引導(dǎo)設(shè)備來使用的加載接口。本發(fā)明的第二相關(guān)方面涉及命令關(guān)鍵字的創(chuàng)建和利用,該命令關(guān)鍵字 被添加到在系統(tǒng)初始化期間由系統(tǒng)固件所生成的引導(dǎo)變?cè)?。在一個(gè)實(shí)施例 中,命令關(guān)鍵字指定分組傳送協(xié)議和關(guān)聯(lián)的變?cè)?。通過ib-引導(dǎo)支持包來 理解這些命令關(guān)鍵字,ib-引導(dǎo)支持包接收來自系統(tǒng)固件的引導(dǎo)變?cè)?。命?關(guān)鍵字通過指定待采用的具體網(wǎng)絡(luò)引導(dǎo)方法來修改與自舉方法關(guān)聯(lián)的引導(dǎo) 變?cè)?。根?jù)所描述的實(shí)施例,命令關(guān)鍵字是引導(dǎo)變?cè)械牡谝蛔冊(cè)?,并?每次只可以指定一個(gè)命令關(guān)鍵字。如以下進(jìn)一步描述的,在一個(gè)實(shí)施例中, 所有的命令關(guān)鍵字都是互斥的,并且因而,僅將關(guān)鍵字之一添加到標(biāo)準(zhǔn)引導(dǎo)變?cè)皝韱⒂肐B級(jí)遠(yuǎn)程引導(dǎo)操作。如果指定了超過一個(gè)的命令關(guān)鍵 字,則發(fā)送具有警告消息的失敗結(jié)果給主計(jì)算機(jī)設(shè)備的用戶并且該設(shè)備不 開啟。通過在用于ib-引導(dǎo)支持包的開啟接口的變?cè)惺褂妹铌P(guān)鍵字來選 擇特定的網(wǎng)絡(luò)引導(dǎo)方法。該命令關(guān)鍵字指定了分組傳送協(xié)議和關(guān)聯(lián)的變?cè)?集。在本說明書中還描述了對(duì)于多個(gè)命令關(guān)鍵字的使用和/或應(yīng)用。在本發(fā) 明的一個(gè)實(shí)施例中,定義命令關(guān)鍵字"srp,,,以便選擇存儲(chǔ)器引導(dǎo)方法, 并且使用SRP提供了特定的引導(dǎo)功能。srp關(guān)鍵字指定了存儲(chǔ)器引導(dǎo)方法,當(dāng)指定存儲(chǔ)器引導(dǎo)方法時(shí),其觸 發(fā)使用SCSI RDMA協(xié)議(SRP),以便在IB結(jié)構(gòu)上傳輸SCSI命令并且 訪問引導(dǎo)設(shè)備(圖4A的LUN 4167/4168)。引導(dǎo)平臺(tái)(即,主機(jī)設(shè)備) 從通過通道適配器連接至IB結(jié)構(gòu)的存儲(chǔ)設(shè)備讀取數(shù)據(jù)塊。當(dāng)指定了存儲(chǔ)器 方法時(shí),提供IB專用引導(dǎo)變?cè)?,并且其后是與盤相關(guān)的變?cè)Mㄟ^ib-引導(dǎo)開啟方法將與盤相關(guān)的變?cè)獋鬟f至盤支持包。在由開放固件工作組發(fā) 行的尸ohw尸C1 AfZ"o-p/w柳or 0 附/wow i7"/y/痛re ito/b,附fg/ig/^Jg/m^ig中描述了對(duì)盤變?cè)睦?,在此通過引用的方式將其相 關(guān)內(nèi)容納入本文。根據(jù)本發(fā)明的一個(gè)實(shí)施例,用于SRP引導(dǎo)的引導(dǎo)變?cè)缦?open ibport-device : iocguid=IOC-GUID, portgid=IOC-GID, srp, srpiport=init-portid, srptport=target-port-id, tlun=target-lun, disk-labelargs在以上引導(dǎo)變?cè)校瑢?duì)特定變?cè)拿枋霭?a ) iocguid=IOC-GUID:其是標(biāo)識(shí)目標(biāo)I/O控制器或I/O單元的64 4立全局唯一 EUI-64順應(yīng)標(biāo)識(shí)符;(b )Portgid=IOOGID:其是標(biāo)識(shí)目標(biāo)I/O單元中的端口的128位數(shù)。 以IPv6格式表示該變?cè)⑶以撟冊(cè)?4位GID前綴和分派給I/0控制器 的64位端口 GUID組成;(c) srpiport=init-port-id:其是唯一標(biāo)識(shí)SRP啟動(dòng)器端口的128位 數(shù)。該數(shù)含有用于啟動(dòng)器端口的GUID和確保所有的SRP啟動(dòng)器端口標(biāo)識(shí) 符都是唯一的64位數(shù);(d) sr由ort-target誦歸t畫id:其是唯一標(biāo)識(shí)SRP目標(biāo)端口的128位 數(shù)。該數(shù)含有用于目標(biāo)I/O控制器的GUID和目標(biāo)端口的服務(wù)ID;以及(e ) tlim-target-hm:其是SRP目標(biāo)設(shè)備的64位邏輯單元數(shù)。 如文中所提供的,IOC-GUID和IOC-GID唯一標(biāo)識(shí)InfiniBand結(jié)構(gòu) 中的端節(jié)點(diǎn)。ib-引導(dǎo)過程建立與目標(biāo)I/0控制器或端節(jié)點(diǎn)的連接,并且然 后利用通過命令關(guān)鍵字指定的協(xié)議在IB傳輸上發(fā)送分組。在本說明書中還 描述了網(wǎng)絡(luò)相關(guān)的變?cè)?network-args )的例子。本發(fā)明的第三方面涉及ib-引導(dǎo)支持包的擴(kuò)展,以便能夠無縫連接到除 了來自遠(yuǎn)程引導(dǎo)設(shè)備的SDP網(wǎng)絡(luò)引導(dǎo)過程或IPoIB網(wǎng)絡(luò)引導(dǎo)過程的SRP 網(wǎng)絡(luò)引導(dǎo)過程。提供ib-引導(dǎo)支持包來協(xié)助封裝用于使用ib端口設(shè)備在IB 網(wǎng)絡(luò)上進(jìn)行引導(dǎo)的變?cè)⑶叶x引導(dǎo)變?cè)瘉碛蒳b-引導(dǎo)支持包利用。ib-引導(dǎo)支持包處理指定了目標(biāo)IB端節(jié)點(diǎn)(即,耦合于IB結(jié)構(gòu)的TCA或路 由器或適配器,以及直接或經(jīng)由網(wǎng)絡(luò)連接到IB結(jié)構(gòu)的引導(dǎo)服務(wù)器)的引導(dǎo) 變?cè)T谝粋€(gè)實(shí)施例中,ib-引導(dǎo)支持包還實(shí)現(xiàn)通常由hca設(shè)備驅(qū)動(dòng)器利用 的特定分組傳送協(xié)議,當(dāng)在IB上引導(dǎo)時(shí)利用該特定分組傳送協(xié)議。利用固件結(jié)構(gòu)的層次特性,基于如ib-引導(dǎo)支持包所處理的指定關(guān)鍵 字,將這些IB專用變?cè)獋鬟f至適當(dāng)?shù)闹С职员銌?dòng)對(duì)引導(dǎo)映像的檢索。 因而,當(dāng)提供給引導(dǎo)變?cè)年P(guān)鍵字是srp時(shí),ib-引導(dǎo)支持包將引導(dǎo)變?cè)獋?送至SRP支持包??蛇x地,并且如本說明書中所描述的,關(guān)鍵字可以指定使用網(wǎng)絡(luò)支持包來完成網(wǎng)絡(luò)引導(dǎo)方法,或者ib-引導(dǎo)支持包可以將引導(dǎo)變?cè)獋鬟f至SDP支持包以完成IB網(wǎng)絡(luò)引導(dǎo)。圖4B是才艮據(jù)本發(fā)明的一個(gè)實(shí)施例描繪了一過程的流程圖,通過該過 程,系統(tǒng)固件發(fā)現(xiàn)IB HCA并且表示層次拓樸內(nèi)的設(shè)備及其子設(shè)備。參照 圖4A所示的系統(tǒng)組件描述了圖4B的過程。過程從塊4202開始,在此, 在諸如主機(jī)系統(tǒng)4100 (圖4A)的主機(jī)系統(tǒng)上,由諸如系統(tǒng)固件4145 (圖 4A)的固件啟動(dòng)硬件初始化。如塊4204所示,在系統(tǒng)初始化期間,系統(tǒng) 固件4145遍歷系統(tǒng)總線并且標(biāo)識(shí)出主才幾系統(tǒng)4100的I/O拓樸。在判定塊 4206處,如果在附于總線的任何設(shè)備中檢測(cè)到選項(xiàng)ROM,則加載該選項(xiàng) ROM并且執(zhí)行其代碼,如塊4208所示。作為執(zhí)行代碼的結(jié)果,創(chuàng)建設(shè)備 的表示并且將其添加到主層次I/O拓樸,如塊4214所示。在判定塊4206處,如果未檢測(cè)到選項(xiàng)ROM,則在塊4210處系統(tǒng)固 件4145確定是否檢測(cè)到IBHCA (或"hca"設(shè)備)。如果檢測(cè)到IB HCA 設(shè)備,則系統(tǒng)固件4145創(chuàng)建hca設(shè)備及其子ib端口設(shè)備的表示,如塊4214 所示。系統(tǒng)固件4145還創(chuàng)建I/O拓樸內(nèi)ib端口設(shè)備的位置的設(shè)備表示, 如塊4214處所指示的。在判定塊4210處,如果未檢測(cè)到IB HCA,那么 過程結(jié)束,如塊4211所提供的。因?yàn)?ib端口"設(shè)備是利用特定的引導(dǎo)變 元集開啟的,所以系統(tǒng)固件4145獲得開啟ib端口設(shè)備所需要的引導(dǎo)變?cè)?如塊4216所示。系統(tǒng)固件然后將引導(dǎo)變?cè)獋鬟f至ib-引導(dǎo)支持包用于處理, 如塊4218所指示的?,F(xiàn)轉(zhuǎn)至圖4C,其根據(jù)本發(fā)明的一個(gè)說明性實(shí)施例,提供了示例系統(tǒng)的 框圖表示,該示例系統(tǒng)具有這樣的主要組件(硬件和軟件實(shí)用體),即其 使得能夠通過IB-引導(dǎo)支持包來利用IB-引導(dǎo)變?cè)?,從而啟用來自遠(yuǎn)程引導(dǎo) 設(shè)備的SRP引導(dǎo)或IBoIP引導(dǎo)或SDP引導(dǎo)。如所示出的,正被引導(dǎo)的設(shè) 備的系統(tǒng)固件4145 (圖4A),例如,主機(jī)系統(tǒng)4100 (圖4A )在通信上耦 合于ib-引導(dǎo)支持包4310。 ib-引導(dǎo)支持包建立與引導(dǎo)變?cè)兴付ǖ哪繕?biāo) I/O控制器的連接。當(dāng)從IB連接的引導(dǎo)設(shè)備引導(dǎo)時(shí),ib-引導(dǎo)支持包4310 傳輸SDP引導(dǎo)變?cè)絊DP支持包4330,其利用SDP網(wǎng)絡(luò)協(xié)議來獲得來自 引導(dǎo)服務(wù)器4137的引導(dǎo)文件。當(dāng)從通過IP網(wǎng)絡(luò)連接的服務(wù)器引導(dǎo)時(shí),ib-引導(dǎo)支持包4310將IPoIB-引導(dǎo)變?cè)D(zhuǎn)發(fā)至增強(qiáng)的網(wǎng)絡(luò)支持包4320。最后, 當(dāng)從連接至服務(wù)器(其又直接或經(jīng)由SAN連接至TCA)的LUN (或其它 設(shè)備)引導(dǎo)時(shí),ib-引導(dǎo)支持包4310將SCSI引導(dǎo)變?cè)D(zhuǎn)發(fā)至SRP支持包 4340。所示出的SRP支持包4340連接至存儲(chǔ)服務(wù)器4166,存儲(chǔ)服務(wù)器4166 具有與其相連的LUN 4167/4168。在服務(wù)器4166中的是盤支持包4255, 利用盤支持包4255來接收引導(dǎo)變?cè)?,訪問LUN 4167/4168中適當(dāng)?shù)囊粋€(gè), 并且從LUN 4167/4168之一檢索引導(dǎo)映像/文件。然后將所檢索的引導(dǎo)映像 /文件經(jīng)由IB網(wǎng)絡(luò)提供給主機(jī)系統(tǒng)固件4145。SRP支持包有助于在IB鏈路上發(fā)送SCSI命令,以便到達(dá)存儲(chǔ)服務(wù)器, 并且SRP支持包然后向盤支持包傳送控制。盤支持包完成從遠(yuǎn)程SCSI盤 (LUN 4148)對(duì)引導(dǎo)映像的實(shí)際加載。IP引導(dǎo)服務(wù)器4150和IB引導(dǎo)服務(wù)器4166能夠?qū)⒁龑?dǎo)映像提供給計(jì) 算機(jī)系統(tǒng)4100 (圖4A)的系統(tǒng)固件4145,以便使得計(jì)算機(jī)系統(tǒng)"00能夠 完成引導(dǎo)操作。服務(wù)器4150和4137分別從網(wǎng)絡(luò)支持包4320和SDP支持 包4330接收相應(yīng)的引導(dǎo)變?cè)?。然而,網(wǎng)絡(luò)支持包4320通過IPoIB消息 接收變?cè)⑶覀鬏擨PoIB消息,這與SDP支持包4330所支持的消息傳輸 的類型/格式(即IB信息)不同。圖4D描繪了在ib-引導(dǎo)支持包與根據(jù)包括在引導(dǎo)變?cè)獌?nèi)的命令關(guān)鍵字 所選擇的其它三種支持包之間的引導(dǎo)變?cè)牧鞒?。ib-引導(dǎo)支持包提供指定 了目標(biāo)IB端節(jié)點(diǎn)的引導(dǎo)變?cè)?。具體而言,關(guān)于本發(fā)明,圖4D的流程圖描 繪了當(dāng)選擇存儲(chǔ)網(wǎng)絡(luò)方法時(shí),在ib-引導(dǎo)包和SRP支持包之間的信息流。ib-引導(dǎo)包通過遠(yuǎn)程直接存儲(chǔ)器訪問(RDMA)接口向SRP支持包傳送控制以 便促進(jìn)SCSI命令的傳輸。利用固件結(jié)構(gòu)的層次特性將這些IB專用變?cè)獋鬟f至適當(dāng)?shù)闹С职?便完成引導(dǎo)處理。過程開始于塊4402,其說明了 ib-引導(dǎo)支持包從系統(tǒng)固 件接收引導(dǎo)變?cè)?。ib-引導(dǎo)支持包解析引導(dǎo)變?cè)鐗K4404所示,并且在 塊4406處確定變?cè)欠裰甘綢PoIB引導(dǎo)操作。如果指示IPoIB引導(dǎo)操作, 則ib-引導(dǎo)支持包創(chuàng)建用于IPoIB引導(dǎo)的引導(dǎo)串(boot string),如塊4408處所提供的,并且然后將創(chuàng)建的引導(dǎo)串轉(zhuǎn)發(fā)至網(wǎng)絡(luò)支持包4320,如塊4410 所示。因而,如果選擇了 IBoIP網(wǎng)絡(luò)方法,則ib-引導(dǎo)包向網(wǎng)絡(luò)支持包4320 傳送控制,并且通過ib-引導(dǎo)支持包促進(jìn)整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)。如果引導(dǎo)變?cè)粗甘綢PoIB引導(dǎo),那么在塊4412處進(jìn)行引導(dǎo)變?cè)欠?指示SDP引導(dǎo)的下一確定。如果指示SDP引導(dǎo),則ib-引導(dǎo)支持包再次生 成SDP引導(dǎo)所需要的引導(dǎo)串,如塊4414所示,并且將生成的引導(dǎo)串轉(zhuǎn)發(fā) 至SDP引導(dǎo)支持包,如塊4416處所描繪的。因而,當(dāng)選擇IB網(wǎng)絡(luò)方法時(shí), ib-引導(dǎo)支持包向SDP支持包或在InfiniBand鏈路上促進(jìn)或提供直接文件 傳輸協(xié)議的任何其它的包傳送控制。否則,如果引導(dǎo)變?cè)任粗甘綢PoIB引導(dǎo),也未指示SDP引導(dǎo),則在 塊4418處進(jìn)行是否指示SRP引導(dǎo)的最后確定。當(dāng)指示SRP引導(dǎo)時(shí),ib-引導(dǎo)支持包生成SRP專用引導(dǎo)變?cè)?,如塊4420所示,并且ib-引導(dǎo)支持包 將引導(dǎo)串傳送至SRP支持包4340來完成存儲(chǔ)器引導(dǎo)過程,如塊4422處所 指示的。當(dāng)未指示特定的引導(dǎo)方法時(shí)(或者如果指示了多種引導(dǎo)方法), 則報(bào)告錯(cuò)誤,如塊4424所示,并且引導(dǎo)過程結(jié)束。在本說明書中還詳細(xì)描述了網(wǎng)絡(luò)支持包和SDP支持包接收和處理引 導(dǎo)變?cè)倪^程。圖4E是根據(jù)本發(fā)明的一個(gè)實(shí)施例描繪了對(duì)引導(dǎo)變?cè)奶幚淼牧鞒虉D, 當(dāng)利用在IB鏈路(IPoIB )上傳輸TCP/IP消息來加載來自LAN服務(wù)器(例 如圖4A的引導(dǎo)服務(wù)器4150 )的引導(dǎo)文件時(shí),SRP支持包4340 (圖4C ) 進(jìn)行對(duì)引導(dǎo)變?cè)脑撎幚?。通過I/0拓樸表示的層次特性,由SRP支持包 所進(jìn)行的讀和寫操作被傳遞至ib-引導(dǎo)支持包并且實(shí)際上是由HCA設(shè)備實(shí) 現(xiàn)的。HCA設(shè)備封裝SCSI命令并且經(jīng)由IB鏈路將命令發(fā)送至指定的IB 目標(biāo)節(jié)點(diǎn)。參照?qǐng)D4C的組件進(jìn)一步描述該過程。該過程開始于塊4502,其說明了 SRP支持包4340 (圖4C)從ib-引 導(dǎo)支持包4310 (圖4C)接收ib-引導(dǎo)變?cè)?。SRP支持包"40解析引導(dǎo)變 元,如塊4504所示,并且然后通過IB將SCSI命令發(fā)送至存儲(chǔ)服務(wù)器4164 (圖4C),如塊4506處所指示的。在塊4508處確定是否已經(jīng)完成對(duì)SCSI 命令的傳輸,并且當(dāng)已經(jīng)完成傳輸時(shí),在塊4510處,將特定的加栽變?cè)獋鬟f至盤支持包4255 (圖4C),并且盤支持包4255導(dǎo)致啟動(dòng)引導(dǎo)過程來從 目標(biāo)盤(LUN 4168)引導(dǎo)映像文件。目標(biāo)設(shè)備(4167/4168)提供引導(dǎo)映 像,在主計(jì)算機(jī)4100上加載引導(dǎo)映像,如塊4512所示。然后,在主計(jì)算 機(jī)4100 (圖4A)處著手并完成引導(dǎo)操作,如塊4514所指示的。本發(fā)明的上面的描述涉及特定術(shù)語/專門名詞的使用,其中某些由 IETF標(biāo)準(zhǔn)部門所定義。當(dāng)其它名字被用于描述類似的功能和/或功能性時(shí), 應(yīng)當(dāng)理解,本發(fā)明在范圍上擴(kuò)展以覆蓋所有一般功能和/或特征,而不管所 使用的命名法。還應(yīng)當(dāng)理解,特定的參數(shù)名字的使用僅是用于舉例而不是 意味著暗示對(duì)本發(fā)明的任何限制。因此,本發(fā)明可不受任何限制地通過被 用于描述上面的參數(shù)不同的命名法/專門名詞來實(shí)現(xiàn)。作為最后一個(gè)問題,重要的是盡管在安裝有軟件的全功能計(jì)算機(jī)系 統(tǒng)的環(huán)境中已經(jīng)并將繼續(xù)描述本發(fā)明的說明性實(shí)施例,但是本領(lǐng)域的技術(shù) 人員將意識(shí)到,本發(fā)明的說明性實(shí)施例的軟件方面能夠以各種形式作為程 序產(chǎn)品分布,并且無論被用于實(shí)際實(shí)現(xiàn)該分布的特定類型的信號(hào)承載々某體 如何,本發(fā)明的說明性實(shí)施例都同等地適用。信號(hào)承載媒體的例子包括可 記錄類型々某體(諸如軟盤、硬盤驅(qū)動(dòng)器、CD ROM)和諸如數(shù)字和^=莫擬通 信鏈路之類的傳輸類型媒體。盡管已經(jīng)參考優(yōu)選的實(shí)施例具體地示出并描述了本發(fā)明,但是本領(lǐng)域 的技術(shù)人員應(yīng)當(dāng)理解,在不偏離本發(fā)明的精神和范圍的條件下可以在形式 和細(xì)節(jié)中做出各種改變。
權(quán)利要求
1.一種設(shè)備,包括處理器;存儲(chǔ)器,所述存儲(chǔ)器在其上具有用于完成已擴(kuò)展網(wǎng)絡(luò)支持包的功能的可編程代碼,所述已擴(kuò)展網(wǎng)絡(luò)支持包的功能包括從客戶端系統(tǒng)的系統(tǒng)固件接收引導(dǎo)變?cè)M;確定所述引導(dǎo)變?cè)M是否在其中包含命令關(guān)鍵詞;當(dāng)在所述引導(dǎo)變?cè)M中存在命令關(guān)鍵詞時(shí),自動(dòng)激活因特網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口iSCSI設(shè)備發(fā)現(xiàn)過程,其中iSCSI設(shè)備被訪問以檢索用于所述客戶端系統(tǒng)的引導(dǎo)文件;以及當(dāng)不存在所述命令關(guān)鍵詞時(shí),啟動(dòng)標(biāo)準(zhǔn)的簡(jiǎn)單文件傳輸協(xié)議TFTP自舉過程。
2. 根據(jù)權(quán)利要求1所述的設(shè)備,進(jìn)一步包括 確定所述引導(dǎo)變?cè)M是否包含一個(gè)或多個(gè)限定符關(guān)鍵詞;當(dāng)一個(gè)或多個(gè)限定符關(guān)鍵詞位于所述引導(dǎo)變?cè)M內(nèi)時(shí),所述自動(dòng)激活 包括啟動(dòng)分別對(duì)應(yīng)于所述一個(gè)或多個(gè)限定符關(guān)鍵詞的 一個(gè)或多個(gè)特 定發(fā)現(xiàn)過程,其中所述一個(gè)或多個(gè)發(fā)現(xiàn)過程訪問特定信息服務(wù)器以檢索尋 址參數(shù)和用于所述iSCSI設(shè)備的其它訪問信息;以及當(dāng)從所述特定信息服務(wù)器接收到所述尋址參數(shù)和其它訪問信息 時(shí),將所述尋址參數(shù)和其它訪問信息轉(zhuǎn)發(fā)到所述iSCSI設(shè)備的盤支持包, 以觸發(fā)將所述引導(dǎo)文件從所述iSCSI設(shè)備加載到所述客戶端系統(tǒng)。
3. 根據(jù)權(quán)利要求2所述的設(shè)備,其中所述啟動(dòng)特定發(fā)現(xiàn)過程啟動(dòng)與包 含在所述引導(dǎo)變?cè)M內(nèi)的所述一個(gè)或多個(gè)限定符關(guān)鍵詞相關(guān)聯(lián)的多個(gè)發(fā)現(xiàn) 過程,其中所述多個(gè)發(fā)現(xiàn)過程返回所迷尋址參數(shù)和其它訪問信息中的特定 的一些參數(shù),所述特定參數(shù)被合并以提供一組完整的所需尋址參數(shù)和其它 訪問信息;其中,返回所述引導(dǎo)文件給所述請(qǐng)求客戶端系統(tǒng)是由所述iSCSI設(shè)備中的所述盤支持包在接收到所述一組完整的尋址參數(shù)和其它訪問信息時(shí)來完成。
4. 根據(jù)權(quán)利要求3所述的設(shè)備,其中當(dāng)從不同信息服務(wù)器檢索多個(gè)相 同參數(shù)時(shí),所述網(wǎng)絡(luò)支持包完成選擇從最后查詢的服務(wù)器中檢索的參數(shù)值 用以在所述完整組中使用的功能。
5. 根據(jù)權(quán)利要求3所述的設(shè)備,其中所迷命令關(guān)鍵詞是iscsi,并且所 述一個(gè)或多個(gè)限定符關(guān)鍵詞包括dhcp,從而所述iSCSI設(shè)備的尋址參數(shù)是 從動(dòng)態(tài)主機(jī)配置協(xié)議服務(wù)器檢索的。
6. 根據(jù)權(quán)利要求1所述的設(shè)備,進(jìn)一步包括在所述固件生成的已擴(kuò)展引導(dǎo)變?cè)M內(nèi)包括第一變?cè)偷诙冊(cè)?中所述第一變?cè)撬雒铌P(guān)鍵詞,其區(qū)別不同類型的自舉方法,而所述 第二變?cè)撬鲆粋€(gè)或多個(gè)限定符關(guān)鍵詞,其指定發(fā)現(xiàn)協(xié)議用以獲取訪問 所述iSCSI設(shè)備和從所述iSCSI設(shè)備加載所述引導(dǎo)映像所需的另外的地址在所述引導(dǎo)變?cè)獌?nèi)接收網(wǎng)絡(luò)專用引導(dǎo)參數(shù),其指示所述iSCSI設(shè)備被表示為由所述客戶端系統(tǒng)的固件所生成的分級(jí)數(shù)據(jù)結(jié)構(gòu)內(nèi)的類網(wǎng)絡(luò)的設(shè)備 類型,其中所述網(wǎng)絡(luò)支持包處理所述網(wǎng)絡(luò)專用引導(dǎo)參數(shù)并經(jīng)由發(fā)現(xiàn)過程獲取所述iSCSI設(shè)備的另外的地址參數(shù)和訪問信息,以使能(a)當(dāng)iSCSI TCP 減載引擎TOE硬件不存在時(shí)經(jīng)由軟件iSCSI啟動(dòng)器建立iSCSI會(huì)話,以 及(b)經(jīng)由所述iSCSI會(huì)話從所述iSCSI設(shè)備檢索所述引導(dǎo)映像。
7. 在具有客戶端系統(tǒng)、因特網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口 iSCSI設(shè)備和一個(gè) 或多個(gè)信息服務(wù)器的傳輸控制協(xié)議/因特網(wǎng)協(xié)議計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境中的一種 方法包才舌在所述客戶端系統(tǒng)的固件的初始引導(dǎo)過程期間,在所^戶端系統(tǒng)的 硬件配置的分級(jí)數(shù)據(jù)結(jié)構(gòu)內(nèi)表示所述iSCSI設(shè)備;生成傳輸給網(wǎng)絡(luò)支持包的已擴(kuò)展引導(dǎo)變?cè)M,其中所述已擴(kuò)展引導(dǎo)變 元包括命令關(guān)鍵詞,所述命令關(guān)鍵詞向所述網(wǎng)絡(luò)支持包標(biāo)識(shí)出需要用于從所述iSCSI設(shè)備檢索引導(dǎo)映像的iSCSI發(fā)現(xiàn)過程;以及將所述已擴(kuò)展引導(dǎo)變?cè)M轉(zhuǎn)發(fā)到所述網(wǎng)絡(luò)支持包,用以觸發(fā)所述網(wǎng)絡(luò) 支持包實(shí)現(xiàn)所述iSCSI發(fā)現(xiàn)過程。
8. 根據(jù)權(quán)利要求7所述的方法,進(jìn)一步包括在所述已擴(kuò)展引導(dǎo)變?cè)獌?nèi)添加一個(gè)或多個(gè)限定符關(guān)鍵詞,其向所述網(wǎng) 絡(luò)支持包標(biāo)識(shí)出特定發(fā)現(xiàn)協(xié)議,用以實(shí)現(xiàn)從所述一個(gè)或多個(gè)信息服務(wù)器檢 索所述iSCSI設(shè)備的地址參數(shù)和其它訪問信息。
9. 根據(jù)權(quán)利要求8所述的方法,其中進(jìn)一步地,所述一個(gè)或多個(gè)限定 符關(guān)鍵詞進(jìn)一步向所述網(wǎng)絡(luò)支持包標(biāo)識(shí)出將訪問所述一個(gè)或多個(gè)信息服務(wù) 器中的哪一個(gè),用來檢索訪問所述iSCSI設(shè)備以及從所述iSCSI設(shè)備加載 所述引導(dǎo)映^f象所需的地址參數(shù)和其它信息。
10. 根據(jù)權(quán)利要求8所述的方法,其中所述一個(gè)或多個(gè)限定符關(guān)鍵詞 之一標(biāo)識(shí)特定的發(fā)現(xiàn)協(xié)議和使用所述特定的發(fā)現(xiàn)協(xié)議所需的另外的引導(dǎo)變 元。
11. 根據(jù)權(quán)利要求8所述的方法,其中當(dāng)在所述已擴(kuò)展引導(dǎo)變?cè)M內(nèi) 提供多個(gè)限定符關(guān)鍵詞時(shí),所述多個(gè)限定符關(guān)鍵詞標(biāo)識(shí)各個(gè)發(fā)現(xiàn)協(xié)議和相 關(guān)聯(lián)的信息服務(wù)器,從而所述網(wǎng)絡(luò)支持包可完成多個(gè)發(fā)現(xiàn)過程,其集中地 檢索訪問所述iSCSI設(shè)備以及加載所述引導(dǎo)映像所需的地址參數(shù)和其它訪 問信息。
12. 根據(jù)權(quán)利要求8所述的方法,其中所述命令關(guān)鍵詞和所述一個(gè)或 多個(gè)限定符關(guān)鍵詞被包括在所述已擴(kuò)展引導(dǎo)變?cè)M內(nèi)。
13. 根據(jù)權(quán)利要求7所述的方法,其中所述命令關(guān)鍵詞是互斥的多個(gè) 可用命令關(guān)鍵詞中的一個(gè)命令關(guān)鍵詞,從而在所述已擴(kuò)展引導(dǎo)變?cè)M中只 可提供一個(gè)命令關(guān)鍵詞。
14. 根據(jù)權(quán)利要求7所述的方法,其中提供所述命令關(guān)鍵詞用于iSCSI設(shè)備和用于網(wǎng)絡(luò)設(shè)備,從而當(dāng)在所述 客戶端系統(tǒng)內(nèi)不存在任何iSCSI TCP減載引擎硬件時(shí)命令關(guān)鍵詞觸發(fā)對(duì) iSCSI啟動(dòng)器的使用以建立iSCSI會(huì)話;以及當(dāng)所述iSCSI設(shè)備在所述分級(jí)數(shù)據(jù)結(jié)構(gòu)中被表征為類網(wǎng)絡(luò)的設(shè)備類型 時(shí),所述方法進(jìn)一步包括提供網(wǎng)絡(luò)專用引導(dǎo)參數(shù)給所述網(wǎng)絡(luò)支持包,其中所述網(wǎng)絡(luò)支持包 處理所述網(wǎng)絡(luò)專用引導(dǎo)參數(shù)并且經(jīng)由發(fā)現(xiàn)過程獲取所述iSCSI設(shè)備 的另外的地址參數(shù)和訪問信息,以使能從所迷iSCSI i殳備檢索引導(dǎo)映 像;以及當(dāng)iSCSI TCP減載引擎硬件不存在時(shí)通過提供所述iSCSI啟動(dòng) 器來建立iSCSI會(huì)話。
15. 根據(jù)權(quán)利要求7所述的方法,進(jìn)一步包括在所述固件生成的所述已擴(kuò)展引導(dǎo)變?cè)M內(nèi)包括第一變?cè)偷诙冊(cè)?;其中所述?一變?cè)铌P(guān)鍵詞,其對(duì)應(yīng)著特定自舉方法和相關(guān)聯(lián) 的引導(dǎo)變?cè)?,并且區(qū)別不同類型的可用自舉方法;其中所述第二變?cè)ㄋ鲆粋€(gè)或多個(gè)限定符關(guān)鍵詞,其指定發(fā)現(xiàn)協(xié) 議用以獲取訪問所述iSCSI設(shè)備以及從所述iSCSI設(shè)備加載引導(dǎo)映像所需 的另外的地址參數(shù);以及變?cè)谒鼍W(wǎng)絡(luò)支持包內(nèi)實(shí)現(xiàn)一種機(jī)制,其基于在所述引導(dǎo)變?cè)M內(nèi) 的命令關(guān)鍵詞的存在,區(qū)別不同類型的自舉方法,所述自舉方法包括TFTP 自舉和iSCSI自舉;其中,所述TFTP自舉是缺省方法,從而在所述已擴(kuò)展引導(dǎo)變?cè)M內(nèi) 缺少命令關(guān)鍵詞觸發(fā)所述TFTP引導(dǎo)方法。
16. —種系統(tǒng),包括具有固件的客戶端設(shè)備,所述固件通過生成分級(jí)數(shù)據(jù)結(jié)構(gòu)來啟動(dòng)所述 客戶端設(shè)備的引導(dǎo)過程,所述分級(jí)數(shù)據(jù)結(jié)構(gòu)包括對(duì)iSCSI設(shè)備的表示;用于經(jīng)由所述固件生成用來從iSCSI設(shè)備檢索引導(dǎo)文件的已擴(kuò)展引導(dǎo) 變?cè)难b置,其中用于生成已擴(kuò)展引導(dǎo)變?cè)乃鲅b置包括用于在所述引 導(dǎo)變?cè)獌?nèi)提供命令關(guān)鍵詞和一個(gè)或多個(gè)限定符關(guān)鍵詞的裝置;網(wǎng)絡(luò)支持包,其被配置成接收和處理包括所述命令關(guān)鍵詞和所述一個(gè)或多個(gè)限定符關(guān)鍵詞的所述已擴(kuò)展引導(dǎo)變?cè)?,目的是從特定信息服?wù)器獲 取所述地址參數(shù)和其它訪問信息,所述特定信息服務(wù)器的發(fā)現(xiàn)協(xié)議是由所述已擴(kuò)展引導(dǎo)變?cè)獌?nèi)的所述限定符關(guān)鍵詞來標(biāo)識(shí);以及用于從所述iSCSI設(shè)備檢索所述引導(dǎo)文件并將所述引導(dǎo)文件轉(zhuǎn)發(fā)到所 述客戶端設(shè)備以便完成所述引導(dǎo)過程的裝置。
17. 根據(jù)權(quán)利要求16所述的系統(tǒng),其中所述網(wǎng)絡(luò)是傳輸控制協(xié)議/因 特網(wǎng)協(xié)議計(jì)算機(jī)網(wǎng)絡(luò),其具有(a)客戶端設(shè)備,(b) iSCSI設(shè)備,所述理網(wǎng)絡(luò)上,以及(c)可經(jīng)由對(duì)應(yīng)的發(fā)現(xiàn)協(xié)議來訪問的一個(gè)或多個(gè)信息服務(wù) 器,并且所述信息服務(wù)器提供尋址信息以使能對(duì)所述iSCSI設(shè)備的定位和 訪問,所述系統(tǒng)包括用于以下功能的裝置在所^J1戶端系統(tǒng)的固件初始引導(dǎo)過程期間,在所ii^戶端系統(tǒng)的硬 件配置中的分級(jí)數(shù)據(jù)結(jié)構(gòu)內(nèi)表示所述iSCSI設(shè)備;生成用于傳輸給網(wǎng)絡(luò)支持包的 一組已擴(kuò)展引導(dǎo)變?cè)渲兴鲆褦U(kuò)展 引導(dǎo)變?cè)铌P(guān)鍵詞,其向所述網(wǎng)絡(luò)支持包標(biāo)識(shí)出需要用于從所述 iSCSI設(shè)備檢索引導(dǎo)映像的iSCSI發(fā)現(xiàn)過程;在所述已擴(kuò)展引導(dǎo)變?cè)獌?nèi)添加一個(gè)或多個(gè)限定符關(guān)鍵詞,其向所述網(wǎng) 絡(luò)支持包標(biāo)識(shí)出特定發(fā)現(xiàn)協(xié)議,用以實(shí)現(xiàn)從所述一個(gè)或多個(gè)信息服務(wù)器檢索所述iscsi設(shè)備的地址參數(shù)和其它訪問信息;以及將所述已擴(kuò)展引導(dǎo)變?cè)M轉(zhuǎn)發(fā)給所述網(wǎng)絡(luò)支持包以觸發(fā)所述網(wǎng)絡(luò)支持包實(shí)現(xiàn)所述iSCSI發(fā)現(xiàn)過程。
18. 根據(jù)權(quán)利要求16所述的系統(tǒng),其中進(jìn)一步地 所述命令關(guān)鍵詞和所述一個(gè)或多個(gè)限定符關(guān)鍵詞在所述已擴(kuò)展引導(dǎo)變?cè)M內(nèi);所述命令關(guān)鍵詞是互斥的多個(gè)可用命令關(guān)鍵詞中的一個(gè)命令關(guān)鍵詞, 從而在所述已擴(kuò)展引導(dǎo)變?cè)M內(nèi)只可以提供一個(gè)命令關(guān)鍵詞;所述一個(gè)或多個(gè)限定符關(guān)鍵詞進(jìn)一 步向所述網(wǎng)絡(luò)支持包標(biāo)識(shí)出將訪問 所述一個(gè)或多個(gè)信息服務(wù)器中的哪一個(gè),用于檢索訪問所述iSCSI設(shè)備以及從所述iSCSI設(shè)備加載51導(dǎo)映像所需的所述地址參數(shù)和其它信息;至少一個(gè)限定符關(guān)鍵詞標(biāo)識(shí)特定發(fā)現(xiàn)協(xié)議以及>[吏用所述特定發(fā)現(xiàn)協(xié)議所需的另外的引導(dǎo)變?cè)?;以及?dāng)在所述已擴(kuò)展引導(dǎo)變?cè)M內(nèi)提供了多個(gè)限定符關(guān)鍵詞時(shí),所述多個(gè)限定符關(guān)鍵詞標(biāo)識(shí)出各個(gè)發(fā)現(xiàn)協(xié)議和相關(guān)聯(lián)的信息服務(wù)器,從而所述網(wǎng)絡(luò)支持包可完成多個(gè)發(fā)現(xiàn)過程,其集中地檢索訪問所述iSCSI設(shè)備并加載所述引導(dǎo)映像所需的所述地址參數(shù)和其它訪問信息。
19. 根據(jù)權(quán)利要求16所述的系統(tǒng),其中進(jìn)一步地 提供所述命令關(guān)鍵詞用于iSCSI設(shè)備和用于網(wǎng)絡(luò)設(shè)備,從而當(dāng)在所述客戶端系統(tǒng)內(nèi)不存在任何iSCSI TCP減栽引擎硬件時(shí)所述命令關(guān)鍵詞觸發(fā) 對(duì)iSCSI啟動(dòng)器的使用以建立iSCSI會(huì)話;以及當(dāng)所述iSCSI設(shè)備在所述分級(jí)數(shù)據(jù)結(jié)構(gòu)中被表征為類網(wǎng)絡(luò)的設(shè)備類型 時(shí),所述系統(tǒng)進(jìn)一步包括用于以下功能的裝置提供網(wǎng)絡(luò)專用引導(dǎo)參數(shù)給所述網(wǎng)絡(luò)支持包,其中所述網(wǎng)絡(luò)支持包 處理所述網(wǎng)絡(luò)專用引導(dǎo)參數(shù)并且經(jīng)由發(fā)現(xiàn)過程獲取所述iSCSI設(shè)備 的另外的地址參數(shù)和訪問信息,以使能從所述iSCSI設(shè)備檢索引導(dǎo)映 像;以及當(dāng)iSCSI TCP減載引擎硬件不存在時(shí)通過提供所述iSCSI啟動(dòng) 器來建立iSCSI會(huì)話。
20. 根據(jù)權(quán)利要求16所述的系統(tǒng),進(jìn)一步包括用于以下功能的裝置第一變?cè)鸵粋€(gè)或多個(gè)第二變?cè)?;其中所述第一變?cè)敲铌P(guān)鍵詞,其對(duì)應(yīng)著特定自舉方法和相關(guān)聯(lián)的 引導(dǎo)變?cè)?,并且區(qū)別不同類型的可用自舉方法;其中所述一個(gè)或多個(gè)第二變?cè)且粋€(gè)或多個(gè)限定符關(guān)鍵詞,其指定發(fā) 現(xiàn)協(xié)議用于獲取用于訪問所述iSCSI設(shè)備以及從所述iSCSI設(shè)備加載所述 引導(dǎo)映像的另外的地址參數(shù);以及在所迷網(wǎng)絡(luò)支持包內(nèi)建立一種機(jī)制,其基于所述引導(dǎo)變?cè)M內(nèi)的所述命令關(guān)鍵詞的存在,從TFTP自舉和iSCSI自舉中區(qū)別不同類型的自舉方 法;其中所述TFTP自舉是缺省方法,從而在所述已擴(kuò)展引導(dǎo)變?cè)M內(nèi)缺 少所述命令關(guān)鍵詞觸發(fā)所述TFTP自舉方法。
全文摘要
一種使系統(tǒng)固件能夠從網(wǎng)絡(luò)連接的因特網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口(iSCSI)設(shè)備高效地引導(dǎo)操作系統(tǒng)(OS)和/或客戶端程序的方法和系統(tǒng)。該方法一般包括(1)定義iSCSI設(shè)備在表示系統(tǒng)硬件的分級(jí)數(shù)據(jù)結(jié)構(gòu)內(nèi)的固件表示;以及(2)擴(kuò)展網(wǎng)絡(luò)支持包以容納額外的引導(dǎo)變?cè)?,該額外的引導(dǎo)變?cè)试S系統(tǒng)固件獲取從該網(wǎng)絡(luò)連接的iSCSI設(shè)備進(jìn)行引導(dǎo)所需的信息,而同時(shí)使用現(xiàn)有發(fā)現(xiàn)協(xié)議之一。
文檔編號(hào)H04L29/06GK101251806SQ20081008171
公開日2008年8月27日 申請(qǐng)日期2008年2月25日 優(yōu)先權(quán)日2007年2月23日
發(fā)明者C·B·埃爾南德斯, J·T·奧坎二世, M·W·溫寧, S·D·利南 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司