新四季網

大規模聯網系統中的軟體部署的製作方法

2023-05-04 19:11:31

專利名稱:大規模聯網系統中的軟體部署的製作方法
大規模聯網系統中的軟體部署背景大規模聯網系統是在用於運行應用程式和維護數據以用於商務和操作功能的各 種環境中使用的常見系統。例如,數據中心可以提供各種web應用程式(例如,電子郵件服 務、搜尋引擎服務等)。大規模聯網系統包括大量伺服器節點,其中每一節點是物理機或在 物理主機上運行的虛擬機。部分地由於這樣的大規模系統中可包括的大量伺服器節點,將 軟體(作業系統(OS)和應用程式)部署到各節點並在每一節點上維護該軟體可以是耗時 且昂貴的過程。尤其是軟體通常在每一節點本地安裝和升級,使得安裝和更新專用於各單 獨節點。可能發生只能在在線供應和/或更新過程期間檢測的多個故障。另外,在串行地 升級並在本地修補機器時,可發生「位腐壞」。位腐壞指的是由於人類或軟體錯誤而發生的 本地軟體狀態(例如,作業系統配置狀態)的改變。在該狀態改變時,節點的行為變得不可 預測。概述提供本概述是為了以簡化的形式介紹將在以下詳細描述中進一步描述的一些概 念。該概述不旨在標識所要求保護的主題的關鍵特徵或必要特徵,也不旨在用於幫助確定 所要求保護的主題的範圍。本發明的各實施例涉及向大規模聯網系統內的各伺服器節點部署軟體。各實施例 使用基於鏡像的部署,其中大部分是不可變的鏡像在中央服務處提供並從該中央服務傳送 到伺服器節點。該鏡像包括不可變的基本鏡像和可寫的且向基本部分提供角色專用和/或 節點專用狀態的增量鏡像。在伺服器節點從中央伺服器接收到鏡像時,伺服器節點原樣存 儲該鏡像而不安裝。伺服器節點隨後直接從所存儲的鏡像運行軟體。若干附圖的簡述以下參考附圖詳細描述本發明,附圖中

