專利名稱:一種多種存儲協(xié)議下的統(tǒng)一服務系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及計算機技術領域,具體地說是一種多種存儲協(xié)議下的統(tǒng)一服務系統(tǒng)。
背景技術:
在實際應用中對大容量存儲的需求促使了 RAID技術的誕生,并形成了磁盤陣列產品,目前磁盤陣列中支持的協(xié)議主要有ISCSI (互聯(lián)網(wǎng)小型計算機系統(tǒng)接口)和FCP協(xié)議。iSCSI是一種在TCP/IP上進行數(shù)據(jù)塊傳輸?shù)臉藴?,可以實現(xiàn)在IP網(wǎng)絡上運行SCSI協(xié)議;FCP協(xié)議是光纖通道和上層應用之間的接口,它是在光纖信道上的SCSI接口協(xié)議。目前還出現(xiàn)了 SRP協(xié)議。SRP協(xié)議是IB( Infiniband) SAN的一種,其主要作用是把SCSI協(xié)議的命令和數(shù)據(jù)通過RDMA的方式在Infiniband網(wǎng)絡上傳輸;隨著互聯(lián)技術的發(fā)展,以后還會出現(xiàn)其它的協(xié)議,每出現(xiàn)一種新的協(xié)議,都要開發(fā)一種新的協(xié)議服務支持。在現(xiàn)有的協(xié)議設計中,每種協(xié)議服務都是單獨實現(xiàn)的,如IET,F(xiàn)C-TARGET,這些服務雖然有通用的數(shù)據(jù)讀寫處理過程,但沒有結合點,不能統(tǒng)一對外提供服務。
發(fā)明內容
本發(fā)明的目的是提供一種多種存儲協(xié)議下的統(tǒng)一服務系統(tǒng)。本發(fā)明的目的是按以下方式實現(xiàn)的,系統(tǒng)包括多協(xié)議解釋驅動模塊、訪問權限控制模塊、通用中間層模塊、后端處理模塊,其中:
多協(xié)議解釋驅動模塊,負責為主機總線適配器HBA接收或者發(fā)送消息,如接收來自訪問用戶的消息或將消息發(fā)送到訪問用戶端。對于每種傳輸協(xié)議,都有相應的協(xié)議解釋驅動,它的實現(xiàn)完全是協(xié)議相關的;
訪問權限控制模塊,提供了權限控制功能,對每個訪問用戶會有相應的訪問權限,有的訪問用戶訪問一組設備,而另外的訪問用戶或訪問另一組設備,它會創(chuàng)建一個邏輯單元的數(shù)據(jù)結構,每個邏輯單元創(chuàng)建一個SCSI命令的消息隊列,為了控制哪些訪問用戶能夠訪問邏輯單元,有一個訪問控制鏈表來控制哪些訪問用戶能夠訪問哪些邏輯單元;
通用中間層模塊,進行通用的命令處理,會話以及命令的創(chuàng)建,完成邏輯單元到設備的轉換,并將這些命令根據(jù)不同的設備類型分發(fā)到不同的設備上去,并最終調用后端設備句柄來完成命令的處理。
后端處理模塊由SCSI命令處理器來組成,它負責SCSI命令執(zhí)行。當邏輯單元的SCSI命令隊列接收到一個新命令時,SCSI命令處理器調用相應的后端設備句柄來完成這個命令。—種多種存儲協(xié)議的統(tǒng)一服務方法,其特征在于訪問用戶在需要建立與目標器的連接時,首先要加載多協(xié)議解釋模塊模塊,完成協(xié)議解釋驅動的注冊,當協(xié)議解釋驅動接收到訪問用戶的連接請求時,會調用中間層函數(shù)來完成會話的創(chuàng)建,此后訪問用戶就開始與多協(xié)議統(tǒng)一的命令交互過程,訪問用戶端就能看到目標器提供的后端磁盤,并對它進行格式化讀寫,當協(xié)議解釋驅動把協(xié)議命令傳遞給中間層處理時,中間層會分配命令并初始化相應的域,提取出相應的邏輯單元號并返回,其過程如下:
(1)分配命令結構,設置命令的狀態(tài),命令的缺省任務屬性,命令的超時間隔,命令的引用計數(shù);
(2)初始化其協(xié)議解釋驅動指針以及協(xié)議解釋驅動操作函數(shù)表;
(3)增加會話的命令計數(shù),將其加入到會話的命令隊列中,并根據(jù)命令的邏輯單元號來查找相應的傳輸設備,確定命令的數(shù)據(jù)傳輸方向,初始化命令的后端設備,命令的scsi設備;
(4)從CDB結構中解釋出操作碼、傳輸?shù)臄?shù)據(jù)長度,并調用相應的后端設備方法來請求數(shù)據(jù)緩存;
(5)如果命令并不需要數(shù)據(jù)傳輸,則由多協(xié)議中間層來處理;
(6)如果命令是讀命令,則分配相應的內存空間,并將命令傳遞給后端設備來處理;
(7)如果是寫命令,則分配相應的空間,調用協(xié)議解釋驅動的準備傳輸處理方法,告訴協(xié)議解釋驅動空間已經(jīng)準備好了并且啟動數(shù)據(jù)傳輸,當協(xié)議解釋驅動獲得所有的數(shù)據(jù)后,然后調用接收數(shù)據(jù)方法來處理;
(8)協(xié)議解釋驅動發(fā)送響應,當發(fā)送完響應后,協(xié)議解釋驅動通知中間層可以釋放命令以及相應的數(shù)據(jù)緩存;
協(xié)議部分只負責數(shù)據(jù)的傳輸,數(shù)據(jù)的通用處理都在中間層來處理,后端處理磁盤讀寫,以此實現(xiàn)多種存儲協(xié)議下的統(tǒng)一服務,實施統(tǒng)一管理,能夠同時支持多種協(xié)議,且易于擴展。本發(fā)明的有益效果是:現(xiàn)存的協(xié)議服務都單獨存在,不能統(tǒng)一對外提供服務,并且它們之間沒有結合點。本文發(fā)明了一種多協(xié)議統(tǒng)一服務方法,能夠將SCSI命令通過不同的傳輸協(xié)議(如FCP,iSCSI,SRP協(xié)議等)傳輸給儲存后端設備來處理。在本發(fā)明的多協(xié)議統(tǒng)一服務方法中,有效地將各種IO的通用處理結合在一起,對其進行了抽象,提取了中間層的概念,并將具體的協(xié)議實現(xiàn)與通用的命令處理相分離,并能同時對外提供ISCSI,F(xiàn)C, SRP協(xié)議服務。
圖1是多種存儲協(xié)議下的統(tǒng)一服務系統(tǒng)不意 圖2出SCSI命令處理流程圖。
具體實施例方式參照說明書附圖對本發(fā)明的方法作以下詳細地說明。如附圖所示,本發(fā)明磁盤陣列中一種多種存儲協(xié)議下的統(tǒng)一服務系統(tǒng)及其方法。系統(tǒng)包括多協(xié)議解釋驅動模塊、訪問權限控制模塊、通用中間層模塊、后端處理模塊。其中:
多協(xié)議解釋驅動模塊負責為主機總線適配器HBA接收或者發(fā)送消息,如接收來自訪問用戶的消息或將消息發(fā)送到訪問用戶端。對于每種傳輸協(xié)議,都有相應的協(xié)議解釋驅動,它的實現(xiàn)完全是協(xié)議相關的。訪問權限控制模塊,提供了權限控制功能,對每個訪問用戶會有相應的訪問權限。有的訪問用戶可以訪問一組設備,而另外的訪問用戶可以訪問另一組設備。它會創(chuàng)建一個邏輯單元的數(shù)據(jù)結構,每個邏輯單元創(chuàng)建一個SCSI命令的消息隊列,為了控制哪些訪問用戶能夠訪問邏輯單元,有一個訪問控制鏈表來控制哪些訪問用戶能夠訪問哪些邏輯單元。通用中間層模塊,進行通用的命令處理,會話以及命令的創(chuàng)建,完成邏輯單元到設備的轉換,并將這些命令根據(jù)不同的設備類型分發(fā)到不同的設備上去。并最終調用后端設備句柄來完成命令的處理。
后端處理模塊由SCSI命令處理器來組成,它負責SCSI命令執(zhí)行。當邏輯單元的SCSI命令隊列接收到一個新命令時,SCSI命令處理器調用相應的后端設備句柄來完成這個命令。
實施例如圖2所示,訪問用戶在需要建立與目標器的連接時,首先要加載多協(xié)議解釋模塊模塊,完成協(xié)議解釋驅動的注冊過程,當協(xié)議解釋驅動接收到訪問用戶的連接請求時,會調用中間層函數(shù)來完成會話的創(chuàng)建,此后訪問用戶就可以開始與多協(xié)議統(tǒng)一的命令交互過程,訪問用戶端就能看到目標器提供的后端磁盤,并可以對它進行格式化讀寫。當協(xié)議解釋驅動把協(xié)議命令傳遞給中間層處理時,中間層會分配命令并初始化相應的域,提取出相應的邏輯單元號并返回。其過程如下:
(1)分配命令結構,設置命令的狀態(tài),命令的缺省任務屬性,命令的超時間隔,命令的引用計數(shù);
(2)初始化其協(xié)議解釋驅動指針以及協(xié)議解釋驅動操作函數(shù)表;
(3)增加會話的命令計數(shù),將其加入到會話的命令隊列中,并根據(jù)命令的邏輯單元號來查找相應的傳輸設備,確定命令的數(shù)據(jù)傳輸方向,初始化命令的后端設備,命令的scsi設備;
(4)從CDB結構中解釋出操作碼、傳輸?shù)臄?shù)據(jù)長度,并調用相應的后端設備方法來請求數(shù)據(jù)緩存
(5)如果命令并不需要數(shù)據(jù)傳輸,則由多協(xié)議中間層來處理
(6)如果命令是讀命令,則分配相應的內存空間,并將命令傳遞給后端設備來處理;
(7)如果是寫命令,則分配相應的空間,調用協(xié)議解釋驅動的準備傳輸處理方法,告訴協(xié)議解釋驅動空間已經(jīng)準備好了并且可以啟動數(shù)據(jù)傳輸。當協(xié)議解釋驅動獲得所有的數(shù)據(jù)后,然后調用接收數(shù)據(jù)方法來處理;
(8)協(xié)議解釋驅動發(fā)送響應,當發(fā)送完響應后,協(xié)議解釋驅動通知中間層可以釋放命令以及相應的數(shù)據(jù)緩存。通過這種方式,協(xié)議部分只專門負責數(shù)據(jù)的傳輸,數(shù)據(jù)的通用處理都在中間層來處理,后端專門處理磁盤讀寫,這樣就完成了多種存儲協(xié)議的統(tǒng)一服務的實現(xiàn),與單獨實現(xiàn)相比,易于維護,統(tǒng)一管理,能夠同時支持多種協(xié)議,且易于擴展。除說明書所述的技術特征外,均為本專業(yè)技術人員的已知技術。
權利要求
1.一種多種存儲協(xié)議下的統(tǒng)一服務系統(tǒng),其特征在于,系統(tǒng)包括多協(xié)議解釋驅動模塊、訪問權限控制模塊、通用中間層模塊、后端處理模塊,其中: 多協(xié)議解釋驅動模塊,負責為主機總線適配器HBA接收或者發(fā)送消息,如接收來自訪問用戶的消息或將消息發(fā)送到訪問用戶端,對于每種傳輸協(xié)議,都有相應的協(xié)議解釋驅動,它的實現(xiàn)完全是協(xié)議相關的; 訪問權限控制模塊,提供了權限控制功能,對每個訪問用戶會有相應的訪問權限,有的訪問用戶訪問一組設備,而另外的訪問用戶或訪問另一組設備,它會創(chuàng)建一個邏輯單元的數(shù)據(jù)結構,每個邏輯單元創(chuàng)建一個SCSI命令的消息隊列,為了控制哪些訪問用戶能夠訪問邏輯單元,有一個訪問控制鏈表來控制哪些訪問用戶能夠訪問哪些邏輯單元; 通用中間層模塊,進行通用的命令處理,會話以及命令的創(chuàng)建,完成邏輯單元到設備的轉換,并將這些命令根據(jù)不同的設備類型分發(fā)到不同的設備上去,并最終調用后端設備句柄來完成命令的處理; 后端處理模塊由SCSI命令處理器來組成,它負責SCSI命令執(zhí)行,當邏輯單元的SCSI命令隊列接收到一個新命令時,SCSI命令處理器調用相應的后端設備句柄來完成這個命令。
2.根據(jù)權利要求1所述的方法,其特征在于訪問用戶在需要建立與目標器的連接時,首先要加載多協(xié)議解釋模塊模塊,完成協(xié)議解釋驅動的注冊,當協(xié)議解釋驅動接收到訪問用戶的連接請求時,會調用中間層函數(shù)來完成會話的創(chuàng)建,此后訪問用戶就開始與多協(xié)議統(tǒng)一的命令交互過程,訪問用戶端就能看到目標器提供的后端磁盤,并對它進行格式化讀寫,當協(xié)議解釋驅動把協(xié)議命令傳遞給中間層處理時,中間層會分配命令并初始化相應的域,提取出相應的邏輯單元號并返回,其過程如下: (1)分配命令結構,設置命令的狀態(tài),命令的缺省任務屬性,命令的超時間隔,命令的引用計數(shù); (2)初始化其協(xié)議解釋驅動指針以及協(xié)議解釋驅動操作函數(shù)表; (3)增加會話的命令計數(shù),將其加入到會話的命令隊列中,并根據(jù)命令的邏輯單元號來查找相應的傳輸設備,確定命令的數(shù)據(jù)傳輸方向,初始化命令的后端設備,命令的scsi設備; (4)從CDB結構中解釋出操作碼、傳輸?shù)臄?shù)據(jù)長度,并調用相應的后端設備方法來請求數(shù)據(jù)緩存; (5)如果命令并不需要數(shù)據(jù)傳輸,則由多協(xié)議中間層來處理; (6)如果命令是讀命令,則分配相應的內存空間,并將命令傳遞給后端設備來處理; (7)如果是寫命令,則分配相應的空間,調用協(xié)議解釋驅動的準備傳輸處理方法,告訴協(xié)議解釋驅動空間已經(jīng)準備好了并且啟動數(shù)據(jù)傳輸,當協(xié)議解釋驅動獲得所有的數(shù)據(jù)后,然后調用接收數(shù)據(jù)方法來處理; (8)協(xié)議解釋驅動發(fā)送響應,當發(fā)送完響應后,協(xié)議解釋驅動通知中間層可以釋放命令以及相應的數(shù)據(jù)緩存。
3.根據(jù)權利要求2所述的方法,其特征在于,協(xié)議部分只負責數(shù)據(jù)的傳輸,數(shù)據(jù)的通用處理都在中間層來處理,后端處理磁盤讀寫,以此實現(xiàn)多種存儲協(xié)議下的統(tǒng)一服務,實施統(tǒng)一管理,能夠同時支持多種協(xié)議,且易于擴展。
全文摘要
本發(fā)明提供一種多種存儲協(xié)議下的統(tǒng)一服務系統(tǒng),系統(tǒng)包括多協(xié)議解釋驅動模塊、訪問權限控制模塊、通用中間層模塊、后端處理模塊,IO處理的協(xié)議部分只負責數(shù)據(jù)的傳輸,數(shù)據(jù)的通用處理都在中間層來處理,后端專門處理磁盤讀寫?,F(xiàn)存的協(xié)議服務都單獨存在,不能統(tǒng)一對外提供服務,并且它們之間沒有結合點。本發(fā)明的多協(xié)議統(tǒng)一服務方法,能夠將SCSI命令通過不同的傳輸協(xié)議(如FCP,iSCSI,SRP協(xié)議等)傳輸給儲存后端設備來處理。該系統(tǒng)能夠有效地將各種IO的通用處理結合在一起,對其進行了抽象,提取了中間層的概念,并將具體的協(xié)議實現(xiàn)與通用的命令處理相分離,并能同時對外提供ISCSI,FC,SRP協(xié)議服務。
文檔編號G06F3/06GK103176751SQ20131006677
公開日2013年6月26日 申請日期2013年3月4日 優(yōu)先權日2013年3月4日
發(fā)明者王恩東, 呂爍, 文中領, 楊帆 申請人:浪潮電子信息產業(yè)股份有限公司