TWI509411B - 軟體定義混合儲存系統中之工作負載感知的輸入/輸出調度器 - Google Patents
軟體定義混合儲存系統中之工作負載感知的輸入/輸出調度器 Download PDFInfo
- Publication number
- TWI509411B TWI509411B TW104112084A TW104112084A TWI509411B TW I509411 B TWI509411 B TW I509411B TW 104112084 A TW104112084 A TW 104112084A TW 104112084 A TW104112084 A TW 104112084A TW I509411 B TWI509411 B TW I509411B
- Authority
- TW
- Taiwan
- Prior art keywords
- workload
- queue
- value
- input
- close
- Prior art date
Links
Landscapes
- Debugging And Monitoring (AREA)
Description
本發明關於一種輸入/輸出調度器,特別是關於一種軟體定義混合儲存系統中之工作負載感知的輸入/輸出調度器。
電腦作業系統使用輸入/輸出調度器,來決定儲存塊輸入/輸出作業將以何種順序提交給儲存卷。依據不同的目的,一個輸入/輸出調度器的目標可能以最小化花費在硬碟搜尋的時間、優先考量處理一部分的輸入/輸出請求、給每個正在運行的程序部分磁碟頻寬的份額,及/或保證某些輸入/輸出請求在一個特定的截止時點前開始執行。舉例而言,Linux內核內的截止時點調度器用來保證對於請求的一個開始服務時間,它的功能由強加一個截止時點到所有的輸入/輸出作業中來防止請求飢餓現象(starvation)而達成。因而,藉由使用各別輸入/輸出佇列,截止時點調度器偏好讀取過於寫入。它對資料庫工作負載運行良好。另一個例子是
完全公平佇列(Complete Fair Queuing)調度器。完全公平佇列調度器放置由程序提交的同步請求到許多按程序的佇列中,並接著對每一佇列分配時間片,以存取該磁碟。從而,完全公平佇列調度器適合於連續讀取視頻或音頻流,及來自一般主機的工作負載。
上述的調度器乃是基於改善硬碟或由硬碟組成的儲存系統之性能而提出的。以下是一些硬碟儲存系統的特性:首先,多重輸入/輸出請求(讀取與寫入兩者)可能合併到一個單一請求中,而該單一請求在一個讀取寫入頭的移動下進行處理。因此,讀取寫入頭移動的次數可減少,以增加了硬碟的流通量。第二,輸入/輸出請求被分類,由減少硬碟讀取寫入頭的往來移動以改善搜尋時間。基於該些特徵,排成佇列以等待將來處理的輸入/輸出請求可被合併與分類。當使用不同的調度器時,具有不同特徵的工作負載能以較佳的性能進行處理。
儲存系統的一種主流,特別是用在雲端系統,乃是使用混合的固態硬碟與硬碟,而非僅由硬碟組成,因而最新的調度器可能無法在它們裝設到儲存系統時,達到它們本身要求所要達成的目標。固態硬碟具有異於硬碟之鮮明特點描述如下。首先,固態硬碟不需要合併及分類固態硬碟的輸入/輸出請求,這暗示了無須合併與分類所需的時間。輸入/輸出請求應能以最快速度傳送到固態硬碟中。第二,因為許
多現代固態硬碟具有多通道,固態硬碟輸入/輸出請求可能平行化處理,而該多通道能同時容納多個輸入/輸出請求。如果應用該調度器的儲存系統是一種軟體定義混合儲存系統,要處理調度器需求的情況會更加複雜。在考量固態硬碟存在的情況下,有必要改變及改進現有的調度器
此外,進一步調查,工作負載的流量特性是另一項重要的問題。任何工作負載可能具有某些異於其它工作負載的特性,該特性可能是輸入/輸出模式(順序或隨機)、讀取/寫入比率、固態硬碟快取命中等。舉例而言,線上交易處理(On-Line Transaction Processing)資料庫的工作負載具有隨機輸入/輸出模式、讀取/寫入比率大於1,及較小的儲存塊大小;而MongoDB的工作負載具有順序輸入/輸出模式、讀取/寫入比率小於1,及較大的儲存塊大小。如果該二工作負載在相同混合儲存系統下執行,近來發展的調度器不能達到服務層級協議(Service Level Agreements)中對二者的性能需求,至少會存在嘈雜鄰居問題(Noisy Neighbor Problem),影響該些工作負載。
對上述要求,現有的一些技術提供了相關的解決方案,其中一例揭露於美國專利第8,756,369號。在該專利中,一儲存系統包括一命令分類器,用來決定用於至少一固態硬碟命令與一硬碟命令的一目標儲存設備、如果該固態硬碟命令是標定到該儲存系統的一固態硬碟儲存設備,則放置該命
令到一固態硬碟預備佇列中,及如果該硬碟命令是標定到該儲存系統的一硬碟儲存設備,則放置該硬碟命令到一硬碟預備佇列中。該儲存系統也包括一固態硬碟預備佇列,用以佇列標定到該固態硬碟儲存設備的固態硬碟命令,及一硬碟預備佇列,用以佇列標定到該硬碟儲存設備的硬碟命令。同時,一命令調度器從該預備佇列中取出硬碟與固態硬碟命令,並放置該些命令到一命令處理器中。基於對應該特別命令的一目標設備之一處理佇列的可用性級別,該命令調度器放置來自其各自預備佇列的一特別(硬碟或固態硬碟)命令,到該命令處理器中。那麼,該命令處理器給予該處理佇列該些儲存命令。
美國專利第8,756,369號所提供的儲存系統區分硬碟命令(輸入/輸出請求)與固態硬碟命令,它有助於對一工作負載的硬體操作。然而,如果應用於多工作負載,該儲存系統可能無法如它預設般地運作。另一方面,對於各種運行於該儲存系統上的工作負載來說,沒有合適的方式來協調來自每一工作負載的請求,以便每一工作負載能滿足服務層級協議或服務品質(Quality of Service)需求。因此,在軟體定義混合儲存系統中需要一種工作負載感知的輸入/輸出調度器,該調度器可用來解決以上的問題。
本段文字提取和編譯本發明的某些特點。其它特點將被揭露於後續段落中。其目的在涵蓋附加的申請專利範圍之精神和範圍中,各式的修改和類似的排列。
為了滿足上述之需求,本發明揭露一種軟體定義混合儲存(SDHS)系統中之工作負載感知的輸入/輸出調度器,該軟體定義混合儲存至少具有一硬碟與一固態硬碟。該輸入/輸出調度器包括:一佇列管理模組,用以管理佇列、讀取請求,與寫入請求,包含:一請求接收子模組,用以暫時地儲存該些讀取請求與寫入請求;一請求控制子模組,用以創建工作負載佇列、依照一調度器配置功能以動態配置該些工作負載佇列,與安排該些讀取請求與寫入請求到該些工作負載佇列中;及一請求調度子模組,用以創建設備佇列,並調度來自該工作負載佇列的每一讀取請求或寫入請求到一特定的設備佇列中;一工作負載特性資料庫,用以儲存工作負載的特性以供存取;及一流量監控模組,用以監控及持續記錄該軟體定義混合儲存系統的一性能參數的值,並提供該些性能參數的值給該請求控制子模組。
該調度器配置功能對每一工作負載佇列,基於該工作負載特性資料庫提供的該些特性與接收到的該些性能參數的值,計算一佇列深度與一等待時間,以調整該軟體定義混合儲存系統的性能參數值在未來落於設定給該性能參數的一性能保證值與一性能調節值之間。
工作負載感知的輸入/輸出調度器,進一步包含一流量模型模組,用以模型化來自該工作負載之該些請求的儲存流量,並在未來的一特定的時間點上提供該些特性的預測儲存流量。
最好,該些特性為讀取/寫入比率、合併比率、固態硬碟命中率,及儲存塊大小。該性能參數是每秒輸入輸出操作次數、流通量、延遲時間,或前述的組合。該性能保證值與性能調節值由該工作負載的服務層級協議或服務品質需求所定義。每一工作負載佇列被歸類為深層次、中等層次,或淺層次,每一等待時間被歸類為長延時、中等延時,或短延時,其中深層次工作負載佇列的佇列深度較中等層次工作負載佇列的佇列深度容納更多讀取請求或寫入請求;中等層次工作負載佇列的佇列深度較淺層次工作負載佇列的佇列深度容納更多讀取請求或寫入請求;儲存塊大小具有一中等大小;長延時長於中等延時;中等延時長於短延時。
在一例子中,如果該接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、該接收的延遲時間值接近或低於性能保證值、該讀取/寫入比率大於或等於1,且儲存塊大小大於或等於該中等大小,則該工作負載佇列的佇列深度設定為中等層次,且對每一工作負載佇列的等待時間設定為短延時。
在另一例子中,如果該接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、該接收的延遲時間值接近或低於能保證值、該讀取/寫入比率大於或等於1,且該儲存塊大小小於該中等大小,則該工作負載佇列的佇列深度設定為深層次,且對每一工作負載佇列的等待時間定為中等延時。
在另一例子中,如果該接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、該接收的延遲時間值接近或低於性能保證值,且該讀取/寫入比率小於1,則該工作負載佇列的佇列深度設定為中等層次,且對每一工作負載佇列的等待時間設定為短延時。
在另一例子中,如果該接收的每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值、該接收的延遲時間值接近或低於性能保證值、該讀取/寫入比率大於或等於1,且該儲存塊大小大於或等於該中等大小,則該工作負載佇列的佇列深度設定為淺層次,且對每一工作負載佇列的等待時間設定為短延時。
在另一例子中,如果該接收的每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值、該接收的延遲時間值接近或低於性能保證值、該讀取/寫入比率大於或等於1,且該儲存塊大小小於該中等大小,則該工作負載佇列的
佇列深度設定為中等層次,且對每一工作負載佇列的等待時間設定為中等延時。
在另一例子中,如果該接收的每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值、該接收的延遲時間值接近或低於性能保證值,且該讀取/寫入比率小於1,則該工作負載佇列的佇列深度設定為淺層次,且對每一工作負載佇列的等待時間設定為短延時。
在另一例子中,如果該接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、該接收的延遲時間值不接近或低於性能保證值、該讀取/寫入比率大於或等於1,且該儲存塊大小大於或等於該中等大小,則該工作負載佇列的佇列深度設定為中等層次,且對每一工作負載佇列的等待時間設定為中等延時。
在另一例子中,如果該接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、該接收的延遲時間值不接近或低於性能保證值、該讀取/寫入比率大於或等於1,且該儲存塊大小小於該中等大小,則該工作負載佇列的佇列深度設定為深層次,且對每一工作負載佇列的等待時間設定為長延時。
在另一例子中,如果該接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、該接收的延遲時間值不接近或低於性能保證值、該讀取/寫入比率小於1,且該儲
存塊大小大於或等於該中等大小,則該工作負載佇列的佇列深度設定為中等層次,且對每一工作負載佇列的等待時間設定為短延時。
在另一例子中,如果該接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、該接收的延遲時間值不接近或低於性能保證值、該讀取/寫入比率小於1,且該儲存塊大小小於該中等大小,則該工作負載佇列的佇列深度設定為中等層次,且對每一工作負載佇列的等待時間設定為中等延時。
在另一例子中,如果該接收的每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值、該接收的延遲時間值不接近或低於性能保證值,且該儲存塊大小大於或等於該中等大小,則該工作負載佇列的佇列深度設定為淺層次,且對每一工作負載佇列的等待時間設定為短延時。
在另一例子中,如果該接收的每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值、該接收的延遲時間值不接近或低於性能保證值,且該儲存塊大小小於該中等大小,則該工作負載佇列的佇列深度設定為淺層次,且對每一工作負載佇列的等待時間設定為中等延時。
在另一例子中,如果該固態硬碟命中率增加,則該工作負載佇列的佇列深度維持相同或變得更淺,且對每一工作負載佇列的等待時間維持相同或變得更短,否則該工作負載
佇列的佇列深度維持相同或變得更深,且對每一工作負載佇列的等待時間維持相同或變得較長。
在另一例子中,如果該合併比率增加,則該工作負載佇列的佇列深度維持相同或變得更淺,且對每一工作負載佇列的等待時間維持相同或變得更短,否則該工作負載佇列的佇列深度維持相同或變得更深,且對每一工作負載佇列的等待時間維持相同或變得較長。
最好,該中等大小為8KB。
1‧‧‧遠端用戶
5‧‧‧雲端儲存系統
10‧‧‧調度器
50‧‧‧主機
55‧‧‧檔案系統
60‧‧‧設備驅動器模組
61‧‧‧固態硬碟
62‧‧‧固態硬碟
63‧‧‧硬碟
64‧‧‧硬碟
100‧‧‧佇列管理模組
101‧‧‧請求接收子模組
102‧‧‧請求控制子模組
103‧‧‧請求調度子模組
110‧‧‧工作負載特性資料庫
120‧‧‧流量監控模組
130‧‧‧流量模型模組
W1
‧‧‧工作負載佇列群組
W2
‧‧‧工作負載佇列群組
Wn
‧‧‧工作負載佇列群組
QW1
‧‧‧佇列深度
QW2
‧‧‧佇列深度
QWn
‧‧‧佇列深度
QS1
‧‧‧第一固態硬碟設備佇列
QS2
‧‧‧第二固態硬碟設備佇列
QH1
‧‧‧第一硬碟設備佇列
QH2
‧‧‧第二硬碟設備佇列
第1圖描述依照本發明具有一工作負載感知的輸入/輸出調度器的儲存系統之實施例。
第2圖說明一請求控制子模組與一請求調度子模組的操作。
第3圖表列輸入/輸出調度器工作負載的完整情況。
本發明將藉由參照下列的實施方式而更具體地描述。
請參閱第1圖,其描述本發明的一實施例。顯示於第1圖中的一雲端儲存系統5為一軟體定義混合儲存系統此軟體定義混合儲存使得在雲端架構下,能夠基於原則的快速創建、移除,及管理儲存系統。軟體定義混合儲存通常以儲存虛擬
化的方式來將軟體從其管理的儲存硬體中分開。不同於一般的軟體定義儲存,軟體定義混合儲存系統包含一種以上的磁碟型態。它通常由兩種磁碟所構成,例如硬碟與固態硬碟,用於來自具有不同特徵工作負載的需求。從而,雲端儲存系統5也能應用於許多的工作負載。這些工作負載可以是一線上交易處理資料庫、視頻流服務、虛擬桌面基礎架構環境、電子郵件服務器、備份服務器,或檔案服務器。所有利用軟體定義混合儲存為儲存單元的服務或架構,都是依照本發明的精神之工作負載。
雲端儲存系統5接收來自網路中許多用戶的讀取或寫入請求。為了簡化本發明之說明,僅一遠端用戶1用於代表所有的用戶。基本上,雲端儲存系統5的輸入/輸出作業對所有用戶來說都一樣,但是在不同的情況下,對於個別工作負載的處理優先次序及回應延時不同。當閱讀本實施例時,應當考量有許多遠端用戶1發出讀取/寫入請求給雲端儲存系統5,並同時等待回應。
一工作負載感知的輸入/輸出調度器10裝設於雲端儲存系統5中,它是本發明的重要部分。因為能區分請求來源的工作負載,調度器10是對工作負載感知的。調度器10具有一佇列管理模組100、一工作負載特性資料庫110、一流量監控模組120,與一流量模型模組130。每一者將於後文中詳細說明。要注意的是輸入/輸出調度器10能以軟體的形式執行
於雲端儲存系統5的一主機50上,它也可以是為主機50內雲端儲存系統5工作的硬體設備。或者,輸入/輸出調度器10能部分由硬體實現,而其餘部分由軟體驅動,這不為本發明所限制。
佇列管理模組100的主要功能是管理佇列、讀取請求、及寫入請求,前述的讀取請求與寫入請求來自主機50的一檔案系統55。佇列管理模組100具有三個重要的子模組。它們各是一請求接收子模組101、一請求控制子模組102,與一請求調度子模組103。請求接收子模組101能暫時地儲存來自檔案系統55的讀取請求與寫入請求。該請求之後將依據工作負載而分類,並接著安排到一工作負載佇列群組的寫入佇列與讀取佇列中。該寫入佇列為某一特定的工作負載排序寫入請求,該讀取佇列為相同的工作負載依序保持讀取請求。要再強調有許多的工作負載同時使用雲端儲存系統5,同樣也有許多工作負載佇列群組W1
至Wn
顯示於第2圖中。
請求控制子模組102用來對每一工作負載的請求,創建工作負載佇列(寫入佇列與讀取佇列)。在工作負載佇列設立之後,請求控制子模組102能進一步依照一調度器配置功能,動態配置工作負載佇列。該調度器的配置功能會運作來決定工作負載佇列的深度,及每一請求等待合併機會的時間長度,這將在後面詳細地描述。因此,請求控制子模組102安排讀取請求與寫入請求到相關的工作負載佇列中。
請求調度子模組103負責創建設備佇列。每一設備佇列包含對特定設備,即固態硬碟61、62或硬碟63、64,的請求(讀取及/或寫入)。該請求可來自一工作負載佇列群組或某些工作負載佇列群組。請求調度子模組103將調度每一來自工作負載佇列的讀取請求或寫入請求到一特定的設備佇列中。如果其它已佇列的請求在一請求之前已進行處理,該請求將會接著進行處理。在某些主機50設計中,調度可經由一設備驅動器模組60觸發對應儲存設備的驅動器而達成。該請求調度子模組103提供一種其它調度器無法達成的絕佳功能,它將到硬碟的請求與到固態硬碟的請求分開。從而,到固態硬碟的請求能直接執行,不必與其它到硬碟的請求在佇列中等待,雲端儲存系統5的性能可因此提升。
工作負載特性資料庫110儲存各工作負載的特性,以供存取之用。該些特性是調度器配置功能用來決定佇列深度與等待時間的因子。依照本發明,該些特性是讀取/寫入比率、固態硬碟命中率、合併比率,及儲存塊大小。讀取/寫入比率是工作負載讀取請求數量對寫入請求數量的比值。對一工作負載來說,它通常具有一特定的使用模式,讀取請求數量多於寫入請求數量或寫入請求數量超過讀取請求數量。對某些特殊情況,某一工作負載,比如一個備份服務器,可能具有寫入請求但沒有讀取請求。
固態硬碟命中率指的是雲端儲存系統5中的固態硬碟被存取的頻率,不論該些請求是由哪一工作負載而來。使用於每一工作負載的固態硬碟之數量或空間可能依據工作負載使用情況而變。從而,用於每一工作負載的固態硬碟命中率隨時在變。如果該固態硬碟命中率增加,則該工作負載佇列的佇列深度可能維持相同或變得更淺,且對每一工作負載佇列的等待時間可能維持相同或變得更短。反之,該工作負載佇列的佇列深度可能維持相同或變得更深,且對每一工作負載佇列的等待時間可能維持相同或變得較長。維持或改變佇列深度或等待時間是基於增加/減少的程度而定。維持與改變間的門檻值,及改變程度的量值能在雲端儲存系統5上線運作前就設定好。前述的方法是一種用於制定規則的準則,"淺"、"短"、"深",及"長"等量化描述將在隨後說明。對比的使用是針對現有級別而說明其增加或減少。
讀取/寫入比率是表達讀取/寫入模式的一種指標。合併比率僅計算硬碟的存取,它是一讀取寫入頭在相同移動間,與其它請求合併處理(處理優先順序的改變)之請求的比例。舉例而言,在一固定時限開始(ta
)時,有10個硬碟讀取請求在佇列中。在該時限結束時(tb
),請求合併造成佇列中的請求數量變成7個,該合併比率在tb
時為0.3,它來自下面的公式:,其中tb
>ta
r(t)表示在時間t時,一佇列中請求獲得數量的函數。合併比率越高,硬碟的流通量越大(本例顯示大於30%)。然而,如果該請求等的夠長而獲致最大的流通量,延遲時間也可能變得較長,而較長的延遲時間會使得使用者經驗變差。對一工作負載而言,它的合併比率也可能隨著時間而變化。如果合併比率增加,該工作負載佇列的佇列深度可能維持相同或變得較淺,且對每一工作負載佇列的等待時間可能維持相同或變得較短。否則該工作負載佇列的佇列深度可能維持相同或變得更深,且對每一工作負載佇列的等待時間可能維持相同或變得更長。相似地,"淺"、"短"、"深",及"長"等量化描述將在隨後說明。對比的使用是針對現有級別而說明其增加或減少。
儲存塊大小是儲存裝置的基本儲存單元空間,硬碟或固態硬碟都有,它從4KB或更小到16MB或以上都有可能。一般來說,中等大小使用上以8KB較常見。隨著儲存設備科技的演進,該中等大小將會增加。為了說明的目的,在本說明書中,8KB設定為該中等大小,然而這並不限縮本發明。對不同的儲存塊大小與狀況而言,調度器配置功能用來決定佇列深度與等待時間的策略不同,以下將說明之。
流量監控模組120能監控及持續記錄雲端儲存系統5的一性能參數的值,它也能提供該性能參數的值給請求控制子模組102。性能參數可以是每秒輸入輸出操作次數、流通量、延遲時間,或前述的組合。流量模型模組130用來模型化來自工作負載請求的儲存流量,及在未來的一特定的時間點上,提供預測某些特性的儲存流量。模型化使用的資料來自流量監控模組120。任何適合的方法、演算法或模組都可以應用之,最好使用由相同發明人於美國專利申請案第14/290,533號中所提供的一種儲存設流量模型,可由該申請案獲得相同技術之共同參考。來自工作負載請求之模型化的儲存流量,以及儲存流量的預測值,能提供請求控制子模組102參考,以備未來工作負載佇列及等待時間的組態之用。
以下,調度器配置功能的運作將以所有狀況的例子來說明。調度器配置功能基於工作負載特性資料庫提供的特性與接收的性能參數值,計算佇列深度及對每一工作負載佇列的等待時間。因此,調度器配置功能可調整雲端儲存系統5的性能參數值,以便在未來落於設定給該性能參數的一性能保證值與一性能調節值之間。前述的性能保證值與性能調節值由工作負載的服務層級協議或服務品質需求所定義。每一工作負載佇列被歸類為深層次、中等層次,或淺層次。每一等待時間被歸類為長延時、中等延時,或短延時。
依照本發明的精神,對每一分類的工作負載佇列而言,如同在運作時被分類的等待時間,沒有絕對的定界符。一個指引方針是深層次工作負載佇列的佇列深度應比中等層次工作負載佇列的佇列深度,容納更多讀取請求或寫入請求;中等層次工作負載佇列的佇列深度比淺層次工作負載佇列的佇列深度,容納更多讀取請求或寫入請求;儲存塊大小具有中等大小。相似地,長延時較中等延時長,中等延時較短延時長。
如上所述,有許多的工作負載狀況影響調度器配置功能決定佇列深度與等待時間,所有的狀況揭露如下。在一實施例中,雲端儲存系統5支援視頻流、線上交易處理資料庫,與郵件伺服器。這些工作負載僅用於說明,並不限定本發明的應用,不同於上述三者的工作負載都能使用之。視頻流是一種序列輸入/輸出型態,具有的讀取請求數量較寫入請求數量多,需要儲存塊大小大於或等於8K,產生每秒輸入輸出操作次數或流通量的值接近各自的性能調節值,且具有的延遲時間接近或低於延遲時間的性能保證值。如第2圖所示,工作負載佇列群組W1
中工作負載佇列的一佇列深度QW1
設定為中等層次(5),對每一工作負載佇列的等待時間設定為短延時(20ms)。請求調度子模組103安排來自工作負載佇列群組W1
的請求到用於固態硬碟61的一第一固態硬碟設備佇列QS1
及用於硬碟63的一第一硬碟設備佇列QH1
。
線上交易處理資料庫是隨機輸入/輸出型態,具有相同數量的讀取/寫入請求,或讀取請求數量多於寫入請求數量,需要儲存塊大小大於或等於8K,產生每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值,且具有的延遲時間接近或低於延遲時間的性能保證值。工作負載佇列群組W2
中工作負載佇列的一佇列深度QW2
設定為淺層次(2),對每一工作負載佇列的等待時間設定為短延時(20ms)。請求調度子模組103安排來自工作負載佇列群組W2
的請求到用於固態硬碟61的第一固態硬碟設備佇列QS1
及用於固態硬碟62的一第二固態硬碟設備佇列QS2
。
郵件伺服器是隨機輸入/輸出型態,具有的讀取請求數量較寫入請求數量多,(或甚至是相同),需要儲存塊大小小於8K,產生每秒輸入輸出操作次數或流通量的值接近各自的性能調節值,且具有的延遲時間並不接近或低於延遲時間的性能保證值。工作負載佇列群組Wn
中工作負載佇列的一佇列深度QWn
設定為深層次(7),對每一工作負載佇列的等待時間設定為長延時(100ms)。請求調度子模組103安排來自工作負載佇列群組Wn
的請求到用於硬碟63的第一硬碟設備佇列QH1
及用於硬碟64的第二硬碟設備佇列QH2
。
工作負載狀況的完整組合表列於第3圖中。很明顯地,視頻流、線上交易處理資料庫、及郵件伺服器各別是第1號、第5號與第10號狀況。其餘的狀況說明如下。
對第2號狀況來說,如果接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、接收的延遲時間值接近或低於性能保證值、讀取/寫入比率大於或等於1,且儲存塊大小小於中等大小,則該工作負載佇列的佇列深度設定為深層次,且對每一工作負載佇列的等待時間設定為中等延時。
對第3號狀況來說,如果接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、接收的延遲時間值接近或低於性能保證值、讀取/寫入比率小於1,且儲存塊大小大於或等於中等大小,則該工作負載佇列的佇列深度設定為中等層次,且對每一工作負載佇列的等待時間設定為短延時。
對第4號狀況來說,如果接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、接收的延遲時間值接近或低於性能保證值、讀取/寫入比率小於1,且儲存塊大小小於中等大小,則該工作負載佇列的佇列深度設定為中等層次,且對每一工作負載佇列的等待時間設定為短延時。
對第6號狀況來說,如果接收的每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值、接收的延遲時間值接近或低於性能保證值、讀取/寫入比率大於或等於1,且儲存塊大小小於中等大小,則該工作負載佇列的佇列深度
設定為中等層次,且對每一工作負載佇列的等待時間設定為中等延時。
對第7號狀況來說,如果接收的每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值、接收的延遲時間值接近或低於性能保證值、讀取/寫入比率小於1,且儲存塊大小大於或等於中等大小,則該工作負載佇列的佇列深度設定為淺層次,且對每一工作負載佇列的等待時間設定為短延時。
對第8號狀況來說,如果接收的每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值、接收的延遲時間值接近或低於性能保證值、讀取/寫入比率小於1,且儲存塊大小小於中等大小,則該工作負載佇列的佇列深度設定為淺層次,且對每一工作負載佇列的等待時間設定為短延時。
對第9號狀況來說,如果接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、接收的延遲時間值不接近或低於性能保證值、讀取/寫入比率大於或等於1,且儲存塊大小大於或等於中等大小,則該工作負載佇列的佇列深度設定為中等層次,且對每一工作負載佇列的等待時間設定為中等延時。
對第11號狀況來說,如果接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、接收的延遲時間
值不接近或低於性能保證值、讀取/寫入比率小於1,且儲存塊大小大於或等於中等大小,則該工作負載佇列的佇列深度設定為中等層次,且對每一工作負載佇列的等待時間設定為短延時。
對第12號狀況來說,如果接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、接收的延遲時間值不接近或低於性能保證值、讀取/寫入比率小於1,且儲存塊大小小於中等大小,則該工作負載佇列的佇列深度設定為中等層次,且對每一工作負載佇列的等待時間設定為中等延時。
對第13號狀況來說,如果接收的每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值、接收的延遲時間值不接近或低於性能保證值、讀取/寫入比率大於或等於1,且儲存塊大小大於或等於中等大小,則該工作負載佇列的佇列深度設定為淺層次,且對每一工作負載佇列的等待時間設定為短延時。
對第14號狀況來說,如果接收的每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值、接收的延遲時間值不接近或低於性能保證值、讀取/寫入比率大於或等於1,且儲存塊大小小於中等大小,則該工作負載佇列的佇列深度設定為淺層次,且對每一工作負載佇列的等待時間設定為中等延時。
對第15號狀況來說,如果接收的每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值、接收的延遲時間值不接近或低於性能保證值、讀取/寫入比率小於1,且儲存塊大小大於或等於中等大小,則該工作負載佇列的佇列深度設定為淺層次,且對每一工作負載佇列的等待時間設定為短延時。
對第16號狀況來說,如果接收的每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值、接收的延遲時間值不接近或低於性能保證值、讀取/寫入比率小於1,且儲存塊大小小於中等大小,則該工作負載佇列的佇列深度設定為淺層次,且對每一工作負載佇列的等待時間設定為中等延時。
雖然本發明已以實施方式揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
1‧‧‧遠端用戶
5‧‧‧雲端儲存系統
10‧‧‧調度器
50‧‧‧主機
55‧‧‧檔案系統
60‧‧‧設備驅動器模組
61‧‧‧固態硬碟
62‧‧‧固態硬碟
63‧‧‧硬碟
64‧‧‧硬碟
100‧‧‧佇列管理模組
101‧‧‧請求接收子模組
102‧‧‧請求控制子模組
103‧‧‧請求調度子模組
110‧‧‧工作負載特性資料庫
120‧‧‧流量監控模組
130‧‧‧流量模型模組
Claims (21)
- 一種軟體定義混合儲存系統中之工作負載感知的輸入/輸出調度器,該系統具有至少一硬碟與一固態硬碟,包含:一佇列管理模組,用以管理佇列、讀取請求,與寫入請求,包含:一請求接收子模組,用以暫時地儲存該些讀取請求與寫入請求;一請求控制子模組,用以創建工作負載佇列、依照一調度器配置功能以動態配置該些工作負載佇列,與安排該些讀取請求與寫入請求到該些工作負載佇列中;及一請求調度子模組,用以創建設備佇列,並調度來自該工作負載佇列的每一讀取請求或寫入請求到一特定的設備佇列中;一工作負載特性資料庫,用以儲存工作負載的特性以供存取;及一流量監控模組,用以監控及持續記錄該軟體定義混合儲存系統的一性能參數的值,並提供該些性能參數的值給該請求控制子模組;其中該調度器配置功能對每一工作負載佇列,基於該工作負載特性資料庫提供的該些特性與接收到的該些 性能參數的值,計算一佇列深度與一等待時間,以調整該軟體定義混合儲存系統的性能參數值在未來落於設定給該性能參數的一性能保證值與一性能調節值之間。
- 如申請專利範圍第1項所述之工作負載感知的輸入/輸出調度器,進一步包含一流量模型模組,用以模型化來自該工作負載之該些請求的儲存流量,並在未來的一特定的時間點上提供該些特性的預測儲存流量。
- 如申請專利範圍第1項所述之工作負載感知的輸入/輸出調度器,其中該些特性為讀取/寫入比率、合併比率、固態硬碟命中率,及儲存塊大小。
- 如申請專利範圍第3項所述之工作負載感知的輸入/輸出調度器,其中該性能參數是每秒輸入輸出操作次數、流通量、延遲時間,或前述的組合。
- 如申請專利範圍第3項所述之工作負載感知的輸入/輸出調度器,其中該性能保證值與性能調節值由該工作負載的服務層級協議(Service Level Agreement)或服務品質(Quality of Service)需求所定義。
- 如申請專利範圍第4項所述之工作負載感知的輸入/輸出調度器,其中每一工作負載佇列被歸類為深層次、中等層次,或淺層次,每一等待時間被歸類為長延時、中等延時,或短延時,其中深層次工作負載佇列的佇列深度較中等層 次工作負載佇列的佇列深度容納更多讀取請求或寫入請求;中等層次工作負載佇列的佇列深度較淺層次工作負載佇列的佇列深度容納更多讀取請求或寫入請求;儲存塊大小具有一中等大小;長延時長於中等延時;中等延時長於短延時。
- 如申請專利範圍第6項所述之工作負載感知的輸入/輸出調度器,其中如果該接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、該接收的延遲時間值接近或低於性能保證值、該讀取/寫入比率大於或等於1,且儲存塊大小大於或等於該中等大小,則該工作負載佇列的佇列深度設定為中等層次,且對每一工作負載佇列的等待時間設定為短延時。
- 如申請專利範圍第6項所述之工作負載感知的輸入/輸出調度器,其中如果該接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、該接收的延遲時間值接近或低於能保證值、該讀取/寫入比率大於或等於1,且該儲存塊大小小於該中等大小,則該工作負載佇列的佇列深度設定為深層次,且對每一工作負載佇列的等待時間定為中等延時。
- 如申請專利範圍第6項所述之工作負載感知的輸入/輸出調度器,其中如果該接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、該接收的延遲時間值接近 或低於性能保證值,且該讀取/寫入比率小於1,則該工作負載佇列的佇列深度設定為中等層次,且對每一工作負載佇列的等待時間設定為短延時。
- 如申請專利範圍第6項所述之工作負載感知的輸入/輸出調度器,其中如果該接收的每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值、該接收的延遲時間值接近或低於性能保證值、該讀取/寫入比率大於或等於1,且該儲存塊大小大於或等於該中等大小,則該工作負載佇列的佇列深度設定為淺層次,且對每一工作負載佇列的等待時間設定為短延時。
- 如申請專利範圍第6項所述之工作負載感知的輸入/輸出調度器,其中如果該接收的每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值、該接收的延遲時間值接近或低於性能保證值、該讀取/寫入比率大於或等於1,且該儲存塊大小小於該中等大小,則該工作負載佇列的佇列深度設定為中等層次,且對每一工作負載佇列的等待時間設定為中等延時。
- 如申請專利範圍第6項所述之工作負載感知的輸入/輸出調度器,其中如果該接收的每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值、該接收的延遲時間值接近或低於性能保證值,且該讀取/寫入比率小於1,則該工作負載佇列的佇列深度設定為淺層次,且對每一工 作負載佇列的等待時間設定為短延時。
- 如申請專利範圍第6項所述之工作負載感知的輸入/輸出調度器,其中如果該接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、該接收的延遲時間值不接近或低於性能保證值、該讀取/寫入比率大於或等於1,且該儲存塊大小大於或等於該中等大小,則該工作負載佇列的佇列深度設定為中等層次,且對每一工作負載佇列的等待時間設定為中等延時。
- 如申請專利範圍第6項所述之工作負載感知的輸入/輸出調度器,其中如果該接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、該接收的延遲時間值不接近或低於性能保證值、該讀取/寫入比率大於或等於1,且該儲存塊大小小於該中等大小,則該工作負載佇列的佇列深度設定為深層次,且對每一工作負載佇列的等待時間設定為長延時。
- 如申請專利範圍第6項所述之工作負載感知的輸入/輸出調度器,其中如果該接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、該接收的延遲時間值不接近或低於性能保證值、該讀取/寫入比率小於1,且該儲存塊大小大於或等於該中等大小,則該工作負載佇列的佇列深度設定為中等層次,且對每一工作負載佇列的等待時間設定為短延時。
- 如申請專利範圍第6項所述之工作負載感知的輸入/輸出調度器,其中如果該接收的每秒輸入輸出操作次數或流通量的值接近各自的性能調節值、該接收的延遲時間值不接近或低於性能保證值、該讀取/寫入比率小於1,且該儲存塊大小小於該中等大小,則該工作負載佇列的佇列深度設定為中等層次,且對每一工作負載佇列的等待時間設定為中等延時。
- 如申請專利範圍第6項所述之工作負載感知的輸入/輸出調度器,其中如果該接收的每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值、該接收的延遲時間值不接近或低於性能保證值,且該儲存塊大小大於或等於該中等大小,則該工作負載佇列的佇列深度設定為淺層次,且對每一工作負載佇列的等待時間設定為短延時。
- 如申請專利範圍第6項所述之工作負載感知的輸入/輸出調度器,其中如果該接收的每秒輸入輸出操作次數或流通量的值接近或低於各自的性能保證值、該接收的延遲時間值不接近或低於性能保證值,且該儲存塊大小小於該中等大小,則該工作負載佇列的佇列深度設定為淺層次,且對每一工作負載佇列的等待時間設定為中等延時。
- 如申請專利範圍第6項所述之工作負載感知的輸入/輸出調度器,其中如果該固態硬碟命中率增加,則該工作負載佇列的佇列深度維持相同或變得更淺,且對每一工作負載 佇列的等待時間維持相同或變得更短,否則該工作負載佇列的佇列深度維持相同或變得更深,且對每一工作負載佇列的等待時間維持相同或變得較長。
- 如申請專利範圍第6項所述之工作負載感知的輸入/輸出調度器,其中如果該合併比率增加,則該工作負載佇列的佇列深度維持相同或變得更淺,且對每一工作負載佇列的等待時間維持相同或變得更短,否則該工作負載佇列的佇列深度維持相同或變得更深,且對每一工作負載佇列的等待時間維持相同或變得較長。
- 如申請專利範圍第6項所述之工作負載感知的輸入/輸出調度器,其中該中等大小為8KB。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104112084A TWI509411B (zh) | 2015-04-15 | 2015-04-15 | 軟體定義混合儲存系統中之工作負載感知的輸入/輸出調度器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104112084A TWI509411B (zh) | 2015-04-15 | 2015-04-15 | 軟體定義混合儲存系統中之工作負載感知的輸入/輸出調度器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI509411B true TWI509411B (zh) | 2015-11-21 |
TW201636842A TW201636842A (zh) | 2016-10-16 |
Family
ID=55220160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104112084A TWI509411B (zh) | 2015-04-15 | 2015-04-15 | 軟體定義混合儲存系統中之工作負載感知的輸入/輸出調度器 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI509411B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244209A1 (en) * | 2007-03-27 | 2008-10-02 | Seelam Seetharami R | Methods and devices for determining quality of services of storage systems |
US8346935B2 (en) * | 2010-01-15 | 2013-01-01 | Joyent, Inc. | Managing hardware resources by sending messages amongst servers in a data center |
US20140281329A1 (en) * | 2008-09-26 | 2014-09-18 | Netapp, Inc. | Priority Command Queues for Low Latency Solid State Drives |
US8996450B1 (en) * | 2011-12-31 | 2015-03-31 | Teradata Us, Inc. | System and method for allocating resources in a mixed SSD and HDD storage environment |
-
2015
- 2015-04-15 TW TW104112084A patent/TWI509411B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244209A1 (en) * | 2007-03-27 | 2008-10-02 | Seelam Seetharami R | Methods and devices for determining quality of services of storage systems |
US20140281329A1 (en) * | 2008-09-26 | 2014-09-18 | Netapp, Inc. | Priority Command Queues for Low Latency Solid State Drives |
US8346935B2 (en) * | 2010-01-15 | 2013-01-01 | Joyent, Inc. | Managing hardware resources by sending messages amongst servers in a data center |
US8996450B1 (en) * | 2011-12-31 | 2015-03-31 | Teradata Us, Inc. | System and method for allocating resources in a mixed SSD and HDD storage environment |
Also Published As
Publication number | Publication date |
---|---|
TW201636842A (zh) | 2016-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9575664B2 (en) | Workload-aware I/O scheduler in software-defined hybrid storage system | |
US10798207B2 (en) | System and method for managing application performance | |
US10318467B2 (en) | Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system | |
US10185592B2 (en) | Network storage device using dynamic weights based on resource utilization | |
US10387202B2 (en) | Quality of service implementation in a networked storage system with hierarchical schedulers | |
US9436389B2 (en) | Management of shared storage I/O resources | |
US8327103B1 (en) | Scheduling data relocation activities using configurable fairness criteria | |
US8959249B1 (en) | Cooperative cloud I/O scheduler | |
KR101086514B1 (ko) | 연속 매체 우선순위 인식 저장장치 스케줄러 | |
US8424007B1 (en) | Prioritizing tasks from virtual machines | |
US20140173620A1 (en) | Resource allocation method and resource management platform | |
US20070156955A1 (en) | Method and apparatus for queuing disk drive access requests | |
US10810143B2 (en) | Distributed storage system and method for managing storage access bandwidth for multiple clients | |
US11093352B2 (en) | Fault management in NVMe systems | |
KR102428091B1 (ko) | 키 밸류 장치를 위한 애플리케이션 인식 입출력 완료 모드 변환기의 방법 | |
US8301805B2 (en) | Managing I/O request in a storage system | |
US9836246B2 (en) | Storage management device, performance adjustment method, and computer-readable recording medium | |
US10877790B2 (en) | Information processing apparatus, control method and storage medium | |
US10592107B2 (en) | Virtual machine storage management queue | |
CN113316767A (zh) | 处理器处的松弛度感知、动态优先级变化 | |
EP3293625B1 (en) | Method and device for accessing file, and storage system | |
CN106155810B (zh) | 软件定义混合储存系统中工作负载感知的输入输出调度器 | |
US8245229B2 (en) | Temporal batching of I/O jobs | |
TWI509411B (zh) | 軟體定義混合儲存系統中之工作負載感知的輸入/輸出調度器 | |
JP6848278B2 (ja) | ストレージ管理装置、性能調整方法及び性能調整プログラム |