新四季網

用於安全地處理與物理功能驅動器的虛擬功能驅動器通信的方法、系統和裝置製造方法

2023-04-25 20:24:56 3

用於安全地處理與物理功能驅動器的虛擬功能驅動器通信的方法、系統和裝置製造方法
【專利摘要】在輸入/輸出虛擬化使能計算環境中,一種用於安全地處理與計算裝置的物理功能驅動器的虛擬功能驅動器通信的裝置、方法和系統包括:保持虛擬功能驅動器的通信簡檔;以及將通信簡檔應用於從虛擬功能驅動器到物理功能驅動器的通信,以確定通信是否呈現安全和/或性能條件。如果檢測到安全和/或性能條件,則所述裝置、方法和系統可禁用虛擬功能驅動器。
【專利說明】用於安全地處理與物理功能驅動器的虛擬功能驅動器通信的方法、系統和裝置

【背景技術】
[0001]虛擬化表示使用計算機軟體(例如,「虛擬機」或「系統鏡像」)來模擬或以其它方式實現物理計算裝置的功能或特徵,以使得物理計算資源能夠被共享。例如,多個虛擬機(VM)能夠同時在相同物理計算系統上運行。在輸入輸出(I/O)裝置的情況下,虛擬化技術能夠被用於允許多個虛擬機共享相同的I/O硬體資源。
[0002]「雲」計算經常表示通常由許多計算機伺服器對作為服務的計算資源的提供,所述許多計算機伺服器在距向其請求服務的位置遙遠的(一個或多個)位置處被聯網在一起。可使用虛擬化來分配雲伺服器或其資源的各部分。在雲環境中,多個系統鏡像(SI)可在獨立聯網伺服器的不同處理部件上執行。
[0003]從安全或性能角度,虛擬化環境(諸如,VM和系統鏡像(SI))能夠被利用惡意軟體破壞或以其它方式受到損害。隨著VM或SI的數量增加,安全漏洞的風險、拒絕服務(DOS)攻擊和其它安全和/或性能相關問題也可能增加。

【專利附圖】

【附圖說明】
[0004]在附圖中作為例子而非作為限制圖示在本公開中描述的概念。為了說明的簡單和清楚,圖中圖示的元件未必按照比例繪製。例如,為了清楚,一些元件的尺寸可相對於其它元件被誇大。另外,在認為合適的情況下,參考標籤已在各圖之中被重複以指示對應或類似的元件。
[0005]圖1是用於在虛擬化計算裝置處理虛擬功能驅動器通信的系統的至少一個實施例的簡化方框圖;
圖2是圖1的計算裝置的虛擬化執行環境的至少一個實施例的簡化方框圖;和圖3是用於分析來自圖1的系統中的虛擬功能驅動器的通信並且確定是否禁止虛擬功能驅動器的方法的至少一個實施例的簡化流程圖。

