本發(fā)明涉及通信技術領域,尤其涉及一種操作系統(tǒng)的安裝方法和裝置。
背景技術:
隨著互聯(lián)網(wǎng)大數(shù)據(jù)發(fā)展的趨勢,數(shù)據(jù)中心內部署的服務器數(shù)量越來越多,如通常會部署上千個服務器,因此,管理員需要為大量的服務器分別安裝os(operatingsystem,操作系統(tǒng)),工作量很大。為了節(jié)省管理員的工作量,目前,可以由服務器自動安裝os,以減少管理員的參與。為了自動安裝os,可以為服務器配置ks(kickstart)文件(自動應答腳本文件),在os的安裝過程中,可以基于ks文件確定如何安裝os,從而達到自動安裝的目的。
為了實現(xiàn)上述自動安裝的過程,可以將ks文件打包到操作系統(tǒng)的鏡像文件中,這樣,在服務器獲取到操作系統(tǒng)的鏡像文件之后,就可以從該鏡像文件中得到ks文件,繼而可以基于該ks文件確定如何安裝os。
但是,由于不同服務器的ks文件可能不同,因此,需要為ks文件不同的服務器生成不同的鏡像文件,這樣就會生成多個鏡像文件,一個鏡像文件可能就需要幾個g的大小,多個鏡像文件必然會占用大量的存儲空間。
技術實現(xiàn)要素:
本發(fā)明提供一種操作系統(tǒng)的安裝方法,應用在服務器上,包括:
從系統(tǒng)提供設備讀取操作系統(tǒng)的鏡像文件,所述鏡像文件包括ks文件對應的地址信息,且在所述地址信息對應的位置未存儲ks文件;
從系統(tǒng)提供設備獲取ks文件,并利用所述ks文件安裝操作系統(tǒng)。
本發(fā)明提供一種操作系統(tǒng)的安裝方法,應用在系統(tǒng)提供設備上,包括:
向服務器提供操作系統(tǒng)的鏡像文件,所述鏡像文件包括ks文件對應的地址信息,且在所述地址信息對應的位置未存儲ks文件;
根據(jù)服務器與ks文件的映射關系,獲取所述服務器對應的ks文件,并將所述ks文件提供給所述服務器,以使服務器利用所述ks文件安裝操作系統(tǒng)。
本發(fā)明提供一種操作系統(tǒng)的安裝裝置,應用在服務器上,包括:
讀取模塊,用于從系統(tǒng)提供設備讀取操作系統(tǒng)的鏡像文件,該鏡像文件包括ks文件對應的地址信息,在所述地址信息對應的位置未存儲ks文件;
獲取模塊,用于從所述系統(tǒng)提供設備獲取ks文件;
安裝模塊,用于利用所述ks文件安裝操作系統(tǒng)。
本發(fā)明提供一種操作系統(tǒng)的安裝裝置,應用在系統(tǒng)提供設備上,包括:
發(fā)送模塊,用于向服務器提供操作系統(tǒng)的鏡像文件,所述鏡像文件包括ks文件對應的地址信息,且在所述地址信息對應的位置未存儲ks文件;
獲取模塊,用于根據(jù)服務器與ks文件的映射關系,獲取所述服務器對應的ks文件;
所述發(fā)送模塊,還用于將所述獲取模塊獲取的所述ks文件提供給所述服務器,以使所述服務器利用所述ks文件安裝操作系統(tǒng)。
基于上述技術方案,本發(fā)明實施例中,通過在系統(tǒng)提供設備上維護服務器與ks文件的映射關系,而不是在操作系統(tǒng)的鏡像文件中來存儲ks文件,這樣,當服務器安裝操作系統(tǒng)時,由系統(tǒng)提供設備根據(jù)服務器與ks文件的映射關系,將服務器對應的ks文件提供給服務器,服務器利用ks文件安裝操作系統(tǒng)?;诖?,當不同服務器的ks文件不同時,不需要為ks文件不同的服務器生成不同的鏡像文件,只為所有服務器生成一個鏡像文件即可,減少鏡像文件的數(shù)量,避免多個鏡像文件占用大量存儲空間,節(jié)省存儲空間。
附圖說明
為了更加清楚地說明本發(fā)明實施例或者現(xiàn)有技術中的技術方案,下面將對 本發(fā)明實施例或者現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實施例,對于本領域普通技術人員來講,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一種實施方式中的應用場景示意圖;
圖2-圖4是本發(fā)明一種實施方式中的操作系統(tǒng)的鏡像文件的示例;
圖5是本發(fā)明一種實施方式中的服務器與ks文件的映射關系的示例;
圖6是本發(fā)明一種實施方式中的操作系統(tǒng)的安裝方法的流程圖;
圖7是本發(fā)明另一種實施方式中的操作系統(tǒng)的安裝方法的流程圖;
圖8是本發(fā)明另一種實施方式中的操作系統(tǒng)的安裝方法的流程圖;
圖9是本發(fā)明一種實施方式中的服務器的硬件結構圖;
圖10是本發(fā)明一種實施方式中的操作系統(tǒng)的安裝裝置的結構圖;
圖11是本發(fā)明一種實施方式中的系統(tǒng)提供設備的硬件結構圖;
圖12是本發(fā)明一種實施方式中的操作系統(tǒng)的安裝裝置的結構圖。
具體實施方式
在本發(fā)明使用的術語僅僅是出于描述特定實施例的目的,而非限制本發(fā)明。本發(fā)明和權利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其它含義。還應當理解,本文中使用的術語“和/或”是指包含一個或多個相關聯(lián)的列出項目的任何或所有可能組合。
應當理解,盡管在本發(fā)明可能采用術語第一、第二、第三等來描述各種信息,但這些信息不應限于這些術語。這些術語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本發(fā)明范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,此外,所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“響應于確定”。
針對現(xiàn)有技術中存在的問題,本發(fā)明實施例中提出一種操作系統(tǒng)的安裝方法,該方法可以應用于包括系統(tǒng)提供設備和多個服務器的系統(tǒng),這些服務器安裝相同的操作系統(tǒng),該系統(tǒng)提供設備上配置有操作系統(tǒng)的鏡像文件,并用于為 各服務器提供該鏡像文件,以使各服務器利用該鏡像文件安裝操作系統(tǒng)。其中,系統(tǒng)提供設備可以是pc(personalcomputer,個人計算機)等。
以圖1為本發(fā)明實施例的應用場景示意圖,系統(tǒng)提供設備可以通過nic(networkinterfacecard,網(wǎng)絡適配器,即網(wǎng)卡)與服務器的nic連接。在服務器內,可以包括bmc(baseboardmanagementcontroller,基板管理控制器)、pch(platformcontrollerhub,平臺控制器集線器,即南橋)和cpu(centralprocessingunit,中央處理器),bmc與nic連接,bmc通過usb(universalserialbus,通用串行總線)接口與pch連接,pch與cpu連接。
在該應用場景下,系統(tǒng)提供設備可以通過nic將操作系統(tǒng)的鏡像文件掛載到服務器的bmc上,bmc通過usb接口將鏡像文件提供給服務器的cpu,最終形成的效果是:為服務器插入一個虛擬的usb光驅,cpu不斷通過usb總線來讀取usb光驅中的數(shù)據(jù),而bmc不斷通過網(wǎng)絡向系統(tǒng)提供設備讀取數(shù)據(jù),而系統(tǒng)提供設備不斷讀取鏡像文件中的數(shù)據(jù),并將讀取的數(shù)據(jù)返回給bmc,bmc將數(shù)據(jù)返回給cpu,以使cpu可以利用鏡像文件來安裝操作系統(tǒng)。
其中,bmc從系統(tǒng)提供設備讀取數(shù)據(jù)的過程,與服務器是否安裝了操作系統(tǒng)無關,即使服務器沒有安裝操作系統(tǒng),bmc也可以從系統(tǒng)提供設備讀取數(shù)據(jù),并將數(shù)據(jù)提供給cpu,以使cpu可以利用鏡像文件安裝操作系統(tǒng)。
其中,操作系統(tǒng)的鏡像文件可以為iso鏡像文件(即光盤鏡像文件)。
如圖2所示,為操作系統(tǒng)的鏡像文件的一種示例,在該鏡像文件中,包括各文件的目錄結構體(directoryrecord)以及各文件的內容。在文件的目錄結構體中,可以包括但不限于文件名稱、文件首地址、文件大小等信息,該文件首地址和文件大小是指該文件的內容所在的首地址和文件的內容的大小。
例如,在圖2中,針對文件a的目錄結構體,文件名稱為中文語言、文件首地址為地址1,文件大小為大小1,而地址1與大小1之和為地址2(目錄結構體中可以記錄地址2,也可以不記錄地址2,本例中以不記錄地址2為例,本例中引出地址2只是為了后續(xù)說明方便,目錄結構體中沒有記錄地址2),因此,文件a的內容是中文語言的安裝程序,文件a的內容所在的地址空間是地址1 與地址2之間。針對文件b的目錄結構體,文件名稱為英文語言、文件首地址為地址3,文件大小為大小2,而地址3與大小2之和為地址4,因此,文件b的內容是英文語言的安裝程序,文件b的內容所在的地址空間是地址3與地址4之間。針對文件c的目錄結構體,文件名稱為word程序、文件首地址為地址5,文件大小為大小3,而地址5與大小3之和為地址6,因此,文件c的內容是word安裝程序,文件c的內容所在的地址空間是地址5與地址6之間。
基于上述鏡像文件,服務器的cpu首先從鏡像文件的某個地址開始讀取數(shù)據(jù),假設讀取到文件b的目錄結構體,獲知文件b的內容是英文語言的安裝程序,如果不安裝英文語言的安裝程序,則cpu不讀取地址3與地址4之間的文件b的內容,繼續(xù)讀取文件b的目錄結構體的地址之后的數(shù)據(jù)。假設讀取到文件a的目錄結構體,獲知文件a的內容是中文語言的安裝程序,如果安裝中文語言的安裝程序,則cpu讀取地址1與地址2之間的文件a的內容(即發(fā)送攜帶有地址1和大小1的讀取命令,這個讀取命令用于讀取文件a的內容),并利用文件a的內容安裝中文語言的安裝程序,并繼續(xù)讀取文件a的目錄結構體的地址之后的數(shù)據(jù)。假設讀取到文件c的目錄結構體,獲知文件c的內容是word安裝程序,如果安裝word安裝程序,則cpu讀取地址5與地址6之間的文件c的內容(即發(fā)送攜帶有地址5和大小3的讀取命令,這個讀取命令用于讀取文件c的內容),并利用文件c的內容安裝word程序,以此類推。
在上述鏡像文件結構體的基礎上,本發(fā)明實施例中,鏡像文件還可以包括ks文件對應的地址信息,且在該地址信息對應的位置未存儲ks文件。其中,針對鏡像文件包括ks文件對應的地址信息的方式,可以在鏡像文件包括ks文件的目錄結構體,且該目錄結構體包括ks文件對應的地址信息。進一步的,ks文件對應的地址信息包括ks文件對應的文件首地址和文件大小。
如圖3和圖4所示,為本發(fā)明實施例的操作系統(tǒng)的鏡像文件的示例,在該鏡像文件中,包括ks文件的目錄結構體(directoryrecord)以及ks文件的內容。在ks文件的目錄結構體中,可以包括但不限于文件名稱(即ks文件)、文件首地址、文件大小等信息,該文件首地址和文件大小是指該ks文件的內容 所在的首地址和該ks文件的大小,如文件首地址為地址7,文件大小為大小4。此外,地址7與大小4之和為地址8(可以將地址8稱為文件尾地址),即ks文件的內容所在的地址空間是地址7與地址8之間。此外,本例中引出地址8只是為了說明方便,ks文件的目錄結構體中并沒有記錄地址8。
與上述文件a、文件b、文件c的內容不同的是,ks文件的內容為空,即不將真正的ks文件打包到鏡像文件中,在地址7(文件首地址)與地址8(文件尾地址)之間的地址空間未存儲ks文件。而且,地址7與地址8之間的地址空間已經(jīng)被ks文件的內容占位,不能再被其它文件所占用。
在實際應用中,雖然不同ks文件的文件大小不同,但是ks文件畢竟是一個文本文件,ks文件不會很大,因此,不用獲知每個ks文件的文件大小,只要知道最大ks文件的文件大小,即可以預留一個指定大小(如10kb)的地址空間,該指定大小可以大于等于最大ks文件的文件大小,即地址7與地址8之間的地址空間為指定大小,上述目錄結構體中的文件大小為該指定大小。這樣,就可以保證服務器在讀取指定大小的地址空間的數(shù)據(jù)時,能夠讀取到完整的ks文件,具體讀取過程在后續(xù)過程中闡述。
上述文件a的內容的大小就是地址1與地址2之間的地址空間的大小1,同理,文件b的內容的大小就是地址3與地址4之間的地址空間的大小2,文件c的內容的大小就是地址5與地址6之間的地址空間的大小3。而與此不同的是,地址7與地址8之間的地址空間為指定大小(文件大小4),并不一定等于實際的ks文件的大小,指定大小可以根據(jù)實際情況選擇,且在生成鏡像文件時指定。
在一個例子中,指定大小可以為10kb,且ks文件的文件首地址(地址7)為0x100000,基于此,ks文件的文件尾地址(地址8)為0x100000+0x2800。
其中,圖4與圖3相比,在圖4中,地址7與地址8之間的地址空間是系統(tǒng)保留空間,該系統(tǒng)保留空間在目前的鏡像文件中并沒有被使用,而本發(fā)明實施例中,可以將系統(tǒng)保留空間作為ks文件的內容占用的空間,且系統(tǒng)保留空間的文件大小為32kb,通常會大于實際的ks文件的文件大小。
其中,為了實現(xiàn)將文件a、文件b、文件c、ks文件配置到鏡像文件,則 鏡像文件可以是壓縮文件,在該壓縮文件內包含多個文件,如文件a等。
本發(fā)明實施例中,由于不將真正的ks文件打包到鏡像文件中,因此,為了對服務器提供ks文件,可以在系統(tǒng)提供設備上存儲ks文件。由于不同服務器的ks文件可能不同,因此,為了區(qū)分每個服務器的ks文件,還可以維護服務器的標識信息(如ip地址、名稱等)與ks文件的映射關系。
針對系統(tǒng)提供設備維護服務器的標識信息與ks文件的映射關系的過程,當多個服務器使用相同的ks文件時,則可以維護這多個服務器的標識信息與該ks文件的映射關系;或者,當多個服務器使用不同的ks文件時,則可以分別維護每個服務器的標識信息與其對應的ks文件的映射關系。
如圖5所示,為服務器與ks文件的映射關系的示例,假設服務器a和服務器b使用相同的ks文件,則為服務器a和服務器b生成ks文件1,并維護服務器a與ks文件1的映射關系,維護服務器b與ks文件1的映射關系。假設服務器c單獨使用ks文件,則為服務器c生成ks文件2,并維護服務器c與ks文件2的映射關系。假設服務器d單獨使用ks文件,則為服務器d生成ks文件3,并維護服務器d與ks文件3的映射關系。
其中,系統(tǒng)提供設備可以根據(jù)管理員為服務器設置的配置信息來生成ks文件。例如,該配置信息可以為密碼信息、分區(qū)信息、分區(qū)大小信息等,當然配置信息并不局限于此,所有在系統(tǒng)安裝過程中,需要用戶手工輸入的選項,均可以作為一種配置信息,并將配置信息生成到ks文件中。在系統(tǒng)安裝過程中,可能要求管理員輸入密碼信息,以區(qū)分管理員的角色,是否有權限安裝操作系統(tǒng)。在系統(tǒng)安裝過程中,可能要求管理員輸入分區(qū)信息,如劃分出c、d、e等三個硬盤,且c盤是系統(tǒng)盤。在系統(tǒng)安裝過程中,可能要求管理員輸入分區(qū)大小信息,如c盤是80g,d盤是120g、e盤是300g等。
以配置信息是密碼信息為例,假設管理員為服務器a和服務器b設置的密碼信息為123456,則基于系統(tǒng)提供設備生成的ks文件1,在服務器a或者服務器b的系統(tǒng)安裝過程中,代替管理員輸入密碼123456。假設管理員為服務器c設置的密碼信息為123123,則基于系統(tǒng)提供設備生成的ks文件2,在服務器 c的系統(tǒng)安裝過程中,代替管理員輸入密碼123123。
基于上述應用場景,參見圖6,本發(fā)明實施例中提出的操作系統(tǒng)的安裝方法,可以應用在服務器上,且該操作系統(tǒng)的安裝方法可以包括以下步驟:
步驟601,從系統(tǒng)提供設備讀取操作系統(tǒng)的鏡像文件,該鏡像文件包括ks文件對應的地址信息,且在該地址信息對應的位置未存儲ks文件。
其中,該鏡像文件可以包括ks文件的目錄結構體,且該目錄結構體可以包括ks文件對應的地址信息。進一步的,ks文件對應的地址信息包括ks文件對應的文件首地址和文件大小,具體內容參見上述圖3和圖4。
步驟602,從系統(tǒng)提供設備獲取ks文件,并利用該ks文件安裝操作系統(tǒng)。
本發(fā)明實施例中,從系統(tǒng)提供設備獲取ks文件的過程,具體可以包括但不限于如下方式:在讀取鏡像文件的過程中,向系統(tǒng)提供設備發(fā)送本服務器的標識信息以及當前讀取位置信息;以使系統(tǒng)提供設備在根據(jù)該當前讀取位置信息確定該服務器讀取到該地址信息對應的位置時,則根據(jù)服務器與ks文件的映射關系,獲取該標識信息對應的ks文件。進一步的,在系統(tǒng)提供設備獲取到ks文件之后,則服務器可以從系統(tǒng)提供設備獲取到該標識信息對應的ks文件。
當然,在實際應用中,并不局限于上述獲取ks文件的方式,如系統(tǒng)提供設備可以在任意時機,主動將ks文件發(fā)送給服務器,而不是在確定該服務器讀取到該地址信息對應的位置時,才將ks文件發(fā)送給服務器,對此不再贅述。
基于上述技術方案,本發(fā)明實施例中,通過在系統(tǒng)提供設備上維護服務器與ks文件的映射關系,而不是在操作系統(tǒng)的鏡像文件中來存儲ks文件,這樣,當服務器安裝操作系統(tǒng)時,由系統(tǒng)提供設備根據(jù)服務器與ks文件的映射關系,將服務器對應的ks文件提供給服務器,服務器利用ks文件安裝操作系統(tǒng)?;诖耍敳煌掌鞯膋s文件不同時,不需要為ks文件不同的服務器生成不同的鏡像文件,只為所有服務器生成一個鏡像文件即可,減少鏡像文件的數(shù)量,避免多個鏡像文件占用大量存儲空間,節(jié)省存儲空間。
參見圖7,本發(fā)明實施例中提出的操作系統(tǒng)的安裝方法,可以應用在系統(tǒng)提供設備上,且該操作系統(tǒng)的安裝方法可以包括以下步驟:
步驟701,向服務器提供操作系統(tǒng)的鏡像文件,該鏡像文件包括ks文件對應的地址信息,且在該地址信息對應的位置未存儲ks文件。
其中,該鏡像文件可以包括ks文件的目錄結構體,且該目錄結構體可以包括ks文件對應的地址信息。進一步的,ks文件對應的地址信息包括ks文件對應的文件首地址和文件大小,具體內容參見上述圖3和圖4。
步驟702,根據(jù)服務器與ks文件的映射關系,獲取服務器對應的ks文件,并將ks文件提供給服務器,以使該服務器利用該ks文件安裝操作系統(tǒng)。
本發(fā)明實施例中,根據(jù)服務器與ks文件的映射關系,獲取服務器對應的ks文件的過程,具體可以包括但不限于如下方式:在接收到來自服務器的標識信息以及當前讀取位置信息后,根據(jù)該當前讀取位置信息判斷服務器是否讀取到該地址信息對應的位置(即ks文件對應的地址信息對應的位置)。如果是,則根據(jù)服務器與ks文件的映射關系,獲取該標識信息對應的ks文件,如果否,則采用現(xiàn)有流程,將當前讀取位置信息在鏡像文件中對應的數(shù)據(jù)發(fā)送給服務器。
當然,實際應用中并不局限于上述獲取服務器對應的ks文件的方式,如系統(tǒng)提供設備可以在任意時機,主動將ks文件發(fā)送給服務器,而不是在確定服務器讀取到該地址信息對應的位置時才將ks文件發(fā)送給服務器,對此不再贅述。
根據(jù)當前讀取位置信息判斷服務器是否讀取到該地址信息對應的位置的過程,具體可以包括但不限于如下方式:利用當前讀取位置信息獲取當前讀取內容的偏移首地址和內容長度;當偏移首地址大于等于文件首地址,且內容長度與偏移首地址之和小于等于文件首地址與文件大小之和時,則確定服務器讀取到地址信息對應的位置;否則,確定服務器沒有讀取到地址信息對應的位置。
基于上述技術方案,本發(fā)明實施例中,通過在系統(tǒng)提供設備上維護服務器與ks文件的映射關系,而不是在操作系統(tǒng)的鏡像文件中來存儲ks文件,這樣,當服務器安裝操作系統(tǒng)時,由系統(tǒng)提供設備根據(jù)服務器與ks文件的映射關系,將服務器對應的ks文件提供給服務器,服務器利用ks文件安裝操作系統(tǒng)?;诖?,當不同服務器的ks文件不同時,不需要為ks文件不同的服務器生成不同的鏡像文件,只為所有服務器生成一個鏡像文件即可,減少鏡像文件 的數(shù)量,避免多個鏡像文件占用大量存儲空間,節(jié)省存儲空間。
參見圖8,本發(fā)明實施例提出的操作系統(tǒng)的安裝方法可以包括以下步驟:
步驟801,服務器從系統(tǒng)提供設備讀取操作系統(tǒng)的鏡像文件。
其中,系統(tǒng)提供設備可以通過nic將操作系統(tǒng)的鏡像文件掛載到服務器的bmc上,bmc通過usb接口將鏡像文件提供給服務器的cpu,以為服務器插入一個虛擬的usb光驅,cpu不斷通過usb總線來讀取usb光驅中的數(shù)據(jù),而bmc不斷通過網(wǎng)絡向系統(tǒng)提供設備讀取數(shù)據(jù),而系統(tǒng)提供設備不斷讀取鏡像文件中的數(shù)據(jù),并將讀取的數(shù)據(jù)返回給bmc,bmc將數(shù)據(jù)返回給cpu。這樣,服務器的cpu就可以從系統(tǒng)提供設備讀取到鏡像文件。
本發(fā)明實施例中,鏡像文件的結構體如圖3和圖4所示,鏡像文件可以包括ks文件對應的地址信息,在該地址信息對應的位置未存儲ks文件。其中,針對鏡像文件包括ks文件對應的地址信息的方式,可以在鏡像文件包括ks文件的目錄結構體,且該目錄結構體包括ks文件對應的地址信息。進一步的,ks文件對應的地址信息包括ks文件對應的文件首地址和文件大小。
在一個具體例子中,ks文件的文件首地址為0x100000,文件大小為0x2800。基于此,文件尾地址可以為0x100000+0x2800,在文件首地址和文件大小對應的位置未存儲ks文件,即在0x100000與0x100000+0x2800之間未存儲ks文件。
步驟802,服務器在讀取鏡像文件的過程中,向系統(tǒng)提供設備發(fā)送本服務器的標識信息以及當前讀取位置信息。
其中,服務器讀取操作系統(tǒng)的鏡像文件的過程,實際上并不是直接從系統(tǒng)提供設備讀取全部的鏡像文件內容,而是cpu不斷通過usb總線來讀取usb光驅中的數(shù)據(jù),而bmc不斷通過網(wǎng)絡向系統(tǒng)提供設備讀取數(shù)據(jù),而系統(tǒng)提供設備不斷讀取鏡像文件中的數(shù)據(jù),并將讀取的數(shù)據(jù)返回給bmc,bmc將數(shù)據(jù)返回給cpu,這個過程就是服務器讀取鏡像文件的過程。
在服務器讀取鏡像文件的過程中,假設服務器需要讀取地址1與地址2之間的數(shù)據(jù),則向系統(tǒng)提供設備發(fā)送攜帶地址1與大小1、標識信息的讀取命令,以使系統(tǒng)提供設備返回地址1與地址2之間的數(shù)據(jù)。假設服務器需要讀取地址7 與地址8之間的數(shù)據(jù),則向系統(tǒng)提供設備發(fā)送攜帶地址7與大小4、標識信息的讀取命令,以使系統(tǒng)提供設備返回地址7與地址8之間的數(shù)據(jù)。
步驟803,系統(tǒng)提供設備在接收到來自服務器的標識信息以及當前讀取位置信息后,根據(jù)該當前讀取位置信息判斷服務器是否讀取到ks文件對應的地址信息對應的位置。如果是,則執(zhí)行步驟804,如果否,則系統(tǒng)提供設備采用現(xiàn)有流程,將該當前讀取位置信息在鏡像文件中對應的數(shù)據(jù)發(fā)送給服務器。
例如,如果當前讀取位置信息是地址1與大小1,則服務器沒有讀取到ks文件對應的地址信息對應的位置,因此,系統(tǒng)提供設備將地址1與地址2(地址1與大小1之和)之間的數(shù)據(jù)發(fā)送給該標識信息對應的服務器。又例如,如果當前讀取位置信息是地址7與大小4,則服務器讀取到ks文件對應的地址信息對應的位置,因此,執(zhí)行步驟804和后續(xù)步驟,系統(tǒng)提供設備是將ks文件發(fā)送給該標識信息對應的服務器,而不是將地址7與地址8(地址7與大小4之和)之間的數(shù)據(jù)(實際上這部分空間的數(shù)據(jù)為空)發(fā)送給該標識信息對應的服務器。
本發(fā)明實施例中,系統(tǒng)提供設備根據(jù)當前讀取位置信息判斷服務器是否讀取到該地址信息對應的位置的過程,具體可以包括但不限于如下方式:系統(tǒng)提供設備利用當前讀取位置信息獲取當前讀取內容的偏移首地址和內容長度;當偏移首地址大于等于文件首地址,且內容長度與偏移首地址之和小于等于文件首地址與文件大小之和時,則系統(tǒng)提供設備確定服務器讀取到地址信息對應的位置;否則,系統(tǒng)提供設備確定服務器沒有讀取到地址信息對應的位置。
其中,為了與ks文件的文件首地址與文件大小進行區(qū)分,將服務器請求數(shù)據(jù)的首地址稱為偏移首地址,并將請求數(shù)據(jù)的大小稱為內容長度。
在一個例子中,當偏移首地址等于ks文件的文件首地址,且內容長度與偏移首地址之和等于ks文件的文件首地址與文件大小之和時,則說明服務器向系統(tǒng)提供設備發(fā)送讀取ks文件對應的地址信息對應的位置的數(shù)據(jù)的命令。
在另一個例子中,為了讀取文件首地址與文件尾地址之間的數(shù)據(jù),還可以允許服務器發(fā)送多次命令,如命令1中攜帶的偏移首地址等于地址7,攜帶的內容長度1小于大小4,偏移尾地址等于地址9(位于地址7與地址8之間),命 令2中攜帶的偏移首地址等于地址9,內容長度2等于大小4與內容長度1之差,偏移尾地址等于地址8?;诖?,命令1和命令2都是讀取ks文件對應的地址信息對應的位置的數(shù)據(jù)的命令,而命令1中攜帶的偏移首地址等于文件首地址,內容長度與偏移首地址之和小于文件首地址與文件大小之和,命令2中攜帶的偏移首地址大于文件首地址,內容長度與偏移首地址之和等于文件首地址與文件大小之和??紤]到這樣情況,當偏移首地址大于等于文件首地址,內容長度與偏移首地址之和小于等于文件首地址與文件大小之和時,說明服務器向系統(tǒng)提供設備發(fā)送讀取ks文件對應的地址信息對應的位置的數(shù)據(jù)的命令。
步驟804,系統(tǒng)提供設備根據(jù)服務器與ks文件的映射關系,獲取該標識信息(即步驟803中收到的服務器的標識信息)對應的ks文件。
例如,系統(tǒng)提供設備在接收到服務器a的標識信息之后,根據(jù)圖5所示的映射關系,可以獲取到該服務器a的標識信息對應的ks文件為ks文件1。又例如,系統(tǒng)提供設備在接收到服務器c的標識信息之后,根據(jù)圖5所示的映射關系,可以獲取到該服務器c的標識信息對應的ks文件為ks文件2。
步驟805,系統(tǒng)提供設備將ks文件提供給服務器。
其中,系統(tǒng)提供設備在接收到讀取ks文件對應的地址信息對應的位置(文件首地址與文件大小)的數(shù)據(jù)的命令時,并不是到鏡像文件的文件首地址與文件大小之間去讀取數(shù)據(jù)(這部分地址空間為空),而是從本地存儲的ks文件中去讀取ks文件,并將該ks文件提供給服務器。
以系統(tǒng)提供設備將ks文件1提供給服務器a為例,系統(tǒng)提供設備在接收到讀取文件首地址與文件尾地址(文件首地址與文件大小之和)之間的數(shù)據(jù)的命令時,假設偏移首地址等于文件首地址,且內容長度等于文件大小,則說明服務器要讀取指定大小(如10kb)的數(shù)據(jù),實際上,ks文件1的大小通常小于指定大小?;诖耍景l(fā)明實施例中,系統(tǒng)提供設備可以直接將ks文件1提供給服務器a,也可以在ks文件1中添加(指定大小-ks文件1大小)的空數(shù)據(jù),得到一個包含ks文件1的指定大小的數(shù)據(jù),并將該數(shù)據(jù)提供給服務器a。
其中,可以在ks文件1后面添加(指定大小-ks文件1大小)的空數(shù)據(jù), 也可以在ks文件1前面添加(指定大小-ks文件1大小)的空數(shù)據(jù)。
在另一個例子中,以系統(tǒng)提供設備將ks文件1提供給服務器a為例,系統(tǒng)提供設備在接收到讀取文件首地址與文件尾地址之間的數(shù)據(jù)的命令1時,假設偏移首地址等于文件首地址,且內容長度等于長度1,該長度1小于文件大小,則說明服務器需要分開讀取ks文件1,且最終會讀取到指定大小的數(shù)據(jù),且ks文件1的大小通常會小于指定大小?;诖耍景l(fā)明實施例中,假設ks文件1的大小大于等于該長度1,則從ks文件1中選取出長度1的數(shù)據(jù)1,假設ks文件1中的剩余部分為數(shù)據(jù)2,并將ks文件中的數(shù)據(jù)1提供給服務器a。假設ks文件1的大小小于該長度1,則可以將ks文件1提供給服務器a,也可以在ks文件1中添加(長度1-ks文件1大小)的空數(shù)據(jù),如在ks文件1后面添加該空數(shù)據(jù)或者在ks文件1前面添加該空數(shù)據(jù),得到一個包含ks文件1的長度1的數(shù)據(jù),并將該數(shù)據(jù)提供給服務器a。
系統(tǒng)提供設備在接收到讀取文件首地址與文件尾地址之間的數(shù)據(jù)的命令2時,假設偏移首地址等于地址9(大于文件首地址,且是地址7與長度1之和),且內容長度等于長度2(長度1與長度2之和等于文件大小),則說明之前已經(jīng)向服務器a提供過ks文件1的部分內容或者全部內容。假設之前已經(jīng)向服務器a提供了ks文件1的全部內容,則系統(tǒng)提供設備生成一個長度2的空數(shù)據(jù),并將該數(shù)據(jù)提供給服務器a。假設之前已經(jīng)向服務器a提供過ks文件1的部分內容,ks文件1中的剩余部分為數(shù)據(jù)2,如果數(shù)據(jù)2的大小大于等于該長度2,則從數(shù)據(jù)2中選取出長度2的數(shù)據(jù),并將當前從ks文件中選擇的數(shù)據(jù)提供給服務器a。假設數(shù)據(jù)2的大小小于該長度2,則可以將ks文件1中的數(shù)據(jù)2提供給服務器a,也可以在數(shù)據(jù)2中添加(長度2-數(shù)據(jù)2大小)的空數(shù)據(jù),如在數(shù)據(jù)2后面添加該空數(shù)據(jù)或者在數(shù)據(jù)2前面添加該空數(shù)據(jù),得到一個包含ks文件中的數(shù)據(jù)2的長度2的數(shù)據(jù),并將該數(shù)據(jù)提供給服務器a。
步驟806,服務器從系統(tǒng)提供設備獲取ks文件,并利用該ks文件安裝操作系統(tǒng)。當然,服務器是利用該ks文件和鏡像文件一起來安裝操作系統(tǒng)。
基于上述技術方案,本發(fā)明實施例中,通過在系統(tǒng)提供設備上維護服務器 與ks文件的映射關系,而不是在操作系統(tǒng)的鏡像文件中來存儲ks文件,這樣,當服務器安裝操作系統(tǒng)時,由系統(tǒng)提供設備根據(jù)服務器與ks文件的映射關系,將服務器對應的ks文件提供給服務器,服務器利用ks文件安裝操作系統(tǒng)?;诖耍敳煌掌鞯膋s文件不同時,不需要為ks文件不同的服務器生成不同的鏡像文件,只為所有服務器生成一個鏡像文件即可,減少鏡像文件的數(shù)量,避免多個鏡像文件占用大量存儲空間,節(jié)省存儲空間。
基于與上述方法同樣的發(fā)明構思,本發(fā)明實施例提供一種操作系統(tǒng)的安裝裝置,該操作系統(tǒng)的安裝裝置應用在服務器上。該操作系統(tǒng)的安裝裝置可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結合的方式實現(xiàn)。以軟件實現(xiàn)為例,作為一個邏輯意義上的裝置,是通過服務器的處理器,讀取非易失性存儲器中對應的計算機程序指令形成的。從硬件層面而言,如圖9所示,為本發(fā)明提出的操作系統(tǒng)的安裝裝置所在的服務器的硬件結構圖,除了圖9所示的處理器、非易失性存儲器外,服務器還可以包括其他硬件,如負責處理報文的轉發(fā)芯片、網(wǎng)絡接口、內存等;從硬件結構上來講,服務器還可能是分布式設備,可能包括多個接口卡,以便在硬件層面進行報文處理的擴展。
如圖10所示,為本發(fā)明提出的操作系統(tǒng)的安裝裝置的結構圖,所述操作系統(tǒng)的安裝裝置具體包括:讀取模塊11,用于從系統(tǒng)提供設備讀取操作系統(tǒng)的鏡像文件,該鏡像文件包括ks文件對應的地址信息,在所述地址信息對應的位置未存儲ks文件;獲取模塊12,用于從所述系統(tǒng)提供設備獲取ks文件;安裝模塊13,用于利用所述ks文件安裝操作系統(tǒng)。
本發(fā)明實施例中,所述讀取模塊11獲取的所述鏡像文件中,所述ks文件對應的地址信息包括ks文件對應的文件首地址和文件大小。
所述讀取模塊11,具體用于在讀取所述鏡像文件的過程中,向所述系統(tǒng)提供設備發(fā)送所述服務器的標識信息以及當前讀取位置信息;以使所述系統(tǒng)提供設備在根據(jù)所述當前讀取位置信息確定所述服務器讀取到所述地址信息對應的位置時,則根據(jù)服務器與ks文件的映射關系,獲取所述標識信息對應的ks文件;所述獲取模塊12,具體用于在從所述系統(tǒng)提供設備獲取ks文件的過程中, 接收來自所述系統(tǒng)提供設備的所述標識信息對應的ks文件。
其中,本發(fā)明裝置的各個模塊可以集成于一體,也可以分離部署。上述模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。
基于與上述方法同樣的發(fā)明構思,本發(fā)明實施例中還提供了一種操作系統(tǒng)的安裝裝置,該操作系統(tǒng)的安裝裝置可以應用在系統(tǒng)提供設備(如pc等)上。其中,該操作系統(tǒng)的安裝裝置可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結合的方式實現(xiàn)。以軟件實現(xiàn)為例,作為一個邏輯意義上的裝置,是通過系統(tǒng)提供設備的處理器,讀取非易失性存儲器中對應的計算機程序指令形成的。從硬件層面而言,如圖11所示,為本發(fā)明提出的操作系統(tǒng)的安裝裝置所在的系統(tǒng)提供設備的硬件結構圖,除了圖11所示的處理器、非易失性存儲器外,系統(tǒng)提供設備還可以包括其他硬件,如負責處理報文的轉發(fā)芯片、網(wǎng)絡接口、內存等;從硬件結構上來講,系統(tǒng)提供設備還可能是分布式設備,可能包括多個接口卡,以便在硬件層面進行報文處理的擴展。
如圖12所示,為本發(fā)明提出的操作系統(tǒng)的安裝裝置的結構圖,包括:
發(fā)送模塊21,用于向服務器提供操作系統(tǒng)的鏡像文件,所述鏡像文件包括ks文件對應的地址信息,且在所述地址信息對應的位置未存儲ks文件;
獲取模塊22,用于根據(jù)服務器與ks文件的映射關系,獲取所述服務器對應的ks文件;
所述發(fā)送模塊21,還用于將所述獲取模塊獲取的所述ks文件提供給所述服務器,以使所述服務器利用所述ks文件安裝操作系統(tǒng)。
本發(fā)明實施例中,所述發(fā)送模塊21發(fā)送的所述鏡像文件中,所述ks文件對應的地址信息包括ks文件對應的文件首地址和文件大小。
本發(fā)明實施例中,所述獲取模塊22,具體用于在根據(jù)服務器與ks文件的映射關系,獲取所述服務器對應的ks文件的過程中,在接收到來自所述服務器的標識信息以及當前讀取位置信息后,根據(jù)所述當前讀取位置信息判斷所述服務器是否讀取到所述地址信息對應的位置;如果是,則根據(jù)服務器與ks文件的映射關系,獲取所述標識信息對應的ks文件。
所述獲取模塊22,具體用于在根據(jù)所述當前讀取位置信息判斷所述服務器是否讀取到所述地址信息對應的位置的過程中,利用所述當前讀取位置信息獲取當前讀取內容的偏移首地址和內容長度;當所述偏移首地址大于等于所述文件首地址,且所述內容長度與所述偏移首地址之和小于等于所述文件首地址與所述文件大小之和時,則確定所述服務器讀取到所述地址信息對應的位置;否則,確定所述服務器沒有讀取到所述地址信息對應的位置。
所述操作系統(tǒng)的安裝裝置還包括(圖中未體現(xiàn)):維護模塊,用于當多個服務器使用相同的ks文件時,則維護所述多個服務器的標識信息與所述ks文件的映射關系;或者,當多個服務器使用不同的ks文件時,則分別維護每個服務器的標識信息與其對應的ks文件的映射關系。
其中,本發(fā)明裝置的各個模塊可以集成于一體,也可以分離部署。上述模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產品的形式體現(xiàn)出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。本領域技術人員可以理解附圖只是一個優(yōu)選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。
本領域技術人員可以理解實施例中的裝置中的模塊可以按照實施例描述進行分布于實施例的裝置中,也可以進行相應變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可進一步拆分成多個子模塊。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
以上公開的僅為本發(fā)明的幾個具體實施例,但是,本發(fā)明并非局限于此,任何本領域的技術人員能思之的變化都應落入本發(fā)明的保護范圍。