恢復(fù)服務(wù)的自動(dòng)配置的制作方法
【專利摘要】次要位置被配置成服務(wù)的主要位置的恢復(fù)服務(wù)。次要位置被維護(hù)在溫暖狀態(tài),該溫暖狀態(tài)被配置為在故障轉(zhuǎn)移的情況下替代主要位置。在正常操作期間,次要位置被自動(dòng)更新以反映活動(dòng)地服務(wù)于用戶負(fù)載的主要位置的當(dāng)前狀態(tài)。向次要位置自動(dòng)地反映對(duì)主要位置的內(nèi)容改變。向次要位置自動(dòng)地應(yīng)用應(yīng)用于主要位置的系統(tǒng)改變。例如,移除/添加機(jī)器、更新機(jī)器/角色分配、移除添加/數(shù)據(jù)庫被自動(dòng)地應(yīng)用于次要位置,使得次要位置基本上鏡像映射主要位置。在到次要位置的故障轉(zhuǎn)移以后,次要位置變成主要位置并且開始活動(dòng)地服務(wù)于用戶負(fù)載。
【專利說明】恢復(fù)服務(wù)的自動(dòng)配置
[0001]背景
[0002]基于web的服務(wù)包括位于web服務(wù)器上的文件以及存儲(chǔ)在數(shù)據(jù)庫中的數(shù)據(jù)。例如,存在處理被定向到服務(wù)的通信量的大量服務(wù)器。在某些情況下,服務(wù)可能災(zāi)難性地發(fā)生故障以使得丟失工作。將操作轉(zhuǎn)移至新服務(wù)可能是昂貴、耗時(shí)的過程。
[0003]概述
[0004]提供本概述是為了以簡(jiǎn)化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的選擇的概念。本概述不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護(hù)的主題的范圍。
[0005]次要位置被配置成服務(wù)的主要位置的恢復(fù)服務(wù)。次要位置被維護(hù)在溫暖狀態(tài),該溫暖狀態(tài)被配置為在故障轉(zhuǎn)移的情況下替代主要位置。在正常操作期間,次要位置被自動(dòng)更新以反映活動(dòng)地服務(wù)于用戶負(fù)載的主要位置的當(dāng)前狀態(tài)。向次要位置自動(dòng)地反映對(duì)主要位置的內(nèi)容改變。向次要位置自動(dòng)地應(yīng)用應(yīng)用于主要位置的系統(tǒng)改變。例如,移除/添加機(jī)器、更新機(jī)器/角色分配、移除添加/數(shù)據(jù)庫被自動(dòng)地應(yīng)用于次要位置,使得次要位置基本上鏡像映射主要位置。在到次要位置的故障轉(zhuǎn)移以后,次要位置變成主要位置并且開始活動(dòng)地服務(wù)于用戶負(fù)載。
【專利附圖】
【附圖說明】
[0006]圖1示出了包括處于網(wǎng)絡(luò)服務(wù)的次要位置處的恢復(fù)網(wǎng)絡(luò)的云管理系統(tǒng);
[0007]圖2示出了包括處于次要位置處的用于服務(wù)的主要位置的恢復(fù)網(wǎng)絡(luò)的系統(tǒng);
[0008]圖3示出了用于在次要位置處鏡像映射服務(wù)的主要位置的過程;
[0009]圖4示出了用于部署升級(jí)新場(chǎng)(比如內(nèi)容場(chǎng))的過程;以及
[0010]圖5示出了說明性計(jì)算機(jī)體系結(jié)構(gòu)。
[0011]詳細(xì)描述
[0012]現(xiàn)將參考其中相同的標(biāo)號(hào)代表相同的元件的附圖來描述各實(shí)施例。
[0013]一般而言,程序模塊包括執(zhí)行特定作業(yè)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)和其它類型的結(jié)構(gòu)。也可使用其他計(jì)算機(jī)系統(tǒng)配置,包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程消費(fèi)電子產(chǎn)品、小型計(jì)算機(jī)、大型計(jì)算機(jī)等等。還可使用在其中作業(yè)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境。在分布式計(jì)算環(huán)境中,程序模塊可位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備兩者中。
[0014]圖1示出了包括處于服務(wù)的次要位置處的恢復(fù)網(wǎng)絡(luò)的云管理系統(tǒng)。系統(tǒng)100示出了云管理器105,該云管理器105被連接到可能分布在世界各地的不同網(wǎng)絡(luò)并對(duì)其進(jìn)行管理。網(wǎng)絡(luò)中的每個(gè)網(wǎng)絡(luò)被配置成為一個(gè)或多個(gè)承租人(例如客戶、顧客)提供內(nèi)容服務(wù)。這些網(wǎng)絡(luò)可以被托管(host)在云服務(wù)內(nèi)和/或內(nèi)部部署(on-premises)數(shù)據(jù)中心內(nèi)。如所示那樣,每個(gè)主要網(wǎng)絡(luò)(網(wǎng)絡(luò)1、網(wǎng)絡(luò)2)都包括處于次要位置處的恢復(fù)網(wǎng)絡(luò)(次要網(wǎng)絡(luò)1、次要網(wǎng)絡(luò)2)。云管理器105用于對(duì)這些網(wǎng)絡(luò)進(jìn)行部署、配置和管理。云管理器被配置為通過可容忍間歇性網(wǎng)絡(luò)故障的冪等且異步的應(yīng)用web服務(wù)應(yīng)用編程接口(API) 150來接收請(qǐng)求。[0015]次要網(wǎng)絡(luò)(例如次要網(wǎng)絡(luò)I和次要網(wǎng)絡(luò)2)被建立以充當(dāng)服務(wù)的主要位置(例如,網(wǎng)絡(luò)I和網(wǎng)絡(luò)2)的恢復(fù)網(wǎng)絡(luò)。根據(jù)一實(shí)施例,次要位置被維護(hù)在溫暖狀態(tài),該溫暖狀態(tài)被配置為在故障轉(zhuǎn)移的情況下替代主要位置。在正常操作期間,次要位置使用部署管理器26被自動(dòng)更新,以反映活動(dòng)地服務(wù)于用戶負(fù)載的主要位置的當(dāng)前狀態(tài)。向次要位置自動(dòng)地反映對(duì)主要位置的內(nèi)容改變。應(yīng)用于主要位置的管理和拓?fù)涓淖儽蛔詣?dòng)地應(yīng)用于次要位置。例如,移除/添加機(jī)器、更新機(jī)器/角色分配、移除添加/數(shù)據(jù)庫被自動(dòng)地應(yīng)用于次要位置,使得次要位置基本上為主要位置的鏡像。在到次要位置的故障轉(zhuǎn)移以后,次要位置變成主要位置并且開始活動(dòng)地服務(wù)于用戶負(fù)載。
[0016]如所示那樣,云管理器105包括工作管理器110、機(jī)器管理器115、應(yīng)用專用管理器120、腳本130、部署管理器26以及諸如數(shù)據(jù)存儲(chǔ)140(例如,數(shù)據(jù)庫)之類的中央儲(chǔ)存庫。未包括在所示管理器之一內(nèi)的功能可以駐留在云管理器的某個(gè)其他位置。根據(jù)一個(gè)實(shí)施例,應(yīng)用管理器120是SharePoint承租人管理器,該管理器包括SharePoint專用邏輯。
[0017]一般而言,云管理器105幫助為諸如在在線內(nèi)容管理服務(wù)之類的在線服務(wù)部署和管理網(wǎng)絡(luò)。云管理器系統(tǒng)是一種中央?yún)f(xié)調(diào)服務(wù),其接收?qǐng)?zhí)行與在網(wǎng)絡(luò)中配置、更新和執(zhí)行用于提供在線服務(wù)的作業(yè)相關(guān)的操作的請(qǐng)求。例如,可以調(diào)用云管理器來管理所述網(wǎng)絡(luò)中的一個(gè)或多個(gè)網(wǎng)絡(luò)內(nèi)的資產(chǎn)(例如服務(wù)器、場(chǎng)、用戶屬性等等)。對(duì)這些資產(chǎn)的管理可以包括:部署機(jī)器;更新機(jī)器;移除機(jī)器;對(duì)服務(wù)器、虛擬機(jī)(VM)執(zhí)行配置改變;建立和維護(hù)恢復(fù)網(wǎng)絡(luò);以及執(zhí)行與管理相關(guān)的其他作業(yè)。云管理器被配置為即使在該云管理器的升級(jí)期間仍然為所附連的網(wǎng)絡(luò)提供服務(wù)。云管理器被配置為通過不能依靠可靠網(wǎng)絡(luò)的冪等和異步應(yīng)用編程接口(API)來接收請(qǐng)求。
[0018]如圖所示,網(wǎng)絡(luò)I和網(wǎng)絡(luò)2是活動(dòng)地服務(wù)于用戶的實(shí)況主要網(wǎng)絡(luò)。次要網(wǎng)絡(luò)I和次要網(wǎng)絡(luò)2是基本上為對(duì)應(yīng)的實(shí)況網(wǎng)絡(luò)的內(nèi)容和配置的鏡像的次要網(wǎng)絡(luò)。次要網(wǎng)絡(luò)在主要網(wǎng)絡(luò)活動(dòng)時(shí)并不活動(dòng)地服務(wù)用戶。根據(jù)一實(shí)施例,次要網(wǎng)絡(luò)被保持“溫暖”以使得來自主要網(wǎng)絡(luò)的用戶負(fù)載可以在停機(jī)/災(zāi)難/故障轉(zhuǎn)移的情況下被快速切換至次要網(wǎng)絡(luò)。
[0019]主要網(wǎng)絡(luò)被配置成執(zhí)行備份(完整、增量),包括被例行地且頻繁地采用的SQL事務(wù)日志備份。根據(jù)一實(shí)施例,完整備份每周執(zhí)行,增量備份每天執(zhí)行,并且事務(wù)日志每五分鐘(可以使用其他時(shí)間)更新一次。來自主要網(wǎng)絡(luò)(例如,網(wǎng)絡(luò)I和網(wǎng)絡(luò)2)的備份在這些備份被創(chuàng)建以后(例如分布式文件系統(tǒng)復(fù)制(DFSR))被復(fù)制到次要網(wǎng)絡(luò)(例如,次要網(wǎng)絡(luò)I和2)。根據(jù)一實(shí)施例,次要網(wǎng)絡(luò)在事務(wù)日志被從相應(yīng)主要網(wǎng)絡(luò)接收到時(shí)重放事務(wù)日志,以幫助維護(hù)次要網(wǎng)絡(luò)在時(shí)間上緊密地與主要網(wǎng)絡(luò)同步。在對(duì)應(yīng)的溫暖次要網(wǎng)絡(luò)上自動(dòng)重放在實(shí)況主要網(wǎng)絡(luò)上進(jìn)行的管理操作以使得主要網(wǎng)絡(luò)和次要網(wǎng)絡(luò)以及時(shí)地保持同步。
[0020]工作管理器110管理作業(yè)的執(zhí)行,并且啟用對(duì)較長(zhǎng)時(shí)間運(yùn)行的作業(yè)的調(diào)度和重試。工作管理器110啟動(dòng)存儲(chǔ)在作業(yè)隊(duì)列112中的作業(yè)并且跟蹤運(yùn)行中的作業(yè)。當(dāng)已經(jīng)流逝了預(yù)定的時(shí)間時(shí),工作管理器110可以自動(dòng)地取消任務(wù)并且執(zhí)行與該任務(wù)相關(guān)的某些進(jìn)一步的處理。根據(jù)一個(gè)實(shí)施例,作業(yè)隊(duì)列112中的作業(yè)由工作管理器110通過調(diào)用一個(gè)或多個(gè)腳本130來執(zhí)行。例如,可以使用諸如微軟的PowerShell.?之類的腳本語言來對(duì)由工作管理器110執(zhí)行的作業(yè)進(jìn)行編程。每個(gè)腳本可以作為新進(jìn)程運(yùn)行。盡管將每個(gè)腳本作為新進(jìn)程來執(zhí)行可以具有相當(dāng)高的CPU開銷,但是該系統(tǒng)是可伸縮的,并且有助于為每次腳本執(zhí)行確保干凈的環(huán)境,加上在腳本完成時(shí)進(jìn)行完全的清理。[0021]當(dāng)要在次要位置處提交作業(yè)(例如,響應(yīng)于到該次要位置的故障轉(zhuǎn)移、要在次要網(wǎng)絡(luò)中反映的對(duì)主要網(wǎng)絡(luò)的配置改變)時(shí),工作管理器110可用于確定要提交的作業(yè)。例如,工作管理器110可以確定被提交以在服務(wù)的主要位置處執(zhí)行的作業(yè)并且將相應(yīng)作業(yè)提交到次要位置。
[0022]機(jī)器管理器115被配置成管理網(wǎng)絡(luò)(例如網(wǎng)絡(luò)1、網(wǎng)絡(luò)2、次要網(wǎng)絡(luò)1、次要網(wǎng)絡(luò)
2)中的物理機(jī)器。一般而言,機(jī)器管理器115理解網(wǎng)絡(luò)、物理機(jī)器、虛擬機(jī)(VM)、VM映像(VHD)等等。機(jī)器管理器不必牢固綁定于網(wǎng)絡(luò)內(nèi)運(yùn)行的特定服務(wù),而是按照“角色”跟蹤網(wǎng)絡(luò)中的各種組件。例如,可以通過API150請(qǐng)求機(jī)器管理器115在網(wǎng)絡(luò)2上部署具有版本
12.34.56.78的“Foo”型VM。響應(yīng)于對(duì)云管理器105的請(qǐng)求,機(jī)器管理器115對(duì)位于網(wǎng)絡(luò)2上的合適物理機(jī)器進(jìn)行定位,并且根據(jù)與VM的角色相關(guān)聯(lián)的VM映像來配置VM。使用具有版本12.34.56.78的類型為Foo的VHD來配置物理機(jī)器,該VHD被存儲(chǔ)在諸如數(shù)據(jù)存儲(chǔ)140之類的數(shù)據(jù)存儲(chǔ)內(nèi)。也對(duì)次要網(wǎng)絡(luò)2作出相應(yīng)的改變,使得次要網(wǎng)絡(luò)保持基本上為主要網(wǎng)絡(luò)2的鏡像。在網(wǎng)絡(luò)內(nèi)使用的映像也可以存儲(chǔ)在其他位置處,諸如用于所述網(wǎng)絡(luò)中的一個(gè)或多個(gè)網(wǎng)絡(luò)的本地?cái)?shù)據(jù)共享中??梢赃\(yùn)行腳本來執(zhí)行VHD在物理機(jī)器上的安裝以及用于執(zhí)行任何部署后的配置。機(jī)器管理器115跟蹤每個(gè)網(wǎng)絡(luò)的機(jī)器配置。例如,機(jī)器管理器115可以跟蹤VM的角色(VM的類型)、VM的狀態(tài)(供應(yīng)中(Provisioning)、運(yùn)行中、已停止、故障)、版本以及VM是否存在于給定場(chǎng)中(這隱含了其網(wǎng)絡(luò))。
[0023] 配置數(shù)據(jù)庫116包含每一個(gè)網(wǎng)絡(luò)的地圖。例如,配置數(shù)據(jù)庫116可包括與網(wǎng)絡(luò)中的場(chǎng)、數(shù)據(jù)庫、站點(diǎn)集合等中的每一個(gè)相關(guān)的信息。配置數(shù)據(jù)庫116可包括關(guān)于每一個(gè)網(wǎng)絡(luò)的每一個(gè)物理機(jī)器、VM、場(chǎng)等的行。根據(jù)一實(shí)施例,網(wǎng)絡(luò)內(nèi)的每個(gè)VHD、場(chǎng)和VM具有相關(guān)聯(lián)的版本串。根據(jù)一實(shí)施例,為每個(gè)網(wǎng)絡(luò)維護(hù)配置文件,所述配置文件包括該網(wǎng)絡(luò)的硬件專用的設(shè)定(例如硬件名稱、IP地址等等……)。這些配置文件可以人工/自動(dòng)地修改。例如,經(jīng)授權(quán)的用戶可以復(fù)制主要網(wǎng)絡(luò)的配置,并且修改該副本以為相應(yīng)次要網(wǎng)絡(luò)創(chuàng)建配置文件。
[0024]腳本130被配置為存儲(chǔ)將要執(zhí)行以便既本地地為云管理器105執(zhí)行工作又遠(yuǎn)程地在所述網(wǎng)絡(luò)中的一個(gè)或多個(gè)網(wǎng)絡(luò)上執(zhí)行工作的腳本。腳本130中的一個(gè)或多個(gè)還可以存儲(chǔ)在其他位置。例如,要在網(wǎng)絡(luò)(例如網(wǎng)絡(luò)1、網(wǎng)絡(luò)2)上執(zhí)行的腳本可以本地地存儲(chǔ)到該網(wǎng)絡(luò)。這些腳本可用于許多不同的目的。例如,所述腳本可以用于執(zhí)行:對(duì)所述網(wǎng)絡(luò)中的一個(gè)或多個(gè)網(wǎng)絡(luò)中的機(jī)器的配置,改變之前配置的機(jī)器上的設(shè)定,添加新的VM,添加新的數(shù)據(jù)庫,將數(shù)據(jù)從一個(gè)機(jī)器移動(dòng)到另一個(gè)機(jī)器,移動(dòng)承租人,改變模式等。被配置為在主要網(wǎng)絡(luò)上執(zhí)行操作的腳本被修改以在主要網(wǎng)絡(luò)的次要網(wǎng)絡(luò)上產(chǎn)生相同作業(yè),使得相同的改變/操作對(duì)主要網(wǎng)絡(luò)和次要網(wǎng)絡(luò)二者執(zhí)行。例如,諸如移除/添加機(jī)器、更新機(jī)器/角色分配、移除添加/數(shù)據(jù)庫之類的作業(yè)被修改為使得所述作業(yè)也在次要位置處產(chǎn)生。根據(jù)一個(gè)實(shí)施例,這些腳本是微軟的PowerShell?腳本。也可以使用其他編程實(shí)施方式。例如,可以使用經(jīng)編譯和/或前期綁定編程語言來實(shí)現(xiàn)該功能。然而,腳本是一種表達(dá)要執(zhí)行的作業(yè)中的許多個(gè)的相當(dāng)精確的語言。用諸如C#的編程語言對(duì)其等價(jià)物進(jìn)行編程將常常需要冗長(zhǎng)得多的實(shí)施方式。腳本還被后期綁定,這意味著可以以多個(gè)版本的底層代碼庫為目標(biāo),而不必不斷地鏈接到不同的接口 DLL。使用PowerShell腳本將允許進(jìn)程由云管理器105本地地啟動(dòng),這進(jìn)而可以啟動(dòng)遠(yuǎn)程機(jī)器(即,所附連的網(wǎng)絡(luò)之一中的物理機(jī)器)上的進(jìn)程。還可以使用其他技術(shù)來啟動(dòng)遠(yuǎn)程機(jī)器上的進(jìn)程,諸如安全Shell (SSH)等。當(dāng)腳本在主要位置(例如網(wǎng)絡(luò)I)處運(yùn)行時(shí),該腳本也可以在次要位置(例如次要網(wǎng)絡(luò)2)處運(yùn)行,使得主要和次要位置被以相同方式配置。
[0025]云管理器105正在管理的應(yīng)用專用信息由應(yīng)用管理器120來執(zhí)行。根據(jù)一個(gè)實(shí)施例,應(yīng)用專用信息與微軟SharePoint?有關(guān)。由此,應(yīng)用管理器120被配置為了解SharePoint承租人、站點(diǎn)集合等。
[0026]每個(gè)網(wǎng)絡(luò)可以被配置成用于承租人的專用網(wǎng)絡(luò)和/或服務(wù)于一個(gè)以上客戶端的多承租人網(wǎng)絡(luò)。網(wǎng)絡(luò)可以包括變化數(shù)目的物理機(jī)/虛擬機(jī),物理機(jī)/虛擬機(jī)的配置在部署之后也變化。根據(jù)一實(shí)施例,服務(wù)的主要位置和次要位置是以相同方式配置的。
[0027]一般而言,只要未超過聯(lián)網(wǎng)極限(例如,負(fù)載平衡器和網(wǎng)絡(luò)交換機(jī)),網(wǎng)絡(luò)就可以繼續(xù)增長(zhǎng)。例如,網(wǎng)絡(luò)可以從十個(gè)服務(wù)器開始,并且之后擴(kuò)張為一百個(gè)或更多個(gè)服務(wù)器。隨著主要網(wǎng)絡(luò)改變,相應(yīng)的次要網(wǎng)絡(luò)被自動(dòng)改變以反映對(duì)主要網(wǎng)絡(luò)作出的改變??梢韵蚓W(wǎng)絡(luò)內(nèi)的物理機(jī)器分配類或類型。例如,所述機(jī)器中的某些機(jī)器可以是計(jì)算機(jī)器(用于web前端和應(yīng)用服務(wù)器),而其他機(jī)器可以是與計(jì)算機(jī)器相比配備有更多存儲(chǔ)的存儲(chǔ)機(jī)器。根據(jù)一實(shí)施例,云管理器105用多個(gè)版本的映像文件來配置網(wǎng)絡(luò)內(nèi)的機(jī)器。根據(jù)一實(shí)施例,場(chǎng)常常具有相同版本的映像文件。
[0028]根據(jù)一個(gè)實(shí)施例,在網(wǎng)絡(luò)內(nèi)由云管理器系統(tǒng)100通過虛擬化機(jī)器并且管理該網(wǎng)絡(luò)內(nèi)部獨(dú)立地行動(dòng)的“場(chǎng)”來管理軟件限制。每個(gè)網(wǎng)絡(luò)可以包括一個(gè)或多個(gè)場(chǎng)(例如,參見網(wǎng)絡(luò)I)。根據(jù)一個(gè)實(shí)施例,網(wǎng)絡(luò)被認(rèn)為是經(jīng)網(wǎng)絡(luò)負(fù)載平衡的機(jī)器的單個(gè)群集,所述機(jī)器向外部世界展示一個(gè)或多個(gè)VIP (虛擬IP)并且可以將該通信路由到網(wǎng)絡(luò)內(nèi)的任何機(jī)器。網(wǎng)絡(luò)中的機(jī)器通常是緊耦合的,并且具有最小等待時(shí)間(即〈1ms的查驗(yàn)(ping)等待時(shí)間)。
[0029]場(chǎng)是用于對(duì)需要緊密綁定關(guān)系的應(yīng)用進(jìn)行協(xié)調(diào)的機(jī)器的基本分組。例如,內(nèi)容場(chǎng)可以部署在每個(gè)網(wǎng)絡(luò)內(nèi)以用于諸如Microsoft SharePoint?的內(nèi)容管理應(yīng)用。一般而言,每一個(gè)場(chǎng)中的那組機(jī)器一起提供web服務(wù)和應(yīng)用服務(wù)器功能。通常,場(chǎng)內(nèi)的機(jī)器運(yùn)行相同構(gòu)建(build)的應(yīng)用(即SharePoint)并且共享公共配置數(shù)據(jù)庫以服務(wù)于特定的承租人和站點(diǎn)集合。
[0030]場(chǎng)可以包含異構(gòu)的虛擬機(jī)組。云管理器105在數(shù)據(jù)存儲(chǔ)140內(nèi)維護(hù)“場(chǎng)目標(biāo)”,該場(chǎng)目標(biāo)是每個(gè)場(chǎng)的每種角色的機(jī)器的目標(biāo)數(shù)目。一些角色包括內(nèi)容前端、內(nèi)容中央管理、內(nèi)容計(jì)時(shí)器服務(wù)、聯(lián)合中央管理、聯(lián)合應(yīng)用服務(wù)器等。例如,內(nèi)容場(chǎng)是處理接入消費(fèi)者請(qǐng)求的基本SharePoint場(chǎng)。聯(lián)合服務(wù)場(chǎng)包含可以跨場(chǎng)操作的諸如搜索和簡(jiǎn)檔存儲(chǔ)這樣的SharePoint服務(wù)。場(chǎng)可以用于主存大容量公共因特網(wǎng)站點(diǎn)。某些場(chǎng)可以包含一組活動(dòng)目錄服務(wù)器和供應(yīng)端口監(jiān)控程序(Provisioning Daemon)。云管理器105自動(dòng)地部署網(wǎng)絡(luò)中的虛擬機(jī)和/或停用網(wǎng)絡(luò)中的虛擬機(jī),以幫助滿足所定義的目標(biāo)。這些場(chǎng)目標(biāo)可以自動(dòng)地和/或手動(dòng)地來配置。例如,場(chǎng)目標(biāo)可以改變以對(duì)活動(dòng)和容量需求的改變作出響應(yīng)。網(wǎng)絡(luò)場(chǎng)——每個(gè)網(wǎng)絡(luò)存在一個(gè)包含可以作為整個(gè)網(wǎng)絡(luò)的資源容易地橫向擴(kuò)展的所有VM角色的網(wǎng)絡(luò)場(chǎng)。
[0031]云管理器web服務(wù)API150被設(shè)計(jì)為在可大規(guī)模伸縮的全局服務(wù)的上下文中工作。該API假定:任何網(wǎng)絡(luò)請(qǐng)求可能失敗和/或在傳送中掛起。對(duì)云管理器105的調(diào)用被配置為是冪等的。換言之,可以對(duì)云管理器105進(jìn)行多次相同的調(diào)用(只要參數(shù)是相同的)而不改變結(jié)果。[0032]云管理器105維護(hù)記錄以跟蹤對(duì)服務(wù)的當(dāng)前請(qǐng)求。例如,云管理器105更新本地?cái)?shù)據(jù)庫中的記錄,并且若需要?jiǎng)t稍后調(diào)度“作業(yè)”以執(zhí)行更長(zhǎng)的活動(dòng)。
[0033]云管理器105跟蹤作為用于在網(wǎng)絡(luò)內(nèi)部署新機(jī)器的模板的映像(諸如,虛擬盤映像)。映像引用可以存儲(chǔ)在諸如數(shù)據(jù)庫140的數(shù)據(jù)庫中和/或某個(gè)其他位置。映像可以存儲(chǔ)在對(duì)其上將部署該映像的網(wǎng)絡(luò)而言是本地的一個(gè)或多個(gè)共享的數(shù)據(jù)存儲(chǔ)中。根據(jù)一個(gè)實(shí)施例,每個(gè)映像都包括:虛擬機(jī)(VM)角色類型,其指定該映像可以部署的VM的類型;該映像應(yīng)當(dāng)使用的處理器的數(shù)目;將分配給該映像的RAM的量;用于找出附近安裝點(diǎn)的網(wǎng)絡(luò)ID(使得它們不會(huì)通過跨數(shù)據(jù)中心鏈接被反復(fù)地復(fù)制);以及部署代碼可以用于訪問VHD的共享路徑。
[0034]一般而言,由云系統(tǒng)100所管理的網(wǎng)絡(luò)中的機(jī)器不是以傳統(tǒng)方式通過下載數(shù)據(jù)并且將該數(shù)據(jù)合并到機(jī)器上的現(xiàn)有軟件中來升級(jí)的。相反,機(jī)器是通過用更新后的VHD替換VHD來更新的。例如,當(dāng)場(chǎng)需要新版本的軟件時(shí),部署安裝了該新版本的新場(chǎng)。當(dāng)部署新場(chǎng)時(shí),將承租人從舊場(chǎng)移動(dòng)到該新場(chǎng)。以此方式,由于升級(jí)造成的停機(jī)時(shí)間被最小化,并且場(chǎng)中的每個(gè)機(jī)器具有已被測(cè)試的相同版本。當(dāng)虛擬機(jī)需要升級(jí)時(shí),機(jī)器上的VM可以被刪除并且用被配置為運(yùn)行所需服務(wù)的VM代替。當(dāng)升級(jí)在主要位置處執(zhí)行時(shí),次要位置也被升級(jí)。可使用不同方法來升級(jí)次要位置。例如,在主要位置處執(zhí)行的相同升級(jí)步驟可以在次要位置處執(zhí)行。在主要位置處進(jìn)行軟件升級(jí)的情況下,通過主要位置處的升級(jí)所生成的事務(wù)日志可以在次要位置處重放以升級(jí)次要位置。
[0035]盡管對(duì)現(xiàn)有軟件的升級(jí)不是最優(yōu)的,但是網(wǎng)絡(luò)內(nèi)的某些服務(wù)器使用原地升級(jí)的傳統(tǒng)更新過程。例如,活動(dòng)目錄域控制器是通過更新服務(wù)器上的當(dāng)前軟件而不完全替換機(jī)器上的映像來升級(jí)的。在一些實(shí)例中,云管理器也可以原地升級(jí)。
[0036]根據(jù)一個(gè)實(shí)施例,云管理器包括日志系統(tǒng),該日志系統(tǒng)被配置為為每個(gè)web服務(wù)調(diào)用記錄日志條目??梢詫?shí)現(xiàn)包括如所期望的那樣少/多的特性的日志系統(tǒng)。
[0037]映射表114包括與主要網(wǎng)絡(luò)相關(guān)聯(lián)的參數(shù)(例如標(biāo)識(shí)符和/或秘密)到次要網(wǎng)絡(luò)的映射。例如,存在與網(wǎng)絡(luò)服務(wù)的主要位置(例如主要網(wǎng)絡(luò)I和2)相關(guān)聯(lián)的數(shù)據(jù)庫、場(chǎng)和網(wǎng)絡(luò)同與網(wǎng)絡(luò)服務(wù)的次要位置(例如次要網(wǎng)絡(luò)I和2)相關(guān)聯(lián)的相應(yīng)數(shù)據(jù)庫、場(chǎng)和網(wǎng)絡(luò)之間的映射。
[0038]部署管理器26被配置為幫助維護(hù)網(wǎng)絡(luò)的次要位置,所述次要位置充當(dāng)用于服務(wù)的主要位置的恢復(fù)網(wǎng)絡(luò)。部署管理器26被配置為與云管理器內(nèi)的涉及部署和維護(hù)云系統(tǒng)內(nèi)的網(wǎng)絡(luò)的其他管理器(例如工作管理器110、機(jī)器管理器115、應(yīng)用管理器120)—起工作。
[0039]圖2示出了包括處于次要位置處的用于服務(wù)的主要位置的恢復(fù)網(wǎng)絡(luò)的系統(tǒng)。如示出那樣,系統(tǒng)200包括主要服務(wù)210、次要服務(wù)220、云管理器230和計(jì)算設(shè)備240。
[0040]所使用的計(jì)算設(shè)備可以是被配置成執(zhí)行與計(jì)算設(shè)備的使用有關(guān)的操作的任何類型的計(jì)算設(shè)備。例如,這些計(jì)算設(shè)備中的一些可以是:移動(dòng)計(jì)算設(shè)備(例如,蜂窩電話、平板計(jì)算機(jī)、智能電話、膝上型計(jì)算機(jī)等等);一些可以是臺(tái)式計(jì)算設(shè)備,其他計(jì)算設(shè)備可以被配置為服務(wù)器。一些計(jì)算設(shè)備可以被安排成提供基于云的在線服務(wù)(例如服務(wù)210和服務(wù)220);一些計(jì)算設(shè)備可以被安排為提供數(shù)據(jù)存儲(chǔ)服務(wù)的數(shù)據(jù)共享;一些計(jì)算設(shè)備可以被安排在本地網(wǎng)絡(luò)中;一些計(jì)算設(shè)備可以被安排在可通過因特網(wǎng)訪問的網(wǎng)絡(luò)中等等。
[0041]計(jì)算設(shè)備通過因特網(wǎng)218被耦合。一般而言,網(wǎng)絡(luò)218用于在諸如服務(wù)210、服務(wù)220、云管理器230和計(jì)算設(shè)備240之類的計(jì)算設(shè)備之間傳送數(shù)據(jù)。
[0042]計(jì)算設(shè)備240包括應(yīng)用242、Web瀏覽器244以及用戶界面246。如示出的,用戶使用計(jì)算設(shè)備240與諸如服務(wù)210之類的在線服務(wù)交互。根據(jù)一實(shí)施例,服務(wù)210和220是多承租服務(wù)。一般而言,多承租是指顧客間的數(shù)據(jù)(有時(shí)包括備份)、使用和管理的隔離。換言之,即使來自每個(gè)承租人的數(shù)據(jù)可以被存儲(chǔ)在相同數(shù)據(jù)存儲(chǔ)內(nèi)的相同數(shù)據(jù)庫中,來自一個(gè)顧客(承租人I)的數(shù)據(jù)也不可被另一顧客(承租人2)訪問。
[0043]用戶界面(UI) 246用于與對(duì)于計(jì)算設(shè)備240可以是本地/非本地的各種應(yīng)用交互??梢允褂靡环N或多種類型的一個(gè)或多個(gè)用戶界面來與內(nèi)容進(jìn)行交互。例如,UI246可以包括上下文菜單、菜單欄內(nèi)的菜單、選自功能區(qū)用戶界面的菜單項(xiàng)、圖形菜單等等的使用。一般而言,UI246被配置成使得用戶可以容易地與應(yīng)用的功能交互。例如,用戶可簡(jiǎn)單地選擇W246內(nèi)的選項(xiàng)以向服務(wù)請(qǐng)求動(dòng)作。
[0044]如所示那樣,數(shù)據(jù)存儲(chǔ)212和212’包括:針對(duì)不同承租人的承租人數(shù)據(jù),其包括相應(yīng)備份數(shù)據(jù)和日志;以及針對(duì)與服務(wù)相關(guān)聯(lián)的不同應(yīng)用的應(yīng)用數(shù)據(jù),其包括相應(yīng)備份數(shù)據(jù)和日志。數(shù)據(jù)存儲(chǔ)可以存儲(chǔ)承租人的/應(yīng)用的數(shù)據(jù)的全部/部分。例如,一些承租人/應(yīng)用可以使用多于一個(gè)數(shù)據(jù)存儲(chǔ),而其他承租人/應(yīng)用與許多其他承租人/應(yīng)用共享該數(shù)據(jù)存儲(chǔ)。盡管在同一個(gè)數(shù)據(jù)存儲(chǔ)內(nèi)示出了承租人/應(yīng)用的相應(yīng)的備份數(shù)據(jù),但是該備份數(shù)據(jù)可以被存儲(chǔ)在其他位置。例如,可以使用一個(gè)數(shù)據(jù)存儲(chǔ)來存儲(chǔ)承租人數(shù)據(jù),并且可以使用一個(gè)或多個(gè)其他數(shù)據(jù)存儲(chǔ)來存儲(chǔ)相應(yīng)的備份數(shù)據(jù)。類似地,用于一個(gè)或多個(gè)應(yīng)用的備份和日志可以存儲(chǔ)在不同的數(shù)據(jù)存儲(chǔ)中。一般而言,數(shù)據(jù)存儲(chǔ)212’中的數(shù)據(jù)為數(shù)據(jù)存儲(chǔ)212中的數(shù)據(jù)的鏡像。
[0045]對(duì)與主要服務(wù)210相關(guān)聯(lián)的數(shù)據(jù)(即,有關(guān)管理改變的數(shù)據(jù)和承租人數(shù)據(jù))作出的改變被鏡像映射到次要服務(wù)220。例如,當(dāng)場(chǎng)I和場(chǎng)2部署在服務(wù)210中時(shí),場(chǎng)I’和場(chǎng)2’部署在次要服務(wù)220中。根據(jù)一實(shí)施例,完整備份(例如,每周)、增量備份(例如,每小時(shí)、每天)以及事務(wù)日志在維護(hù)作出的改變時(shí)被使用。根據(jù)一實(shí)施例,對(duì)主要服務(wù)作出的改變被復(fù)制至次要服務(wù),從而使次要服務(wù)與主要服務(wù)保持基本同步(例如,五分鐘內(nèi)、十分鐘內(nèi))。周期性地驗(yàn)證被復(fù)制至次要服務(wù)的數(shù)據(jù)以幫助確保該數(shù)據(jù)已經(jīng)被正確地復(fù)制??梢允褂貌煌姆椒▉韴?zhí)行該驗(yàn)證(例如,校驗(yàn)和、散列函數(shù),等等)。數(shù)據(jù)存儲(chǔ)236包括有關(guān)服務(wù)(例如,服務(wù)210、服務(wù)220)的操作和/或配置的數(shù)據(jù)。例如,數(shù)據(jù)存儲(chǔ)236可包括作業(yè)隊(duì)列、映射表和/或配置數(shù)據(jù)庫。
[0046]根據(jù)一實(shí)施例,使用DFSR來自動(dòng)地將內(nèi)容從主要服務(wù)210復(fù)制到服務(wù)220。DFSR使用遠(yuǎn)程差分壓縮(RDC)。一般而言,RDC檢測(cè)數(shù)據(jù)在文件中的插入、移除和重新布置,從而使得DFSR能夠在文件被更新時(shí)復(fù)制增量(改變)。DFSR服務(wù)使用RPC來在服務(wù)器之間通信。其復(fù)制由復(fù)制文件夾路徑定義的文件夾范圍。參與復(fù)制的該組計(jì)算機(jī)是由所配置的連接拓?fù)鋪矶x的并且被稱為復(fù)制組。多個(gè)復(fù)制文件夾可以包括在復(fù)制組中,其中成員資格選擇性地啟用或禁用特定復(fù)制文件夾。DFSR服務(wù)使用Windows管理工具(WMI)來配置服務(wù)范圍的參數(shù),而全局參數(shù)和某些復(fù)制文件夾專用參數(shù)是使用活動(dòng)目錄(Active Directory)來配置的。DFSR還使用WMI來展示關(guān)于諸如復(fù)制文件夾和連接之類的特定對(duì)象的監(jiān)視信息。根據(jù)一實(shí)施例,DFSR被配置為具有分級(jí)(staging)區(qū)域,所述分級(jí)區(qū)域的大小被確定為處理大量數(shù)據(jù)并且將數(shù)據(jù)以單向方向從主要服務(wù)210移動(dòng)到次要服務(wù)220。在主要位置和次要位置處的文件共享可以具有不同的名稱。
[0047]根據(jù)一實(shí)施例,活動(dòng)目錄(AD)復(fù)制被用于在主要服務(wù)210與次要服務(wù)220之間同步目錄服務(wù)數(shù)據(jù)??梢蕴娲贒FSR和AD使用其他文件復(fù)制方法。
[0048]服務(wù)210被配置為在線服務(wù)的主要位置,該在線服務(wù)被配置成提供與顯示與來自多個(gè)承租人的數(shù)據(jù)的交互相關(guān)的服務(wù)。服務(wù)210為多個(gè)承租人提供共享的基礎(chǔ)設(shè)施。根據(jù)一個(gè)實(shí)施例,服務(wù)210是微軟公司的SHAREPOINT ONLINE服務(wù)。不同的承租人可以使用服務(wù)210來主控他們的web應(yīng)用/站點(diǎn)集合。承租人還可以使用他們專用的服務(wù)或者服務(wù)210所提供的在其他承租人間共享的服務(wù)。服務(wù)220被配置為基本作為服務(wù)210的鏡像的服務(wù)的次要位置。
[0049]部署管理器26被配置為幫助建立、維護(hù)操作以及將操作轉(zhuǎn)移到次要位置。例如,部署管理器26可用于管理主要服務(wù)210與次要服務(wù)220之間的同步。部署管理器26存儲(chǔ)信息以幫助保證日志和備份被正確地傳輸和重放。例如,信息可以包括日志/備份被作出的時(shí)間(例如UTC時(shí)間),使得日志和備份可以根據(jù)其時(shí)間來排序和布置。該信息還可以包括其他信息,比如從中作出備份/日志的數(shù)據(jù)庫名稱、以及重試計(jì)數(shù)。重試計(jì)數(shù)是在備份/記錄被讀取以便被重放/復(fù)原時(shí)改變的值。例如,當(dāng)日志被訪問以便被重放時(shí),部署管理器26遞增重試計(jì)數(shù)的值。當(dāng)重試計(jì)數(shù)超過預(yù)定值(例如2、3、4次嘗試)時(shí),部署管理器26可以觸發(fā)提醒并且嘗試解決日志/備份的問題。還可以使用時(shí)間限制來幫助保證日志被及時(shí)地重放。當(dāng)日志比某個(gè)時(shí)間量(例如5、10、15分鐘)更陳舊時(shí),部署管理器26可以觸發(fā)提醒并且嘗試解決日志/備份的問題。此信息可以存儲(chǔ)不同位置。例如,該信息可以存儲(chǔ)在備份文件夾中和/或重放管理器26可訪問的其他某個(gè)位置處。根據(jù)一實(shí)施例,日志的文件名可以包括所述信息中的一些/全部以幫助保證日志和備份被正確地傳輸和重放。例如,文件名可以米取“database_year_month_day_hour_minutes_seconds_tlog_retry count (數(shù)據(jù)庫_年_月_日_小時(shí)_分鐘_秒_tlog_重試計(jì)數(shù))”的形式。
[0050]當(dāng)對(duì)主要網(wǎng)絡(luò)作出改變時(shí),該改變也可以應(yīng)用于次要位置。對(duì)主要網(wǎng)絡(luò)的一些改變可能不能在次要位置處執(zhí)行。例如,向場(chǎng)添加新前端可能不能在次要位置處重放。例如,大部分改變(即移除/添加機(jī)器、更新機(jī)器/角色分配、移除添加/數(shù)據(jù)庫、升級(jí))被自動(dòng)地應(yīng)用于次要位置,以幫助維護(hù)作為主要位置的“鏡像”的次要位置。
[0051]現(xiàn)在參考圖3和4,將描述用于維護(hù)服務(wù)的次要位置和故障轉(zhuǎn)移到服務(wù)的次要位置的過程。
[0052]在閱讀本文中給出的例程的討論時(shí),應(yīng)該理解,各個(gè)實(shí)施例的邏輯操作被實(shí)現(xiàn)為:
(I)一系列運(yùn)行于計(jì)算系統(tǒng)上的計(jì)算機(jī)實(shí)現(xiàn)的動(dòng)作或程序模塊;和/或(2)計(jì)算系統(tǒng)內(nèi)的互連的機(jī)器邏輯電路或電路模塊。這種實(shí)現(xiàn)是取決于實(shí)現(xiàn)本發(fā)明的計(jì)算系統(tǒng)的性能需求的選擇問題。因此,所例示并構(gòu)成本文中描述的實(shí)施例的邏輯操作被不同地稱為操作、結(jié)構(gòu)設(shè)備、動(dòng)作或模塊。這些操作、結(jié)構(gòu)設(shè)備、動(dòng)作和模塊可以用軟件、固件、專用數(shù)字邏輯,以及其任何組合來實(shí)現(xiàn)。
[0053]圖3示出了用于在次要位置處鏡像映射服務(wù)的主要位置的過程。
[0054]在開始操作之后,過程300流轉(zhuǎn)到操作310,其中部署次要網(wǎng)絡(luò)。次要網(wǎng)絡(luò)可以響應(yīng)于主要網(wǎng)絡(luò)被部署或者在其他某個(gè)時(shí)間被自動(dòng)地部署。例如,可以部署另一次要網(wǎng)絡(luò)以替代響應(yīng)于故障轉(zhuǎn)移而已成為主要網(wǎng)絡(luò)的次要網(wǎng)絡(luò)。次要網(wǎng)絡(luò)的部署的一些/全部可以是自動(dòng)化的。根據(jù)一實(shí)施例,主要網(wǎng)絡(luò)的配置文件的副本被人工地更新以反映次要網(wǎng)絡(luò)的物理參數(shù)。可以使用映射方案來幫助將該過程自動(dòng)化。如上面所討論的那樣,被用于部署網(wǎng)絡(luò)的腳本被配置為在次要位置處執(zhí)行主要位置的部署內(nèi)的每個(gè)操作。次要網(wǎng)絡(luò)被配置為基本上為主要網(wǎng)絡(luò)的鏡像(例如相同/大致相同數(shù)目的機(jī)器、相同配置、相同數(shù)據(jù)庫等等)。
[0055]移動(dòng)到操作320,在次要位置處執(zhí)行在操作期間對(duì)主要網(wǎng)絡(luò)作出的改變。例如,向主要位置移動(dòng)/添加機(jī)器、更新機(jī)器/角色分配、移除添加/數(shù)據(jù)庫被自動(dòng)地應(yīng)用于次要位置,使得次要位置基本上為主要位置的鏡像(圖4以及相關(guān)討論描述了場(chǎng)中的升級(jí)和改變)。內(nèi)容改變也向次要位置反映。
[0056]轉(zhuǎn)移到操作330,在主要位置處創(chuàng)建備份和事務(wù)日志。根據(jù)一實(shí)施例,所述備份包括每周執(zhí)行的完整備份、每天執(zhí)行的增量備份,每五分鐘一次(可以使用其他時(shí)間)的SQL事務(wù)日志。一些備份可以配置為不包括增量備份和/或日志。例如,由服務(wù)提供的應(yīng)用/服務(wù)(例如搜索)可以包括更少的備份和/或在不同時(shí)間執(zhí)行的備份/日志。關(guān)于備份/日志的信息被存儲(chǔ)以幫助正在正確地傳輸和重放日志和備份。例如,信息可以包括日志/備份被作出的時(shí)間(例如UTC時(shí)間),使得日志和備份可以根據(jù)其時(shí)間來排序和布置。該信息還可以包括其他信息,比如從中作出備份/日志的數(shù)據(jù)庫名稱、以及重試計(jì)數(shù)。重試計(jì)數(shù)是在備份/記錄被讀取以便被重放/復(fù)原時(shí)改變的值。重試計(jì)數(shù)在日志被訪問以被重放時(shí)被更新。
[0057]移動(dòng)到操作340,備份和日志被復(fù)制到服務(wù)的次要位置,并被復(fù)原/重放。根據(jù)一實(shí)施例,一旦備份和日志被完成就使用基于DFSR和AD的算法自動(dòng)復(fù)制備份和日志。在次要位置處復(fù)原備份,并且在次要位置處重放日志。根據(jù)一實(shí)施例,一旦日志被復(fù)制到次要位置它們就被重放,使得次要位置時(shí)間上緊密地與主要位置保持同步。
[0058]流轉(zhuǎn)到操作350,驗(yàn)證所復(fù)制的內(nèi)容以及對(duì)次要位置作出的改變。可以使用不同方法來驗(yàn)證內(nèi)容已經(jīng)被正確地復(fù)制到次要位置。例如,可以使用散列、散列+文件屬性來確定內(nèi)容是否已經(jīng)被正確地復(fù)制到次要位置。當(dāng)內(nèi)容未被驗(yàn)證時(shí),內(nèi)容可以被重新創(chuàng)建/重新復(fù)制到次要位置。類似地,當(dāng)網(wǎng)絡(luò)改變(例如添加機(jī)器、改變機(jī)器角色)被應(yīng)用于次要位置時(shí),該改變可以被驗(yàn)證。
[0059]轉(zhuǎn)移至操作360,更新次要網(wǎng)絡(luò)專用的數(shù)據(jù)。例如,可以使用次要位置的站點(diǎn)地圖來更新取決于存在于內(nèi)容數(shù)據(jù)庫中的數(shù)據(jù)的配置數(shù)據(jù)庫。
[0060]流轉(zhuǎn)到操作370,檢測(cè)到故障轉(zhuǎn)移。該故障轉(zhuǎn)移可以響應(yīng)于計(jì)劃/非計(jì)劃事件來檢測(cè)。例如,故障轉(zhuǎn)移可由主要網(wǎng)絡(luò)處的災(zāi)難性故障導(dǎo)致或者可由停止使用主要網(wǎng)絡(luò)的判定導(dǎo)致。故障轉(zhuǎn)移事件可以人工/自動(dòng)發(fā)起。例如,授權(quán)用戶可觸發(fā)從主要網(wǎng)絡(luò)到次要網(wǎng)絡(luò)的故障轉(zhuǎn)移或者故障轉(zhuǎn)移可基于對(duì)一個(gè)或多個(gè)條件(例如,一個(gè)或多個(gè)機(jī)器的故障)的檢測(cè)來自動(dòng)觸發(fā)。
[0061]流轉(zhuǎn)到操作380,在故障轉(zhuǎn)移以后將次要位置設(shè)置成主要位置。根據(jù)一實(shí)施例,在次要位置與主要位置同步以后,次要位置接收定向到主要位置的請(qǐng)求。當(dāng)次要位置變?yōu)橹饕恢脮r(shí),在次要位置處建立鏡像映射,并且可以為新主要位置建立另一恢復(fù)網(wǎng)絡(luò)。
[0062]隨后該過程移至結(jié)束操作并返回以處理其它動(dòng)作。
[0063]圖4示出了用于部署升級(jí)新場(chǎng)(比如內(nèi)容場(chǎng))的過程。
[0064]在開始操作之后,過程400流轉(zhuǎn)到操作410,其中作出要在主要位置處部署場(chǎng)的確定。場(chǎng)可以因許多不同原因而部署。例如,可以部署一個(gè)或多個(gè)場(chǎng)以運(yùn)行與現(xiàn)有場(chǎng)不同版本的軟件,可以部署新的網(wǎng)絡(luò),設(shè)備可能發(fā)生故障等等。該確定可以通過經(jīng)由諸如上述web服務(wù)API之類的API的請(qǐng)求來進(jìn)行,和/或可以自動(dòng)地確定。例如,當(dāng)場(chǎng)的目標(biāo)改變時(shí),可以人工地和/或自動(dòng)地部署新場(chǎng)。
[0065]移動(dòng)到操作415,在主要位置和次要位置二者處部署新場(chǎng)。根據(jù)一實(shí)施例,異步地執(zhí)行機(jī)器的供應(yīng),使得機(jī)器管理器和部署管理器可以繼續(xù)執(zhí)行其他動(dòng)作。部署新場(chǎng)可以包括許多不同的步驟。例如,假設(shè)具有VHD的物理機(jī)提供場(chǎng)的角色、執(zhí)行對(duì)安裝的任意定制并且啟動(dòng)機(jī)器。VHD還可以移動(dòng)到將要使用所述VHD的網(wǎng)絡(luò),使得在網(wǎng)絡(luò)內(nèi)而不是跨網(wǎng)絡(luò)地執(zhí)行復(fù)制操作。當(dāng)要部署多層場(chǎng)時(shí),可以以預(yù)定順序部署每層。根據(jù)一實(shí)施例,內(nèi)容場(chǎng)部署在聯(lián)合服務(wù)場(chǎng)之前,而聯(lián)合服務(wù)場(chǎng)部署在數(shù)據(jù)庫(例如SQL)場(chǎng)之前。場(chǎng)的升級(jí)的排序有助于降低場(chǎng)的升級(jí)的復(fù)雜度。例如,存儲(chǔ)在服務(wù)場(chǎng)中的代表內(nèi)容場(chǎng)的數(shù)據(jù)對(duì)于所有承租人(tenant)來說是同時(shí)被遷移的。如果要首先升級(jí)服務(wù)場(chǎng),與內(nèi)容相聯(lián)系的服務(wù)數(shù)據(jù)可能需要在當(dāng)內(nèi)容從舊內(nèi)容場(chǎng)移動(dòng)到新內(nèi)容場(chǎng)時(shí)被不斷遷移或刷新。首先升級(jí)場(chǎng)(例如內(nèi)容場(chǎng))還可以在存在比服務(wù)場(chǎng)更多的內(nèi)容場(chǎng)的場(chǎng)合中提供更好的縮放性。
[0066]移到操作420,新部署的場(chǎng)可以被連接到多層部署中的其他場(chǎng)。例如,當(dāng)部署新的內(nèi)容場(chǎng)時(shí),它可以被連接到舊的聯(lián)合服務(wù)場(chǎng)。
[0067]流轉(zhuǎn)到操作425,在主要位置處對(duì)來自舊場(chǎng)的數(shù)據(jù)(例如數(shù)據(jù)庫)進(jìn)行備份。根據(jù)一個(gè)實(shí)施例,該備份是完整備份。舊場(chǎng)處的數(shù)據(jù)庫可以每次一個(gè)地備份,和/或可以并行地備份。備份可以在不同的時(shí)間執(zhí)行。例如,當(dāng)正在供應(yīng)新場(chǎng)中的機(jī)器時(shí)、已經(jīng)供應(yīng)新場(chǎng)中的機(jī)器之后等等。在備份過程期間,主要位置可以繼續(xù)接收讀取/寫入請(qǐng)求。
[0068]移動(dòng)到操作430,在主要位置和次要位置二者處將備份從舊場(chǎng)復(fù)制到新場(chǎng)。正在升級(jí)的舊場(chǎng)在備份的復(fù)制期間繼續(xù)接收和處理讀取/寫入請(qǐng)求。所述備份可以在不同的時(shí)間被復(fù)制。例如,可以每次一個(gè)、每次兩個(gè)或全部一起地等等將備份復(fù)制到新場(chǎng)中的每個(gè)場(chǎng)。所述數(shù)據(jù)還可以以每承租人基礎(chǔ)來被復(fù)制。例如,當(dāng)承租人占有超過一個(gè)的數(shù)據(jù)庫時(shí),該承租人占有的每個(gè)數(shù)據(jù)庫可以被并行復(fù)制。這些數(shù)據(jù)也可以基于內(nèi)容的類型來復(fù)制。例如,服務(wù)場(chǎng)中的數(shù)據(jù)可以一次被全部復(fù)制,而SQL數(shù)據(jù)庫和/或內(nèi)容場(chǎng)數(shù)據(jù)庫可以以特定順序被復(fù)制。在數(shù)據(jù)庫復(fù)制期間,正在復(fù)制的數(shù)據(jù)庫被限制添加任何新的承租人。
[0069]轉(zhuǎn)移到操作435,在新場(chǎng)(主要位置和次要位置)處復(fù)原備份并且將其附連到新場(chǎng)。
[0070]移動(dòng)到操作440,獲得自從備份最初被執(zhí)行時(shí)起對(duì)舊場(chǎng)所作出的任何改變,并且將所述改變添加到已復(fù)制到新場(chǎng)的數(shù)據(jù)。在該操作期間,舊場(chǎng)上的數(shù)據(jù)被標(biāo)記為只讀,使得在短時(shí)間段內(nèi),不允許對(duì)正在被移動(dòng)的場(chǎng)上的數(shù)據(jù)進(jìn)行寫入。由于完整備份與事務(wù)備份之間的時(shí)間段是相對(duì)短的(例如幾分鐘),因此數(shù)據(jù)庫不可用于寫入的時(shí)間段也是短的。
[0071]流轉(zhuǎn)到操作445,在主要位置處對(duì)新場(chǎng)執(zhí)行任何升級(jí)。例如,新場(chǎng)中的數(shù)據(jù)庫可以被升級(jí)到新的方案版本以處理與舊場(chǎng)相比不同的操作。在該升級(jí)過程期間,新場(chǎng)將不接收和處理請(qǐng)求。在該時(shí)間期間,舊場(chǎng)保留在只讀模式下以處理用戶請(qǐng)求。還可以改變/修改數(shù)據(jù)庫中的其他項(xiàng)。
[0072]轉(zhuǎn)移到操作450,將由于對(duì)新場(chǎng)的升級(jí)而創(chuàng)建的事務(wù)日志復(fù)制到新場(chǎng)的相應(yīng)次要位置。所述事務(wù)日志可以在升級(jí)過程期間和/或以后的不同時(shí)間被復(fù)制。例如,事務(wù)日志可以在它們?cè)谛聢?chǎng)處的升級(jí)期間被創(chuàng)建時(shí)自動(dòng)地復(fù)制到次要位置。通過這種方式,與在獲得事務(wù)日志以前等待升級(jí)完成相比,新場(chǎng)的次要位置保持與新場(chǎng)的主要位置更緊密地同步。
[0073]移動(dòng)到操作455,在新場(chǎng)的次要位置處重放事務(wù)日志。事務(wù)日志可以與對(duì)新場(chǎng)的主要位置的升級(jí)并行地進(jìn)行。
[0074]流轉(zhuǎn)到操作460,驗(yàn)證新場(chǎng)的部署和升級(jí)以幫助保證該過程是正確地進(jìn)行的。如果在部署場(chǎng)的期間檢測(cè)到問題,則可以繼續(xù)使用舊場(chǎng)。另外,通信量也可以重新引導(dǎo)回舊場(chǎng)。
[0075]移動(dòng)到操作465,當(dāng)新場(chǎng)的供應(yīng)和部署成功時(shí),將來自舊場(chǎng)的通信量引導(dǎo)到新場(chǎng)。此時(shí),新近部署的場(chǎng)被置于讀取/寫入模式并且接收和處理之前曾被引導(dǎo)到舊場(chǎng)的所有請(qǐng)求。
[0076]轉(zhuǎn)移到操作470,對(duì)主要位置和次要位置二者處的舊場(chǎng)取消供應(yīng)??梢粤⒖袒蛟诹硪粫r(shí)間對(duì)舊場(chǎng)取消供應(yīng)。例如,可以設(shè)置一個(gè)驗(yàn)證新場(chǎng)正確工作的時(shí)間段。可以在取消供應(yīng)的同時(shí)和/或在不同的時(shí)間移除所述數(shù)據(jù)庫。例如,可以在一天、7天、30天等之后移除數(shù)據(jù)庫。
[0077]現(xiàn)在參考圖5,將描述在各實(shí)施例中利用的計(jì)算機(jī)500的說明性計(jì)算機(jī)架構(gòu)。圖5所示的計(jì)算機(jī)體系結(jié)構(gòu)可被配置為服務(wù)器、臺(tái)式或移動(dòng)計(jì)算機(jī),并且包括中央處理單元5(“CPU”)、包括隨機(jī)存取存儲(chǔ)器9 (“RAM”)和只讀存儲(chǔ)器(“ROM”)11的系統(tǒng)存儲(chǔ)器7、以及將存儲(chǔ)器耦合至中央處理單元(“CPU”)5的系統(tǒng)總線12。
[0078]在ROMll中存儲(chǔ)基本輸入/輸出系統(tǒng),該系統(tǒng)包含有助于諸如在啟動(dòng)期間在計(jì)算機(jī)內(nèi)的各元件之間傳輸信息的基本例程。計(jì)算機(jī)500還包括大容量存儲(chǔ)設(shè)備14,用于存儲(chǔ)操作系統(tǒng)16、應(yīng)用程序10、數(shù)據(jù)存儲(chǔ)24、文件、以及與云系統(tǒng)100的執(zhí)行和同云系統(tǒng)100的交互相關(guān)的云程序25。
[0079]大容量存儲(chǔ)設(shè)備14通過連接至總線12的大容量存儲(chǔ)控制器(未示出)連接至CPU5。大容量存儲(chǔ)設(shè)備14及其相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)為計(jì)算機(jī)500提供非易失性存儲(chǔ)。雖然本文中包含的對(duì)計(jì)算機(jī)可讀介質(zhì)的描述涉及諸如硬盤或CD-ROM驅(qū)動(dòng)器等大容量存儲(chǔ)設(shè)備,但是計(jì)算機(jī)可讀介質(zhì)可以是能夠由計(jì)算機(jī)100訪問的任何可用介質(zhì)。
[0080]作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)可包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)之類的信息的任何方法或技術(shù)來實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM、ROM、可擦除可編程只讀存儲(chǔ)器(“EPROM”)、電可擦可編程只讀存儲(chǔ)器(“EEPR0M”)、閃存或其他固態(tài)存儲(chǔ)器技術(shù)、⑶-ROM、數(shù)字多功能盤(“DVD”)或其他光存儲(chǔ)、磁帶盒、磁帶、磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備,或能用于存儲(chǔ)所需信息且可以由計(jì)算機(jī)500訪問的任何其他介質(zhì)。
[0081]根據(jù)各實(shí)施例,計(jì)算機(jī)500可以使用通過諸如因特網(wǎng)的網(wǎng)絡(luò)18至遠(yuǎn)程計(jì)算機(jī)的邏輯連接在聯(lián)網(wǎng)環(huán)境中操作。計(jì)算機(jī)500可以通過連接至總線12的網(wǎng)絡(luò)接口單元20來連接到網(wǎng)絡(luò)18。網(wǎng)絡(luò)連接可以是無線的和/或有線的。網(wǎng)絡(luò)接口單元20也可用于連接到其他類型的網(wǎng)絡(luò)和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)500還可以包括用于接收和處理來自多個(gè)其他設(shè)備的輸入的輸入/輸出控制器22,這些設(shè)備包括鍵盤、鼠標(biāo)或者電子指示筆(未在圖5中示出)。類似地,輸入/輸出控制器22可以為顯示屏28、打印機(jī)或其它類型的輸出設(shè)備提供輸出。
[0082]如上面簡(jiǎn)要提到的,多個(gè)程序模塊和數(shù)據(jù)文件可以存儲(chǔ)在計(jì)算機(jī)500的大容量存儲(chǔ)設(shè)備14和RAM9內(nèi),包括適于控制聯(lián)網(wǎng)計(jì)算機(jī)的操作的操作系統(tǒng)16,比如華盛頓州雷蒙德市的微軟公司的WINDOWS?操作系統(tǒng)。大容量存儲(chǔ)設(shè)備14和RAM9還可以存儲(chǔ)一個(gè)或多個(gè)程序模塊。具體而言,大容量存儲(chǔ)設(shè)備14和RAM9可以存儲(chǔ)諸如云程序25的執(zhí)行與云系統(tǒng)相關(guān)的作業(yè)的一個(gè)或多個(gè)應(yīng)用程序。
[0083] 以上說明、示例和數(shù)據(jù)提供了對(duì)本發(fā)明的組成部分的制造和使用的全面描述。因?yàn)榭梢栽诓槐畴x本發(fā)明的精神和范圍的情況下做出本發(fā)明的許多實(shí)施例,所以本發(fā)明落在所附權(quán)利要求的范圍內(nèi)。
【權(quán)利要求】
1.一種用于建立和維護(hù)用于服務(wù)的恢復(fù)網(wǎng)絡(luò)的方法,包括: 部署服務(wù)的次要位置,所述次要位置充當(dāng)用于所述服務(wù)的主要位置的恢復(fù)網(wǎng)絡(luò),所述次要位置基本上鏡像映射主要位置; 在所述服務(wù)的主要位置活動(dòng)地接收來自用戶的請(qǐng)求的同時(shí)自動(dòng)地將對(duì)所述服務(wù)的主要位置作出的內(nèi)容改變和系統(tǒng)改變應(yīng)用于所述服務(wù)的次要位置以維護(hù)基本上的鏡像映射; 檢測(cè)所述服務(wù)的主要位置的故障;以及 響應(yīng)于所述故障,將所述服務(wù)的次要位置設(shè)置成主要位置。
2.如權(quán)利要求1所述的方法,其特征在于,自動(dòng)地應(yīng)用內(nèi)容改變和系統(tǒng)改變包括:創(chuàng)建完整備份以及在所述完整備份和事務(wù)日志之間創(chuàng)建的增量備份。
3.如權(quán)利要求1所述的方法,其特征在于,自動(dòng)地應(yīng)用內(nèi)容改變和系統(tǒng)改變包括下列各項(xiàng)中的至少之一: 響應(yīng)于數(shù)據(jù)庫被升級(jí)而創(chuàng)建主要位置處的事務(wù)日志,并且將所述事務(wù)日志復(fù)制到次要位置以更新次要位置處的相應(yīng)數(shù)據(jù)庫; 確定下列操作中的至少之一何時(shí)在主要位置處發(fā)生:添加機(jī)器;移除機(jī)器;更新機(jī)器;更新角色;更新分配;移除數(shù)據(jù)庫;添加數(shù)據(jù)庫;移動(dòng)數(shù)據(jù)庫;將內(nèi)容從數(shù)據(jù)庫移動(dòng)到另一數(shù)據(jù)庫并執(zhí)行升級(jí);以及響應(yīng)于在主要位置處發(fā)生所述操作自動(dòng)地將所述操作應(yīng)用于次要位置;以及 在將請(qǐng)求傳輸給主要位置處 的新場(chǎng)以前更新主要位置和次要位置處的所述新場(chǎng)。
4.如權(quán)利要求3所述的方法,其特征在于,當(dāng)數(shù)據(jù)庫在主要位置處被更新的同時(shí)響應(yīng)于所述升級(jí)而生成的事務(wù)日志的至少一部分在次要位置處被重放。
5.如權(quán)利要求1所述的方法,其特征在于,還包括:驗(yàn)證應(yīng)用于主要位置和次要位置的內(nèi)容改變和系統(tǒng)改變,并且使用存儲(chǔ)在次要位置處的數(shù)據(jù)周期性地和自動(dòng)地更新次要位置的站點(diǎn)地圖。
6.如權(quán)利要求1所述的方法,其特征在于,還包括:響應(yīng)于作業(yè)在主要位置處被請(qǐng)求而在次要網(wǎng)絡(luò)處自動(dòng)地執(zhí)行相應(yīng)作業(yè)。
7.一種具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令用于建立和維護(hù)用于服務(wù)的恢復(fù)網(wǎng)絡(luò),包括: 響應(yīng)于主要位置的部署,部署服務(wù)的次要位置,所述次要位置充當(dāng)用于所述服務(wù)的主要位置的恢復(fù)網(wǎng)絡(luò),所述次要位置基本上鏡像映射主要位置; 在所述服務(wù)的主要位置活動(dòng)地接收來自用戶的請(qǐng)求的同時(shí)自動(dòng)地將對(duì)所述服務(wù)的主要位置作出的內(nèi)容改變和系統(tǒng)改變應(yīng)用于所述服務(wù)的次要位置以維護(hù)基本上的鏡像映射;其中自動(dòng)地應(yīng)用內(nèi)容改變和系統(tǒng)改變包括:自動(dòng)地將在主要位置處作出的完整備份、增量備份以及事務(wù)日志復(fù)制到次要位置; 檢測(cè)所述服務(wù)的主要位置的故障;以及 響應(yīng)于所述故障,將所述服務(wù)的次要位置設(shè)置成主要位置。
8.一種用于建立和維護(hù)用于服務(wù)的恢復(fù)網(wǎng)絡(luò)的系統(tǒng),包括: 處理器和計(jì)算機(jī)可讀介質(zhì); 存儲(chǔ)在所述計(jì)算機(jī)可讀介質(zhì)上并在所述處理器上執(zhí)行的操作環(huán)境;以及云管理器,所述云管理器用于執(zhí)行動(dòng)作,包括: 響應(yīng)于主要位置的部署,自動(dòng)地部署服務(wù)的次要位置,所述次要位置充當(dāng)用于所述服務(wù)的主要位置的恢復(fù)網(wǎng)絡(luò),所述次要位置基本上鏡像映射主要位置; 在所述服務(wù)的主要位置活動(dòng)地接收來自用戶的請(qǐng)求的同時(shí)自動(dòng)地將對(duì)所述服務(wù)的主要位置作出的內(nèi)容改變和系統(tǒng)改變應(yīng)用于所述服務(wù)的次要位置以維護(hù)基本上的鏡像映射;其中自動(dòng)地應(yīng)用內(nèi)容改變和系統(tǒng)改變包括:自動(dòng)地將在主要位置處作出的備份和事務(wù)日志復(fù)制到次要位置; 檢測(cè)所述服務(wù)的主要位置的故障;以及 響應(yīng)于所述故障,將所述服務(wù)的次要位置設(shè)置成主要位置。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,自動(dòng)地應(yīng)用內(nèi)容改變和系統(tǒng)改變包括確定下列操作中的至少之一何時(shí)在主要位置處發(fā)生:添加機(jī)器;移除機(jī)器;更新機(jī)器;更新角色;更新分配;移除數(shù)據(jù)庫;添加數(shù)據(jù)庫;移動(dòng)數(shù)據(jù)庫;將內(nèi)容從數(shù)據(jù)庫移動(dòng)到另一數(shù)據(jù)庫并執(zhí)行升級(jí);以及響應(yīng)于在主要位置處發(fā)生所述操作自動(dòng)地將所述操作應(yīng)用于次要位置。
10.如權(quán)利要求8所述的系統(tǒng),其特征在于,自動(dòng)地將對(duì)所述服務(wù)的主要位置作出的內(nèi)容改變和系統(tǒng)改變應(yīng)用于次要位置包括下列各項(xiàng)中的至少之一:響應(yīng)于數(shù)據(jù)庫被升級(jí)而創(chuàng)建主要位置處的事務(wù)日志,并且將所述事務(wù)日志復(fù)制到次要位置以更新次要位置處的相應(yīng)數(shù)據(jù)庫,其中當(dāng)所述數(shù)據(jù)庫在主要位置處被更新的同時(shí)響應(yīng)于所述升級(jí)而生成的事務(wù)日志的至少一部分在次要位置處被重放,并且在將請(qǐng)求傳輸給主要位置處的新場(chǎng)以前更新主要位置和次要位置處的所述新場(chǎng)。
【文檔編號(hào)】G06F15/16GK103597463SQ201280027613
【公開日】2014年2月19日 申請(qǐng)日期:2012年6月2日 優(yōu)先權(quán)日:2011年6月6日
【發(fā)明者】V·塔拉諾弗, D·布拉德, A·霍普曼, S·R·沙哈, T·塞維爾米什, N·沃倫可夫, R·索曼蓀達(dá)拉姆, A·科漢, B·杜什 申請(qǐng)人:微軟公司