TW201908970A - 資料儲存管理系統、方法及物件 - Google Patents
資料儲存管理系統、方法及物件 Download PDFInfo
- Publication number
- TW201908970A TW201908970A TW107115599A TW107115599A TW201908970A TW 201908970 A TW201908970 A TW 201908970A TW 107115599 A TW107115599 A TW 107115599A TW 107115599 A TW107115599 A TW 107115599A TW 201908970 A TW201908970 A TW 201908970A
- Authority
- TW
- Taiwan
- Prior art keywords
- virtual machine
- storage
- performance
- data
- storage layer
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本發明公開一種用於執行自動分層的系統。系統可以包含提供多個資源並組織成儲存層的多個儲存裝置。儲存裝置能夠儲存虛擬機器的資料。接收器能夠接收虛擬機器的輸入/輸出命令和性能資料。傳輸器能夠傳輸對於輸入/輸出命令的回應。自動分層控制器能夠選擇儲存層以儲存虛擬機器的資料並且能夠回應於性能資料而在儲存層之間遷移資料。將虛擬機器的性能改變和在儲存層之間遷移資料的遷移成本作為考慮因素,儲存層的選擇能夠優化所有虛擬機器在所有儲存層中的性能。
Description
本發明是有關於一種資料儲存方法,且特別是有關於一種將虛擬機器資料儲存在哪個儲存層中的自動管理。
傳統的資料儲存中心依賴於硬碟驅動器和其它早期形式的資料儲存裝置。由於硬碟驅動器和其它早期形式的資料儲存裝置具有相對較高的延遲,所以虛擬機器快取在本地儲存裝置中頻繁存取的資料。通常,快取資料的相關益處為資料存取時間增大十倍或大於十倍。
但是隨著快閃記憶體儲存裝置變得更常用且更負擔得起,這種在資料儲存中心與快取記憶體之間的存取時間上的差異減小。這種快取的益處減少意味著資料頻繁地專門儲存在資料中心中且根本不快取。當結合將資料的冗餘複本(快取記憶體和資料中心兩者中的)儲存在快閃記憶體儲存裝置中是昂貴的事實時,以最高效的方式將資料儲存在資料儲存中心中變得更重要。
另外,不同於傳統的儲存裝置,例如硬碟驅動器,快閃記憶體儲存裝置可以具有不同的專業化。由於傳統的儲存裝置並不考慮裝置專業化,所以使用傳統技術進行資料儲存的任何層選擇是次優的。
仍需要一種使用快閃記憶體儲存裝置更優化地將資料儲存在資料儲存中心中的方式,所述快閃記憶體儲存裝置同時提供令人滿意的存取時間且利用任何由不同儲存層提供的專業化。
本發明概念的實施例包含一種系統,其包括:提供多個資源的多個儲存裝置,所述多個儲存裝置組織成多個儲存層並且儲存第一虛擬機器的第一資料和第二虛擬機器的第二資料;接收器,接收來自所述第一虛擬機器的第一輸入/輸出(I/O)命令、來自所述第二虛擬機器的第二I/O命令、模擬所述第一虛擬機器在所述多個儲存層中的性能的第一性能資料,以及模擬所述多個儲存層中的所述第二虛擬機器的性能的第二性能資料;傳輸器,將對於所述第一I/O命令的第一回應傳輸到所述第一虛擬機器並且將對於所述第二I/O命令的第二回應傳輸到所述第二虛擬機器;以及自動分層控制器,選擇第一儲存層以儲存所述第一虛擬機器的所述第一資料、選擇第二儲存層以儲存所述第二虛擬機器的所述第二資料,且回應於所述第一性能資料和所述第二性能資料移轉所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個,其中所述自動分層控制器可操作以選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料並且選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料來優化所有虛擬機器在所述多個儲存層中的性能,其中所述自動分層控制器可操作以將由遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所引起的性能改變和遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個的遷移成本作為考慮因素。
本發明概念的實施例包含一種方法,其包括:接收模擬第一虛擬機器在多個儲存層中的性能的第一性能資料、接收模擬第二虛擬機器在所述多個儲存層中的性能的第二性能資料、使用所述第一性能資料和所述第二性能資料生成使所述第一虛擬機器和所述第二虛擬機器與所述多個儲存層中的每一個和所述多個儲存層中的每一個的多個資源相關聯的資源矩陣、使用所述資源矩陣選擇所述多個儲存層中的第一儲存層以儲存所述第一虛擬機器的第一資料、使用所述資源矩陣選擇所述多個儲存層中的第二儲存層以儲存所述第二虛擬機器的第二資料,以及遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個;其中選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料和選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料使所有虛擬機器在所述多個儲存層中的性能優化,其中選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料和選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料將由遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所引起的性能改變作為考慮因素,以及其中選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料和選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料將遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個的遷移成本作為考慮因素。
現在將詳細參考本發明概念的實施例,在附圖中圖示所述實施例的實例。在以下詳細描述中,闡述眾多具體細節以實現對本發明概念的透徹理解。然而,應理解,本領域技術人員可以在沒有這些具體細節的情況下實踐本發明概念。在其它情況下,未詳細描述眾所周知的方法、過程、元件、電路和網路,以便不會不必要地混淆實施例的各方面。
應理解,雖然術語第一、第二等可在本文中用以描述各種元件,但這些元件不應受這些術語限制。這些術語僅用於將一個元件與另一元件區分開來。舉例來說,在不脫離本發明概念的範圍內,第一模組可以被稱為第二模組,並且類似地,第二模組可以被稱為第一模組。
本文中用於本發明概念的描述中的術語是僅出於描述具體實施例的目的且並不希望限制本發明概念。如本發明概念和所附申請專利範圍的描述中所使用,單數形式“一(a/an)”和“所述”意在也包含複數形式,除非上下文另外明確指示。還將理解,如本文中所使用的術語“和/或”指代且涵蓋相關聯的所列項目中的一或多者的任何及所有可能的組合。將進一步理解,當用於本說明書中時,術語“包括(comprises)”和/或“包括(comprising)”指定存在所陳述的特徵、整數、步驟、操作、元件和/或元件,但不排除存在或添加一個或大於一個其它特徵、整數、步驟、操作、元件、元件和/或其群組。圖式中的元件和特徵未必是按比例繪製。
全快閃記憶體儲存系統由於固態驅動器(SSD)價格持續降低且SSD容量持續增大的事實將用於近期的企業資料中心。因此,硬碟驅動器(HDD)的優勢減弱,將被具有較大電容量的低端SSD,例如多層單元(MLC) SSD替換。因此,有成本效益的設計將引入多層SSD,其中每一層可能具有獨特的特殊性,例如高速、大容量、擅長讀取輸入/輸出(I/O)命令、長壽命等。
在另一方面,典型的企業資料中心使用範例使用管理程式-虛擬機器(VM)結構。VM的I/O工作負載模式可以不同,且其升級到更高層服務所發現的性能改進並不相同。由此推動,稱作“自動分層(自動分層)”的整體解決方案可以操控全快閃多層資料中心中的VM配置和遷移以最佳的利用儲存資源、優化性能,以及減小遷移開銷。自動分層也可以考慮歷史性能和預測性能兩種因素。
VM運行客戶機作業系統(OS),例如Linux和Windows,以及應用程式。VM彼此隔離。雲服務供應商向使用者“出租”其VM。VM基於使用者應用可以具有不同的工作負載特徵,且因此其對儲存裝置速度可以具有不同程度的靈敏度。
VM管理程式軟體,例如Xen、KVM和VMware,可以託管單個伺服器內的多個虛擬機器(VM)。VM管理程式軟體負責調度、資源管理、系統軟體應用程式設計介面(API)以及硬體虛擬化。本發明概念的實施例可以包含裝設在VM管理程式層級處的自動分層幕後程式,所述幕後程式的工作是與自動分層I/O濾波器和自動分層控制器連通。
所有VM伺服器可以連接到集中式儲存池以共用後端全快閃多層SSD磁片,所述磁片可以包含例如非揮發性記憶體Express (NVMe) SSD、3D XPoint非揮發性記憶體(NVM)SSD,和MLC/三階儲存單元(TLC)/四階儲存單元(QLC)SSD。每一個層可以具有不同的特殊性,例如快速、較大儲存容量等。
自動分層可以包含三個元件:自動分層I/O濾波器、自動分層幕後程式和自動分層控制器。
自動分層I/O濾波器驅動器可以附接到將管理的每一個VM(即,虛擬機器磁片(VMDK)檔)。自動分層I/O濾波器驅動器可以收集I/O相關的統計且對每一VMDK運行特定的延遲測試。可以一些樣本週期速率收集資料且結果可以傳輸到負責收集來自所有VMDK的所有資料的主機系統上的自動分層幕後程式。
自動分層幕後程式可以在所有物理機器的VM管理程式上運行。自動分層幕後程式跟蹤VM伺服器的工作負載變化(I/O存取模式變化),且從自動分層I/O濾波器收集增加延遲測試的結果以傳送到自動分層控制器。
自動分層控制器可以在專用伺服器或儲存系統中的嵌入式系統上運行。若VM遷移到另一層以及其對應的遷移開銷,則自動分層控制器可以作出決策以基於預測的VM性能觸發遷移。
從每一個VM的視角來看,某一VM從一個層遷移到另一層的原因是VM可以在遷移之後更好的運行(較小的平均I/O延遲、每秒更高的I/O操作(IOPS)、更高的輸送量等)。但同時,存在相應的遷移成本,這是因為將VM從一個層遷移到另一層相對昂貴且不可忽略。
從全域優化的視角來看,由於資源限制和其相應的服務水準協定(SLA),難以滿足所有VM要求同時遷移到其最喜歡層。全域優化應考慮VM隨時間的變化以及先前對遷移效應。舉例來說,當前最好地分配解決方案由於在執行時間期間改變VM行為可以導致在未來不良的情況。因此,全域優化應考慮潛在的益處和代償、遷移開銷、每一層上的VM的歷史和預測性能、SLA(服務水準協定)等。基於這種資訊,自動分層可以試圖使用方程式1到方程式6來實現多層全快閃記憶體儲存系統的最優解決方案。
表1. 符號
最小化:
進行:
方程式1表示目標函數。主要想法是使整個性能增益減遷移成本:“性能增益-性能損失”最大化。內部“求和”運算子進行每一個VM的所有資源類型(例如IOPS、輸送量和儲存大小等)的使用率的加權和,假設將v從層tτ-1遷移到層tτ。注意這裡的遷移並不將VM從一個主機伺服器遷移到另一個主機伺服器:僅後端VMDK檔從一個SSD層遷移到另一個SSD層。因此,不需要考慮非磁片I/O相關的資源,例如CPU、記憶體等。外部“求和”運算子進一步反覆運算所有可能的遷移情況。注意權重參數Wυ,τ可以反映每一個VM的SLA。
方程式2表示可以用於預測性能增益的預測模型函數。方程式3確保儲存大小(即,VMDK大小)在每一個遷移之前和之後將不會改變。方程式4估計時間遷移開銷。詳細地說,時間遷移開銷是待遷移的VM大小除以通過在對應層上讀取和寫入資料所施加的瓶頸。詳細地說,Pr(Λ, tυ,τ-1, τ-1)表示可用的剩餘速度,且由於VM在遷移期間可以暫停,所以這個VM所使用的輸送量也可用(即,Pr(Λ, tυ,τ-1, τ-1)可以加回)。Pw(Λ, tυ,τ-1, τ-1)表示呈寫入速度的遷移。方程式5反映需要保證VM被一個且僅一個磁片層代管。最後,方程式6表示資源限制,其中Γk是可以使用的每種資源類型的預設上限(以百分比計)。
由於以下挑戰,很難在執行時間期間對所有時期進行全域優化: 1)系統幾乎沒有關於未來工作負載模式的資訊,所以很難在執行時間期間對所有τ時段進行全域優化。 2)當執行全域優化時,對於每一個時期的決策並非無關,這意味著傳統的次優類動力程式設計技術可不能用於通過優化每一個時期的目標函數值“性能增益-性能損失”來解決問題。 3)根據性能預測模型的複雜度(所述性能預測模型預測在不遷移的情況下在其它層上的VM性能),優化問題可以容易地變成NP難題。
因此,為了在可接受的時間內解決這個問題,一些限制需要放寬。
代替試圖對所有時間執行全域優化,可以尋求僅對每一個時期優化的解決方案(即,執行時間貪婪演算法)。
隨後的問題類似於加權背包問題。另外,由於每一個層的性能“專業”(例如高IOPS、高輸送量、大空間、較小的寫入放大因數(WAF)函數、大量過度配置和較大程式設計/擦除(P/E)週期等)事先已知,所以可以計算關於每一個VM的以專業資源維度(例如層1的IOPS和輸送量)為重點的估計性能的“得分”,並且基於性能專業得分排序作出遷移決策,以及對遷移開銷的相應估計。
可以安排兩個不同的時期:監測期,表示評估性能的頻率,且回歸性能估計模型,期可設定為任何所需的間隔:例如15分鐘;和遷移期,表示可以執行從一個層到另一個層的VM遷移的頻率,其可設定為任何所需的間隔:例如1天或1周。監測期和遷移期不一定固定:其可以使用能夠適應性地調節其在執行時間期間的大小的函數來確定。遷移期也不需要是監測期的整數倍數。其視窗大小越小,監測並測量儲存系統且遷移VM就越頻繁。系統管理員可以通過在使用之前進行靈敏度分析來平衡精確度與遷移成本之間的折衷。
為了在不遷移的情況下估計VM在其它層上的性能,可以人工地將額外延遲增加到每一個VM的I/O命令且通過調用自動分層I/O濾波器API (例如,用於I/O過濾的VMware vSphere API)測量對總I/O延遲產生的效果來“模擬”VM在另一層上的性能。
可以使用線形曲線模擬VM在不同層中的性能改變。平均I/O延遲對比所增加的延遲的曲線可以回歸成線形方程式。線條的斜率可能取決於當時正在運行的應用程式是同步或非同步。同步應用程式和非同步應用程式在其如何操作上不同,其反映了線條的斜率。具體地說,當同步應用程式傳送I/O命令時,同步應用程式等待I/O命令完成,這會在通信正在進行時阻斷應用程式的進度,並使系統資源閒置。相比之下,非同步應用程式可以傳送I/O命令並且可以在傳輸已結束之前執行其它處理。這些事實意味著非同步應用程式傾向於受I/O命令延遲的較小影響,但改進出現的代價是:非同步應用程式並不知道回應將何時傳輸,且必須能夠在任何時間接收所述回應。
VM對層速度的靈敏度不同。具有同步應用程式的VM比具有非同步應用程式的VM對層速度變化更具有靈敏性。主要原因是非同步應用程式通常具有不太頻繁的I/O命令待刷新,且對I/O時序具有更小的依賴。
由這些觀測結果推動,“層速度靈敏度校正會話”(TSSCS)可以用於通過在不真正遷移的情況下遷移VM到更高(或更低)速度層來預測所述VM可以增益(或損失)多少。詳細地說,TSSCS具有以下特性: 1)羽量級:在自動分層I/O濾波器上運行,TSSCS將一些延遲增加到每一個VM的I/O命令中,且花費極短的時間以便不影響當前的託管工作負載。 2)多個樣本/延遲/TSSCS:為改進在每一個層下的每一個VM性能的模擬精確度,可以平均在每一個層的相同增加延遲下所獲得的結果。 3)多個延遲/TSSCS:為優化回歸,可以增加多個不同的延遲。此外,所增加的延遲並不必須受限於當前儲存池中的可用層。實際上,額外的延遲資料點可以用於提高回歸精確度。 4)在執行時間期間的多個TSSCS:TSSCS可以被週期性觸發以更新曲線和回歸函數。
基於相應的性能,性能增益與層速度之間的相關性可以通過線性回歸來確定,所述相關性反映了每一個VM對磁片速度的靈敏度提高或降低。曲線有可能回歸成多項式或非線性函數,但改變回歸並不影響自動分層如何操作。給定當時的每一個VM的增加延遲曲線,可以計算每一個VM在每一個層的IOPS、輸送量、儲存大小等。注意到雖然IOPS、輸送量和儲存大小為焦點,但其它類型的資源也可考慮。
表2概述這個分段中所使用的符號,且表3進一步示出使用在三個不同層下的三個VM的實例的估計平均I/O延遲的結果。
表2. 符號
表3. 在不遷移的情況下估計平均I/O延遲的實例
層速度靈敏度校正會話(TSSCS)可以反覆運算儲存系統中的每一個VM和每一個層。所述層速度靈敏度校正會話可以針對每一個增加延遲計算樣本的I/O延遲的係數變數(即,CV)。隨後可以針對每一個增加延遲計算I/O延遲的平均值。隨後可以求所有增加延遲的CV值的平均值,且基於結果,自動分層可以界定用於產生每一個VM的線性回歸的增加延遲的置信度,以及因此隨後自身線性回歸中的置信度。CV越低,這種VM具有的置信度就越高。若CV大於1,則置信度可以設定為可以根據系統管理員的要求來調節的下限:例如0.05。最後,TSSCS可以調用回歸函數來計算相應的m值和b值。注意到雖然本發明概念的實施例可以使用在返回元組中具有僅兩個參數的線性回歸模型,但系統管理員可以基於其選擇的回歸模型添加更多專案到返回元組中。
自動分層具有三種二維矩陣來記錄三種類型的資源,例如IOPS (I/O命令/秒)、輸送量(數百萬位元組/秒或MBPS)和儲存大小(位元組)。可以視需要添加用於儲存系統中的任何其它類型的資源的額外矩陣。與IOPS和輸送量相比,用於儲存大小的矩陣相對地簡單通過調用管理程式API測量每一個VM佔用的儲存大小來得到。
自動分層可以使用基於經回歸M值和B值的線形估計來估計IOPS。在得到用於計算不同層上的每一個VM的相應IOPS和輸送量的估計平均I/O延遲結果後,可以使用以下方程式來計算IOPS和輸送量
由於不同類型的資源具有不同的單位,所以難以將其一起放置在單個多維矩陣中。因此,每一種資源可以轉換成每一個層的總的可用資源容量的百分比。這種歸一化的實例示出在表5中。
表5. 3個VM在層1運行時的歸一化性能矩陣的實
計算出的得分應反映以下事實: 1)層和VM兩者的特徵:如果在每一個層上運行,則得分應反映每一個層的特殊性和每一個VM的工作負載特徵。因此,單獨地計算每一個層上的每一個VM的得分。 2)SLA權重:VM由於其具有不同的SLA權重而不相同,如方程式1中所示。 3)估計的置信度:在性能矩陣中計算的係數變數可以用於反映估計的置信度。 4)歷史成本和遷移成本:卷積老化因數可以用於將歷史得分包含到得分計算值中。遷移成本也可以被估計且包含在得分計算值中。
基於使用者配置或預設配置,由每一個層提供的資源為事先已知的。自動分層可以對給定層的多種資源進行優化。為反映特殊性,可以使用層特殊性矩陣。實例層特殊性矩陣示出於表6中。在表6中,針對特殊性配置使用所有間隔尺寸或不使用間隔尺寸。具有1的儲存單元意謂當前層在相應類型的資源中具有特殊性。否則,所述層不針對所述類型的資源進行優化。但在本發明概念的其它實施例中,這個矩陣中的值可不一定為0和1。如果系統管理員想要更細微性的間隔尺寸來控制特殊性,則其可以設定任何權值代替0和1。系統管理員也可以通過添加更多類型的資源(即,更多行)來延伸這個矩陣。
表6.層特殊性矩陣的實例。
在通過預設最昂貴到最不昂貴層的次序來分選所述層時是有幫助的,且這種次序被視為在遷移決策制定時段期間的優先次序。注意到系統管理員也可以基於其對每一個層的偏好來改變這種次序。
下一個問題是“如何在反映每一個層的特殊性時反映每一個VM在每一個層上的性能?”。由於術語“性能”考慮多個維度或類型的資源(例如IOPS、輸送量和儲存大小),所以加權總和用於反映每一個層的一種或多種特殊性。可以使用“正交匹配”,其是對“特殊性”矩陣和VM容量利用率矩陣的每一層每一VM的相乘操作,如方程式9中所示
另外,自動分層還允許系統管理員為每種類型的資源配置不同的權值。
計算層1的容量得分的實例示出於表6中。第一行(“容量率”)中的(IOPS%,MBPS%,大小%)元組是對這個層上的每種類型的資源的估計VM利用率。在這個實例中,這些值中無一者大於1,所以全部三個VM都通過限制測試。最後,假設特殊性矩陣如表6中所示。
表7. 3個VM在層1上運行時的容量率、容量限制和容量得分值的實例。
最終得分是歷史得分、當前得分和遷移成本的卷積總和,如方程式10中所示:
這個最終得分具有三種組分: 1)歷史得分 :由於僅基於最新時期作出決策,為了避免一些VM在兩個層之間頻繁地遷移且切換,自動分層考慮歷史得分,以預設老化因數來衰減舊得分。最初,當前未分配到特定層的任一VM將接收零得分。 2)當前容量得分:當前容量得分參考方程式(9)和表7如上文所描述計算。又,當前未分配到特定層的任一VM將接收零得分。 3)遷移成本:自動分層通過選擇遷出和遷入可用輸送量的較小值來計算遷移速度瓶頸。自動分層隨著遷移時間成本傳回VM大小除以遷移速度的結果。
為計算得分,針對每一個層,自動分層可以反覆運算其託管VM並檢查當前VM是否超過當前層t的任何類型資源的上限。若VM超過任一資源容量上限,則相應的VM容量利用率可以設定為0,且層t上的這個VMv的得分設定為-1。否則,將資源使用率轉換成容量百分比。隨後如上文計算總得分。注意到自動分層亦允許系統管理員通過調節資源的權重值來控制及每種類型資源的權重。
自動分層在“長期視圖”中進行遷移。也就是說,自動分層遵循相對較低的頻率來遷移,這是因為遷移操作相對昂貴。
自動分層可以檢查遷移操作是否需要且在必要時可以觸發相應的遷移。自動分層可以反覆運算每一個層,優選地以最昂貴到最便宜層的次序。注意到系統管理員可以基於其對每一個層待偏好來改變這種次序。隨後自動分層按降冪分選層得分。對於這個分選清單中的每一個VM,若VM在以下情況下,則自動分層可以跳過所述VM: 1)當前反覆運算VM在當時已經被分配(遷移),或 2)由於這個VM超過了這個層的容量限制,所以所述層上的所述VM沒有得分,或 3)在分配期間層t上沒有充足的資源容量用於這個VMv。
否則,自動分層可以將VM從最多得分到最少得分逐一地分配到這個層。注意到若VM已經在其目標層上,則這種分配不會遷移所述VM。一旦VM被分配另一層後,則所述VM可以標記用於遷移,其包括從源儲存層複製資料(VMDK檔)到目標儲存層。
傳統資料中心使用HDD儲存資料。HDD在大多數意義上通常與彼此相當類似,主要不同在於其每千百萬位元組的成本,其讀取/寫入速度和其整體容量。正如可預期的那樣,容量越大或讀取/寫入速度越快,HDD就越昂貴。但即使考慮到其差異,HDD也具有平均$0.25/千百萬位元組的成本,且具有平均10毫秒(ms)的讀取/寫入速度。但甚至10 ms在電腦操作中也可以是較長的延遲,通常使得一些資料被局部快取以提高存取時間。
在另一方面,SSD可以提供不同的專業化。一些SSD可以具有較低的讀取/寫入延遲,其它SSD可以具有高頻寬,又其它SSD可以具有大容量,且又其它SSD可以具有較小的寫入放大因數。在本文中,術語“資源”用於描述單個儲存裝置可提供到更大程度或更小程度的這些專業化。其它SSD仍可以提供這些資源的組合。這些額外專業化為應用程式提供可以利用這些資源的益處,但使確定哪個SSD對於特定應用是最好的方法複雜化。
與HDD相比,SSD通常更昂貴,其中視格式而定,每千百萬位元組的價格在$0.28到$4.68的範圍內變化。但SSD通常還極具回應性:根據將使用的SSD格式,讀取/寫入時間可以在1-2 ms到微秒(μs)或甚至納秒(ns)的範圍內變化。
雖然SSD通過HDD提供的附加資源是如何最好地將應用程式分配給SSD的重要因素,但存取時間是對應用程式可如何分配給SSD的影響最大。傳統快取演算法假設儲存層之間的性能得到相當大的改進:通常根據本地快取層相對於HDD儲存,預期性能得到10倍改進。此外,鑒於SSD比HDD儲存資料每千百萬位元組更昂貴,快取資料將導致資料以一定的成本儲存兩次。因此,在使用除HDD以外的儲存裝置時,傳統的分層和快取演算法產生次優結果。
圖1示出根據本發明概念的實施例的可以託管虛擬機器並且使用經裝備以執行自動分層的儲存池的連網機器。在圖1中,示出系統105。系統105可以包含虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3。雖然圖1示出了三種伺服器,但本發明概念的實施例可以支援任何數量的虛擬機器伺服器。
虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3中的每一個可以分別包含處理器115-1、處理器115-2和處理器115-3,且分別包含記憶體120-1、記憶體120-2和記憶體120-3。在其它使用中,處理器115-1、處理器115-2和處理器115-3可以執行應用程式,例如虛擬機器在虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3上運行所使用的應用程式,且所述應用程式可以儲存在記憶體120-1、記憶體120-2和記憶體120-3中。處理器115-1、處理器115-2和處理器115-3可以是任何品種的處理器:例如Intel Xeon、Celeron、Itanium或Atom處理器、AMD Opteron處理器、ARM處理器等。雖然圖1示出了虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3中的每一個中的單一處理器,但虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3可以各自包含任何數量的處理器,其中的每一個可以是單核處理器或多核處理器,且可以任何所需的組合混合。記憶體120-1、記憶體120-2和記憶體120-3各自可以是任何品種的記憶體,例如快閃記憶體、動態隨機記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、永久性隨機存取記憶體、鐵電隨機存取記憶體(FRAM),或非揮發性隨機存取記憶體(NVRAM),例如磁阻隨機存取記憶體(MRAM)等。記憶體120-1、記憶體120-2和記憶體120-3各自可以是不同記憶體類型的任何所需組合。儲器120-1、記憶體120-2和記憶體120-3可以由記憶體控制器(在圖1中未示出)控制,所述記憶體控制器也是虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3的一部分。
虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3各自還可以包含本地儲存裝置。舉例來說,虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3可以分別包含快取記憶體125-1、快取記憶體125-2和快取記憶體125-3。例如快取記憶體125-1、快取記憶體125-2和快取記憶體125-3的本地儲存裝置可以採用任何所需形式,例如硬碟驅動器(HDD)或固態驅動器(SSD),且可以使用任何所需的連接器,例如周邊元件連接(PCI)、PCI Express(PCIe)、串列AT配件(SATA)、非揮發性記憶體Express(NVMe)、網狀架構的NVMe(NVMeoF)、M.2,或任何其它所需連接器。在本發明概念的一些實施例中,虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3可以忽略快取記憶體125-1、快取記憶體125-2和快取記憶體125-3,僅依賴資料中心中的儲存。在包含快取記憶體125-1、快取記憶體125-2和快取記憶體125-3的本發明概念的實施例中,本發明概念的實施例可以與公開於2018年2月7日提交的美國專利申請案第15/891350號中的本發明概念的實施例組合,所述美國專利申請案要求2017年11月29日提交的美國專利申請案第62/592,355號的優先權,其兩者均出於所有目的以引用的方式併入本文中。
系統105還可以包含資料中心伺服器130。類似於虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3,資料中心伺服器130可以包含處理器115-4和記憶體120-4。但資料中心伺服器130還可以包含儲存池135、接收器140和傳輸器145。儲存池135可以是經組織成儲存層的儲存裝置池。在本發明概念的一些實施例中,儲存池135可以包含僅SSD或其它快閃記憶體裝置;在本發明概念的其它實施例中,儲存池135可以包含使用其它儲存格式的儲存裝置。接收器140可以接收輸入/輸出(I/O)命令和來自虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3的其它資料,且傳輸器145可以將資料傳輸到虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3。
虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3,與資料中心伺服器130經示出已經由網路150連接。使用網路150,虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3可以將I/O命令傳送到資料中心伺服器130,且可以自其接收回應。虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3與資料中心伺服器130可以全部是局域網路(Local Area Network;LAN)的一部分,或可以包含其它網路類型,例如廣域網路(Wide Area Network;WAN)或例如網際網路的全球網路。網路150還可以是多個這類網路的組合,呈任何所需組合的形式。
儘管圖1描繪虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3以及資料中心伺服器130作為伺服器(且可以各自為獨立式或機架式伺服器),但本發明概念的實施例可以包含各自具有任何所需類型而不受限的虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3以及資料中心伺服器130。舉例來說,圖1所示的伺服器可以各自被桌上型或膝上型電腦或可以得益於本發明概念的實施例的任何其它裝置替換。虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3以及資料中心伺服器130各自還可包含特定得可攜式計算裝置、平板電腦、智慧手機和其它計算裝置。出於描述的目的,虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3被描述為託管虛擬機器,但本發明概念的實施例可以包含在虛擬機器伺服器110-1、虛擬機器伺服器110-2和虛擬機器伺服器110-3上運行的不是虛擬機器的機器。
圖2示出圖1的伺服器110-1、伺服器110-2、伺服器110-3和伺服器130的額外細節。在圖2中,通常地伺服器110(其可以表示圖1的伺服器110-1、伺服器105-2或伺服器110-3中的任一個)和伺服器130包含一個或多個處理器115,所述處理器可以包含記憶體控制器205和時鐘210,所述時鐘可以用於協調伺服器110和伺服器130的元件的操作。處理器115還可以耦合到記憶體120,舉例來說,所述記憶體可以包含隨機存取記憶體(random access memory,RAM)、唯讀記憶體(read-only memory,ROM)或其它狀態保持媒體。在伺服器130中,處理器115還可以耦合到儲存裝置135(伺服器110還可以包含局部附接的儲存裝置,但這類裝置不是所需的)。在伺服器110和伺服器130中,處理器115還可以耦合到網路連接器215,所述網路連接器可以是例如乙太網連接器或無線連接器。處理器115還可以連接到匯流排220,在其它元件中,使用者介面225和可以使用輸入/輸出引擎230管理的輸入/輸出介面埠可附接到所述匯流排。
圖3示出根據本發明概念的實施例的圖1的虛擬機器伺服器110與圖1的儲存池135在自動分層的情況下進行交互的附加細節。在圖3中,虛擬機器伺服器110示出託管三個虛擬機器305-1、虛擬機器305-2和虛擬機器305-3,但本發明概念的實施例可以包含由虛擬機器伺服器110託管的任何數量的虛擬機器。雖然僅虛擬機器305-3在下文更詳細地描述,但本發明概念的實施例包含其它虛擬機器,例如類似操作的虛擬機器305-1和虛擬機器305-2。虛擬機器305-3示出為包含在作業系統315上運行的應用程式310。管理程式320可以管理在虛擬機器伺服器110上運行的操作虛擬機器305-1、操作虛擬機器305-2和操作虛擬機器305-3。
I/O濾波器325可以充當傳遞濾波器,接收來自應用程式310的命令並將其傳送到管理程式320用於執行。I/O濾波器325可以是任何所需達I/O濾波器,例如用於I/O過濾掉VMware vSphere API。但除其正常操作以外,I/O濾波器325可以將延遲增加到一些來自虛擬機器305-3的I/O命令中,所述虛擬機器可以提供關於VM在由其它儲存層支援時如何估計其性能的資訊。I/O濾波器325的操作參考圖下圖7進一步論述。
自動分層幕後程式330可以接收來自I/O濾波器325的性能資料並將其傳送到自動分層控制器335。自動分層幕後程式330可以是管理程式320的一部分,或其可以是獨立元件。另外,雖然自動分層幕後程式330可僅是簡單對傳遞裝置,接收來自I/O濾波器325的資料並將其傳送到自動分層控制器335,但自動分層幕後程式330可以包含稍後歸因於自動分層控制器335的功能中的一些,例如對關於虛擬機器305-1、虛擬機器305-2和虛擬機器305-3的性能資料執行線性回歸的操作。而在本發明概念的一些實施例中,自動分層幕後程式330可以完全被省略,其中I/O濾波器325直接與自動分層控制器335連通而不是准許自動分層幕後程式330收集並傳送性能資料。
自動分層控制器335負責取得從自動分層幕後程式330接收的性能資料並使用所述資料以估計虛擬機器305-3將在每一個儲存層上如何執行,之後自動分層控制器335可以按需要將資料從虛擬機器305-3遷移到另一儲存層。由自動分層控制器335管理的儲存池135可以包含任何數量的儲存層:圖3示出三個層340-1、層340-2和層340-3。在每一個層內,可存在任何數量的儲存裝置345。
如上文所提及,每一個儲存層可以提供利用由所述儲存層提供的特定資源的專業化。舉例來說,儲存層340-1可以提供快速的讀取/寫入時間,而儲存層340-3可以提供較小的寫入放大因數。由於儲存層340-1、儲存層340-2和儲存層340-3提供專業化,所以所述儲存層內的儲存裝置345應全部提供專業化。因此,在本發明概念的一些實施例中,給定儲存層內的儲存裝置345相對於一個或多個特殊性而言是相對或完全均質的:在一些情況下,在給定儲存層內的儲存裝置345所有儲存裝置345應是相同模式的儲存裝置。
在本發明概念的一些實施例中,自動分層控制器335實施為圖1的資料中心伺服器130的一部分。在本發明概念的其它實施例中,自動分層控制器可以實施為可能在虛擬機器伺服器110-1虛擬機器伺服器110-2和虛擬機器伺服器110-3中的一個上運行的虛擬機器。
圖4示出由不同儲存裝置提供的不同可用資源。在圖4中,示出資源405。資源405可以包含輸送量410,所述輸送量表示可以在給定時間量例如一秒中執行的I/O命令的數量(通常描述為I/O操作/秒,或IOPS);頻寬415,所述頻寬反映在給定時間單位內可以傳輸多少資料(通常以數百萬位元組/秒,或MBPS描述);容量420,所述容量反映可以儲存多少資料;以及寫入放大因數425,所述寫入放大因數反映由於垃圾收集操作而寫入多少額外資料。資源405可以容易擴展以包含由圖1的儲存裝置儲存池135提供的任何其它所需資源。
圖5示出將從一個儲存裝置遷移到另一個儲存裝置的圖3的虛擬機器的檔。在圖5中,虛擬機器檔505儲存虛擬機器的資料。虛擬機器檔505當前駐存在儲存層340-3上,而第二虛擬機器的虛擬機器檔510目前駐存在儲存層340-2上。如箭頭515所示,虛擬機器檔505可以遷移到儲存層340-2或儲存層340-1,根據何種遷移,圖3的自動分層控制器335將會引起圖1的系統105整體的最好提高。注意到圖3的自動分層控制器335可以決定不遷移虛擬機器到另一儲存層,如虛擬機器檔510在儲存層340-2上保持不遷移的事實所示。
雖然最好存在一個如何將虛擬機器分配到不變(至少,只要虛擬機器集群不改變)的儲存層的最優解決方案,但實際上虛擬機器可能經歷工作負載改變,且可以與其它VM(其需求也可以隨時間改變)競爭資源。工作負載和競爭的這些變化可以影響哪個儲存層對於特定虛擬機器來說是“最好的”。舉例來說,在一個時間點,一個虛擬機器可以非常忙且需要來自圖1的儲存池135的快速回應時間,但在另一時間點,同一虛擬機器可以暫停工作且不需要高速儲存層。 因此,可能不存在一直為所有虛擬機器最好工作的單一全域優化。
因此,代替尋求單一的全域優化,優選的是尋求一種在一段時間內工作的優化,之後可能優選的是不同的優化。舉例來說,圖6A到圖6B示出在不同時間點虛擬機器到儲存層的最優分配。舉例來說,在圖6A中,在時間T0處,虛擬機器檔505最優在儲存層340-3中且虛擬機器檔510最優在儲存層340-1中。相比之下,在圖6B中,在時間T1處,虛擬機器檔505和虛擬機器檔510兩個最優在儲存層340-1中。
圖7示出增加延遲並且確定圖3的虛擬機器的性能資料的圖3的I/O濾波器325。在圖7中,I/O濾波器325可以接收來自圖3的虛擬機器305-3的應用程式310的I/O命令705。I/O濾波器325隨後可以將延遲710增加到I/O命令705中。這種增加延遲可以模仿更慢執行儲存的層,所述更慢執行儲存的層針對虛擬機器產生不同的平均I/O延遲。
使用所增加的延遲710,I/O濾波器325可以提供I/O命令705到資料中心伺服器130。資料中心伺服器130隨後可以處理I/O命令705並返回回應715。I/O濾波器715可以返回回應715到應用程式310並且可以使用所增加的延遲710測量圖3的虛擬機器305-3的平均I/O延遲,且產生性能資料720。圖3的自動分層控制器335隨後可以使用性能資料720來確定是否存在將虛擬機器遷移到另一儲存層(更快或更慢,這是因為遷移虛擬機器到更慢的儲存層可以為另一個具有性能補償改進的虛擬機器釋放空間)的優勢。
雖然圖7示出使用所增加的延遲710以產生性能資料710的I/O濾波器325,但所增加的延遲710具有其自身的開銷。視需要,所增加的延遲710可以用輕量路徑替換,條件是可以產生性能資料710。舉例來說,I/O濾波器325可以跟蹤未完成I/O命令的數量/虛擬機器,且使用所述資訊以提出在未完成的I/O命令數量仍不斷地增高或保持遞增時將虛擬機器遷移到另一儲存層。
圖8示出圖3的自動分層控制器335的細節。在圖8中,自動分層控制器335可以包含線性回歸模組805、資源矩陣生成器810、度量轉換器815、專業化資訊820、層選擇模組825和遷移模組830。線性回歸模組805可以採用圖7性能資料720並對所述資料執行線性回歸,產生估計虛擬機器對於給定儲存層的延遲的平均I/O延遲的線形方程式。如下文參考圖10所描述,給定增加的延遲,可以確定給定虛擬機器的平均I/O延遲,並將這些資料點繪製在曲線上。在本發明概念的一些實施例中,這些資料點是近似地線形,且線性回歸可以產生近似給定的增加延遲的平均I/O延遲的方程式。隨後,已知每一個儲存層的延遲,可以針對每一個儲存層估計給定虛擬機器的平均I/O延遲。
資源矩陣生成器810可以採用可以由使每一個虛擬機器與每一個儲存層和由每一個儲存層提供的資源相關聯的線性回歸產生的估計。舉例來說,可以根據虛擬機器的平均I/O大小和虛擬機器的平均I/O延遲來計算輸送量,且可以根據VM的I/O命令的平均I/O大小和VM發出的IOPS計算頻寬。資源矩陣生成器810可以使用度量轉換器815將一個度量的性能資料(例如輸送量)轉換成另一度量的性能資料(例如頻寬)。
專業化資訊820可以指示每一個儲存層提供什麼資源。專業化資訊進一步參考下圖11來論述。
層選擇模組825可以採用專業化資訊820和由資源矩陣生成器810產生的資源矩陣,並且選擇虛擬機器的儲存層。隨後,如果虛擬機器將從一個儲存層遷移到另一個儲存層,則遷移模組830可以執行所述遷移。
圖9示出將圖7的性能資料720轉換成使虛擬機器、儲存層和所述儲存層的資源相關聯的矩陣。在圖9中,性能資料720表示為在使用給定儲存層時每一個虛擬機器的平均I/O延遲的矩陣。因此舉例來說,估計虛擬機器1在使用儲存層1時具有800 μs的平均延遲,在使用儲存層2時具有500 μs的平均延遲,且在使用儲存層3時具有300 μs的平均延遲,其中虛擬機器2和虛擬機器3的性能資料提供類似的資訊。圖8中所示出的數值僅為示範性的,且不必反映任何虛擬機器在儲存層中的真實性能值,這是因為實際性能很大程度上取決於特定虛擬機器將運行的應用程式和其它虛擬機器從同一儲存池存取資料的影響兩者。
注意到性能資料720中的一些值不是估計值而是實際值。具體地說,每一個虛擬機器將其資料儲存在圖1的儲存池135中的一些儲存層上。因此,對於實際儲存虛擬機器的資料的儲存層來說,性能資料720中的平均I/O延遲表示所述虛擬機器在所述儲存層上的實際平均I/O延遲,而不是估計值。
給定每一個虛擬機器在每一個儲存層上的估計平均延遲,可以產生使虛擬機器、儲存層和資源相關聯的多維矩陣。這種多維矩陣在圖9中示出為資源矩陣905。由於很難在紙上示出多維矩陣,所以圖9將資源矩陣905示出為若干單獨的二維矩陣910、二維矩陣915和二維矩陣920,其中每一個二維矩陣儲存單個儲存層的資料,但這僅出於觀測目的。
在儲存層1的二維矩陣910中,根據性能資料720的平均I/O延遲可以使用公式轉換成輸送量:也就是說,106 (1,000,000)除以所討論的使用所述儲存層的虛擬機器的平均I/O延遲與儲存層可以支援的最大IOPS (這個值可以由系統管理員設定為小於儲存層所提供的真正最大值的一些值:例如,真正最大值的90%)的乘積。可以使用值106,這是因為延遲通常以微秒來表達(一微秒=)。因此,除非將比如12 μs的延遲轉換成0.000012秒,否則平均I/O延遲的精確測量應反映方程式中出現的單位變化。輸送量可以通過用輸送量乘以由虛擬機器發出的I/O命令的平均寫入大小來轉換成頻寬。並且容量可以根據虛擬機器檔的儲存大小除以由儲存層提供的最大儲存來計算(另外,系統管理員可以將這個值設定成小於真正最大值的一些值)。可以使用圖8的度量轉換器815計算從性能資料720到儲存於資源矩陣905中的值的這些轉換。
圖10示出圖7的性能資料720的線性回歸。在圖10中,示出兩種不同虛擬機器的性能資料。對於一個虛擬機器,曲線上的資料點可以通過線性回歸1005來粗略估計;對於另一個虛擬機器,曲線上的資料點可以通過線性回歸1010來粗略估計。雖然圖10示出僅兩個虛擬機器的資料點,但本發明概念第實施例可以支援線形回歸可以計算的任何數量的虛擬機器。
每一個數據點使特定的增加延遲與虛擬機器的平均I/O延遲相關聯。因此,舉例來說,當沒有增加的延遲時,第一虛擬機器經歷3000 μs的平均I/O延遲,而第二虛擬機器經歷近似700 μs的平均I/O延遲。
增加的延遲尤其在確定虛擬機器是否會使用較慢儲存層(即,具有較低性能水準的儲存層)來充分操作時起作用。畢竟,增加延遲的量可以正好是當前儲存層與目標儲存層之間的差。但使用增加的延遲不可能模擬較快儲存層:畢竟,不可能增加負值延遲,且儲存層不可能比其實際能夠回應更快速地回應。解決方案如線性回歸1010所示。使用關於虛擬機器如何回應較慢儲存層的資訊,有可能使用線性回歸模型估計更快儲存層的性能。在技術上,與“內插法”相比較,估計所提供資料範圍之外的值稱作“外推法”,所述內插法是對資料範圍內的值進行估計。但當使用例如線性回歸1010的線性回歸時,計算對於內插法和外推法是相同的。因此,使用線性回歸1010,有可能估計虛擬機器在使用更快儲存層時將會如何回應。
雖然有可能使用僅對應於儲存層之間的實際延遲差的資料點,但更多數據點是可用的,由線性回歸模組805提供的估計值有可能更好。因此,可以使用圖3的I/O濾波器325增加各種不同的延遲以視需要提供為多個數據點。
當然,如果虛擬機器的每一個I/O命令使用增加的延遲而減緩,那麼虛擬機器將不接收經分配儲存層的真正益處。因此,所增加的延遲可以僅用於由虛擬機器發出的I/O命令子集。如果選擇以增加延遲的I/O命令是隨機選擇的,那麼圖7的性能資料720應提供有意義的線形回歸1005和線形回歸1010。已知的統計技術可以用於確定資料點的變數係數(和置信度)。如果資料點中的置信度足夠高,那麼可以信任線形回歸1005和線形回歸1010為精確估計值。可以指定任何所需的置信度:例如,90%或95%。參考下圖13進一步論述如何選擇I/O命令用於增加延遲。
注意到線形回歸1005和線形回歸1010完全非常不同的資料集:線性回歸1005包含極其陡峭的斜率,而線性回歸1010包含極其淺的斜率。並非所有虛擬機器以相同的方式回應其I/O命令的延遲變化:一些虛擬機器比其它更敏感。舉例來說,產生得到線性回歸1005的資料點的虛擬機器可以運行同步應用程式,其中延遲的較小變化可以具有對應用程式性能的顯著影響。在另一方面,產生得到線性回歸1010的資料點的虛擬機器可以運行非同步應用程式,其中延遲的變化具有較小影響。或者,線性回歸1005可以用於需要高輸送量的虛擬機器,而線性回歸1010可以用於需要低輸送量的虛擬機器。以類似的方式,虛擬機器的靈敏度可以影響其線性回歸:更敏感的虛擬機器將具有更陡的斜率,且不太敏感的虛擬機器將具有更淺的斜率。針對靈敏度的類似概念是虛擬機器是緊密耦合或不是緊密耦合(這裡的“緊密耦合”是指虛擬機器對儲存層的回應時間有多敏感或依賴,類似於同步應用程式與非同步應用程式之間的比較):虛擬機器越緊密耦合,其線性回歸的斜率將越可能更陡。一般來說,具有陡峭斜率的線形回歸,如線性回歸1005,表示在較快儲存層中執行更好的虛擬機器,而具有淺斜率的線形回歸,如線性回歸1010,表示在較慢儲存層中充分執行的虛擬機器。
圖11示出關於圖3的儲存層340-1、儲存層340-2和儲存層340-3的圖8的專業化資訊820。在圖11中,專業化資訊820示出為矩陣。每一個儲存層與每一個資源的交叉點可以指定反映儲存層是否提供所述資源(和/或通過多少所述資源)的值。在本發明概念的一些實施例中,如11圖中所示,專業化資訊830可以使用二進位資訊(0與1,是與否,或任何其它對值),其中一個值表明儲存層提供所述資源並且另一個值表明儲存層不提供所述資源因此舉例來說,專業化資訊820可以讀取為表明儲存層1提供高輸送量和高頻寬,儲存層2提供高頻寬,且儲存層3提供高容量。
在本發明概念的其它實施例中,專業化資訊820中的值不必受限於二進位選項。舉例來說,所述值可以在0到1的範圍內,其中0表明儲存層不提供所述資源,1表明儲存層完整提供所述資源,且兩者之間的值可以表示部分支援。因此,比如0.75的值可以表明儲存層在一定程度上提供資源,但不與“最好”儲存層一樣好,而比如0.25的值可以表明儲存層提供比“最差”儲存層略好的資源(其中“最好”和“最差”為相對術語)。
圖12示出計算待用於將圖3的虛擬機器305-1、虛擬機器305-2和虛擬機器305-3遷移到圖3的不同儲存層中的得分矩陣。通過專業化資訊820與資源矩陣905相乘,可以生成反映每一個層支持每一個虛擬機器的程度的得分矩陣1205。舉例來說,值被提供給虛擬機器1,表明儲存層1是55%匹配,儲存層2是25%匹配,且儲存層3是30%匹配。(注意到所述值並不總計為100%,這是因為每一個值表示每一個儲存層將支援虛擬機器的程度,而不是特定虛擬機器應儲存於特定儲存層中多少。)可以類似地解釋另一虛擬機器的項目。
一旦產生得分矩陣1205後,圖8的層選擇825可以為每一個虛擬機器選擇適當的層。這種選擇可以通過計算層和虛擬機器的每一個組合的以下值來完成:最終得分 =老化因數 × 歷史最終得分 + 當前性能增益 - 當前性能代償。老化因數可以是用於使虛擬機器和儲存層的組合的最終得分變舊的因數(以防止早期選擇過度偏置結果)。當前性能增益可以是根據虛擬機器和層的組合的圖12的得分矩陣1205繪製的值。當前性能代償表示從一個儲存層遷移資料到另一個儲存層的成本。
應注意,由於虛擬機器可以駐存於除含有圖1的儲存池135的伺服器以外的不同伺服器上,當前性能代償僅反映移動資料本身的成本,且不需要將對虛擬機器操作的任何影響作為考慮因素。換句話說,由於虛擬機器駐存於圖1的虛擬機器伺服器110-1上,所以託管虛擬機器的伺服器不需要有處理能力來執行資料移轉:所有處理是在圖1的資料中心伺服器130上完成的。當前性能代償可以通過用需要遷移的虛擬機器檔大小除以源儲存層的更小讀取輸送率和目標儲存層的寫入輸送率來計算。換句話說,比較從源儲存層讀取資料所需的時間和將所述資料寫入目標儲存層所需的時間,且選擇更大值作為執行遷移所需的時間,這是因為無論哪個較慢(讀取源儲存層或寫入目標儲存層)都表示資料移轉中的瓶頸。
給定虛擬機器和儲存層的每一個組合的最終得分,層選擇模組825可以容易地為每一個虛擬機器選擇儲存層以通過確認虛擬機器到儲存層的分配來全域優化系統105的整體性能,所述分配提供對圖1的系統105的性能的整體最大改進,從而將性能改進和性能降低(通過將虛擬機器遷移到不太強大的儲存層)以及遷移成本作為考慮因素。
如上文提示,針對所有時間執行單一全域優化假設每一個虛擬機器的工作負載不改變,且虛擬機器集群自身不改變(沒有添加新的虛擬機器且不移除現有的虛擬機器)。實際上,這些情況是不真實的。因此,如果圖1的系統105僅優化一次,隨時間推移,虛擬機器到儲存層的分配可能不再是最優的。這種問題的解決方案是以規律間隔執行優化,而不是僅一次。但在連續基礎上執行優化不是高效的:例如,虛擬機器I/O命令將必須在連續基礎上經歷增加的延遲,意味著無虛擬機器會接收其儲存層的全部益處。因此,並非執行連續優化,可以在定期基礎上執行優化。為此,引入遷移期和監測期的概念。
監測期表示圖3的I/O濾波器325可以將延遲增加到一些I/O命令中以確定虛擬機器現在可以在不同儲存層中如何執行的時間點。當監測期開始時,圖3的I/O濾波器325可以將延遲增加到所選擇數量的I/O命令中。這些數量的I/O命令可以預設為固定數量,或其可以設定為在先前監測期期間發出的I/O命令數量的百分比(比如,1%),或這兩個值(比如,這兩個值中的更大值)。監測期可以以規律間隔,例如每15分鐘、或每小時或每天出現,但本發明概念的實施例可以支援不規律的監測期。應注意不存在預測在監測期開始時虛擬機器的實際工作負載將是什麼的簡單方式。因此,觸發圖3的I/O濾波器325以在監測期開始處將延遲增加到I/O命令中有可能將選擇隨機的I/O命令集且提供圖7的有意義的性能資料720。一旦已產生虛擬機器在給定監測期中的圖7的性能資料720,圖3的自動分層幕後程式330可以將圖7的性能資料720傳送到圖3的自動分層控制器335。替代地,圖3的自動分層幕後程式330可以等待直到遷移期開始並在當時傳送圖7的性能資料720。
遷移期表示圖3的自動分層控制器335可以確定虛擬機器是否應從一個儲存層遷移到另一個儲存層的時間點。如同監測期,遷移期可設定以規律或不規律時間間隔,例如每天或每週出現。當監測期出現時,圖3的自動分層控制器335可以分析圖7的性能資料720,產生圖9的資源矩陣905,計算最終得分,選擇用於每一個虛擬機器的儲存層,以及必要時遷移虛擬機器資料。
圖13示出監測期與遷移期之間的關係。在圖13中,示出遷移期1305和監測期1310。如圖13中可見,遷移期1305通常比監測期1310更長,但本發明概念的實施例可以具有與監測期1310一樣才或更短的遷移期1305。另外,遷移期1305和監測期1310不需要對準,但其可以對準。
圖14示出根據本發明概念的實施例的用於圖3的I/O濾波器325將延遲增加到圖7的輸入/輸出(I/O)命令705以產生圖7的性能資料3615的實例過程的流程圖。在圖14中,在塊1405處,圖3的I/O濾波器325可以確定圖13的新監測期1310是否為開始。如果未開始,那麼圖3的I/O濾波器325可以等待。否則,在塊1410處,圖3的I/O濾波器325可以接收來自圖3的應用程式310的圖7的一些I/O命令705。圖3的I/O濾波器325以這種方式選擇多少命令來處理可以根據系統組態改變。在塊1415處,圖3的I/O濾波器325可以將圖7的延遲710增加到圖7的I/O命令705中。在塊1420處,圖3的I/O濾波器325可以將命令傳送到圖1的資料中心伺服器130。在塊1425處,圖3的I/O濾波器325可以接收來自圖1的資料中心伺服器130的圖7的回應715。在塊1418處,圖3的I/O濾波器325可以將圖7的回應715傳遞到圖3的應用程式310。最後,在塊1430處,圖3的I/O濾波器325可以使用虛擬機器的平均I/O延遲計算圖7的性能資料720。
圖15A到圖15B示出根據本發明概念的實施例的用於圖3的自動分層控制器335管理虛擬機器在儲存層中的遷移的實例過程的流程圖。在圖15A中,在塊1505處,圖3的自動分層控制器335可以確定圖13的新監測期1310是否已開始。如果未開始,那麼圖3的自動分層控制器335可以等待。否則,在塊1510處,圖3的自動分層控制器335可以接收來自圖3的自動分層幕後程式330的圖7的性能資料720。在塊1515處,圖3的自動分層控制器335可以確定圖13的新遷移期1305是否已開始。如果未開始,那麼圖3的自動分層控制器335可以等待。
否則,在塊1520處,圖8的資源矩陣生成器810可以產生圖9的資源矩陣905(在其它元件中使用圖8的線性回歸模組805和圖8的度量轉換器815)。在塊1525處,層選擇模組825可以使用資源矩陣905將虛擬機器分配到儲存層。在塊1530處,圖3的自動分層控制器335可以檢查以查看虛擬機器中的任一個是否從一個儲存層遷移到另一個儲存層。如果是,則在塊1535處,遷移模組830可以將圖5的虛擬機器檔505從一個儲存層遷移到另一個儲存層。
圖16示出根據本發明概念的實施例的用於圖3的自動分層控制器335以產生圖9的資源矩陣905的實例過程的流程圖。在圖16中,在塊1605處,圖8的線性回歸模組805可以對圖7的性能資料720執行線性回歸以產生估計虛擬機器將在每一個儲存層中執行的程度的方程式。在塊1610處,圖3的自動分層控制器335可以使用圖10的線形回歸1005和線形回歸1010以估計每一個虛擬機器將在每一個儲存層中執行的程度。在塊1615處,資源矩陣生成器810可以根據每一個資源生成虛擬機器在每一個儲存層中的性能度量。如塊1620中所示,這可以包含使用度量轉換器815將一個度量(例如輸送量)轉換成另一個度量(例如頻寬)。塊1620可以省略,如由虛線1625所示。
如從以上論述中可見,本發明概念的實施例提供比傳統分層和快取解決方案顯著的優勢。第一,本發明概念的實施例支援考慮儲存層的多個資源。另外,由於資源數量可以改變,所以資源數量可以設定為1,從而提供與傳統HDD儲存池一起使用的舊版相容性。第二,本發明概念的實施例對快閃記憶體儲存系統的較快性能做出解釋,忽略傳統分層和快取解決方案。第三,由於現有虛擬機器集群的改變和虛擬機工作負載(例如工作負載峰)出現,本發明概念的實施例支持尋找全域優化並隨時間推移調節所述全域優化。這與傳統解決方案相當,其通常為個人虛擬機器尋找本地解決方案而不是整體上優化系統。
在圖14到圖16中,示出本發明概念的一些實施例。但本領域技術人員將認識到,通過改變塊的次序、通過省略塊,或通過包含未在附圖中示出的鏈路,本發明概念的其它實施例也是可能的。無論是否明確地描述,流程圖的所有此類變化都被視為本發明概念的實施例。
以下論述預期提供其中可以實施本發明概念的某些方面的一個或多個合適機器的簡要一般描述。一個或多個機器可以至少部分地通過從例如鍵盤、滑鼠等傳統輸入裝置的輸入,以及通過從另一機器接收的指令、與虛擬實境(virtual reality, VR)環境的交互、生物計量回饋或其它輸入信號控制。本文所使用的術語“機器”意欲廣泛地涵蓋單個機器、虛擬機器,或以通信方式耦合的機器、虛擬機器或一起操作的裝置的系統。示範性機器包含計算裝置,例如個人電腦、工作站、伺服器、可攜式電腦、掌上型裝置、電話、平板電腦等,以及交通裝置,例如私人或公共交通工具,例如汽車、火車、計程車等。
一個或多個機器可以包含嵌入式控制器,例如,可程式設計或不可程式設計邏輯裝置或陣列、專用集成模組(Application Specific Integrated Modules, ASIC)、嵌入式電腦、智慧卡等。一個或多個機器可以利用例如通過網路介面、數據機或其它通信耦合與一個或多個遠端機器的一個或多個連接。機器可以借助於物理和/或邏輯網路,例如企業內部網、網際網路、局域網、廣域網路等互連。本領域技術人員將理解,網路通信可以利用各種有線和/或無線短程或遠端載波和協議,包含射頻(radio frequency, RF)、衛星、微波、電氣電子工程師學會(Institute of Electrical and Electronics Engineer, IEEE)802.11、Bluetooth®、光學、紅外線、電纜、鐳射等。
可以參考或結合包含功能、過程、資料結構、應用程式等的相關聯資料描述本發明概念的實施例,所述相關聯資料在通過機器訪問時引起機器執行任務或定義抽象資料類型或低級硬體環境。相關聯資料可以儲存在例如揮發性和/或非揮發性記憶體,例如RAM、ROM等中,或其它儲存裝置以及其相關聯儲存媒體中,包含硬碟驅動器、軟碟、光學儲存裝置、磁帶、快閃記憶體、儲存棒、數位視訊光碟、生物儲存裝置等。相關聯資料可以採用包、串列資料、並行資料、傳播信號等形式在包含物理和/或邏輯網路的傳輸環境上傳遞,並且可以用壓縮或加密格式使用。相關聯資料可以用於分散式環境中,並且本地和/或遠端地儲存用於機器訪問。
本發明概念的實施例可以包含有形的非暫時性機器可讀媒體,包括可由一個或多個處理器執行的指令,所述指令包括用於執行如本文所描述的發明性概念的元件的指令。
上文所描述的方法的各種操作可以通過能夠執行所述操作的任何合適構件(例如各種硬體和/或軟體元件、模組及/或一個或多個模組)來執行。軟體可以包含用於實施邏輯功能的可執行指令的有序列表,且可以任何供指令執行系統、設備或裝置使用或與指令執行系統、設備或裝置結合的“處理器可讀媒體”實施,所述指令執行系統、設備或裝置如單核處理器或多核處理器或含處理器的系統。
結合本文中所公開的實施例而描述的方法或演算法和函數的步驟可直接體現在硬體、由處理器執行的軟體模組或所述兩者的組合中。 如果實施於軟體中,則可以將功能作為一個或多個指令或代碼而儲存在有形的非暫時電腦可讀媒體上或經由電腦可讀媒體進行傳輸。軟體模組可駐留在隨機存取記憶體(RAM)、快閃記憶體、唯讀記憶體(ROM)、電可程式設計ROM(EPROM)、電可擦除可程式設計ROM(EEPROM)、暫存器、硬碟、可裝卸磁片、CD ROM或所屬領域中已知的任何其它形式的儲存媒體中。
在參考所說明實施例描述和說明本發明概念的原理之後,將認識到,所說明實施例的佈置和細節可以在不脫離此原理的情況下進行修改,並且可以按任何所需方式組合。而且,儘管前述論述集中於具體實施例,但預期其它配置。具體地說,即使本文使用例如“根據本發明概念的實施例”等的表達,但這些詞語一般表示參考實施例可能性,且並不意圖將本發明概念限制到具體實施例配置。如本文所使用,這些術語可以參考組合到其它實施例中的相同或不同實施例。
前述說明性實施例不應被解釋為限制其本發明概念。雖然已經描述幾個實施例,但本領域技術人員將容易瞭解,在實質上不脫離本公開的新穎教示和優點的情況下,對這些實施例的許多修改是可能的。因此,所有此類修改意欲包含在如所附權利要求中定義的本發明概念的範圍內。
本發明概念的實施例可以擴展到以下陳述,而不具有限制性:
陳述1. 本發明概念的實施例包含一種系統,所述系統包括: 提供多個資源的多個儲存裝置,所述多個儲存裝置組織成多個儲存層並且儲存第一虛擬機器的第一資料和第二虛擬機器的第二資料; 接收器,接收來自所述第一虛擬機器的第一輸入/輸出(I/O)命令、來自所述第二虛擬機器的第二I/O命令、模擬所述第一虛擬機器在所述多個儲存層中的性能的第一性能資料,以及模擬所述第二虛擬機器在所述多個儲存層中的性能的第二性能資料; 傳輸器,將對於所述第一I/O命令的第一回應傳輸到所述第一虛擬機器並且將對於所述第二I/O命令的第二回應傳輸到所述第二虛擬機器;以及 自動分層控制器,選擇第一儲存層以儲存所述第一虛擬機器的所述第一資料、選擇第二儲存層以儲存所述第二虛擬機器的所述第二資料,並且回應於所述第一性能資料和所述第二性能資料來遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個, 其中所述自動分層控制器可操作以選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料並且選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料來優化所有虛擬機器在所述多個儲存層中的性能, 其中所述自動分層控制器可操作以將由遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所引起的性能改變和遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個的遷移成本作為考慮因素。
陳述2. 本發明概念的實施例包含根據陳述1所述的系統,其中: 所述系統進一步包括處理器;以及 所述自動分層控制器包含在所述處理器上運行的軟體。
陳述3. 本發明概念的實施例包含根據陳述1所述的系統,其中所述自動分層控制器包含: 層選擇模組,回應於所述第一性能資料和所述第二性能資料選擇所述第一虛擬機器的所述第一儲存層和所述第二虛擬機器的所述第二儲存層;以及 遷移模組,遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個。
陳述4. 本發明概念的實施例包含根據陳述1所述的系統,其中所述自動分層控制器包含使用所述第一性能資料和所述第二性能資料生成資源矩陣的資源矩陣生成器,所述資源矩陣使所述第一虛擬機器和所述第二虛擬機器與所述多個儲存層中的每一個和所述多個儲存層中的每一個的多個資源相關聯。
陳述5. 本發明概念的實施例包含根據陳述4所述的系統,其中所述自動分層控制器可操作以回應於所述資源矩陣來選擇第一儲存層意儲存所述第一虛擬機器的所述第一資料並且選擇第二儲存層以儲存所述第二虛擬機器的所述第二資料。
陳述6. 本發明概念的實施例包含根據陳述5所述的系統,其中所述自動分層控制器可操作以回應於所述多個儲存層中的每一個的所述資源矩陣和專業化資訊來選擇第一儲存層意儲存所述第一虛擬機器的所述第一資料並且選擇第二儲存層以儲存所述第二虛擬機器的所述第二資料。
陳述7. 本發明概念的實施例包含根據陳述6所述的系統,其中所述多個儲存層中的每一個的所述專業化資訊確認所述多個儲存層中的每一個是否支持所述多個資源中的每一個。
陳述8. 本發明概念的實施例包含根據陳述7所述的系統,其中所述多個資源包含輸送量、頻寬、容量和寫入放大。
陳述9. 本發明概念的實施例包含根據陳述4所述的系統,其中所述資源矩陣生成器包含根據所述多個資源中的第二資源將所述第一虛擬機器在所述多個儲存層中的每一個中的第一性能度量轉換成所述第一虛擬機器在所述多個儲存層中的每一個中的第二性能度量的度量轉換器。
陳述10. 本發明概念的實施例包含根據陳述9所述的系統,其中所述第一性能度量包含所述第一虛擬機器的第一平均I/O延遲資料。
陳述11. 本發明概念的實施例包含根據陳述1所述的系統,其中: 所述自動分層控制器包含對所述第一性能資料執行第一線性回歸並且對所述第二性能資料執行第二線性回歸的線性回歸模組;以及 所述自動分層控制器可操作以回應於所述第一線性回歸和所述第二線性回歸選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料且選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料。
陳述12. 本發明概念的實施例包含根據陳述11所述的系統,其中所述自動分層控制器可操作以回應於所述第一線性回歸和所述第二線性回歸,使用所述第一虛擬機器和所述第二虛擬機器的估計平均I/O延遲來選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料且選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料。
陳述13. 本發明概念的實施例包含根據陳述1所述的系統,其中: 所述第一性能資料包含使用第一資源的第一度量性能資料;以及 所述自動分層控制器包含將使用所述第一資源的所述第一度量性能資料轉換成使用第二資源的第二度量性能資料的度量轉換器。
陳述14. 本發明概念的實施例包含根據陳述1所述的系統,其中所述自動分層控制器可操作以選擇第一儲存層來儲存所述第一虛擬機器的所述第一資料、選擇第二儲存層來儲存所述第二虛擬機器的所述第二資料、並且每個遷移期一次回應於所述第一性能資料和所述第二性能資料移轉所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個。
陳述15. 本發明概念的實施例包含根據陳述14所述的系統,其中: 所述第一性能資料包含來自所述遷移期內的多個監測期的第一性能資料;以及 所述第二性能資料包含來自所述遷移期內的所述多個監測期的第二性能資料。
陳述16. 本發明概念的實施例包含根據陳述1所述的系統,所述系統進一步包括: 第一虛擬機器伺服器,儲存所述第一虛擬機器;以及 第二虛擬機器伺服器,儲存所述第二虛擬機器。
陳述17. 本發明概念的實施例包含根據陳述16所述的系統,其中所述第二虛擬機器伺服器是所述第一虛擬機器伺服器。
陳述18. 本發明概念的實施例包含根據陳述16所述的系統,其中所述第一虛擬機器伺服器包含產生模擬所述第一虛擬機器在所述多個儲存層中的性能的所述第一性能資料的I/O濾波器。
陳述19. 本發明概念的實施例包含根據陳述18所述的系統,其中所述I/O濾波器可操作以將延遲增加到來自所述第一虛擬機器的多個I/O命令、包含所述第一I/O命令的多個I/O命令中,並且回應於所述增加的延遲確定所述第一虛擬機器的平均I/O延遲。
陳述20. 本發明概念的實施例包含根據陳述19所述的系統,其中: 所述I/O濾波器進一步可操作以將多個延遲增加到來自所述第一虛擬機器的多個I/O命令中,並且回應於所述增加的延遲確定所述第一虛擬機器的多個平均I/O延遲;以及 所述自動分層控制器包含對所述第一虛擬機器的所述多個平均I/O延遲執行第一線性回歸的線性回歸模組。
陳述21. 本發明概念的實施例包含根據陳述18所述的系統,其中所述第一虛擬機器伺服器進一步包含從所述I/O濾波器收集多個虛擬機器的性能資料並且將所彙集的性能資料傳輸到所述自動分層控制器的自動分層幕後程式。
陳述22. 本發明概念的實施例包含根據陳述16所述的系統,其中: 所述第一虛擬機器伺服器不包含儲存所述第一虛擬機器的第一資料中的任一種的第一本地快取記憶體;以及 所述第二虛擬機器伺服器不包含儲存所述第二虛擬機器的第二資料中的任一種的第二本地快取記憶體。
陳述23. 本發明概念的實施例包含根據陳述1所述的方法,其中由遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所造成的性能改變包含所述第一虛擬機器的性能改進。
陳述24. 本發明概念的實施例包含根據陳述1所述的方法,其中由遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所造成的性能改變包含所述第一虛擬機器的性能下降。
陳述25. 本發明概念的實施例包含根據陳述1所述的方法,其中所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個的遷移成本包含遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所需要的遷移時間。
陳述26. 本發明概念的實施例包含根據陳述1所述的系統,其中所述第二儲存層是所述第一儲存層。
陳述27. 本發明概念的實施例包含根據陳述1所述的系統,其中所述多個儲存層中的一個中的多個儲存裝置是均質的。
陳述28. 本發明概念的實施例包含一種方法,所述方法包括: 接收模擬第一虛擬機器在多個儲存層中的性能的第一性能資料; 接收模擬第二虛擬機器在所述多個儲存層中的性能的第二性能資料; 使用所述第一性能資料和所述第二性能資料生成使所述第一虛擬機器和所述第二虛擬機器與所述多個儲存層中的每一個和所述多個儲存層中的每一個的多個資源相關聯的資源矩陣; 使用所述資源矩陣選擇所述多個儲存層中的第一儲存層以儲存所述第一虛擬機器的第一資料; 使用所述資源矩陣選擇所述多個儲存層中的第二儲存層以儲存所述第二虛擬機器的第二資料;以及 遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個, 其中選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料和選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料使所有虛擬機器在所述多個儲存層中的性能優化, 其中選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料和選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料將由遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所引起的性能改變作為考慮因素,以及 其中選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料和選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料將遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個的遷移成本作為考慮因素。
陳述29. 本發明概念的實施例包含根據陳述28所述的方法,其中所述第二儲存層是所述第一儲存層。
陳述30. 本發明概念的實施例包含根據陳述28所述的方法,其中接收第一性能資料、接收第二性能資料、生成資源矩陣、選擇第一儲存層和選擇第二儲存層是每遷移期執行一次。
陳述31. 本發明概念的實施例包含根據陳述30所述的方法,其中接收第一性能資料和接收第二性能資料是每監測期執行一次。
陳述32. 本發明概念的實施例包含根據陳述31所述的方法,其中所述遷移期包含多個監測期。
陳述33. 本發明概念的實施例包含根據陳述28所述的方法,其中: 使用所述資源矩陣選擇所述多個儲存層中的第一儲存層以儲存所述第一虛擬機器的第一資料包含使用所述資源矩陣和所述多個儲存層中的每一個的專業化資訊選擇所述多個儲存層中的所述第一儲存層以儲存所述第一虛擬機器的第一資料;以及 使用所述資源矩陣選擇所述多個儲存層中的第二儲存層以儲存所述第二虛擬機器的第二資料包含使用所述資源矩陣和所述多個儲存層中的每一個的所述專業化資訊選擇所述多個儲存層中的所述第二儲存層以儲存所述第二虛擬機器的第二資料。
陳述34. 本發明概念的實施例包含根據陳述33所述的方法,其中所述多個儲存層中的每一個的所述專業化資訊確認所述多個儲存層中的每一個是否支持所述多個資源中的每一個。
陳述35. 本發明概念的實施例包含根據陳述34所述的方法,其中所述多個資源包含輸送量、頻寬、容量和寫入放大。
陳述36. 本發明概念的實施例包含根據陳述34所述的方法,其中模擬所述第一虛擬機器在所述多個儲存層中的性能的所述第一性能資料包含使所述第一虛擬機器的平均輸入/輸出(I/O)延遲與增加的延遲相關聯的多個數據點。
陳述37. 本發明概念的實施例包含根據陳述36所述的方法,其中使用所述第一性能資料和所述第二性能資料生成使所述第一虛擬機器和所述第二虛擬機器與所述多個儲存層中的每一個和所述多個儲存層中的每一個的多個資源相關聯的資源矩陣包含對使所述第一虛擬機器的平均I/O延遲與增加的延遲相關聯的所述多個數據點執行線性回歸。
陳述38. 本發明概念的實施例包含根據陳述37所述的方法,其中使用所述第一性能資料和所述第二性能資料生成使所述第一虛擬機器和所述第二虛擬機器與所述多個儲存層中的每一個和所述多個儲存層中的每一個的多個資源相關聯的資源矩陣進一步包含使用所述線性回歸估計所述第一虛擬機器在所述多個儲存層中的每一個中的性能。
陳述39. 本發明概念的實施例包含根據陳述37所述的方法,其中使用所述第一性能資料和所述第二性能資料生成使所述第一虛擬機器和所述第二虛擬機器與所述多個儲存層中的每一個和所述多個儲存層中的每一個的多個資源相關聯的資源矩陣進一步包含根據所述多個資源中的每一個確定所述第一虛擬機器在所述多個儲存層中的每一個中的性能度量。
陳述40. 本發明概念的實施例包含根據陳述39所述的方法,其中根據所述多個資源中的每一個確定所述第一虛擬機器在所述多個儲存層中的每一個中的性能度量包含將根據所述多個資源中的第一資源的所述第一虛擬機器在所述多個儲存層中的每一個中的第一性能度量轉換成根據所述多個資源中的第二資源的所述第一虛擬機器在所述多個儲存層中的每一個中的第二性能度量。
陳述41. 本發明概念的實施例包含根據陳述28所述的方法,其中接收模擬第一虛擬機器在多個儲存層中的性能的第一性能資料包含: 在I/O濾波器處接收來自所述虛擬機器的多個第一I/O命令; 將第一延遲增加到所述多個第一I/O命令中;以及 針對所述多個第一I/O命令計算所述虛擬機器的第一平均I/O延遲。
陳述42. 本發明概念的實施例包含根據陳述41所述的方法,其中: 將第一延遲增加到所述多個第一I/O命令中包含將多個延遲增加到所述多個第一I/O命令中; 針對所述多個第一I/O命令計算所述虛擬機器的第一平均I/O延遲包含針對所述多個第一I/O命令計算所述虛擬機器的多個平均I/O延遲;以及 所述方法進一步包括對所述多個平均I/O延遲執行線性回歸。
陳述43. 本發明概念的實施例包含根據陳述28所述的方法,其中由遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所造成的性能改變包含所述第一虛擬機器的性能改進。
陳述44. 本發明概念的實施例包含根據陳述28所述的方法,其中由遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所造成的性能改變包含所述第一虛擬機器的性能下降。
陳述45. 本發明概念的實施例包含根據陳述28所述的方法,其中所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個的遷移成本包含遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所需要的遷移時間。
陳述46. 本發明概念的實施例包含一種物件,包括非暫時性儲存媒體,所述非暫時性儲存媒體具有儲存於其上的在由機器執行時引起以下操作的指令: 接收模擬第一虛擬機器在多個儲存層中的性能的第一性能資料; 接收模擬第二虛擬機器在所述多個儲存層中的性能的第二性能資料; 使用所述第一性能資料和所述第二性能資料生成使所述第一虛擬機器和所述第二虛擬機器與所述多個儲存層中的每一個和所述多個儲存層中的每一個的多個資源相關聯的資源矩陣; 使用所述資源矩陣選擇所述多個儲存層中的第一儲存層以儲存所述第一虛擬機器的第一資料; 使用所述資源矩陣選擇所述多個儲存層中的第二儲存層以儲存所述第二虛擬機器的第二資料;以及 遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個, 其中選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料和選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料使所有虛擬機器在所述多個儲存層中的性能優化, 其中選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料和選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料將由遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所引起的性能改變作為考慮因素,以及 其中選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料和選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料將遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個的遷移成本作為考慮因素。
陳述47. 本發明概念的實施例包含根據陳述46所述的物件,其中所述第二儲存層是所述第一儲存層。
陳述48. 本發明概念的實施例包含根據陳述46所述的物件,其中接收第一性能資料、接收第二性能資料、生成資源矩陣、選擇第一儲存層和選擇第二儲存層是每遷移期執行一次。
陳述49. 本發明概念的實施例包含根據陳述48所述的物件,其中接收第一性能資料和接收第二性能資料是每監測期執行一次。
陳述50. 本發明概念的實施例包含根據陳述49所述的物件,其中所述遷移期包含多個監測期。
陳述51. 本發明概念的實施例包含根據陳述46所述的物件,其中: 使用所述資源矩陣選擇所述多個儲存層中的第一儲存層以儲存所述第一虛擬機器的第一資料包含使用所述資源矩陣和所述多個儲存層中的每一個的專業化資訊選擇所述多個儲存層中的所述第一儲存層以儲存所述第一虛擬機器的第一資料;以及 使用所述資源矩陣選擇所述多個儲存層中的第二儲存層以儲存所述第二虛擬機器的第二資料包含使用所述資源矩陣和所述多個儲存層中的每一個的所述專業化資訊選擇所述多個儲存層中的所述第二儲存層以儲存所述第二虛擬機器的第二資料。
陳述52. 本發明概念的實施例包含根據陳述51所述的物件,其中所述多個儲存層中的每一個的所述專業化資訊確認所述多個儲存層中的每一個是否支持所述多個資源中的每一個。
陳述53. 本發明概念的實施例包含根據陳述52所述的物件,其中所述多個資源包含輸送量、頻寬、容量和寫入放大。
陳述54. 本發明概念的實施例包含根據陳述52所述的物件,其中模擬所述第一虛擬機器在所述多個儲存層中的性能的所述第一性能資料包含使所述第一虛擬機器的平均輸入/輸出(I/O)延遲與增加的延遲相關聯的多個數據點。
陳述55. 本發明概念的實施例包含根據陳述54所述的物件,其中使用所述第一性能資料和所述第二性能資料生成使所述第一虛擬機器和所述第二虛擬機器與所述多個儲存層中的每一個和所述多個儲存層中的每一個的多個資源相關聯的資源矩陣包含對使所述第一虛擬機器的平均I/O延遲與增加的延遲相關聯的所述多個數據點執行線性回歸。
陳述56. 本發明概念的實施例包含根據陳述55所述的物件,其中使用所述第一性能資料和所述第二性能資料生成使所述第一虛擬機器和所述第二虛擬機器與所述多個儲存層中的每一個和所述多個儲存層中的每一個的多個資源相關聯的資源矩陣進一步包含使用所述線性回歸估計所述第一虛擬機器在所述多個儲存層中的每一個中的性能。
陳述57. 本發明概念的實施例包含根據陳述55所述的物件,其中使用所述第一性能資料和所述第二性能資料生成使所述第一虛擬機器和所述第二虛擬機器與所述多個儲存層中的每一個和所述多個儲存層中的每一個的多個資源相關聯的資源矩陣進一步包含根據所述多個資源中的每一個確定所述第一虛擬機器在所述多個儲存層中的每一個中的性能度量。
陳述58. 本發明概念的實施例包含根據陳述57所述的物件,其中根據所述多個資源中的每一個確定所述第一虛擬機器在所述多個儲存層中的每一個中的性能度量包含將根據所述多個資源中的第一資源的所述第一虛擬機器在所述多個儲存層中的每一個中的第一性能度量轉換成根據所述多個資源中的第二資源的所述第一虛擬機器在所述多個儲存層中的每一個中的第二性能度量。
陳述59. 本發明概念的實施例包含根據陳述46所述的物件,其中接收模擬第一虛擬機器在多個儲存層中的性能的第一性能資料包含: 在I/O濾波器處接收來自所述虛擬機器的第一I/O命令; 將第一延遲增加到所述第一I/O命令中;以及 針對所述第一I/O命令計算所述虛擬機器的第一平均I/O延遲。
陳述60. 本發明概念的實施例包含根據陳述59所述的物件,其中: 將第一延遲增加到所述多個第一I/O命令中包含將多個延遲增加到所述多個第一I/O命令中; 針對所述多個第一I/O命令計算所述虛擬機器的第一平均I/O延遲包含針對所述多個第一I/O命令計算所述虛擬機器的多個平均I/O延遲;以及 所述非暫時性儲存媒體具有儲存於其上的當由機器執行時引起執行對所述多個平均I/O延遲的線性回歸的其它指令。
陳述61. 本發明概念的實施例包含根據陳述46所述的物件,其中由遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所造成的性能改變包含所述第一虛擬機器的性能改進。
陳述62. 本發明概念的實施例包含根據陳述46所述的物件,其中由遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所造成的性能改變包含所述第一虛擬機器的性能下降。
陳述63. 本發明概念的實施例包含根據陳述46所述的物件,其中所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個的遷移成本包含遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所需要的遷移時間。
因此,考慮到對本文所描述的實施例的各種置換,此詳細描述和隨附材料預期僅為說明性的,並且不應被視為限制本發明概念的範圍。因此,本發明概念所要求保護的是落入所附申請專利範圍以及其等效物的範圍和精神內的所有此類修改。
105‧‧‧系統
110‧‧‧虛擬機器伺服器
110-1、110-2、110-3‧‧‧虛擬機器伺服器
115‧‧‧處理器
115-1、115-2、115-3、115-4‧‧‧處理器
120‧‧‧記憶體
120-1、120-2、120-3、120-4‧‧‧記憶體
125-1、125-2、125-3‧‧‧快取記憶體
130‧‧‧資料中心伺服器
135‧‧‧儲存池
140‧‧‧接收器
145‧‧‧傳輸器
150‧‧‧網路
205‧‧‧記憶體控制器
210‧‧‧時鐘
215‧‧‧網路連接器
220‧‧‧匯流排
225‧‧‧使用者介面
230‧‧‧輸入/輸出引擎
305-1、305-2、305-3‧‧‧虛擬機器
310‧‧‧應用程式
315‧‧‧作業系統
320‧‧‧管理程式
325‧‧‧I/O濾波器
330‧‧‧自動分層幕後程式
335‧‧‧自動分層控制器
340-1、340-2、340-3‧‧‧儲存層
345‧‧‧儲存裝置
405‧‧‧資源
410‧‧‧輸送量
415‧‧‧頻寬
420‧‧‧容量
425‧‧‧寫入放大因數
505‧‧‧虛擬機器文件
510‧‧‧虛擬機器文件
515‧‧‧箭頭
705‧‧‧I/O命令
710‧‧‧延遲
715‧‧‧回應
720‧‧‧性能資料
805‧‧‧線性回歸模組
810‧‧‧資源矩陣生成器
815‧‧‧度量轉換器
820‧‧‧專業化資訊
825‧‧‧層選擇模組
830‧‧‧遷移模組
905‧‧‧資源矩陣
910‧‧‧二維矩陣
915‧‧‧二維矩陣
920‧‧‧二維矩陣
1005‧‧‧線性回歸
1010‧‧‧線性回歸
1205‧‧‧得分矩陣
1305‧‧‧遷移期
1310‧‧‧監測期
1405、1410、1415、1418、1420、1425、1430、1505、1510、1515、1520、1525、1530、1535、1605、1610、1615、1620‧‧‧塊
1625‧‧‧虛線
3615‧‧‧性能資料
T0、T1‧‧‧時間
圖1示出根據本發明概念的實施例的可以託管虛擬機器並且使用經裝備以執行自動分層的儲存池的連網機器。 圖2示出圖1的機器的額外細節。 圖3示出根據本發明概念的實施例的在自動分層的情況下與圖1的儲存池進行交互的圖1的一個伺服器的額外細節。 圖4示出由不同儲存裝置提供的不同可用資源。 圖5示出將從一個儲存裝置遷移到另一個儲存裝置的圖3的虛擬機器。 圖6A到圖6B示出在不同時間點處虛擬機器到儲存層的最優分配。 圖7示出增加延遲並且確定圖3的虛擬機器的性能資料的圖3的I/O濾波器。 圖8示出圖3的自動分層控制器的細節。 圖9示出圖7的性能資料轉換成使虛擬機器、儲存層和所述儲存層的資源相關聯的矩陣。 圖10示出圖7的性能資料的線性回歸。 圖11示出關於圖3的儲存層的專業化資訊。 圖12示出待用於將圖3的虛擬機器遷移到圖3的不同儲存層中的得分矩陣的計算。 圖13示出監測期與遷移期之間的關係。 圖14示出根據本發明概念的實施例的用於圖3的I/O濾波器將延遲增加到輸入/輸出(I/O)命令以產生圖7的性能資料的實例過程的流程圖。 圖15A到圖15B示出根據本發明概念的實施例的用於圖3的自動分層控制器管理虛擬機器在儲存層中的遷移的實例過程的流程圖。 圖16示出根據本發明概念的實施例的用於圖3的自動分層控制器生成圖9的資源矩陣的實例過程的流程圖。
Claims (20)
- 一種系統,包括: 提供多個資源的多個儲存裝置,所述多個儲存裝置被組織成多個儲存層並且儲存第一虛擬機器的第一資料和第二虛擬機器的第二資料; 接收器,接收來自所述第一虛擬機器的第一輸入/輸出(I/O)命令、來自所述第二虛擬機器的第二輸入/輸出命令、模擬所述第一虛擬機器在所述多個儲存層中的性能的第一性能資料,以及模擬所述第二虛擬機器在所述多個儲存層中的性能的第二性能資料; 傳輸器,將對於所述第一輸入/輸出命令的第一回應傳輸到所述第一虛擬機器,並且將對於所述第二輸入/輸出命令的第二回應傳輸到所述第二虛擬機器;以及 自動分層控制器,選擇第一儲存層以儲存所述第一虛擬機器的所述第一資料,選擇第二儲存層以儲存所述第二虛擬機器的所述第二資料,並且回應於所述第一性能資料和所述第二性能資料來遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個, 其中所述自動分層控制器能夠操作以選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料並且選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料,從而優化所有虛擬機器在所述多個儲存層中的性能, 其中所述自動分層控制器能夠操作以將由遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所引起的性能改變和遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個的遷移成本作為考慮因素。
- 如申請專利範圍第1項所述的系統,其中所述自動分層控制器包含: 層選擇模組,回應於所述第一性能資料和所述第二性能資料選擇所述第一虛擬機器的所述第一儲存層和所述第二虛擬機器的所述第二儲存層;以及 遷移模組,遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個。
- 如申請專利範圍第1項所述的系統,其中所述自動分層控制器包含使用所述第一性能資料和所述第二性能資料生成資源矩陣的資源矩陣生成器,所述資源矩陣使所述第一虛擬機器和所述第二虛擬機器與所述多個儲存層中的每一個和所述多個儲存層中的每一個的多個資源相關聯。
- 如申請專利範圍第3項所述的系統,其中所述資源矩陣生成器包含度量轉換器,其根據所述多個資源的第二資源將所述第一虛擬機器在所述多個儲存層中的每一個中的第一性能度量轉換成所述第一虛擬機器在所述多個儲存層中的每一個中的第二性能度量。
- 如申請專利範圍第4項所述的系統,其中所述第一性能度量包含所述第一虛擬機器的第一平均輸入/輸出延遲資料。
- 如申請專利範圍第1項所述的系統,其中: 所述自動分層控制器包含線性回歸模組,其對所述第一性能資料執行第一線性回歸並且對所述第二性能資料執行第二線性回歸;以及 所述自動分層控制器能夠操作以回應於所述第一線性回歸和所述第二線性回歸而選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料且選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料。
- 如申請專利範圍第6項所述的系統,其中所述自動分層控制器能夠操作以回應於所述第一線性回歸和所述第二線性回歸,使用所述第一虛擬機器和所述第二虛擬機器的估計平均輸入/輸出延遲來選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料並且選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料。
- 如申請專利範圍第1項所述的系統,其中所述自動分層控制器能夠操作以選擇第一儲存層來儲存所述第一虛擬機器的所述第一資料,選擇第二儲存層來儲存所述第二虛擬機器的所述第二資料,並且每個遷移期一次回應於所述第一性能資料和所述第二性能資料移轉所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個。
- 如申請專利範圍第8項所述的系統,其中: 所述第一性能資料包含來自所述遷移期內的多個監測期的第一性能資料;以及 所述第二性能資料包含來自所述遷移期內的所述多個監測期的第二性能資料。
- 如申請專利範圍第1項所述的系統,進一步包括: 第一虛擬機器伺服器,儲存所述第一虛擬機器;以及 第二虛擬機器伺服器,儲存所述第二虛擬機器。
- 如申請專利範圍第10項所述的系統,其中所述第一虛擬機器伺服器包含生成所述第一性能資料的輸入/輸出濾波器,所述第一性能資料模擬所述第一虛擬機器在所述多個儲存層中的性能。
- 如申請專利範圍第11項所述的系統,其中所述輸入/輸出濾波器能夠操作以將延遲增加到來自所述第一虛擬機器的多個輸入/輸出命令中,所述多個輸入/輸出命令包含所述第一輸入/輸出命令,並且回應於所增加的延遲確定所述第一虛擬機器的平均輸入/輸出延遲。
- 一種方法,包括: 接收模擬第一虛擬機器在多個儲存層中的性能的第一性能資料; 接收模擬第二虛擬機器在所述多個儲存層中的性能的第二性能資料; 使用所述第一性能資料和所述第二性能資料生成資源矩陣,所述資源矩陣使所述第一虛擬機器和所述第二虛擬機器與所述多個儲存層中的每一個和所述多個儲存層中的每一個的多個資源相關聯; 使用所述資源矩陣選擇所述多個儲存層中的第一儲存層以儲存所述第一虛擬機器的第一資料; 使用所述資源矩陣選擇所述多個儲存層中的第二儲存層以儲存所述第二虛擬機器的第二資料;以及 遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個, 其中選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料和選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料使所有虛擬機器在所述多個儲存層中的性能優化, 其中選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料和選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料將由遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所引起的性能改變作為考慮因素,以及 其中選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料和選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料將遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個的遷移成本作為考慮因素。
- 如申請專利範圍第13項所述的方法,其中: 使用所述資源矩陣選擇所述多個儲存層中的第一儲存層以儲存所述第一虛擬機器的第一資料包含使用所述資源矩陣和所述多個儲存層中的每一個的專業化資訊選擇所述多個儲存層中的所述第一儲存層以儲存所述第一虛擬機器的第一資料;以及 使用所述資源矩陣選擇所述多個儲存層中的第二儲存層以儲存所述第二虛擬機器的第二資料包含使用所述資源矩陣和所述多個儲存層中的每一個的所述專業化資訊選擇所述多個儲存層中的所述第二儲存層以儲存所述第二虛擬機器的第二資料。
- 如申請專利範圍第14項所述的方法,其中所述多個儲存層中的每一個的所述專業化資訊確認所述多個儲存層中的每一個是否支持所述多個資源中的每一個。
- 如申請專利範圍第15項所述的方法,其中模擬所述第一虛擬機器在所述多個儲存層中的性能的所述第一性能資料包含使所述第一虛擬機器的平均輸入/輸出(I/O)延遲與所增加的延遲相關聯的多個數據點。
- 如申請專利範圍第13項所述的方法,其中接收模擬第一虛擬機器在多個儲存層中的性能的第一性能資料包含: 在輸入/輸出濾波器處接收來自所述虛擬機器的多個第一輸入/輸出命令; 將第一延遲增加到所述多個第一輸入/輸出命令中的每一個中;以及 針對所述多個第一輸入/輸出命令計算所述虛擬機器的第一平均輸入/輸出延遲。
- 如申請專利範圍第13項所述的方法,其中所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個的遷移成本包含遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所需要的遷移時間。
- 一種物件,包括非暫時性儲存媒體,所述非暫時性儲存媒體上儲存有指令,所述指令由機器執行時引起以下操作: 接收模擬第一虛擬機器在多個儲存層中的性能的第一性能資料; 接收模擬第二虛擬機器在所述多個儲存層中的性能的第二性能資料; 使用所述第一性能資料和所述第二性能資料生成資源矩陣,所述資源矩陣使所述第一虛擬機器和所述第二虛擬機器與所述多個儲存層中的每一個和所述多個儲存層中的每一個的多個資源相關聯; 使用所述資源矩陣選擇所述多個儲存層中的第一儲存層以儲存所述第一虛擬機器的第一資料; 使用所述資源矩陣選擇所述多個儲存層中的第二儲存層以儲存所述第二虛擬機器的第二資料;以及 遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個, 其中選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料和選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料使所有虛擬機器在所述多個儲存層中的性能優化, 其中選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料和選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料將由遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的所述至少一個所引起的性能改變作為考慮因素,以及 其中選擇所述第一儲存層以儲存所述第一虛擬機器的所述第一資料和選擇所述第二儲存層以儲存所述第二虛擬機器的所述第二資料將遷移所述第一虛擬機器的所述第一資料到所述第一儲存層或所述第二虛擬機器的所述第二資料到所述第二儲存層中的至少一個的遷移成本作為考慮因素。
- 如申請專利範圍第19項所述的物件,其中接收模擬第一虛擬機器在多個儲存層中的性能的第一性能資料包含: 在輸入/輸出濾波器處接收來自所述虛擬機器的第一輸入/輸出命令; 將第一延遲增加到所述第一輸入/輸出命令中;以及 針對所述第一輸入/輸出命令計算所述虛擬機器的第一平均輸入/輸出延遲。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762534647P | 2017-07-19 | 2017-07-19 | |
US62/534,647 | 2017-07-19 | ||
US15/887,980 | 2018-02-02 | ||
US15/887,980 US10795583B2 (en) | 2017-07-19 | 2018-02-02 | Automatic data placement manager in multi-tier all-flash datacenter |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201908970A true TW201908970A (zh) | 2019-03-01 |
TWI746846B TWI746846B (zh) | 2021-11-21 |
Family
ID=65018952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107115599A TWI746846B (zh) | 2017-07-19 | 2018-05-08 | 資料儲存管理系統、方法及物件 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10795583B2 (zh) |
JP (1) | JP7063756B2 (zh) |
KR (1) | KR102362045B1 (zh) |
CN (1) | CN109284068B (zh) |
TW (1) | TWI746846B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI805382B (zh) * | 2021-09-17 | 2023-06-11 | 美商萬國商業機器公司 | 內插性能資料 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10896069B2 (en) * | 2018-03-16 | 2021-01-19 | Citrix Systems, Inc. | Dynamically provisioning virtual machines from remote, multi-tier pool |
US11954220B2 (en) | 2018-05-21 | 2024-04-09 | Pure Storage, Inc. | Data protection for container storage |
US11216314B2 (en) * | 2018-11-02 | 2022-01-04 | EMC IP Holding Company LLC | Dynamic reallocation of resources in accelerator-as-a-service computing environment |
US11392400B2 (en) * | 2019-07-17 | 2022-07-19 | Hewlett Packard Enterprise Development Lp | Enhanced migration of clusters based on data accessibility |
US11347702B2 (en) | 2019-12-19 | 2022-05-31 | Hewlett Packard Enterprise Development Lp | Migration of data in a system having multi-tiered physical storage |
CN111176793A (zh) * | 2019-12-31 | 2020-05-19 | 北京安码科技有限公司 | 实现虚拟机跨平台格式转换的方法、系统、电子设备及存储介质 |
CN111367470B (zh) * | 2020-02-21 | 2021-09-17 | 苏州浪潮智能科技有限公司 | 分布式存储卷在线迁移方法、系统、装置及可读存储介质 |
KR102346279B1 (ko) * | 2020-06-25 | 2021-12-31 | 김웅경 | Ansi/bicsi 009-2019 표준 기반 데이터 센터 하드웨어 운용 관리 시스템 |
KR102383941B1 (ko) * | 2020-06-25 | 2022-04-06 | 김웅경 | Ansi/bicsi 009-2019 표준 기반 데이터 센터 하드웨어 등급판정 시스템 |
KR102425505B1 (ko) * | 2020-07-21 | 2022-07-25 | 고려대학교 산학협력단 | 이종 가상화 데이터 센터에서 주변 온도를 고려한 가상 머신 배치 방법 및 장치 |
CN111966473B (zh) * | 2020-07-24 | 2024-02-06 | 支付宝(杭州)信息技术有限公司 | 一种线性回归任务的运行方法及装置、电子设备 |
US11740921B2 (en) * | 2020-11-23 | 2023-08-29 | Google Llc | Coordinated container scheduling for improved resource allocation in virtual computing environment |
US11593180B2 (en) * | 2020-12-15 | 2023-02-28 | Kyndryl, Inc. | Cluster selection for workload deployment |
CN114201119B (zh) * | 2022-02-17 | 2022-05-13 | 天津市天河计算机技术有限公司 | 一种超级计算机作业数据分层存储系统及方法 |
KR102495450B1 (ko) * | 2022-06-10 | 2023-02-06 | 요다정보기술(주) | 클라우드 환경에서의 파일공유 시스템 |
Family Cites Families (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613945B2 (en) * | 2003-08-14 | 2009-11-03 | Compellent Technologies | Virtual disk drive system and method |
US8271989B2 (en) | 2008-02-07 | 2012-09-18 | International Business Machines Corporation | Method and apparatus for virtual processor dispatching to a partition based on shared memory pages |
JP2010108409A (ja) * | 2008-10-31 | 2010-05-13 | Hitachi Ltd | ストレージ管理方法及び管理サーバ |
JP4874368B2 (ja) * | 2009-06-22 | 2012-02-15 | 株式会社日立製作所 | フラッシュメモリを用いたストレージシステムの管理方法及び計算機 |
WO2011092738A1 (ja) | 2010-01-28 | 2011-08-04 | 株式会社日立製作所 | 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法 |
JP5363595B2 (ja) | 2010-02-08 | 2013-12-11 | 株式会社日立製作所 | 仮想ボリューム内のデータの再配置を行うストレージシステム及び方法 |
US8850151B2 (en) | 2010-03-24 | 2014-09-30 | Apple Inc. | Hybrid-device storage based on environmental state |
US8356147B2 (en) * | 2010-08-20 | 2013-01-15 | Hitachi, Ltd. | Tiered storage pool management and control for loosely coupled multiple storage environment |
US8775868B2 (en) | 2010-09-28 | 2014-07-08 | Pure Storage, Inc. | Adaptive RAID for an SSD environment |
US9183219B1 (en) * | 2011-04-18 | 2015-11-10 | American Megatrends, Inc. | Data migration between multiple tiers in a storage system using policy based ILM for QOS |
US10013281B2 (en) | 2011-06-29 | 2018-07-03 | Microsoft Technology Licensing, Llc | Controlling network utilization |
JP5803496B2 (ja) | 2011-09-26 | 2015-11-04 | 富士通株式会社 | ストレージシステム |
US9489133B2 (en) * | 2011-11-30 | 2016-11-08 | International Business Machines Corporation | Optimizing migration/copy of de-duplicated data |
US9471243B2 (en) | 2011-12-15 | 2016-10-18 | Veritas Technologies Llc | Dynamic storage tiering in a virtual environment |
US9098200B2 (en) | 2012-02-10 | 2015-08-04 | Hitachi, Ltd. | Storage system with virtual volume having data arranged astride storage devices, and volume management method |
JP2013164822A (ja) | 2012-02-13 | 2013-08-22 | Fujitsu Ltd | 負荷閾値算出プログラム、負荷閾値算出装置および負荷閾値算出方法 |
US9021203B2 (en) * | 2012-05-07 | 2015-04-28 | International Business Machines Corporation | Enhancing tiering storage performance |
US10817202B2 (en) * | 2012-05-29 | 2020-10-27 | International Business Machines Corporation | Application-controlled sub-LUN level data migration |
US20140025890A1 (en) | 2012-07-19 | 2014-01-23 | Lsi Corporation | Methods and structure for improved flexibility in shared storage caching by multiple systems operating as multiple virtual machines |
US8656134B2 (en) | 2012-11-08 | 2014-02-18 | Concurix Corporation | Optimized memory configuration deployed on executing code |
US9146688B2 (en) | 2012-12-05 | 2015-09-29 | SanDisk Technologies, Inc. | Advanced groomer for storage array |
US9665621B1 (en) | 2013-03-14 | 2017-05-30 | EMC IP Holding Company LLC | Accelerated query execution within a storage array |
JP6070371B2 (ja) | 2013-03-29 | 2017-02-01 | 富士通株式会社 | データ配置プログラム、及び情報処理装置 |
US9268699B2 (en) | 2013-06-03 | 2016-02-23 | Samsung Electronics Co., Ltd. | Dynamic cache allocation in a solid state drive environment |
US9342253B1 (en) * | 2013-08-23 | 2016-05-17 | Nutanix, Inc. | Method and system for implementing performance tier de-duplication in a virtualization environment |
US9183151B2 (en) | 2013-08-30 | 2015-11-10 | Vmware, Inc. | Thread cache allocation |
US9471350B2 (en) * | 2013-09-26 | 2016-10-18 | Intel Corporation | Live migration of virtualized systems |
CN104657215A (zh) * | 2013-11-19 | 2015-05-27 | 南京鼎盟科技有限公司 | 云计算中虚拟化节能系统 |
US9116632B2 (en) | 2013-12-10 | 2015-08-25 | Hitachi, Ltd. | Storage management system |
US10129105B2 (en) * | 2014-04-09 | 2018-11-13 | International Business Machines Corporation | Management of virtual machine placement in computing environments |
KR101652324B1 (ko) | 2014-06-13 | 2016-08-31 | 고려대학교 산학협력단 | 요구 성능 보장 방법 및 요구 성능 보장 장치 |
US9535844B1 (en) | 2014-06-30 | 2017-01-03 | EMC IP Holding Company LLC | Prioritization for cache systems |
US9477427B2 (en) * | 2014-09-19 | 2016-10-25 | Vmware, Inc. | Storage tiering based on virtual machine operations and virtual volume type |
CN104298339B (zh) * | 2014-10-11 | 2017-02-15 | 东北大学 | 一种面向最小能耗的服务器整合方法 |
US20160179582A1 (en) | 2014-12-23 | 2016-06-23 | Intel Corporation | Techniques to dynamically allocate resources for local service chains of configurable computing resources |
CN105808150B (zh) | 2014-12-29 | 2018-09-07 | 先智云端数据股份有限公司 | 用于混合式储存设备的固态硬盘快取系统 |
US9513835B2 (en) * | 2015-01-09 | 2016-12-06 | International Business Machines Corporation | Impact-based migration scheduling from a first tier at a source to a second tier at a destination |
US9983795B1 (en) * | 2015-03-31 | 2018-05-29 | EMC IP Holding Company LLC | Techniques for determining a storage configuration |
US9710178B2 (en) * | 2015-04-10 | 2017-07-18 | International Business Machines Corporation | Optimizing volume placement based upon desired response time and priority |
CN106155929A (zh) * | 2015-04-17 | 2016-11-23 | 伊姆西公司 | 数据存储管理系统和方法 |
US10048989B2 (en) * | 2015-05-18 | 2018-08-14 | Krystallize Technologies, Inc. | Automated workload analysis and simulation process |
US9703664B1 (en) * | 2015-06-24 | 2017-07-11 | EMC IP Holding Company LLC | Self adaptive workload classification and forecasting in multi-tiered storage system using ARIMA time series modeling |
US10275320B2 (en) * | 2015-06-26 | 2019-04-30 | Commvault Systems, Inc. | Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation |
US10599352B2 (en) | 2015-08-14 | 2020-03-24 | Samsung Electronics Co., Ltd. | Online flash resource allocation manager based on a TCO model |
US10289958B1 (en) * | 2015-09-29 | 2019-05-14 | EMC IP Holding Company LLC | Storage system with machine learning based skew prediction |
US10140034B2 (en) * | 2015-11-24 | 2018-11-27 | International Business Machines Corporation | Solid-state drive assignment based on solid-state drive write endurance |
US9733834B1 (en) | 2016-01-28 | 2017-08-15 | Weka.IO Ltd. | Congestion mitigation in a distributed storage system |
CA2957584A1 (en) * | 2016-02-12 | 2017-08-12 | Coho Data, Inc. | Methods, systems, and devices for adaptive data resource assignment and placement in distributed data storage systems |
US10095506B2 (en) | 2016-02-12 | 2018-10-09 | Nutanix, Inc. | Virtualized file server data sharing |
US10282095B2 (en) * | 2016-03-09 | 2019-05-07 | Hitachi, Ltd. | Method and device for managing performance of storage apparatus |
US10296368B2 (en) | 2016-03-09 | 2019-05-21 | Commvault Systems, Inc. | Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount) |
US10331383B2 (en) * | 2016-06-24 | 2019-06-25 | International Business Machines Corporation | Updating storage migration rates |
US10254970B1 (en) * | 2016-06-30 | 2019-04-09 | EMC IP Holding Company LLC | System, method and computer readable medium for obtaining consistent read performance for a plurality of flash drives or raid groups using workload and capacity limits |
US11138160B2 (en) * | 2016-07-13 | 2021-10-05 | International Business Machines Corporation | Application performance using multidimensional predictive algorithm for automated tiering mechanisms |
US10467195B2 (en) | 2016-09-06 | 2019-11-05 | Samsung Electronics Co., Ltd. | Adaptive caching replacement manager with dynamic updating granulates and partitions for shared flash-based storage system |
US10095416B2 (en) * | 2016-09-27 | 2018-10-09 | International Business Machines Corporation | Storage optimization based on application feedback |
US10810160B2 (en) * | 2017-06-08 | 2020-10-20 | International Business Machines Corporation | Automated hardware device storage tiering |
US10318425B2 (en) | 2017-07-12 | 2019-06-11 | International Business Machines Corporation | Coordination of cache and memory reservation |
-
2018
- 2018-02-02 US US15/887,980 patent/US10795583B2/en active Active
- 2018-05-08 TW TW107115599A patent/TWI746846B/zh active
- 2018-05-18 KR KR1020180057320A patent/KR102362045B1/ko active IP Right Grant
- 2018-06-15 CN CN201810620396.8A patent/CN109284068B/zh active Active
- 2018-07-18 JP JP2018134736A patent/JP7063756B2/ja active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI805382B (zh) * | 2021-09-17 | 2023-06-11 | 美商萬國商業機器公司 | 內插性能資料 |
Also Published As
Publication number | Publication date |
---|---|
KR102362045B1 (ko) | 2022-02-11 |
CN109284068B (zh) | 2024-01-05 |
JP2019021315A (ja) | 2019-02-07 |
TWI746846B (zh) | 2021-11-21 |
US10795583B2 (en) | 2020-10-06 |
KR20190009694A (ko) | 2019-01-29 |
CN109284068A (zh) | 2019-01-29 |
US20190026030A1 (en) | 2019-01-24 |
JP7063756B2 (ja) | 2022-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI746846B (zh) | 資料儲存管理系統、方法及物件 | |
JP7138126B2 (ja) | リソース配置を最適化するための適時性リソース移行 | |
US10725707B2 (en) | Storage tier-based volume placement | |
US10175909B2 (en) | Extent migration in multi-tier storage systems | |
US10248448B2 (en) | Unified storage/VDI provisioning methodology | |
KR101867635B1 (ko) | 저장소 환경에서의 재구성 i/o 판독 동작들의 스케줄링 | |
US20100250746A1 (en) | Information technology source migration | |
US10616134B1 (en) | Prioritizing resource hosts for resource placement | |
US11914894B2 (en) | Using scheduling tags in host compute commands to manage host compute task execution by a storage device in a storage system | |
US11797448B2 (en) | Using multi-tiered cache to satisfy input/output requests | |
US11003493B2 (en) | Application and storage based scheduling | |
KR20220012833A (ko) | 가상 머신들의 복제-기반 마이그레이션의 최적화 | |
Malensek et al. | Minerva: proactive disk scheduling for QoS in multitier, multitenant cloud environments | |
Zhang et al. | YouChoose: A performance interface enabling convenient and efficient QoS support for consolidated storage systems | |
US20210064250A1 (en) | Preparing a data storage system for maintenance operations | |
US8533374B1 (en) | Techniques for adaptive data transfer | |
Meyer et al. | Supporting heterogeneous pools in a single ceph storage cluster | |
US10929245B1 (en) | Flexible scheduler for backups | |
US11036430B2 (en) | Performance capability adjustment of a storage volume | |
US11336519B1 (en) | Evaluating placement configurations for distributed resource placement | |
US20210065082A1 (en) | Resource configuration change planning system and resource configuration change planning method | |
US10708340B2 (en) | Methods and systems for improving efficiency in data transfers | |
CN113515238B (zh) | 一种基于分层存储的数据调度方法、系统及电子设备 | |
Wen | Improving Application Performance in the Emerging Hyper-converged Infrastructure | |
Yan et al. | Toward automating work consolidation with performance guarantees in storage clusters |