跨多個虛擬機共享虛擬硬盤的制作方法
【專利說明】跨多個虛擬機共享虛擬硬盤
[0001 ] 背景
[0002]在高度可用計算鄰域內(nèi),服務器通常是群集的。也就是說,它們一起作為一個組來工作。在這類配置中,如果一個服務器故障,其它服務器繼續(xù)工作。因此,連接到服務器的一個或多個客戶端要么看不到服務的中斷,要么看到極小影響的中斷。當這些服務器群集被虛擬化時,它們?nèi)匀恍枰蚕淼谋P。在當前的實現(xiàn)中,使用的是對群集的所有成員對稱式地可用的盤驅(qū)動器。
[0003]各實施例正是對于這些和其它一般考慮事項而做出的。而且,盡管討論了相對具體的問題,但是應當理解,各實施例不應被限于解決本【背景技術(shù)】中所標識的具體問題。
[0004]概述
[0005]提供本概述來以簡化形式介紹將在以下詳細描述部分中進一步描述的一些概念。本概述并不旨在標識出所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。
[0006]各實施例提供了一種用于在多個虛擬機中共享存儲的方法和系統(tǒng)。具體地,一個或多個實施例涉及將命令從多個虛擬機發(fā)送到共享存儲。在各實施例中,共享存儲可以是一個或多個虛擬硬盤。此處提供的方法和系統(tǒng)公開了將命令通過由文件系統(tǒng)協(xié)議建立的通信會話從虛擬機發(fā)送給文件服務器。在某些實施例中,命令以第一格式從虛擬機發(fā)出。在通過文件系統(tǒng)協(xié)議傳遞給文件服務器之前,命令從第一格式轉(zhuǎn)換成第二格式。如以下將討論的,第二格式基于由文件系統(tǒng)協(xié)議定義的偏好。當在文件服務器處接收到命令時,過濾器將該命令從第二格式自動轉(zhuǎn)換回第一格式。過濾器隨后將命令傳遞給解析器,解析器將命令從第一格式轉(zhuǎn)換成第三格式。解析器隨后在共享存儲上執(zhí)行該命令。
[0007]附圖簡述
[0008]參考以下附圖描述非限制性和非窮盡的實施例,其中:
[0009]圖1解說了根據(jù)本公開的一個或多個實施例的用于在多個虛擬機之間共享存儲的系統(tǒng);
[0010]圖2解說了根據(jù)本公開的一個或多個實施例的用于在多個虛擬機之間共享存儲的方法;
[0011]圖3解說了根據(jù)本公開的一個或多個實施例的用于對接收到的要在共享的存儲上執(zhí)行的命令進行過濾的方法;
[0012]圖4是解說可以與本公開的一個或多個實施例一起使用的計算設備的示例物理組件的框圖;
[0013]圖5A和5B是可以與本公開的一個或多個實施例一起使用的移動計算設備的簡化框圖;以及
[0014]圖6是解說可以與本公開的一個或多個實施例一起使用的分布式計算系統(tǒng)的簡化框圖。
[0015]詳細描述
[0016]以下將參考形成本發(fā)明一部分并示出各具體示例性實施例的附圖更詳盡地描述各個實施例。然而,各實施例可以以許多不同的形式來實現(xiàn),并且不應將其解釋為限制此處所闡述的各實施例;相反地,提供這些實施例以使得本公開變得透徹和完整,并且將這些實施例的范圍完全傳達給本領(lǐng)域普通技術(shù)人員。各實施例可按照方法、系統(tǒng)或設備來實施。因此,這些實施例可采用硬件實現(xiàn)形式、全軟件實現(xiàn)形式或者結(jié)合軟件和硬件方面的實現(xiàn)形式。因此,以下詳細描述并非是局限性的。
[0017]如以下將詳細闡述的,此處所描述的方法和系統(tǒng)使得計算環(huán)境中的多個虛擬機能夠連接到中央存儲設備、從其讀取數(shù)據(jù)、或?qū)?shù)據(jù)寫入其中。圖1解說了根據(jù)本公開的一個或多個實施例的用于在多個虛擬機中共享存儲的系統(tǒng)100。一個或多個實施例提出共享的存儲可以是一個或多個虛擬硬盤、物理硬盤中的一個或多個位置、或這兩者的組合。
[0018]在某些實施例中,虛擬機可被配置成使用塊存儲協(xié)議來存儲和訪問數(shù)據(jù)。由于虛擬機可能能夠訪問包括塊存儲的虛擬硬盤,虛擬機可被配置成通過執(zhí)行塊存儲操作來與其虛擬硬盤交互。這些操作可包括讀操作、寫操作、幾何操作、或其它小型計算機系統(tǒng)接口(SCSI)或互聯(lián)網(wǎng)小型計算機系統(tǒng)接口(ISCSI)命令。
[0019]然而,替代授權(quán)每個虛擬機直接訪問能夠由多個服務(諸如SAN)共享的塊存儲設備,此處所公開的一個或多個實施例提出虛擬機可訪問由虛擬硬盤文件所支持的虛擬硬盤,該虛擬硬盤文件能夠同時由其它虛擬機共享。在這樣的實施例中,每個虛擬機觀察該文件所支持的同一虛擬盤并與之交互。相應地,每個塊存儲操作可能需要通過網(wǎng)絡從包含該虛擬機的物理主機傳送到中央存儲設備上的存儲。然而,為了確保這些同時發(fā)生的改動不彼此影響或沖突,各實施例提出塊命令通過文件系統(tǒng)或文件系統(tǒng)協(xié)議來傳送給中央存儲設備。具體來說,一個或多個塊存儲命令采用隧穿機制來傳遞給遠程文件服務器以使得塊存儲命令能夠通過文件系統(tǒng)協(xié)議來傳遞。
[0020]參照圖1,系統(tǒng)100可包括多個節(jié)點,每個節(jié)點具有形成虛擬機群集的一個或多個虛擬機。例如,如圖1中所示,節(jié)點A 110具有形成虛擬機群集的虛擬機A 111以及虛擬機B112。類似地,節(jié)點B 115具有形成虛擬機群集的虛擬機C 116以及虛擬機D 117。在某些實施例中,一個虛擬機(例如虛擬機A 111)可正在主動執(zhí)行和發(fā)送命令給遠程文件服務器120,而另一虛擬機(例如虛擬機B 112)正擔當備份。因此,如果虛擬機A 111將要故障,則虛擬機A 111的工作負載將故障轉(zhuǎn)移給虛擬機B 112,且虛擬機B 112將開始執(zhí)行必要的命令并且根據(jù)需要訪問遠程文件服務器120。由于虛擬機B能夠訪問與虛擬機A相同的遠程文件服務器,節(jié)點A 110不需要等待虛擬機A 111復位并重啟。因此,很少的(如果有的話)時間和資源被浪費在等待虛擬機A 111回到在線上。
[0021]雖然圖1示出了兩個節(jié)點(節(jié)點A 110和節(jié)點B 115),但是設想了系統(tǒng)100可包括更少或更多個節(jié)點。另外,雖然圖1示出節(jié)點A 110和節(jié)點B 115運行兩個虛擬機,但是設想了每個節(jié)點可具有更少或更多個運行在其上并形成群集的虛擬機。
[0022]在某些實施例中,節(jié)點A 110和節(jié)點B 115可以是服務器計算機。在其它實施例中,節(jié)點A 110和節(jié)點B 115可以是客戶端計算機,諸如例如個人計算機、平板、膝上型計算機、智能電話、個人數(shù)字助理等。由此,在某些實施例中,節(jié)點A 110和節(jié)點B 115可以各自被配置為監(jiān)管程序(hypervisor)。也就是說,節(jié)點A 110和節(jié)點B 115可被配置成具有用來創(chuàng)建和監(jiān)視虛擬機的軟件、硬件或固件。由此,節(jié)點A 110和節(jié)點B 115可指的是主機,而虛擬機A
111、虛擬機B 112、虛擬機C 116和虛擬機D 117被稱為客虛擬機。
[0023]在一個或多個實施例中,節(jié)點A110和節(jié)點B 115將每個虛擬機的操作系統(tǒng)呈現(xiàn)為虛擬操作平臺。另外,節(jié)點A 110和節(jié)點B 115管理每個操作系統(tǒng)的執(zhí)行。在某些實施例中,節(jié)點A 110和節(jié)點B 115是由華盛頓州雷蒙德市的微軟公司所分布的HYPER-V服務器。
[0024]如將要被討論的,本公開的各實施例描述了如何向虛擬機展示虛擬硬盤以及如何讀取和存儲由虛擬機在可跨虛擬機共享的虛擬硬盤文件中寫入的數(shù)據(jù)。例如,當虛擬機(諸如例如虛擬機A 111)請求其盤上的一個塊時,從虛擬硬盤文件中的對應塊中讀取該數(shù)據(jù)并將數(shù)據(jù)返回給虛擬機。類似地,如果虛擬機D 117請求在塊上寫入數(shù)據(jù),則該數(shù)據(jù)被傳送給虛擬硬盤文件。如將要被討論的,當虛擬硬盤被共享時,替代使用物理主機上的虛擬硬盤解析器來裝載虛擬硬盤,在遠程文件系統(tǒng)上打開針對該虛擬硬盤的文件句柄。這種方法的一個優(yōu)點在于虛擬機管理員可把虛擬盤當成任何其它文件來對待、采用文件歷史、采用被表達成具有審計日志的訪問控制列表的許可、基于文件的備份工具等等。
[0025]另外,遠程文件系統(tǒng)被配置成廣告其為遠程文件系統(tǒng)上的虛擬硬盤使用塊協(xié)議(而不是基于文件的協(xié)議)的能力。塊命令通過文件句柄從虛擬機傳遞給遠程文件系統(tǒng),而無需該命令在物理主機上被翻譯(這通常會發(fā)生在非共享虛擬硬盤場景中)。
[0026]各實施例還公開了裝載被存儲在遠程文件系統(tǒng)上的共享的虛擬硬盤中的虛擬盤并且將塊命令傳遞給該虛擬盤。當命令抵達位于例如遠程文件系統(tǒng)上的虛擬硬盤解析器時,該虛擬硬盤解析器將該塊命令轉(zhuǎn)換成基于文件的操作,這實現(xiàn)了從虛擬硬盤文件中讀取數(shù)據(jù)或者將數(shù)據(jù)寫入虛擬硬盤文件中。在某些實施例中,過濾器追蹤關(guān)于哪些虛擬機具有寫入共享的虛擬硬盤的各區(qū)域的權(quán)限的信息。這些權(quán)限可由持久預留(諸如例如由SCS1-3 Persistent Reservat1ns)來定義。在特定實施例中,當虛擬機從一個主機移動到另一主機時,這些權(quán)限(即預留)隨其一起移動。
[0027]參考回圖1,一個或多個實施例提出節(jié)點A110和節(jié)點B 115各自具有運行在其上并形成虛擬機群集的多個虛擬機。在某些實施例中,每個虛擬機和虛擬機群集訪問存儲在遠程文件服務器120上的中央存儲設備123。由于系統(tǒng)100中的每個虛擬機能夠訪問遠程文件服務器120上的中央存儲設備123,因此每個虛擬機可不被授權(quán)訪問本地虛擬硬盤。然而,在一些實施例中,虛擬機群集中的一個或多個虛擬機可被提供或授權(quán)訪問本地虛擬硬盤以及訪問存儲在遠程文件服務器120上的中央存儲設備123。
[0028]在某些實施例中,中央存儲設備123可包括多個存儲設備。在某些實施例中,中央存儲設備123可包括物理存儲、虛擬存儲、或以上的組合。在其中中央存儲設備123包括虛擬存儲的實現(xiàn)中,虛擬存儲由一個或多個物理盤支持。
[0029]如圖1中所示,遠程文件服務器120還可包括過濾器121,該過濾器121被配置成接收、解包和挑選從節(jié)點A 110和節(jié)點B 115接收的一個或多個命令。在各實施例中,雖然過濾器被示為文件服務器120的一個組件,