一種應用于SCSI目標器的QoS調度器及調度方法
【技術領域】
[0001]本發明涉及存儲技術領域,特別涉及一種應用于SCSI目標器的QoS調度器及調度方法。
【背景技術】
[0002]目前,SAN(SAN,即Storage Area Network,存儲區域網絡)是一種高速存儲網絡,通常以SCSI協議(SCSI,即Small Computer System Interface,小型計算機系統接口)作為存儲訪問協議,支持服務器與存儲設備之間的直接高速數據傳輸。然而,目前的SCSI目標器只支持采用“先來先服務”的方式,對服務器發送的10(10,即Input/Output,輸入輸出)請求進行處理。這樣,如果存在兩個或兩個以上的服務器在同一時段內,向SCSI目標器發起10請求,則會導致服務器之間發生對系統處理能力資源的自然爭搶,導致了 10請求處理進程的混亂。
[0003]綜上所述可以看出,如何避免服務器之間發生對系統處理能力資源的自然爭搶是目前亟待解決的問題。
【發明內容】
[0004]有鑒于此,本發明的目的在于提供一種應用于SCSI目標器的QoS調度器及調度方法,避免了服務器之間發生對系統處理能力資源的自然爭搶。其具體方案如下:
[0005]—種應用于SCSI目標器的QoS調度器,所述SCSI目標器包括接口模塊、SCSI指令處理模塊和存儲模塊;所述QoS調度器包括:
[0006]10存儲隊列集,用于與所述接口模塊連接,包括N個10存儲隊列,N為正整數,當所述接口模塊接收到服務器發送的10數據時,將該10數據保存至相應的10存儲隊列,其中,服務器與10存儲隊列之間呈一一對應關系;
[0007]監視單元,用于對當前所述10存儲隊列集和存儲系統的運行狀態進行實時監視,根據實時監視結果,對所述10存儲隊列集中每一個10存儲隊列的調度優先級進行相應的調整,得到相應的QoS調度策略;
[0008]QoS調度單元,用于根據所述QoS調度策略中記錄的每一個10存儲隊列的調度優先級的高低順序,依次從所述10存儲隊列集的各個10存儲隊列中取出相應的10數據,并將該10數據下發至所述SCSI指令處理模塊,以使所述SCSI指令處理模塊對該10數據進行相應的處理并將處理結果發送至所述存儲模塊。
[0009]優選的,所述SCSI目標器為L10、SCST或TGT。
[0010]優選的,所述接口模塊為ISCSI接口或FC接口。
[0011]優選的,所述QoS調度器還包括:
[0012]控制器,用于為用戶提供QoS管理接口,通過所述QoS管理接口獲取用戶根據自身需要發送的QoS調整命令,并利用所述QoS調整命令,對所述10存儲隊列集中每一個10存儲隊列的調度優先級進行相應的調整,相應地得到符合用戶需求的QoS調度策略。
[0013]優選的,所述QoS調度單元,還用于根據所述符合用戶需求的QoS調度策略中記錄的每一個10存儲隊列的調度優先級的高低順序,依次從所述10存儲隊列集的各個10存儲隊列中取出相應的10數據,并將該10數據下發至所述SCSI指令處理模塊,以使所述SCSI指令處理模塊對該10數據進行相應的處理并將處理結果發送至所述存儲模塊。
[0014]本發明還公開了一種應用于SCSI目標器的QoS調度方法,所述SCSI目標器包括接口模塊、SCSI指令處理模塊和存儲模塊;所述QoS調度方法包括:
[0015]當所述接口模塊接收到服務器發送的10數據時,將該10數據保存至10存儲隊列集中相應的10存儲隊列,所述10存儲隊列集包括N個10存儲隊列,N為正整數;其中,月艮務器與10存儲隊列之間呈一一對應關系;
[0016]對當前所述10存儲隊列集和存儲系統的運行狀態進行實時監視,根據實時監視結果,對所述10存儲隊列集中每一個10存儲隊列的調度優先級進行相應的調整,得到相應的QoS調度策略;
[0017]根據所述QoS調度策略中記錄的每一個10存儲隊列的調度優先級的高低順序,依次從所述10存儲隊列集的各個10存儲隊列中取出相應的10數據,并將該10數據下發至所述SCSI指令處理模塊,以使所述SCSI指令處理模塊對該10數據進行相應的處理并將處理結果發送至所述存儲模塊。
[0018]優選的,所述SCSI目標器為L10、SCST或TGT。
[0019]優選的,所述接口模塊為ISCSI接口或FC接口。
[0020]優選的,所述QoS調度方法還包括:
[0021 ] 為用戶提供QoS管理接口,通過所述QoS管理接口獲取用戶根據自身需要發送的QoS調整命令,并利用所述QoS調整命令,對所述10存儲隊列集中每一個10存儲隊列的調度優先級進行相應的調整,相應地得到符合用戶需求的QoS調度策略。
[0022]優選的,所述QoS調度方法還包括:
[0023]根據所述符合用戶需求的QoS調度策略中記錄的每一個10存儲隊列的調度優先級的高低順序,依次從所述10存儲隊列集的各個10存儲隊列中取出相應的10數據,并將該10數據下發至所述SCSI指令處理模塊,以使所述SCSI指令處理模塊對該10數據進行相應的處理并將處理結果發送至所述存儲模塊。
[0024]本發明中,QoS調度器包括10存儲隊列集、監視單元和QoS調度單元;其中,10存儲隊列集用于與接口模塊連接,包括N個10存儲隊列,當接口模塊接收到服務器發送的10數據時,將該10數據保存至相應的10存儲隊列,其中,服務器與10存儲隊列之間呈一一對應關系;監視單元用于對當前10存儲隊列集和存儲系統的運行狀態進行實時監視,根據實時監視結果,對10存儲隊列集中每一個10存儲隊列的調度優先級進行相應的調整,得到相應的QoS調度策略;QoS調度單元用于根據QoS調度策略中記錄的每一個10存儲隊列的調度優先級的高低順序,依次從10存儲隊列集的各個10存儲隊列中取出相應的10數據,并將該10數據下發至SCSI指令處理模塊,以使SCSI指令處理模塊對該10數據進行相應的處理并將處理結果發送至存儲模塊。可見,本發明中,QoS調度器中的10存儲隊列集包括N個10存儲隊列,并且每一個10存儲隊列與每臺服務器之間一一對應,每一個10存儲隊列存儲與其對應的服務器發送過來的10數據,而監視單元則可以對10存儲隊列集中每一個10存儲隊列的調度優先級進行調整,得到相應的QoS調度策略,后續便可根據上述QoS調度策略,依次對各個10存儲隊列中存儲的10數據進行處理,從而避免了服務器之間發生對系統處理能力資源的自然爭搶,消除了原先10請求處理進程的混亂局面。
【附圖說明】
[0025]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
[0026]圖1為本發明實施例公開的一種QoS調度器的應用結構示意圖;
[0027]圖2為本發明實施例公開的一種具體的QoS調度器的應用結構示意圖;
[0028]圖3為本發明實施例公開的一種應用于SCSI目標器的QoS調度方法流程圖。
【具體實施方式】
[0029]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0030]本發明實施例公開了一種應用于SCSI目標器的QoS調度器,SCSI目標器包括接口模塊、SCSI指令處理模塊和存儲模塊;具體的,上述SCSI目標器為L10(即Linux-10Target)、SCST (即 Generic SCSI Target Subsystem For Linux)或 TGT (即 Linux SCSITarget Framework)。另外,上述接口模塊具體可以是 ISCSI 接口(ISCSI,即 Internet SmallComputer System Interface)或 FC 接口(FC,即 Fibre Channel)。需要說明的是,上述 QoS指的是Quality of Service,即服務質量。
[0031]參見圖1所示,本實施例中公開的QoS調度器包括:
[0032]10存儲隊列集11,用于與接口模塊連接,包括N個10存儲隊列,N為正整數,當接口模塊接收到服務器發送的10數據時,將該10數據保存至相應的10存儲隊列;
[0033]其中,服務器與10存儲隊列之間呈一一對應關系,本實施例中,服務器的個數小于或等于N,并且每一臺服務器均有一個10存儲隊列與其對應;
[0034]監視單元12,用于對當前10存儲隊列集11和存儲系統的運行狀態進行實時監視,根據實時監視結果,對10存儲隊列集11中每一個10存儲隊列的調度優先級進行相應的調整,得到相應的QoS調度策略。
[0035]例如,可以根據上述實時監視結果,并結合10請求的緊急程度或終端用戶的重要性等因素,對10存儲隊列集11中每一個10存儲隊列的調度優先級進行相應的調整,得到相應的QoS調度策略。
[0036]QoS調度單元13,用于根據QoS調度策略中記錄的每一個10存儲隊列的調度優先級的高低順序,依次從10存儲隊列集11的各個10存儲隊列中取出相應的10數據,并將該10數據下發至SCSI指令處理模塊,以使SCSI指令處理模塊對該10數據進行相應的處理并將處理結果發送至存儲模塊。
[0037]本發明實施例中,QoS調度器包括10存儲隊列集、監視單元和QoS調度單元;其中,10存儲隊列集用于與接口模塊連接,包括N個10存儲隊列,當接口模塊接收到服務器發送的10數據時,將該10數據保存至相應的10存儲隊列,其中,服務器與10存儲隊列之間呈一一對應關系;監視單元用于對當前10存儲隊列集和存儲系統的運行狀態進行實時監視,根據實時監視結果,對10存儲隊列集中每一個10存儲隊列的調度優先級進行相應的調整,得到相應的QoS調度策略;QoS調度單元用于根據QoS調度策略中記錄的每一個10存儲隊列的調度優先級的高低順序,依次從10存儲隊列集的各個10存儲隊列中取出相應的10數據,并將該10數據下發至SCSI指令處理模塊,以使SCSI指令處理模塊對該10數據進行相應的處理并將處理結果發送至存儲模塊。
[0038]可見,本發明實施例中,QoS調度器中的10存儲隊列集包括N個10存儲