圖1是適用於實現本發明的示例性計算環境的框圖;圖2是示出其中可以使用本發明各實施例的示例性系統的框圖;圖3是根據本發明的一實施例的存儲用於多個角色和多個版本的軟體鏡像的示 例性節點上(on-node)高速緩存的框圖;圖4是示出根據本發明的一實施例的用於向大規模聯網系統中的伺服器節點部 署軟體的方法的流程圖;以及圖5是示出根據本發明的一實施例的用於向大規模聯網系統中的伺服器節點部 署軟體更新的方法的流程圖。詳細描述此處用細節來描述本發明的主題以滿足法定要求。然而,描述本身並非旨在限制 本專利的範圍。相反,發明人設想所要求保護的主題還可結合其它當前或未來技術按照其 他方式來具體化,以包括不同的步驟或類似於本文中所描述的步驟的步驟組合。此外,儘管 術語「步驟」和/或「框」可在此處用於指示所採用的方法的不同元素,但這些術語不應被 解讀為意味著此處公開的各個步驟之中或之間有任何特定次序,除非是明確描述了各個步驟的次序並且僅當如此時才可如此來解讀。如上所示,本發明的各實施例使用基於鏡像的部署來向伺服器節點提供軟體部 署。如此處所使用的,「鏡像」指的是任何被封閉的名字空間。因此,在一個方面,本發明的一實施例針對一個或多個包含用於執行一種向大規 模聯網系統內的多個伺服器節點部署軟體的方法的計算機-可使用指令的計算機-可讀介 質。該方法包括在大規模聯網系統內的中央服務處提供第一鏡像。該第一鏡像包括不可變 部分和可寫部分。該方法還包括將該第一鏡像從中央服務傳送到各伺服器節點。該方法還 包括在每一伺服器節點處存儲該第一鏡像而不在每一伺服器節點處執行該第一鏡像的安 裝。該方法還包括在一個或多個伺服器節點處直接從該第一鏡像運行軟體。在本發明的另一實施例中,一個方面針對一個或多個包含用於執行一種向大規模 聯網系統中的多個伺服器節點部署軟體更新的方法的計算機-可使用指令的計算機可讀 介質。該方法包括通過將軟體更新應用於先前鏡像來生成新鏡像。該方法還包括將該新鏡 像從中央服務傳送到各伺服器節點,其中這些節點中的至少一部分正在運行先前鏡像。該 方法還包括在各伺服器節點處存儲該新鏡像而不安裝該新鏡像。該方法還包括在一個或多 個伺服器節點處直接從該新鏡像運行軟體。本發明的又一方面針對一種包括中央服務的系統,該中央服務包括用於存儲鏡像 和將該鏡像傳送到多個伺服器節點的一個或多個計算設備。該鏡像具有不可變部分和可寫 部分。各伺服器節點被配置成從中央服務接收鏡像,存儲該鏡像而不安裝該鏡像,以及直接 從該鏡像引導。在簡要描述了本發明的概覽之後,以下描述其中可實現本發明的各方面的示例性 操作環境,以便為本發明各方面提供一般上下文。一開始具體參考圖1,示出用於實現本發 明的實施例的示例性操作環境,並將其籠統地指定為計算設備100。計算設備100隻是合適 的計算環境的一個示例,並且不旨在對本發明的使用範圍或功能提出任何限制。也不應該 將計算設備100解釋為對所示出的任一組件或其組合有任何依賴性或要求。本發明可以在計算機代碼或機器可使用指令的一般上下文中描述,機器可使用指 令包括由計算機或諸如個人數據助理或其他手持式設備等其他機器執行的諸如程序模塊 等的計算機可執行指令。一般而言,包括例程、程序、對象、組件、數據結構等的程序模塊指 的是執行特定任務或實現特定抽象數據類型的代碼。本發明可以在各種系統配置中實施, 這些系統配置包括手持式設備、消費電子產品、通用計算機、更專用計算設備等等。本發明 也可以在其中任務由通過通信網絡連結的遠程處理設備執行的分布式計算環境中實施。參考圖1,計算設備100包括直接或間接耦合以下設備的總線110 存儲器112、一 個或多個處理器114、一個或多個呈現組件116、輸入/輸出埠 118、輸入/輸出組件120、 和說明性電源122。總線110可以是一條或多條總線(諸如地址總線、數據總線、或其組 合)。儘管為了清楚起見用線條示出了圖1的各框,但是在實際上,各組件的輪廓並不是那 樣清楚,並且按比喻性地來說,線條更精確地將是灰色的和模糊的。例如,可以將諸如顯示 設備等呈現組件認為是1/0(輸入/輸出)組件。同樣,處理器具有存儲器。可以認識到, 這是本領域的特性,並且重申,圖1的圖示只是例示可結合本發明的一個或多個實施例來 使用的示例性計算設備。在諸如「工作站」、「伺服器」、「膝上型計算機」、「手持式設備」等分 類之間不加以區別,因為它們全部都被認為是在圖1的範圍之內的並且以「計算設備」來引用。計算設備100通常包括各種計算機可讀介質。計算機可讀介質可以是能由計算 設備100訪問的任何可用介質,而且包含易失性和非易失性介質、可移動和不可移動介質。 作為示例而非限制,計算機可讀介質可以包括計算機存儲介質和通信介質。計算機存儲介 質包括以用於存儲諸如計算機可讀指令、數據結構、程序模塊或其他數據的信息的任何方 法和技術實現的易失性和非易失性、可移動和不可移動介質。計算機存儲介質包括但不限 於,RAM、ROM、EEPR0M、快閃記憶體或其它存儲器技術、CD-ROM、數字多功能盤(DVD)或其他光學存 儲、磁帶盒、磁帶、磁碟存儲或其它磁性存儲設備、或能用於存儲所需信息且可以由計算設 備100訪問的任何其它介質。通信介質通常以諸如載波或其他傳輸機制等已調製數據信號 來體現計算機可讀指令、數據結構、程序模塊或其它數據,並包括任一信息傳送介質。術語 「已調製數據信號」指的是以在信號中編碼信息的方式設定或更改其一個或多個特徵的信 號。作為示例而非限制,通信介質包括有線介質,諸如有線網絡或直接線連接,以及無線介 質,諸如聲學、RF、紅外線和其它無線介質。上述的任意組合也應包含在計算機可讀介質的 範圍內。存儲器112包括易失性和/或非易失性存儲器形式的計算機存儲介質。存儲器可 以是可移動的、不可移動的、或其組合。示例性硬體設備包括固態存儲器、硬碟驅動器、光碟 驅動器等。計算設備100包括從諸如存儲器112或I/O組件120等各種實體讀取數據的一 個或多個處理器。呈現組件116向用戶或其他設備呈現數據指示。示例性呈現組件包括顯 示設備、揚聲器、列印組件、振動組件等等。I/O埠 118允許計算設備100邏輯上耦合至包括I/O組件120的其他設備,其 中某些設備可以是內置的。說明性組件包括話筒、操縱杆、遊戲手柄、圓盤式衛星天線、掃描 儀、無線設備等等。現在參考圖2,提供了示出根據本發明的一實施例的便於向各伺服器節點部署軟體的系統200的框圖。應當理解,此處所描述的這一安排以及其他安排只是作為示例來闡 明的。作為所示安排和元素(例如機器、接口、功能、次序、以及功能分組等)的補充或替換, 可以使用其它安排和元素,並且某些元素可以一起省略。此外,此處所描述的許多元素是可 以實現為分立或分布式組件或結合其它組件的、以及以任何合適的組合和在任何合適的位 置的功能實體。此處描述為由一個或多個實體執行的各種功能可以由硬體、固件、和/或軟 件來執行。例如,各種功能可以由執行存儲器中所存儲的指令的處理器來執行。系統200 —般可包括中央服務202、伺服器節點204、和網絡206,以及其他未示出 組件。系統200的各組件(包括中央服務202和伺服器節點204)中的每一個組件可包括 任何類型的計算設備,如參考圖1描述的計算設備100。各組件可以經由網絡206彼此通 信,網絡206包括但不限於一個或多個區域網(LAN)和/或廣域網(WAN)。這樣的聯網環境 常見於辦公室、企業範圍計算機網絡、內聯網和網際網路中。應理解,可在本發明範圍內的系 統200內採用任何數量的中央服務、伺服器節點、以及網絡。另外,雖然未示出系統200的 許多其他組件,但是本領域普通技術人員將會認識到這些組件和它們的互連是公知的。另 夕卜,關於系統200中的未示出組件的附加細節未在此處進一步披露。中央服務202可包括用於管理對系統200內的伺服器節點204的軟體(作業系統 和/或應用程式)進行部署的一個或多個計算設備(如圖1的計算設備100)。中央服務202負責構建和存儲鏡像。另外,中央服務202負責將鏡像傳送到伺服器節點204。 本發明的各實施例使用基於鏡像的部署,這至少意味著兩件事情。第一,向每一服 務器節點204發送節點204要運行的軟體的確切鏡像。伺服器節點204並不是首先從一個 位置安裝作業系統、隨後可能從另一位置安裝附加支持軟體、並且最後從第三位置安裝應 用程序軟體來組裝其軟體。相反,伺服器節點204在一個包中接收其軟體,已準備好運行。 第二,伺服器節點204直接從所部署的鏡像來運行軟體。節點204不只將該鏡像用作在機 器上安裝軟體的源,因為這將是耗時且易於出錯的。相反,伺服器節點204實際上從該鏡像 引導作業系統。通過向每一伺服器節點204部署至少兩個不同的鏡像(即,作業系統鏡像和應用 程序鏡像),應用程式狀態與作業系統狀態被分開。這些鏡像是在中央服務202處分開構建 的並在伺服器節點204處保持分開。應用程式需要知道該分開。因此,在一實施例中,應用 程序在其上運行的作業系統鏡像顯現與應用程式鏡像不同的驅動器名。該特定的驅動器名 安排不是預定義的,但可通過配置對應用程式可用。各實施例中的每一軟體鏡像(例如,作業系統鏡像或應用程式鏡像)包括基本鏡 像和增量(delta)鏡像。基本鏡像是不可變的(或只讀的),而增量鏡像是可寫的。增量鏡 像用於向基本鏡像提供角色專用和/或節點專用狀態。在部署之前在中央服務202處和/ 或在部署之後在單獨的伺服器節點204處可以將角色專用和/或節點專用數據寫到增量鏡 像。基本鏡像和增量鏡像可以在中央服務202處分開維護並在部署時合併。將作業系統和應用程式分成分開鏡像結合使用基本鏡像和增量鏡像,意味著節點 運行的「鏡像」實際上包括一組若干物理文件。因此,「鏡像」指的是整個文件集合(所有基 本鏡像和增量鏡像)。「作業系統鏡像」或「應用程式鏡像」指的是文件集合,它們分別構成 作業系統鏡像或應用程式鏡像盤集合(基本鏡像和增量鏡像)。在本發明的一個實施例中,這些鏡像是使用微軟⑧虛擬硬碟(VHD)格式來存儲的, 該格式指定可位於封裝在單個文件內的本機主機文件系統上的虛擬機硬碟。VHD格式提供 有差異的盤,其中單個邏輯盤在兩個文件中維護「基本」VHD文件和「增量」VHD文件。在本 發明的各實施例中,共同狀態位於基本VHD中,而按角色或按節點狀態位於增量VHD中。基 本VHD是只讀的,並且對模擬盤進行的任何改變都被寫到增量VHD中。雖然在此明確提到 VHD格式,但本領域技術人員將認識到,在本發明各實施例的範圍內可以使用其他打包技術 (例如,WIM)。根據本發明的各實施例的基於鏡像的部署允許以若干方式進行快速且可靠的服 務器供應,包括以下·伺服器節點204上沒有安裝階段,所以一旦將鏡像部署到伺服器節點204,則節 點204可以快速引導到所分配的軟體。 ·鏡像在中央服務202處集中組裝,並且在這一階段期間發生的任何錯誤可比在 按節點安裝期間發生的錯誤更易於檢測。 伺服器節點204直接從鏡像引導,使得在節點204運行它們當前角色的同時在後 臺部署新鏡像(更新或不同的角色)成為可能。一旦新鏡像就位,則節點204可以在最小 停機時間的情況下引導到它們的新角色。在一些情況下,舊鏡像保持緩存在節點204上,並 且在必要的情況下節點204可在最小停機時間的情況下回退到它們的先前狀態。
·所部署的鏡像中的大多數內容在所有節點204之間是相同的,並且使用增量鏡 像將按角色狀態和/或按節點狀態與共同狀態分開。這允許共同狀態(基本鏡像)經由多 播同時發送到運行該版本的作業系統或應用程式鏡像的所有物理節點204。這減少部署所 花費的網絡帶寬並使得裝配(roll-out)更快地發生。·類似地,在虛擬化主機上,大多數作業系統數據在所有所分配的客(guest)節點之間是相同的,並且只需要向主機發送作業系統基本VHD的一個副本。基於鏡像的部署還幫助減少「位腐壞」問題,因為不需要在伺服器節點204上進行 修補。相反,在需要安裝修補或應用程式的新版本可用時,在中央服務202處創建鏡像的新 版本並隨後循環運行到伺服器節點204。這允許在部署之前檢測修補錯誤並確保所有服務 器節點204運行相同的位集合。在正常操作的過程中,如果給定節點的狀態以某種方式損 壞(例如,因為盤錯誤),則中央服務202可以重新部署該鏡像並使節點204快速且可靠地 返回到已知良好的狀態(因為它具有關於節點的「真實」狀態)。在各實施例中,基於鏡像的部署還使得能夠通過對物理和虛擬節點使用相同的鏡 像格式來直接部署到這兩種節點,從而允許將基本鏡像部署到所有伺服器節點204。為了向 虛擬節點部署鏡像,將該鏡像發送到物理伺服器節點204上的根分區,並隨後在將該鏡像 作為模擬物理盤來連接而運行該虛擬機。為了向物理伺服器節點204部署鏡像,將鏡像發 送到在節點204上運行的維護作業系統,並且該鏡像(作為文件)被存儲在物理盤上。隨 後直接從在盤上本機可用的鏡像重新引導伺服器節點204。例如,在一些實施例中,使用使 鏡像作為盤本機地可用的特殊驅動程序來從鏡像直接重新引導伺服器節點204。因為基於鏡像的部署將靜態狀態從動態狀態中分開,所以通過只寫一次基本鏡像 (即,當在中央服務202處構建該鏡像時)並隔離對增量鏡像的寫,可以(基本上)減少或 避免快閃記憶體驅動器的磨損極限問題。在一些實現中,基本鏡像可以只寫一次,並且增量鏡像可 以保存在RAM中,每次都以清白板開始。這將一起避免磨損極限問題,並將是用於無狀態前 端伺服器節點的合適的操作模式。基於鏡像的部署還使得能夠使用無盤操作模式。例如,在一個實施例中,伺服器節 點204可以使用遠程盤鏡像(例如,使用網際網路小型計算機系統接口(iSCSI))。在另一實 施例中,伺服器節點204從RAM引導,從而將鏡像作為RAM盤。如上所示,中央服務202包括用於構建和提供可部署鏡像的組件。鏡像由中央服 務202離線地(即,不在活動的伺服器節點204上)構建。對於作業系統鏡像,中央服務202最初構建作業系統基本鏡像。在一些實施例中, 可以構建多個作業系統鏡像(例如,不同的版本)。通過添加角色專用狀態在作業系統基本 鏡像上構建服務角色。角色專用狀態的示例包括啟用作業系統可任選組件、添加外部軟體、 以及修改作業系統設置。中央服務202通過創建與作業系統鏡像分開但連結到它的增量鏡 像來使該角色專用狀態可用於部署。共同的作業系統基本鏡像和角色專用增量鏡像一起成 為從中央服務202發送到伺服器節點204的作業系統鏡像。在一實施例中,構建增量鏡像的過程涉及離線地配置鏡像並隨後在離線虛擬機上 引導該鏡像。該虛擬機引導用於運行在一次離線配置期間排隊的「在線動作」,而非在每一 伺服器節點204上。在一些實施例中,中央服務202還允許節點專用作業系統配置設置,例如應用程式開發者所指定的設置。另外,還存在中央伺服器202所生成的節點專用作業系統配置設置。這些設置與作業系統鏡像一起被部署到伺服器節點204,並且在節點204處被應用於角 色專用增量鏡像的副本以創建節點專用增量鏡像。節點204直接從該鏡像引導作業系統。應用程式鏡像同樣包括基本鏡像和增量鏡像。在一實施例中,應用程式開發者可 以提供描述其二進位和配置設置的清單,並且該描述可用於構建該應用程式的基本鏡像。 節點專用應用程式配置設置連同應用程式基本鏡像一起部署到伺服器節點204,並且在節 點204處被應用來創建節點專用增量鏡像。伺服器節點204直接從該鏡像運行應用程式。在作業系統和應用程式修補和更新可用時,可以不在各單獨的伺服器節點204處 應用這些修補和更新。相反,在中央服務202處離線地應用這些修補和更新以創建新的部 署鏡像,該新鏡像隨後被部署到伺服器節點204。通過在中央服務202處創建新鏡像並隨後 將該鏡像部署到伺服器節點204,該過程幫助避免在伺服器節點204上失敗的或部分地應 用修補的問題。如上所示,在中央服務202處構建的鏡像被部署到伺服器節點204。換言之,鏡像 可以從中央服務202傳送到系統200內的各節點204。在一些實施例中,因為基本鏡像不包 含每-節點狀態,所以許多伺服器節點204可以使用相同的作業系統和應用程式基本鏡像。 這意味著在需要同時供應許多節點204時,需要多次複製同一文件。為減少網絡帶寬使用, 本發明的各實施例使用多播協議來向許多節點同時發送該文件。在伺服器節點204處接收到鏡像後,節點204保存該鏡像而不安裝。這允許服務 器節點204維護所部署的鏡像的高速緩存。換言之,因為鏡像不是在伺服器節點204上安 裝,而是改為以鏡像形式保留,所以可能在伺服器節點204上高速緩存多個鏡像的集合(例 如,作業系統和/或應用程式的不同版本)。該設計在系統中提供靈活性並允許各種功能。首先,允許伺服器節點204包括一個鏡像高速緩存以提供在後臺裝配新鏡像的能 力。具體地,在作業系統或應用程式的新版本準備好部署時,可以在這些節點204運行先前 版本的同時將該新版本複製到目的地節點204。這意味著複製時間不是停機時間,並且在網 絡帶寬是問題的情況下能夠以緩慢的步調進行複製,或者複製可以在網絡負載間歇期間發 生(如上所述,還可以通過使用多播傳輸來節省網絡帶寬)。鏡像下載由鏡像激活而被解 耦,這允許確認已下載的鏡像並對決定何時將節點切換到鏡像的新版本給予更多自由。在一些實施例中,在部署鏡像的新版本時,在伺服器節點204上的鏡像高速緩存 中保留先前版本。如果在裝配序列期間發生問題一例如,如果在1000個伺服器節點204 中的500個上激活鏡像之後,注意到服務不能正常操作,則通過重新引導到先前鏡像,已經 前進的節點204可以非常快速地回退。不需要再次下載先前鏡像或重新安裝先前鏡像。一 旦問題被修復,則可以重複裝配。(注意,如果修復不涉及對新鏡像的改變,則不需要重新復 制新鏡像。)各實施例還便於將伺服器節點204回退到最後已知的良好狀態。對節點204上的 作業系統卷或應用程式卷所做的改變被存儲在增量鏡像中。在激活角色之前可以保存原 始增量鏡像,並且如果因為改變發生問題,則可以恢復原始增量鏡像而不必從部署伺服器 (即,中央服務202)複製。另外,本發明的各實施例允許伺服器節點204使用高速緩存的鏡像來容易地切換 角色。具體地,可以在給定伺服器節點204上高速緩存對應於不止一個角色的鏡像。因此,將節點204從一個角色切換到另一個角色與重新引導節點204 —樣簡單。進行切換不存在重新安裝成本。各實施例還便於使用校驗和來標識對基本鏡像的改變。基本鏡像在伺服器節點 204上是只讀的,因為任何改變都被寫到增量鏡像中。這意味著由於錯誤(例如,盤錯誤) 而發生的對基本鏡像的改變可以通過校驗和來檢測。如果發生這樣的改變,可以將基本鏡 像重新複製到伺服器節點204。僅作為示例而非限制,圖3示出節點上鏡像高速緩存300的內容的示例的框圖。在 所示示例中,兩個角色的鏡像被存儲在高速緩存中。例如,角色1可允許伺服器節點提供電 子郵件服務而角色2允許伺服器節點提供搜尋引擎服務。如上所示,通過高速緩存這兩個 角色的鏡像,伺服器節點可以通過簡單地重新引導該節點來容易且快速地從一個角色切換 到另一個。另外,高速緩存中存在角色1的兩個版本(版本1. 0和1. 1)而只存在角色2的 一個版本(版本1. 1)。如上所述,通過高速緩存特定角色的多個版本,在必要的情況下服務 器節點可快速地回退到先前版本。例如,如果角色1的版本1. 1是活動角色,則伺服器節點 可通過重新引導來快速回退到角色1的版本1.0,因為先前版本存儲在高速緩存中。如圖3所示,角色1的版本1. 0包括作業系統1. 0版本基本鏡像302、作業系統 1. 0版本增量鏡像304、應用程式11. 0版本基本鏡像306、以及應用程式11. 0版本增量鏡 像308。角色1的版本1. 1包括作業系統1. 1版本基本鏡像312、作業系統1. 1版本增量鏡 像314、應用程式11. 1版本基本鏡像316、以及應用程式11. 1版本增量鏡像318。角色2的 版本1. 1包括作業系統1. 1版本基本鏡像312、作業系統1. 1版本增量鏡像324、應用程式 21. 1版本基本鏡像326、以及應用程式21. 1版本增量鏡像328。注意,角色1的版本1. 1和 角色2的版本1. 1都使用作業系統1. 1版本基本鏡像312,所以只在高速緩存中存儲了該鏡 像的一個副本並且可以共享。轉向圖4,提供了示出示例性方法400的流程圖,該方法用於根據本發明的一實施 例向大規模聯網系統中的伺服器節點部署軟體。最初,如在框402處所示,在諸如圖2的 中央服務202等中央服務處提供軟體鏡像。該軟體鏡像可包括作業系統鏡像或應用程式 鏡像。如上所述,該軟體鏡像包括只讀的基本鏡像和可寫的增量鏡像。增量鏡像旨在通過 添加角色專用和/或節點專用狀態來在基本鏡像上構建。在一些實施例中,中央服務可以 維護多個作業系統鏡像和多個應用程式鏡像,並管理各鏡像到系統內的各伺服器節點(例 如,圖2的伺服器節點204)的部署。如在框404處所示,將鏡像從中央服務傳送到針對該鏡像的目的地伺服器節點。 具體地,在中央服務處的鏡像的副本被發送到目的地伺服器節點中的每一個。在伺服器節 點從中央服務接收到鏡像時,該伺服器節點保存該鏡像而不安裝,如在框406處所示。如上 所述,這與傳統上將軟體部署到伺服器節點顯著不同。傳統上,在每一伺服器節點處安裝軟 件,這涉及從該軟體「解包」各單獨的文件並將每一單獨的文件複製到盤。相反,在本發明 的各實施例中,鏡像被保存到盤而不安裝。因此,軟體的各單獨的文件不作為單獨的文件存 在於伺服器節點上而相反只是作為鏡像的一部分存在。伺服器節點接著直接從該鏡像運行軟體,如在框408處所示。在作業系統鏡像的 情況下,伺服器節點直接從作業系統鏡像引導。在應用程式鏡像的情況下,伺服器節點直接 從該鏡像運行應用程式。因此,伺服器節點不是只將鏡像用作用於在機器上安裝軟體的源,而是改為實際上在作業系統鏡像的情況下從該鏡像引導作業系統和在應用程式鏡像的情 況下從該鏡像運行應用程式。如上所示,在軟體修補/更新可用時,與在各單獨的節點處應用相對照,在中央服 務處(例如,圖2的中央服務202)將這些修補/更新應用於鏡像。圖5中示出了根據本發 明的一實施例的用於應用軟體更新的示例性方法500。最初,如在框502處所示,在中央服 務處接收軟體更新。在中央服務處,該軟體更新被應用於先前鏡像的副本以離線地生成新 鏡像,如在框504處所示。在一實施例中,為生成該新鏡像,複製基本鏡像的當前版本,並且 安裝該新的基本鏡像。應用軟體更新,並隨後卸載新的基本鏡像。還可以重新生成角色專 用增量鏡像。該新的基本鏡像和重新生成的角色專用增量鏡像一起構成所生成的具有軟體 更新的新鏡像。注意,在各實施例中,鏡像可以增強版本化。因此,除新鏡像之外,可以在中央服 務處維護先前鏡像。因此,可以在中央服務處維護作業系統鏡像或應用程式鏡像的多個版 本,中央服務可以管理各個版本到不同的伺服器節點的,取決於每一伺服器節點的角色的
部署ο當在中央服務處基於軟體更新生成新鏡像後,將該新鏡像的副本傳送到系統內的 每一目的地伺服器節點(例如,圖2的伺服器節點204),如在框506處所示。伺服器節點可 以在運行先前鏡像的同時接收該新鏡像,從而在鏡像傳輸期間防止任何停機時間。伺服器 節點將新鏡像保存到盤而不安裝,如在框508處所示。因此,除先前在伺服器節點上高速緩 存的任何鏡像(包括伺服器節點當前正在運行的鏡像)之外,該新鏡像作為原樣鏡像被保 存到盤。如在框510處所示,伺服器節點接著直接從新鏡像運行軟體。在作業系統鏡像的 情況下,伺服器節點直接從該新作業系統鏡像重新引導。在應用程式鏡像的情況下,伺服器 節點直接從該鏡像運行應用程式。如可理解的,本發明的各實施例便於到大規模聯網系統內的多個伺服器節點的鏡 像部署和管理。參考各具體實施例描述了本發明,各具體實施例在所有方面都旨在是說明 性的而非限制性的。在不背離本發明範圍的情況下各替換實施例對本發明所屬領域的普通 技術人員將變得顯而易見。從前述內容可知,本發明很好地適用於實現前述的所有目的和目標,並且具有對於該系統和方式是顯而易見且固有的其它優點。也可理解特定的特徵和子組合是有用的, 並且可以加以利用而無需參考其它特徵和子組合。這由權利要求書所構想並在其範圍之 內。
權利要求
一個或多個包含用於執行一種將軟體部署到大規模聯網系統內的多個伺服器節點的方法的計算機可使用指令的計算機可讀介質,所述方法包括在所述大規模聯網系統內的中央服務處提供第一鏡像(402),所述第一鏡像包括不可變部分和可寫部分;將所述第一鏡像從所述中央服務傳送到所述多個伺服器節點(404);在每一伺服器節點處存儲所述第一鏡像而不在每一伺服器節點處執行所述第一鏡像的安裝(406);以及在一個或多個伺服器節點處從所述第一鏡像直接運行所述軟體(408)。
1.一個或多個包含用於執行一種將軟體部署到大規模聯網系統內的多個伺服器節點 的方法的計算機可使用指令的計算機可讀介質,所述方法包括在所述大規模聯網系統內的中央服務處提供第一鏡像(402),所述第一鏡像包括不可 變部分和可寫部分;將所述第一鏡像從所述中央服務傳送到所述多個伺服器節點(404);在每一伺服器節點處存儲所述第一鏡像而不在每一伺服器節點處執行所述第一鏡像 的安裝(406);以及在一個或多個伺服器節點處從所述第一鏡像直接運行所述軟體(408)。
2.如權利要求1所述的一個或多個計算機可讀介質,其特徵在於,所述第一鏡像包括 作業系統鏡像和應用程式鏡像中的至少一個。
3.如權利要求1所述的一個或多個計算機可讀介質,其特徵在於,所述第一鏡像的不 可變部分包括基本鏡像且所述第一鏡像的可寫部分包括增量鏡像。
4.如權利要求3所述的一個或多個計算機可讀介質,其特徵在於,所述增量鏡像包括 角色專用數據。
5.如權利要求1所述的一個或多個計算機可讀介質,其特徵在於,在一個或多個服務 器節點處直接從所述第一鏡像運行所述軟體包括直接從存儲在所述一個或多個伺服器節 點中的每一個處的所述第一鏡像引導所述一個或多個伺服器節點。
6.如權利要求1所述的一個或多個計算機可讀介質,其特徵在於,所述方法還包括在 所述中央服務處提供第二鏡像,所述第二鏡像包括不可變部分和可寫部分。
7.如權利要求6所述的一個或多個計算機可讀介質,其特徵在於,所述第一鏡像便於 伺服器節點以第一角色操作且所述第二鏡像便於伺服器節點以第二角色操作。
8.如權利要求6所述的一個或多個計算機可讀介質,其特徵在於,所述第一鏡像的不 可變部分是所述第二鏡像的不可變部分。
9.如權利要求6所述的一個或多個計算機可讀介質,其特徵在於,在所述中央服務處 提供的所述第二鏡像包括通過將軟體更新應用於所述第一鏡像來在所述中央服務處生成 所述第二鏡像。
10.如權利要求6所述的一個或多個計算機可讀介質,其特徵在於,所述方法還包括將所述第二鏡像傳送到至少一個伺服器節點;以及在所述至少一個伺服器節點處存儲所述第二鏡像而不執行所述第二鏡像的安裝。
11.如權利要求10所述的一個或多個計算機可讀介質,其特徵在於,在所述至少一個 伺服器節點繼續運行所述第一鏡像的同時將所述第二鏡像傳送到所述至少一個伺服器節點o
12.如權利要求10所述的一個或多個計算機可讀介質,其特徵在於,所述方法還包括 在所述在至少一個伺服器節點處直接從所述第二鏡像運行所述軟體。
13.如權利要求12所述的一個或多個計算機可讀介質,其特徵在於,所述至少一個服 務器節點高速緩存所述第一鏡像和所述第二鏡像,並且其中所述方法還包括將所述至少一 個伺服器節點的操作從所述第二鏡像切換到所述第一鏡像。
14.一個或多個包含用於執行一種將軟體更新部署到大規模聯網系統中的多個伺服器 節點的方法的計算機可使用指令的計算機可讀介質,所述方法包括通過將所述軟體更新應用於先前鏡像來生成新鏡像(504),其中所述新鏡像包括不可 變部分和可寫部分;將所述新鏡像從中央服務傳送到所述多個伺服器節點(506),其中所述多個節點中的 至少一部分正在運行所述先前鏡像;將所述新鏡像存儲在所述多個伺服器節點處而不安裝所述新鏡像(508);以及在一個或多個伺服器節點處從所述新鏡像直接運行軟體(510)。
15.如權利要求14所述的一個或多個計算機可讀介質,其特徵在於,所述新鏡像包括 作業系統鏡像和應用程式鏡像中的至少一個。
16.如權利要求14所述的一個或多個計算機可讀介質,其特徵在於,所述至少一個服 務器節點高速緩存所述新鏡像和所述先前鏡像,並且其中所述方法還包括將所述至少一個 伺服器節點的操作從所述新鏡像切換回所述先前鏡像。
17.如權利要求14所述的一個或多個計算機可讀介質,其特徵在於,生成所述新鏡像 包括將所述軟體更新應用於所述先前鏡像的不可變部分。
18.一種系統,包括中央服務(202),所述中央服務包括用於存儲鏡像並將所述鏡像傳送到多個伺服器節 點的一個或多個計算設備,所述鏡像具有不可變部分和可寫部分;以及多個伺服器節點(204),所述多個伺服器節點被配置成從所述中央服務接收所述鏡像, 存儲所述鏡像而不安裝所述鏡像,以及直接從所述鏡像引導。
19.如權利要求18所述的系統,其特徵在於,所述中央服務存儲多個鏡像並管理鏡像 到所述多個伺服器節點的部署。
20.如權利要求18所述的系統,其特徵在於,所述鏡像包括作業系統鏡像和應用程式 鏡像中的至少一個。
全文摘要
使用基於鏡像的部署提供了在大規模聯網系統內的各伺服器節點的軟體部署。在中央服務處提供大部分不可變的鏡像並將其從該中央服務傳送到各伺服器節點。該鏡像包括不可變的基本鏡像和可寫的且向基本部分提供角色專用和/或節點專用狀態的增量鏡像。在伺服器節點從中央伺服器接收到鏡像時,伺服器節點原樣存儲該鏡像而不安裝。伺服器節點隨後直接從所存儲的鏡像運行軟體。
文檔編號G06F15/16GK101802807SQ200880108196
公開日2010年8月11日 申請日期2008年8月25日 優先權日2007年9月21日
發明者A·英格爾, C·T·倫茨梅爾, S·塞德, Y·A·哈利迪 申請人:微軟公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