【具體實施方式】
[0006]儘管本公開的概念容許各種修改和替代形式,但已在附圖中作為例子示出了其特定實施例並且將會在這裡詳細地描述該特定實施例。然而,應該理解,並不意圖將本公開的概念限制於公開的特定形式,而是相反地,意圖是覆蓋符合本公開和所附權利要求的所有修改、等同物和替代物。
[0007]在下面的描述中,闡述了許多特定細節(諸如,邏輯實現方式、操作碼、用於指定操作數的方式、資源分割/共享/複製實現方式、系統部件的類型和相互關係以及邏輯分割/集成選擇)以便提供對本公開的更徹底的理解。然而,本領域技術人員將會理解,可在沒有這種特定細節的情況下實踐本公開的實施例。在其它實例中,控制結構、門級電路和完全軟體指令序列未被詳細示出以免模糊這裡描述的概念的描述。利用所包括的描述,本領域普通技術人員將會能夠在沒有過度實驗的情況下實現合適的功能。
[0008]在說明書中對「 一個實施例」、「實施例」、「示例性實施例」等的提及指示所描述的實施例可包括特定特徵、結構或特性,但每個實施例可不必包括所述特定特徵、結構或特性。此外,這種短語未必表示相同實施例。另外,當結合實施例描述特定特徵、結構或特性時,無論是否明確地描述,均認為結合其它實施例實現這種特徵、結構或特性在本領域技術人員的知識範圍內。
[0009]這裡描述的概念的實施例可被實現於硬體、固件、軟體或其任何組合中。實現在計算機系統中的實施例可包括部件之間的一個或多個點對點或基於總線的互連。這裡描述的概念的實施例還可被實現為由一個或多個機器可讀或計算機可讀存儲介質攜帶或存儲在所述一個或多個機器可讀或計算機可讀存儲介質上的指令,所述指令可由一個或多個處理器讀取並且執行。機器可讀或計算機可讀存儲介質可被體現為用於以機器(例如,計算裝置)可讀的形式存儲或傳送信息的任何裝置、機構或物理結構。例如,機器可讀或計算機可讀存儲介質可被體現為(一個或多個)只讀存儲器(ROM)裝置;(一個或多個)隨機存取存儲器(RAM)裝置;磁碟存儲介質;光學存儲介質;快閃記憶體裝置;迷你或微型SD卡、存儲棒等。
[0010]在附圖中,為了容易描述,可示出示意性元件(諸如,表示裝置、模塊、指令塊和數據元素的元件)的特定布置或排序。然而,本領域技術人員應該理解,附圖中的示意性元件的特定排序或布置並不意圖暗示需要處理的特定次序或順序或者過程的分離。另外,在附圖中包括示意性元件不意圖暗示:在所有實施例中需要這種元件,或者由這種元件表示的特徵不可被包括在一些實施例中或在一些實施例中與其它元件組合。
[0011]通常,可使用任何合適形式的機器可讀指令(諸如,軟體或固件應用、程序、函數、模塊、例程、過程、進程、插件、小應用程式、窗口小部件、代碼片段和/或其它)實現用於表示指令塊的示意性元件,並且可使用任何合適的程式語言、庫、應用編程接口(API)和/或其它軟體開發工具實現每個這種指令。例如,可使用Java、C++和/或其它程式語言實現一些實施例。類似地,可使用任何合適的電子布置或結構(諸如,寄存器、數據存儲、表、記錄、陣列、索引、散列、映射、樹、列表、圖形、文件(任何文件類型)、文件夾、目錄、資料庫和/或其它)實現用於表示數據或信息的示意性元件。
[0012]另外,在附圖中,在連接元件(諸如,實線或虛線或箭頭)被用於圖示兩個或更多的其它示意性元件之間或之中的連接、關係或關聯的情況下,不存在任何這種連接元件並不意圖暗示不能夠存在連接、關係或關聯。換句話說,元件之間的一些連接、關係或關聯可能未被示出在附圖中以免模糊本公開。另外,為了容易圖示,單個連接元件可被用於表示元件之間的多個連接、關係或關聯。例如,在連接元件表示信號、數據或指令的通信的情況下,本領域技術人員應該理解,根據可能需要的,這種元件可表示用於實現通信的一個或多個信號路徑(例如,總線)。
[0013]在一些I/O虛擬化技術中,能夠使用映射到I/O裝置的物理功能(PF)的虛擬功能(VF)共享I/O裝置的物理資源。這種物理「功能」的一個例子是I/O裝置的個體通信埠(例如,乙太網埠)。虛擬化I/O系統中的每個VF和PF具有使應用軟體能夠與該功能通信或實現該功能的關聯裝置驅動器,例如系統軟體。例如,在一些實施例(例如,外圍部件互連(PCI)和/或PCI Express裝置)中,每個VF驅動器能夠支持用於I/O相關功能的唯一和/或分離的數據路徑。這能夠允許單個I/O埠的帶寬被分割為更小的「片」,所述更小的片可被分配給特定VM、SI或「訪客」。為了容易討論,在這裡使用術語「VM」,但術語「VM」意圖作為簡寫來表示VM、S1、訪客或無論是在單根(single-root)配置還是在多根(multiple-root)配置中實現虛擬化計算環境的其它類型的過程或機制。通過虛擬化實現的I/O資源的共享能夠增加I/O裝置的總利用率,並且由此減少虛擬系統的成本。
[0014]I/O虛擬化使能裝置能夠被配置為支持多個VF,以使得I/O裝置的每個物理功能能夠看起來像是多個分離的物理裝置。由可被稱為虛擬機管理器(VMM)或管理程序的軟體將每個VF分派給VM。在一些實施例中,多個VF能夠被分派給每個VM。物理功能驅動器(PF驅動器)管理I/O虛擬化能力裝置的物理功能,並且響應於它從多個虛擬功能驅動器(VF驅動器)接收的對資源的請求。
[0015]外圍部件互連(PCI)特別興趣小組已開發了用於以標準方式解決I/O裝置的共享的規範。一個這種規範是單根I/o虛擬化(SR-1OV)規範。SR-1OV規範的一些版本描述一種機制,通過該機制,VF驅動器能夠在受限情況下直接與I/O硬體通信,但對於將會具有超出VF驅動器的特定VM的影響的任何通信,必須經過PF驅動器。如此,如果VF驅動器或它的關聯VM受到損害(例如,從安全和/或性能角度),則它發送給PF驅動器的通信能夠影響整個虛擬化I/O裝置。
[0016]現在參照圖1,用於檢測安全和/或性能損害VF驅動器的說明性系統100被體現在主機計算裝置I1的PF驅動器132中。如以下更詳細解釋的,PF驅動器132包括VF請求分析器134,VF請求分析器134監測由PF驅動器132從虛擬化系統中的各種VF驅動器接收的通信。VF請求分析器134保持每個VM的簡檔,該簡檔包括在VM中運行的每個VF驅動器的安全和/或性能相關屬性。當PF驅動器132從特定VF驅動器接收通信時,VF請求分析器134使用關聯的VM簡檔來確定該通信是否有效。VF請求分析器134隨著時間監測由特定VF驅動器發出的有效和/或無效通信的數量以確定VF驅動器是否可能受到損害。如果VF請求分析器134確定特定VF驅動器可能受到損害,則它能夠在不影響虛擬化系統的其它方面的情況下禁用該VF驅動器。通過識別和跟蹤可疑VF驅動器通信,系統100能夠將可疑VF驅動器的影響在其關聯VM中隔離,並且防止可疑VF驅動器不利地影響更大的虛擬化I/O系統。
[0017]說明性主機計算裝置110包括至少一個處理器112、存儲器116、輸入/輸出(I/O)子系統118、數據存儲裝置128和一個或多個外圍裝置136。主機計算裝置110可被體現為能夠執行可由主機計算裝置110或任何其部件執行的這裡描述的功能和特徵的任何合適類型的伺服器計算機或其它計算裝置。例如,主機計算裝置110可被體現為計算機,個人計算機(PC)、桌上型計算機、膝上型計算機、筆記本計算機、手持式計算機、伺服器,伺服器陣列或伺服器農場、web伺服器、網絡伺服器、企業伺服器、網際網路伺服器、工作站、迷你計算機、大型計算機、超級計算機、網絡器具、web器具、分布式計算系統、多處理器系統、基於處理器的系統、或任何前述各項的組合和/或其它。
[0018]說明性處理器112包括至少一個處理器核114(例如,微處理器、微控制器、數位訊號處理器和/或其它)。除了一定量的高速緩存之外,處理器112包括存儲器116,或者另外以通信方式耦合到存儲器116。存儲器116可被體現為任何類型的合適的存儲器裝置,諸如動態隨機存取存儲器裝置(DRAM)、同步動態隨機存取存儲器裝置(SDRAM)、雙倍數據速率動態隨機存取存儲器裝置(DDR SDRAM)和/或其它易失性存儲器裝置。
[0019]處理器112還以通信方式耦合到I/O子系統118。說明性I/O子系統118包括存儲器管理器120、一個或多個通信接口 124和一個或多個通信埠 126。說明性存儲器管理器120可包括存儲器控制器(例如,存儲器控制器子系統或北橋)。在說明性實施例中,存儲器管理器120包括促進或以其它方式輔助主機計算裝置110的物理功能的虛擬化(並且特別地,I/O子系統118的物理功能的虛擬化)的硬體和/或固件部件。例如,說明性存儲器管理器120通過在主機計算裝置110上運行的軟體過程來管理和促進虛擬存儲器的使用。
[0020]說明性通信接口 124可被體現為網絡接口控制器(NIC)、網卡或適配器、乙太網控制器和/或其它。通常,通信接口 124包括使主機計算裝置110能夠與一個或多個有線或無線網絡138通信以允許主機計算裝置110與一個或多個遠程計算裝置(I)…(N)(其中N是正整數)140、160通信的電子電路(例如,乙太網、快速乙太網、千兆比特乙太網和/或其它)。通信接口 124可包括一個或多個有線和/或無線網絡接口以促進通過網絡138的有線和/或無線部分的通信。通信接口 124可與主機計算裝置110的母板是一體的,或者可被體現為經總線(諸如,PCI或PC1-Express連接器)連接到母板的擴展卡。
[0021]說明性通信埠 126包括相應通信接口 124的特定輸入/輸出埠,通過這些輸入/輸出埠,實現與網絡138的通信。在說明性實施例中,通信埠 126被體現為能夠使用I/O虛擬化技術共享的硬體資源。
[0022]儘管未具體地不出,但I/O子系統118可包括輸入/輸出控制器(例如,輸入/輸出控制器子系統或南橋)和固件裝置。在其它實施例中,可使用具有其它配置的I/O子系統。例如,在一些實施例中,I/O子系統118可形成片上系統(SoC)的部分,並且與處理器112和主機計算裝置110的其它部件一起被合併在單個集成電路晶片上。如此,將會理解,在一些實施例中,I/O子系統118的每個部件可位於共同集成電路晶片上。
[0023]I/O子系統118以通信方式耦合到數據存儲裝置128。數據存儲裝置128的各部分可被體現為用於存儲數據和/或計算機指令的任何合適的裝置,諸如盤存儲裝置(例如,硬碟)、物理和/或邏輯存儲裝置的網絡和/或其它。在圖1中示出的「靜態」計算環境中,說明性數據存儲裝置存儲作業系統130的至少部分。說明性作業系統130包括PF驅動器132,PF驅動器132包括VF請求分析器134。說明性作業系統130、PF驅動器132和VF請求分析器134被體現為一個或多個計算機化程序、邏輯和/或指令(例如,軟體和/或固件函數、例程、庫和/或其它)。為了更快處理或其它原因,作業系統130、PF驅動器132和/或VF請求分析器134的各部分可在操作期間被拷貝到存儲器116。
[0024]在一些實施例中,根據例如主機計算裝置110的預期使用,I/O子系統118可按照通信方式耦合到一個或多個外圍裝置136,諸如顯示器、觸摸板、小鍵盤、麥克風、揚聲器和/或其它。另外,應該理解,為了描述的清楚,主機計算裝置110可包括圖1中未圖示的其它部件、子部件和裝置。
[0025]網絡138可被體現為任何類型的有線和/或無線電信網絡。例如,網絡138可被體現為或以其它方式包括一個或多個公共或私人蜂窩網絡、電話、數字訂戶線路(DSL)或線纜網絡、區域網或廣域網、公開可用全球網絡(例如,網際網路)或其任何組合。例如,在一些實施例中,網絡138可被體現為或以其它方式包括全球移動通信系統(GSM)蜂窩網絡。另外,網絡138可根據促進主機計算裝置110和/或遠程計算裝置140、160 (諸如,路由器、交換機、中間計算機和/或其它)之間或之中的通信的需要而包括任何數量的另外的裝置。根據例如網絡138的特定類型或配置,任何合適的通信協議(例如,TCP/IP)可被用於通過網絡138實現通信。
[0026]遠程計算裝置140、160可被體現為任何合適類型的計算機或其它電子裝置。例如,遠程計算裝置140、160中的每一個或任何一個可被體現為以上在主機計算裝置110和/或其它的描述中提及的計算裝置的類型的任何一種。通常,遠程計算裝置140、160包括與以上關於主機計算裝置110描述的硬體部件相似或類似的硬體部件(例如,處理器、存儲器、I/O子系統、數據存儲裝置、通信電路)。說明性遠程計算裝置140、160各自包括至少一個處理器142、162。說明性處理器142、162包括至少一個處理器核144、164。除了一定量的高速緩存之外,處理器142、162各自包括存儲器146、166,或者另外以通信方式耦合到存儲器146、166。處理器142、162還以通信方式分別耦合到I/O子系統148、168。說明性I/O子系統148、168各自包括通信接口 150、170,並且以通信方式耦合到數據存儲裝置152、172。在一些實施例中,I/O子系統148、168可按照通信方式耦合到一個或多個外圍裝置154,174ο
[0027]通常,主機計算裝置110和遠程計算裝置140、160的相應部件如圖1中所示那樣通過一個或多個信號路徑以通信方式耦合。這種信號路徑可被體現為能夠促進相應裝置之間的通信的任何類型的有線或無線信號路徑。例如,信號路徑可被體現為任何數量的導線、印刷電路板軌跡、過孔、總線、點對點互連、中間裝置和/或其它。而且,一般而言,上面描述的計算裝置的部件中的一些可被合併在母板上,而其它部件可經例如外圍埠按照通信方式耦合到母板。
[0028]現在參照圖2,說明性虛擬化軟體執行環境200被建立在主機計算裝置110上以執行I/O虛擬化。軟體執行環境200包括虛擬機監視器(VMM)或管理程序232,VMM或管理程序232是特權軟體部件,該特權軟體部件促進和管理I/O子系統硬體242 (例如,通信埠126或通信接口 124的其它物理資源)的虛擬化並且可另外促進和管理主機計算裝置110的其它物理資源(例如,存儲器和/或處理器資源)的虛擬化。在說明性單根實施例中,VMM或管理程序232允許多個訪客作業系統(I)…(L)(其中L是正整數)216,226和/或其它訪客應用在分離的虛擬機VM(I)…(L)中在主機計算裝置110上同時或逐次執行。在多根實施例中,VMM或管理程序232允許和管理在不同計算資源(例如,多個伺服器)上同時或逐次執行的多個訪客(例如,SI)。在說明性實施例中,VMM或管理程序232由作業系統130在主機計算裝置110的高特權或「根」模式中執行。如此,VMM或管理程序232和它的子部件(例如,PF驅動器132和/或它的任何子模塊)可具有對I/O子系統硬體資源242和/或主機計算裝置110的其它硬體資源的基本上完全的控制。
[0029]虛擬機210、220作為訪客在VMM 232上執行。也就是說,由VMM 232在低特權、非特權或非根模式中執行VM 210、220。因此,與較高特權作業系統130相比,訪客作業系統216、226是較小特權作業系統。由VM 210、220中的每一個執行的作業系統可以相同或不同。在一些實施例中,作業系統130、216、226中的任何一個或多個可被體現為可從華盛頓的雷德蒙的微軟公司商購獲得的WINDOWS作業系統、可從許多銷售商(諸如,北卡羅來納的Raleigh的Red Hat)商購獲得的LINUX作業系統、和/或其它。
[0030]作業系統216、226中的每一個可執行許多(J,K)虛擬功能(VF)驅動器212、214、222、224,並且基於相應的作業系統216、226、相應VM 210、220的預期使用和/或其它準則,VF驅動器212、214、222、224中的每一個或任何一個可以相似或不同。
[0031]VMM 232翻譯每個作業系統216、226的操作以在每個作業系統216、226和I/O子系統硬體242和/或主機計算裝置110的其它硬體(例如,存儲器、處理器等)之間提供抽象等級。在說明性實施例中,VMM 232為每個作業系統216、226提供主機計算裝置110的一些或全部硬體部件的硬體抽象218、228。
[0032]關於I/O虛擬化,說明性VMM 232提供物理I/O裝置功能244 (例如,乙太網埠)的硬體抽象作為共享I/o資源250或使物理I/O裝置功能244 「虛擬化」為共享I/O資源250。在一些實施例中,I/O裝置功能能夠被抽象為兩個功能類型:物理功能(PF)和虛擬功能(VF),可根據SR-1OV規範配置這兩個功能類型。例如,PF可以是全網絡通信(例如,PC1-Express)功能,該功能包括某些擴展能力以配置和管理I/O虛擬化功能,而VF可以是「輕型」或更受限的網絡通信功能,該功能包含用於數據傳遞的必要資源但具有最小化的配置資源組。如上所提到的,PF 244具有對應PF驅動器132,並且每個VF (I)...(M) 246,248具有對應 VF 驅動器 212、214、222、224。VF 驅動器 212、214、222、224 實現相應 VM 210,220和PF驅動器132之間的通信(例如,數據的發送和接收)。
[0033]VF 246、248中的一個或多個由其中包括PF驅動器132 (還可被稱為「主驅動器」)的VMM 232分派給每個VM 210、220。VMM 232的配置管理器或與VMM 232關聯的配置管理器配置並且管理VF 246、248和它們關聯的存儲器資源。VMM 232也實現VF驅動器212、214、222、224和PF驅動器132之間的通信(例如,使用共享虛擬存儲器頁)。使VF驅動器212、214、222、224能夠與PF驅動器132通信的一個或多個通信信道230能夠是硬體和/或軟體通信信道。例如,在一些實施例中,(一個或多個)通信信道230可包括PC1-Express裝置和/或基於軟體的地址翻譯技術。
[0034]說明性PF驅動器132管理I/O子系統硬體242的全局功能並且配置共享資源250。PF驅動器132在VMM 232中執行,並且因此在比VF驅動器212、214、222、224操作的環境更有特權的環境中操作。PF驅動器132允許VMM 232訪問共享I/O資源250並且能夠執行影響整個I/O裝置的操作。因此,PF驅動器132在持久的環境中執行,在任何VF驅動器之前被加載,並且在所有VF驅動器已被卸載之後被卸載。
[0035]配置說明性虛擬化I/O環境,以使得全局地影響所有VM 210,220的VF驅動器通信應該必須經過PF驅動器132,而低風險操作可被直接從VF驅動器212、214、222、224傳送到I/O子系統硬體242。I/O子系統硬體242和虛擬化I/O環境之間的通信發生在一個或多個通信信道240上,在說明性實施例中,所述一個或多個通信信道240是硬體通信信道。
[0036]如上所提及的,PF驅動器132包括VF請求分析器子模塊134。繼而,說明性VF請求分析器子模塊134包括VM剖析器(profiler)子模塊234和VF禁用器子模塊236。說明性VF請求分析器134、VM剖析器234和VF禁用器236被體現為計算機化模塊、例程、過程等(例如,軟體)。如以下參考圖3進一步所述的,VM剖析器234創建並且保持每個VM 210、220的簡檔238,簡檔238包括與在相應的VM 210,220中運行的每個VF驅動器212、214、222,224關聯的安全和/或性能屬性。在操作中,當PF驅動器132從各個VF驅動器212、214、222、224接收通信(例如,對共享I/O資源250的請求)時,VF請求分析器134基於VM簡檔238的對應屬性來分析通信並且根據簡檔屬性確定通信有效還是無效。如果VF請求分析器134例如基於有效或無效通信的數量、頻率或組合確定VF驅動器212、214、222、224可能例如從安全和/或性能角度受到損害,則VF禁用器236能夠禁用受到損害的VF驅動器 212、214、222、224。
[0037]說明性VM簡檔238被實現為VF請求分析器134可在虛擬化環境200中訪問的一個或多個數據存儲。例如,在一些實施例中,VM簡檔238被體現為包括整數數組的軟體數據結構,其中數組中的每個整數對應於PF驅動器132能夠從特定VM或VF驅動器接收的某個類型的通信的允許的數量。簡檔238能夠最初由系統管理員設置(例如,使用配置工具,諸如ethtool),或者「默認」簡檔238能夠由軟體設計者提供並且後來由系統管理員或由PF驅動器132修改。替代地或者附加地,VM簡檔238能夠由PF驅動器132在運行時間動態地修改。例如,如果隨著時間VF請求分析器134注意到來自特定VM的通信的某個模式,則該特定VM的VM簡檔238可在運行時間被修改。
[0038]在一些實施例中,與VM簡檔238關聯的屬性指定與不同請求類型關聯的限制。在許多情況中,來自VF驅動器212、214、222、224的通信是訪問或使用共享I/O資源250中的一個或多個的請求。不同類型的通信可具有不同的預先指定格式,並且VF請求分析器134能夠被配置為基於通信是否符合預期格式來確定通信是否有效。PF驅動器可從VF驅動器接收的通信消息的類型的一些說明性例子包括:訪問虛擬通信信道(或其它資源)的請求、PF驅動器為指定通信埠(例如,虛擬站接口或VSI)添加一個或多個單播或多播地址過濾器的請求、PF驅動器為指定通信埠(例如,VSI)去除一個或多個單播或多播過濾器的請求、PF驅動器為指定通信埠(例如,VSI)添加一個或多個虛擬區域網(VLAN)標記過濾器的請求、和PF驅動器為指定通信埠(例如,VSI)去除一個或多個VLAN標記濾波器的請求、和/或其它。
[0039]可被包含在VM簡檔238中的屬性類型的一些說明性例子包括:對硬體資源請求的數量(總數和/或一定時間段上的數量)的限制、訪問控制列表(例如,VM或VF驅動器被允許發送給PF驅動器的消息類型的列表,存儲在計算機存儲器中)、消息速度限制(例如,VM或VF驅動器能夠在一定時間段上發送給PF驅動器的消息的最大數量)、對VM或VF驅動器能夠發送給PF驅動器的「無特權」消息的數量(總數和/或一定時間段上的數量)的限制(其中「無特權」可指示特定消息或消息類型不在訪問控制列表上)、對VM或VF驅動器能夠發送給PF驅動器的有效但「錯誤形式」的消息的數量(總數和/或一定時間段上的數量)的限制(其中「錯誤形式」意味著消息不符合預期消息格式)、對有效但請求訪問未分配資源的請求的數量的限制、和特定VM或VF驅動器被允許請求由PF驅動器添加或去除的過濾器(例如,媒體訪問控制或MAC過濾器、VLAN過濾器和/或其它)的列表。可被包括在VM簡檔238中的其它類型的屬性包括:對通信類型的特定組合的限制、對通信(有效通信或無效通信)的總數的限制和對VM或VF驅動器能夠發送給PF驅動器的有效通信的總數(總數和/或一定時間段上的數量)的限制。能夠針對給定VM中的所有VF驅動器定義屬性,或者針對VM中的每個VF驅動器分別定義屬性。替代地,能夠針對所有VM以相同方式定義屬性或者針對不同VM不同地定義屬性。
[0040]現在參照圖3,示出了可由VF請求分析器134的各種模塊作為計算機化邏輯和/或指令執行的說明性方法300。在塊310,方法300分析來自VF驅動器212、214、222、224的輸入通信(例如,數據包和/或訪問或使用共享資源250的請求),確定通信類型(例如,請求的類型),並且將通信與對應VM簡檔238的相關屬性進行比較。
[0041]在塊312,方法300基於為該特定通信類型指定的限制來確定輸入通信是否有效。例如,如果消息格式不與預期格式對應,或者如果消息類型不在適用的訪問控制列表上,或者消息請求未分配的資源或未允許的過濾器,則只要這種請求的數量未超過預定限制,通信就可以被確定為有效,或者通信可被確定為無效。
[0042]如果通信被確定為有效,則在塊314,有效通信的數量的計數增加。類似地,如果通信被確定為無效,則在塊316,該特定消息類型的無效消息的數量的計數增加。換句話說,能夠針對不同類型的無效消息分別保持無效消息的計數。在示例性塊318、320和322,方法300執行各種測試以確定發出通信的VF驅動器是否可能受到損害(例如,從安全和/或性能角度)並且因此應該被禁用。在塊318,方法300確定計數是否超過在對應VM簡檔238中為該特定通信類型指定的限制。例如,如果通信在塊312被確定為錯誤形式請求,則在塊316,錯誤形式請求的計數增加,並且在塊318,將錯誤形式請求計數的當前值與錯誤形式請求限制(或錯誤形式請求的最大數量)進行比較。
[0043]如果通信類型的計數的當前值超過指定限制,則該方法前進至塊324。如果在塊318,通信類型的計數的當前值未超過指定限制,則在塊320,方法300確定計數是否超過指定時間段的指定限制。換句話說,塊320評估PF驅動器從VF驅動器接收通信的速率是否太高(例如,以便可能防止拒絕服務攻擊)。如果通信速率超過指定限制,則該方法前進至塊324。如果在塊320通信速率未超過指定限制,則在塊322,該方法確定已由PF驅動器從VF驅動器接收的不同通信類型的組合是否指示VF驅動器可能受到損害(例如,基於一個或多個其它通信類型的計數以及當前接收的通信類型的計數的當前值)。本領域技術人員應該理解,由塊318、320、322圖示的測試是示例性的,並且可由方法300相似地執行其它測試以確定是否禁用VF驅動器。此外,應該理解,顯示塊318、320、322的特定次序是說明性的,並且不一定所有實施例都需要該特定次序。替代地,根據方法300的特定設計或實現方式的要求,可按照任何合適的次序執行由方法300執行以確定特定VM或VF驅動器是否可能受到損害的測試。
[0044]在塊324,作為塊318、320或322 (在其它實施例中,或者其任何組合或者其它測試)的結果,方法300禁用已被確定為可能(或實際上)受到損害的VF驅動器。為了禁用VF驅動器,方法300 (或者更具體地講,PF驅動器132)重新配置受到損害的VF驅動器,以使得在PF驅動器未重新使能受到損害的VF驅動器的訪問的情況下,受到損害的VF驅動器不能與(一個或多個)網絡138或與I/O子系統硬體242交互。當被禁用時,受到損害的VF驅動器不能向PF驅動器132發送任何通信,並且因此不能影響其它VM和VF驅動器的I/O操作。然而,如果通信不滿足禁用傳送VF驅動器的任何條件,則在塊326,方法300滿足由VF驅動器發出的通信請求。為了滿足VF驅動器的請求,PF驅動器132分配在經分析的通信中由VF驅動器請求的共享資源250。
[0045]例子
以下提供這裡公開的裝置、系統和方法的說明性例子。裝置、系統和方法的實施例可包括以下描述的例子中的任何一個或多個和任何組合。
[0046]在例子中,一種輸入/輸出虛擬化使能計算裝置包括:請求分析器,用於確定來自多個虛擬功能驅動器的通信是否呈現安全和/或性能條件,並且基於來自被確定為呈現安全和/或性能條件的虛擬功能驅動器的通信的計數數量確定是否禁用虛擬功能驅動器。
[0047]在例子中,所述計算裝置可包括:虛擬功能剖析器,用於保持至少一個通信簡檔,所述至少一個通信簡檔包括與從虛擬化使能計算裝置的虛擬功能驅動器到物理功能驅動器的通信相關的數據。在例子中,所述通信簡檔可識別虛擬功能驅動器被允許發送給物理功能驅動器的通信的一個或多個類型。在例子中,所述通信簡檔可包括與虛擬功能驅動器可發送給物理功能驅動器的通信的類型相關的至少一個限制。在例子中,所述通信簡檔可包括與在一定時間段期間虛擬功能驅動器被允許發送給物理功能驅動器的任何類型的通信的數量相關的限制。在例子中,所述通信簡檔可包括與虛擬功能驅動器被允許發送給物理功能驅動器的對一個或多個對物理資源的請求相關的數據。在例子中,所述計算裝置可包括至少一個計算機可訪問存儲介質,並且虛擬功能剖析器可在所述至少一個計算機可訪問存儲介質中被體現為軟體模塊。在例子中,所述計算裝置可包括:虛擬功能禁用器,用於響應於確定來自虛擬功能驅動器的通信的計數數量呈現安全和/或性能條件而禁用虛擬功能驅動器。在例子中,所述虛擬功能禁用器可確定:由物理功能驅動器從虛擬功能驅動器接收的、呈現安全和/或性能條件的通信的計數數量是否超過呈現安全和/或性能條件的通信的允許數量。在例子中,所述虛擬功能禁用器可響應於確定由物理功能驅動器接收的、呈現安全和/或性能條件的通信的計數數量超過呈現安全和/或性能條件的通信的允許數量而禁用虛擬功能驅動器。在例子中,所述計算裝置可包括至少一個計算機可訪問存儲介質,並且虛擬功能禁用器可在所述至少一個計算機可訪問存儲介質中被體現為軟體模塊。
[0048]在例子中,所述計算裝置可包括至少一個計算機可訪問存儲介質,並且物理功能驅動器可在所述至少一個計算機可訪問存儲介質中被體現為軟體模塊。在例子中,所述計算裝置可包括用於保持虛擬功能驅動器的簡檔的虛擬功能剖析器和用於基於簡檔禁用虛擬功能驅動器的虛擬功能禁用器,並且虛擬功能剖析器和虛擬功能禁用器可被體現為物理功能驅動器的軟體子模塊。在例子中,所述請求分析器可在計算裝置的較高特權執行環境中運行,並且虛擬功能驅動器各自在計算裝置的較低特權環境中運行。在例子中,所述計算裝置可包括用於從虛擬功能驅動器接收通信的通信通道,並且通信通道可包括軟體通信通道和硬體通信通道中的至少一個。
[0049]在另一例子中,一種用於處理從輸入/輸出虛擬化使能計算裝置的多個虛擬功能驅動器到物理功能驅動器的通信的方法包括:在計算裝置處,保持多個通信簡檔,每個通信簡檔包括和虛擬功能驅動器與物理功能驅動器的通信相關的數據;基於與虛擬功能驅動器對應的通信簡檔的至少部分來確定從虛擬功能驅動器到物理功能驅動器的通信是否呈現安全和/或性能條件;對從虛擬功能驅動器到物理功能驅動器的通信進行計數;以及基於所計數的從虛擬功能驅動器到物理功能驅動器的通信確定是否禁用虛擬功能驅動器。
[0050]在例子中,所述方法可包括:對呈現安全和/或性能條件的、從虛擬功能驅動器到物理功能驅動器的通信進行計數。在例子中,所述方法可包括:基於所計數的呈現安全和/或性能條件的通信確定是否禁用虛擬功能驅動器。在例子中,所述通信簡檔中的至少一個可包括與錯誤形式通信的允許數量相關的數據。在例子中,所述通信簡檔中的至少一個可包括與通信是否被列出在訪問控制列表上相關的數據。在例子中,所述通信簡檔中的至少一個可包括與通信是否請求訪問計算裝置的未分配資源相關的數據。在例子中,所述通信簡檔中的至少一個可包括與被允許由通信設置的過濾器相關的數據。
[0051]在例子中,所述方法可包括:基於從虛擬功能驅動器發送給物理功能驅動器的某個類型的通信的數量禁用虛擬功能驅動器。在例子中,所述方法可包括:對從虛擬功能驅動器到物理功能驅動器的第一類型的通信進行計數,對從虛擬功能驅動器到物理功能驅動器的第二類型的通信進行計數,並且基於所計數的第一類型的通信和所計數的第二類型的通信來確定是否禁用虛擬功能驅動器。在例子中,所述方法可包括:對從虛擬功能驅動器到物理功能驅動器的所允許的通信進行計數,並且基於所計數的從虛擬功能驅動器到物理功能驅動器的所允許的通信確定是否禁用虛擬功能驅動器。在例子中,一種計算裝置可包括:至少一個處理器;和計算機電路,耦合到所述至少一個處理器,並且計算機電路可被布置為使所述至少一個處理器執行任何前面的方法。在例子中,至少一個計算機可訪問存儲介質可包括多個指令,響應於執行所述多個指令,所述多個指令導致計算裝置執行任何前面的方法。
[0052]在例子中,至少一個計算機可訪問存儲介質包括多個指令,響應於執行所述多個指令,所述多個指令導致計算裝置:保持多個通信簡檔,其中每個通信簡檔包括和虛擬功能驅動器與物理功能驅動器的通信相關的數據;基於與虛擬功能驅動器對應的通信簡檔的至少部分來確定從虛擬功能驅動器到物理功能驅動器的通信是否呈現安全和/或性能條件;對從虛擬功能驅動器到物理功能驅動器的通信進行計數;以及基於所計數的從虛擬功能驅動器到物理功能驅動器的通信的數量,確定是否禁用虛擬功能驅動器。
[0053]在例子中,所述通信簡檔中的一個或多個可包括與下面各項中的至少一個相關的數據:錯誤形式通信的允許數量、通信是否被列出在訪問控制列表上、通信是否請求訪問計算裝置的未分配資源、以及被允許由通信設置的過濾器。在例子中,所述指令可導致計算裝置:基於所計數的從虛擬功能驅動器發送給物理功能驅動器的某個類型的通信禁用虛擬功能驅動器。在例子中,所述指令可導致計算裝置:對從虛擬功能驅動器到物理功能驅動器的第一類型的通信進行計數,對從虛擬功能驅動器到物理功能驅動器的第二類型的通信進行計數,以及基於所計數的第一類型的通信和所計數的第二類型的通信確定是否禁用虛擬功能驅動器。在例子中,所述指令可導致計算裝置:對從虛擬功能驅動器到物理功能驅動器的所允許的通信進行計數,並且基於所計數的從虛擬功能驅動器到物理功能驅動器的所允許的通信確定是否禁用虛擬功能驅動器。
[0054]儘管已在附圖和前面的描述中詳細地圖示和描述了本公開的概念,但這種圖示和描述在本質上要被視為是示例性的而非限制性的,應該理解,僅示出和描述了說明性實施例,並且希望保護符合本公開和敘述的權利要求的所有改變和修改。例如,可在SR-1OV規範或其它相似規範的情況下實現本公開的各方面,但不受此限制。進一步地,可在任何I/O虛擬化情況(包括單根和多根環境)中應用本公開的各方面,其中希望保護更大的虛擬化環境免於其受到損害的個體部件。
【權利要求】
1.一種輸入/輸出虛擬化使能計算裝置,包括: 請求分析器,用於確定來自多個虛擬功能驅動器的通信是否呈現安全和/或性能條件,並且基於來自被確定為呈現安全和/或性能條件的虛擬功能驅動器的通信的數量確定是否禁用虛擬功能驅動器。
2.如權利要求1所述的計算裝置,包括:虛擬功能剖析器,用於保持至少一個通信簡檔,所述至少一個通信簡檔包括與從所述虛擬化使能計算裝置的虛擬功能驅動器到物理功能驅動器的通信相關的數據。
3.如權利要求2所述的計算裝置,其中所述通信簡檔識別虛擬功能驅動器被允許發送給物理功能驅動器的通信的一個或多個類型。
4.如權利要求2或權利要求3所述的計算裝置,其中所述通信簡檔包括與虛擬功能驅動器可發送給物理功能驅動器的通信的類型相關的至少一個限制。
5.如權利要求2-4中任何一項所述的計算裝置,其中所述通信簡檔包括與在一定時間段期間虛擬功能驅動器被允許發送給物理功能驅動器的任何類型的通信的數量相關的限制。
6.如權利要求2-5中任何一項所述的計算裝置,其中所述通信簡檔包括與虛擬功能驅動器被允許發送給物理功能驅動器的一個或多個對物理資源的請求相關的數據。
7.如權利要求2-6中任何一項所述的計算裝置,包括:至少一個計算機可訪問存儲介質,其中所述虛擬功能剖析器在所述至少一個計算機可訪問存儲介質中被體現為軟體模塊。
8.如任一前面權利要求所述的計算裝置,包括:虛擬功能禁用器,用於響應於確定來自虛擬功能驅動器的通信的數量呈現安全和/或性能條件而禁用虛擬功能驅動器。
9.如權利要求8所述的計算裝置,其中所述虛擬功能禁用器確定:由物理功能驅動器從虛擬功能驅動器接收的、呈現安全和/或性能條件的通信的數量是否超過呈現安全和/或性能條件的通信的允許數量。
10.如權利要求9所述的計算裝置,其中所述虛擬功能禁用器響應於確定由物理功能驅動器接收的、呈現安全和/或性能條件的通信的數量超過呈現安全和/或性能條件的通信的允許數量而禁用虛擬功能驅動器。
11.如權利要求8-10中任何一項所述的計算裝置,包括:至少一個計算機可訪問存儲介質,其中所述虛擬功能禁用器在所述至少一個計算機可訪問存儲介質中被體現為軟體模塊。
12.如任一前面權利要求所述的計算裝置,包括:至少一個計算機可訪問存儲介質,其中所述物理功能驅動器在所述至少一個計算機可訪問存儲介質中被體現為軟體模塊。
13.如權利要求12所述的計算裝置,包括:用於保持虛擬功能驅動器的簡檔的虛擬功能剖析器和用於基於所述簡檔而禁用虛擬功能驅動器的虛擬功能禁用器,其中所述虛擬功能剖析器和虛擬功能禁用器被體現為物理功能驅動器的軟體子模塊。
14.如任一前面權利要求所述的計算裝置,其中所述請求分析器在計算裝置的較高特權執行環境中運行,並且虛擬功能驅動器各自在計算裝置的較低特權環境中運行。
15.如任一前面權利要求所述的計算裝置,包括:通信通道,用於從虛擬功能驅動器接收通信,其中所述通信通道包括軟體通信通道和硬體通信通道中的至少一個。
16.一種用於處理從輸入/輸出虛擬化使能計算裝置的多個虛擬功能驅動器到物理功能驅動器的通信的方法,所述方法包括,在計算裝置處: 保持多個通信簡檔,每個通信簡檔包括和虛擬功能驅動器與物理功能驅動器的通信相關的數據; 基於與虛擬功能驅動器對應的通信簡檔的至少部分來確定從虛擬功能驅動器到物理功能驅動器的通信是否呈現安全和/或性能條件; 對從虛擬功能驅動器到物理功能驅動器的通信的數量進行計數;以及 基於所計數的從虛擬功能驅動器到物理功能驅動器的通信的數量,確定是否禁用虛擬功能驅動器。
17.如權利要求16所述的方法,包括:對呈現安全和/或性能條件的、從虛擬功能驅動器到物理功能驅動器的通信的數量進行計數。
18.如權利要求17所述的方法,包括:基於呈現安全和/或性能條件的通信的數量,確定是否禁用虛擬功能驅動器。
19.如權利要求16-18中任何一項所述的方法,其中所述通信簡檔中的至少一個包括與錯誤形式通信的允許數量相關的數據。
20.如權利要求16-19中任何一項所述的方法,其中所述通信簡檔中的至少一個包括與通信是否被列出在訪問控制列表上相關的數據。
21.如權利要求16-20中任何一項所述的方法,其中所述通信簡檔中的至少一個包括與通信是否請求訪問計算裝置的未分配資源相關的數據。
22.如權利要求16-21中任何一項所述的方法,其中所述通信簡檔中的至少一個包括與被允許由通信設置的過濾器相關的數據。
23.如權利要求16-22中任何一項所述的方法,包括:基於從虛擬功能驅動器發送給物理功能驅動器的某個類型的通信的數量來禁用虛擬功能驅動器。
24.如權利要求16-23中任何一項所述的方法,包括:對從虛擬功能驅動器到物理功能驅動器的第一類型的通信的數量進行計數,對從虛擬功能驅動器到物理功能驅動器的第二類型的通信的數量進行計數,以及基於第一類型的通信的數量和第二類型的通信的數量確定是否禁用虛擬功能驅動器。
25.如權利要求16-24中任何一項所述的方法,包括:對從虛擬功能驅動器到物理功能驅動器的所允許的通信的數量進行計數,並且基於從虛擬功能驅動器到物理功能驅動器的所允許的通信的數量確定是否禁用虛擬功能驅動器。
26.一種計算裝置,包括: 至少一個處理器;和 計算機電路,耦合到所述至少一個處理器,所述計算機電路被布置為使所述至少一個處理器執行如權利要求16-25中任何一項所述的方法。
27.至少一個計算機可訪問存儲介質,包括多個指令,響應於執行所述多個指令,所述多個指令導致計算裝置執行如權利要求16-25中任何一項所述的方法。
【文檔編號】G06F9/455GK104321781SQ201380027883
【公開日】2015年1月28日 申請日期:2013年6月24日 優先權日:2012年6月29日
【發明者】N.R.賈尼, S.L.納爾遜, G.D.卡明斯 申請人:英特爾公司

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