TWI426385B - 支援大容量儲存裝置存取之方法與系統 - Google Patents
支援大容量儲存裝置存取之方法與系統 Download PDFInfo
- Publication number
- TWI426385B TWI426385B TW99121328A TW99121328A TWI426385B TW I426385 B TWI426385 B TW I426385B TW 99121328 A TW99121328 A TW 99121328A TW 99121328 A TW99121328 A TW 99121328A TW I426385 B TWI426385 B TW I426385B
- Authority
- TW
- Taiwan
- Prior art keywords
- storage device
- capacity
- command
- host system
- physical device
- Prior art date
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明係有關於一種存取儲存裝置之方法,特別有關於在作業系統上支援大容量儲存裝置存取之方法與系統。
一般而言,驅動習知之儲存元件所採用之方法,透過匯流排驅動程式將小型電腦系統界面(Small Computer System Interface,SCSI)指令傳送給儲存元件,再經由儲存元件內之微處理器視需要呼叫特定之指令以進行要求之工作。
SCSI採用邏輯區塊位址(Logical Block Addressing,LBA)格式,LBA是一種定址模式;從號碼0開始編號作儲存區塊的定址,亦即第一儲存區塊LBA=0,第二儲存區塊LBA=1,依此類推。
上述之定址模式用於取代原先軟體作業系統(Operating System)必須面對儲存設備硬體架構的方式,例如硬碟中的磁柱-磁頭-磁區(Cylinders-heads-sectors,CHS)定址模式,儲存區塊必須以硬碟上某個磁柱、磁頭以及磁區的硬體位置所組成的位址來指定。硬碟採用分割表(Partition Table)保存硬碟中的分割相關之資訊。分割表位於硬碟的第一實際磁區(即為512 bytes區域)即主啟動記錄(Master Boot Record,MBR)的區域中。其中分割表內用來儲存磁區數(sector count)佔用4個bytes,以表示該分割磁區總數,即LBA之區塊定址數目。
無論驅動程式還是任何以低階存取磁碟的應用程式(例如資料庫軟體)通常都不再需要CHS參數格式。各種要求區塊低階存取的系統呼叫把定義好的LBA傳給驅動程式;最直接的情況下(邏輯裝置與實體裝置單一對應)驅動程式只是將LBA再傳給硬體控制器。
SCSI是藉由命令描述方塊(Command Descriptor Block,CDB)送出命令給目標(Target)端,來指揮儲存元件作讀取(READ)、寫入(WRITE)資料的動作。其中目標端即為負責執行SCSI命令的裝置,例如該儲存元件。在現有的作業系統中,大部分通常使用十位元組的SCSI讀取(READ)、寫入(WRITE)指令,其中磁區的數目佔用了4個位元組(即32 bits),而每個磁區大小為512 bytes,所支援的容量即為2^32*512=2 TB。
近年來,儲存裝置的容量越來越大,當儲存裝置具有2兆位元組(Terabyte,TB)或更大的儲存容量時,使用傳統主啟動記錄MBR內之分割表以表示磁區已不敷使用。因為這個原因,傳統的Windows XP作業系統無法支援大於2 TB的儲存裝置。
因此,需要提出一種支援大容量儲存裝置之存取之方法與系統,以解決上述之問題。
有鑑於此,本發明之目的在於提供一種支援大容量儲存裝置存取之方法與系統,其可使傳統的作業系統支援容量大於2 TB儲存裝置。
為達上述之目的,本發明提供一種支援大容量儲存裝置存取之方法。該方法包括:連接一儲存裝置至一主機系統;該主機系統執行一初始化步驟,以建立複數個實體裝置物件以對應該儲存裝置,其中每一該些實體裝置物件之容量不大於一限制容量;該主機系統發出一命令以存取至少一該些實體裝置物件;以及一轉換單元轉換該命令之存取位址,以使該主機系統透過該些實體裝置物件存取該儲存裝置。
其中該初始化步驟係包含該主機系統對該儲存裝置發出小型電腦系統界面(SCSI)之一命令描述方塊,以執行一讀取容量命令。
本發明之一較佳實施例中,其中該初始化包含下列步驟:
(a)該儲存裝置對應該讀取容量命令回報該儲存裝置之超過該限制容量之一容量資訊;
(b)該儲存裝置建立一邏輯單元號,並回報至該主機系統;以及
(c)該主機系統依據該容量資訊建立該些實體裝置物件。
本發明之一較佳實施例中,當該容量資訊等於該限制容量的整數倍時,該些實體裝置物件的數量係為該容量資訊除以該限制容量之商數,且每一該些實體裝置物件等於該限制容量。另外,當該容量資訊不等於該限制容量的整數倍時,該些實體裝置物件的該數量係為該容量資訊除以該限制容量之商數加一,且該商數對應的每一該些實體裝置物件等於該限制容量。
本發明之一較佳實施例中,其中該轉換單元轉換該命令之存取位址步驟中,更包括轉換該命令之位元組,例如將一第一命令描述方塊轉換成一第二命令描述方塊來對該儲存裝置做讀取、寫入之動作。
該轉換單元係以一映射(mapping)方式,將該第一命令描述方塊轉換成之該第二命令描述方塊。其中在相鄰之兩個該實體裝置物件中,兩個相同的該第一命令描述方塊在映射成兩個該第二命令描述方塊時,該兩個第二命令描述方塊之邏輯區塊位址位置訊息具有該限制容量的一偏移值。
根據本發明之支援大容量儲存裝置之存取之方法,該轉換單元將主機系統對各個實體裝置物件發出的命令描述方塊映射成實際該儲存裝置的存取命令後,即可讀取該儲存裝置,達到本發明之可支援大容量儲存裝置續取的目的。
本發明之第一較佳實施例藉由所附圖式與下面之說明作詳細描述,在不同的圖式中,相同的元件符號表示相同或相似的元件。
請參考第1圖以及第2圖,其中第1圖繪示本發明之第一較佳實施例中支援大容量儲存裝置存取之方法之流程圖、第2圖繪示第一較佳實施例之轉換單元存取儲存裝置之系統架構圖。該支援大容量儲存裝置存取之方法,用於支援主機系統存取容量大於一限制容量之儲存裝置,該限制容量例如為2TB,該方法包括下列步驟:
執行步驟S5,連接一儲存裝置50至一主機系統10,然後執行步驟S10。
步驟S10中,該主機系統執行一初始化步驟,以建立複數個實體裝置物件(Physical Device Object,PDO)35以對應該儲存裝置50,其中每一該些實體裝置物件PDO 35之容量不大於一限制容量,隨後執行步驟S20。
該初始化步驟係包含該主機系統10透過匯流排驅動程式對該儲存裝置50發出小型電腦系統界面(SCSI)之一命令描述方塊(CDB),以執行一讀取容量命令(READ CAPACITY),其中SCSI讀取容量命令係用於對一裝置獲得容量資訊。
以下將詳細說明步驟S10的初始化,請參考第3圖,第3圖繪示本發明之第一較佳實施例之初始化流程圖。該初始化包含下列步驟:
執行步驟S100,判斷該儲存裝置50之容量資訊是否大於該限制容量,然後執行步驟S110。舉例來說,該主機系統10對該儲存裝置50發出十位元組的SCSI讀取容量(READ CAPACITY(10))命令,其中該讀取容量命令的運算碼為0x25。
該主機系統10判斷該儲存裝置50是否容量超過該限制容量,如果是,執行步驟S110,如果否,則以習知存取方法實施。需注意的是,本發明之第一較佳實施例之儲存裝置50係大於一限制容量(例如2TB)之儲存裝置,因此判斷結果皆為是,從而繼續執行步驟S110。
進一步地說,該主機系統10判斷該儲存裝置50是否容量超過2TB係判斷該十位元組的SCSI的讀取容量命令的回傳值是否為0xFFFFFFFE,其中0xFFFFFFFE為一十六進位制數值,其代表該儲存裝置50具有的磁區個數,一個磁區大小如果為512 bytes,則表示該儲存裝置50具有至少2 TB的容量。更進一步的說,該回傳值如不是0xFFFFFFFF,例如0xFFFFFFF2,則代表該儲存裝置50的容量小於2 TB,則不必再執行下述步驟,主機系統10可直接透過驅動程式12對該儲存裝置50直接下指令,主機系統10存取方式如習知方法一樣。
步驟S110中,該儲存裝置50對應該讀取容量命令回報該儲存裝置50之超過該限制容量之一容量資訊,然後執行步驟S120。例如對該大於2 TB的儲存裝置50發出十六位元組的SCSI讀取容量(READ CAPACITY(16))命令,該操作碼為0x9E。需注意的是,該十六位元組的讀取容量命令可判斷64 bits個磁區數,如以一磁區容量為512 bytes的話,則可判斷2^64*512 bytes如此大的容量且遠大於2 TB的容量。
步驟S120中,該儲存裝置50建立一邏輯單元號0(logical unit number,LUN 0),並回報至該主機系統10,然後執行步驟S130。其中該邏輯單元號(LUN 0)對應的是該儲存裝置50。
步驟S130中,該主機系統依據該容量資訊建立該些實體裝置物件。具體地說,當該容量資訊等於該限制容量的整數倍時,該些實體裝置物件(PDO)35的數量係為該容量資訊除以該限制容量之商數,且每一該些實體裝置物件(PDO) 35等於該限制容量。另外,當該容量資訊不等於該限制容量的整數倍時,該些實體裝置物件(PDO) 35的該數量係為該容量資訊除以該限制容量之商數加一,且該商數對應的每一該些實體裝置物件(PDO) 35等於該限制容量。
舉例而言,該轉換單元將該大於2 TB的儲存裝置50劃分為數個實體裝置物件(PDO) 35,例如實體裝置物件(PDO) 35(1)、實體裝置物件(PDO) 35(2)、…以及實體裝置物件(PDO) 35(N)。其中該些實體裝置物件(PDO)之容量均不大於2 TB,例如實體裝置物件(PDO) 35(1)、實體裝置物件(PDO) 35(2)、…以及實體裝置物件(PDO) 35(N-1)之容量均為2 TB,而實體裝置物件(PDO) 35(N)之容量小於2 TB之方式劃分。
該些容量為2 TB之實體裝置物件(PDO) 35之數量係該儲存裝置50容量除以2 TB之商數,容量小於2 TB之實體裝置物件(PDO) 35之容量係該儲存裝置50容量除以2 TB之餘數。舉例來說,如果該儲存裝置50經步驟S110判斷出實際容量為7 TB,則7÷2=3餘1。因此可得實體裝置物件(PDO) 35(1)、實體裝置物件(PDO) 35(2)、實體裝置物件(PDO) 35(3)、及實體裝置物件(PDO) 35(4),其中實體裝置物件(PDO) 35(1)、實體裝置物件(PDO) 35(2)、實體裝置物件(PDO) 35(3)之容量為2 TB,實體裝置物件(PDO) 35(4)之容量為1 TB。
繼續參考第1圖,於步驟S20中,該主機系統10發出一命令以存取至少一該些實體裝置物件(PDO) 35。更進一步地說,該主機系統10存取該儲存裝置50係根據對該些實體裝置物件(PDO) 35發出SCSI之複數個命令描述方塊(CDB)來對該邏輯單元號(LUN) 0做讀取、寫入之動作。
命令描述方塊(CDB)係該主機系統10存取該些實體裝置物件(PDO)35對應的邏輯單元號(LUN)30時的存取命令(access command)。其中該命令描述方塊為第一命令描述方塊,而該第一命令描述方塊包括十位元組之讀取(READ)命令或十位元組之寫入(WRITE)命令。
於步驟S30中,一轉換單元20轉換該命令之存取位址,以透過該些實體裝置物件(PDO) 35存取該儲存裝置50。具體地說,轉換單元20接收該主機系統10向該些實體裝置物件(PDO) 35發出之第一命令描述方塊,並將其轉換為第二命令描述方塊來對該邏輯單元號(LUN) 0對應之該儲存裝置50做讀取、寫入之動作。該第二命令描述方塊包括十六位元組之讀取(READ)命令或十六位元組之寫入(WRITE)命令。
當主機系統10欲存取實體裝置物件(PDO) 35(1)時,發出十位元組的讀取命令或寫入命令(以Read(0x28)/Write(0x2A)表示)。該轉換單元20係將十位元組之第一命令描述方塊映射成十六位元組之第二命令描述方塊。例如將Read(0x28)/Write(0x2A)映射成Read(0x88)/Write(0x8A)。其中該轉換係以一對一映射(mapping)方式將對各個實體裝置物件(PDO)35的命令描述方塊(CDB)中的LBA位址映射到實際儲存裝置50中的LBA位址。
請參考第4圖,第4圖係表示SCSI的十位元組的讀取命令Read 10以及SCSI的十六位元組的讀取命令Read 16的指令碼定義。舉例來說,一個對實體裝置物件(PDO)35(1)的Read(0x28)指令碼(28 00 00000001 00 0001 00),其中按順序第0 byte“28”代表操作碼(operation code);第1 byte“00”表示保留碼(Reserved);第2-5 bytes“00000001”表示磁區數(LBA);第6 byte“00”表示保留碼(Reserved);第7-8 bytes“0001”表示轉移長度(Transfer length);第9 byte“00”表示控制(Control)。上述指令碼則代表讀取實體裝置物件(PDO)35(1)中的LBA區塊(0×00000001)的資料。而轉換單元20為了將該指令碼對應到實際的儲存裝置50中,需將該Read(0x28)指令碼轉換成Read(0x88)的指命碼(88 00 0000000000000001 00000001 00 00)其中按順序第0 byte“88”代表操作碼(operation code);第1 byte“00”表示保留碼(Reserved);第2-9 bytes“0000000000000001”表示磁區數(LBA);第10-13 bytes“00000001”表示轉移長度(Transfer length);第14 byte“00”表示保留碼(Reserved);第15 byte“00”表示控制(Control)。上述指令碼則代表讀取實際儲存裝置50中的LBA區塊(0x0000000000000001)的資料。
因此,在相鄰之兩個該實體裝置物件(PDO)35中,兩個相同的十位元組之命令描述方塊(CDB)在映射成兩個十六位元組之命令描述方塊(CDB)
時,該兩個十六位元組之命令描述方塊(CDB)具有該限制容量的位址偏移值(Offset),例如2TB的位址偏移值。舉例來說,該主機系統10發出對實體裝置物件(PDO)35(2)的Read(0x28)指令,指令碼如同對實體裝置物件(PDO)35(1)的Read(0x28)指令為(28 00 00000001 00 0001 00)。而轉換單元20為了將該指令碼對應到實際的儲存裝置50中,需將該Read(0x28)指令轉換成Read(0x88)的指命,並於中指令碼中的磁區數加上一個2 TB的位址偏移值,所得的指命碼則為(88 00 0000000100000001 00000001 00 00)。其中指令碼中磁區數表示為讀取實際儲存裝置50中的LBA區塊(0x0000000100000001)的資料。
因此,該轉換單元20將主機系統10對各個實體裝置物件(PDO)35發出的命令描述方塊(CDB)映射成實際該儲存裝置50的存取命令後,即可讀取該儲存裝置50,達到本發明之可支援大容量儲存裝置讀取的目的。
本發明另提供利用上述第一較佳實施例之支援大容量儲存裝置存取之方法之系統,請繼續參考第2圖。該系統包括儲存裝置50、主機系統10以及位於主機系統10之驅動程式12的轉換單元20。
該主機系統10連接至該儲存裝置50,用以執行一初始化步驟以建立複數個實體裝置物件(PDO)35以對應該儲存裝置50,並發出一命令以存取至少一該些實體裝置物件(PDO)35,其中每一該些實體裝置物件(PDO)35之容量不大於一限制容量。該轉換單元20設置於該主機系統10內,用以轉換該命令之存取位址,以使該主機系統10透過該些實體裝置物件(PDO)35存取該儲存裝置50。其細節已詳述於上,於此不再贅述。
於第一較佳實施例中,該儲存裝置50係一大容量儲存裝置,其容量大
於一限制容量,該限制容量例如為2 TB。儲存裝置50具有一韌體(Firmware)14以及一實體磁碟機(未圖示)。值得注意的是,該儲存裝置50例如是單一個實體大於該限制容量之儲存裝置,或是經由磁碟陣列(Redundant Array of Independent Disks,RAID)整合技術,將多個實體儲存裝置整合成大於該限制容量之儲存裝置。該主機系統10係傳統的32位元作業係統,例如Windows XP、Windows 2000、Windows 98等軟體作業系統。該轉換單元20係以驅動程式(Driver)12實施。
綜上所述,本發明第一較佳實施例之支援大容量儲存裝置存取之方法與系統係將大於2 TB之儲存裝置50劃分為數個實體裝置物件(PDO)35。當該主機系統10對該些實體裝置物件(PDO)35發出之十位元組之SCSI之命令描述方塊時,該轉換單元20將該些十位元組之SCSI之命令描述方塊映射到十六位元組之SCSI之命令描述方塊,以存取該大於2 TB之儲存裝置50。藉此解決傳統分割表不敷使用的問題。
本發明之第二較佳實施例藉由所附圖式與下面之說明作詳細描述,在不同的圖式中,相同的元件符號表示相同或相似的元件。
參考第5圖以及第6圖,其中第5圖繪示本發明之第二較佳實施例中支援大容量儲存裝置存取之方法之流程圖、第6圖繪示第二較佳實施例之轉換單元存取儲存裝置之系統架構圖。該支援大容量儲存裝置存取之方法,用於支援主機系統存取容量大於一限制容量之儲存裝置,該限制容量例如為2TB,該方法包括下列步驟:執行步驟S5,連接一儲存裝置50至一主機系統10,然後執行步驟S12。
步驟S12中,該主機系統10執行一初始化步驟以建立複數個實體裝置
物件(PDO)35,其中每一該些實體裝置物件(PDO)35之容量不大於一限制容量,隨後執行步驟S14。
步驟S14中,一轉換單元20建立對應該些該實體裝置物件(PDO)35之複數個邏輯單元號(logical unit number,LUN)30,隨後執行步驟S22。
該初始化步驟係包含該主機系統10透過匯流排驅動程式對該儲存裝置50發出小型電腦系統界面(SCSI)之一命令描述方塊(CDB),以執行一讀取容量命令(READ CAPACITY),其中SCSI讀取容量命令係用於對一裝置獲得容量資訊。
以下將詳細說明步驟S12的初始化,請參考第7圖,第7圖繪示本發明之第二較佳實施例之初始化流程圖。該初始化包含下列步驟:執行步驟S100,判斷該儲存裝置50之容量資訊是否大於該限制容量,然後執行步驟S110。步驟S110中,該儲存裝置50對應該讀取容量命令回報該儲存裝置50之超過該限制容量之一容量資訊,然後執行步驟S120。其中步驟S100以及步驟S110如前所述,於此不再贅述。
步驟S120中,該儲存裝置50依據該容量資訊建立該些邏輯單元號(LUN)30,並回報至該主機系統10,然後執行步驟S130。舉例來說,該主機系統10向該儲存裝置50發出一取得最大邏輯單元號(GetMaxLun)命令,該儲存裝置50回傳邏輯單元號(LUN)30的數量給主機系統10,使得該主機系統10辨識出該儲存裝置50有幾個邏輯單元號(LUN)30。例如取得最大邏輯單元號(GetMaxLun)命令回傳值為4,則該主機系統10認為具有4個實體裝置(LUN0,LUN1,LUN2,LUN3)。
步驟S132中,該主機系統10建立相對應於該些邏輯單元號(LUN)30
之該些實體裝置物件(PDO)35。具體地說,在SCSI介面的匯流排上,每個目標(Target)端可連接數個的邏輯單元(logical unit),每個邏輯單元擁有一個邏輯單元號LUN以作為目標端識別(Identify)之用。其中每一個邏輯單元號(LUN)30即對應一個實體裝置物件(PDO)35,該些邏輯單元號(LUN)35之號碼對應該些實體裝置物件(PDO)35後面之號碼,例如邏輯單元號(LUN1)30(1)對應實體裝置物件(PDO1)35(1)。
舉例來說,該主機系統10取得最大邏輯單元號(GetMaxLun)命令回傳值為4,則該主機系統10認為具有4個邏輯單元號(LUN0,LUN1,LUN2,LUN3),即實體裝置,則主機系統10之驅動程式12則建立4個對應的實體裝置物件(PDO)35(1)~35(4)。
同樣地,當該容量資訊等於該限制容量的整數倍時,該些邏輯單元號(LUN)30所對應之實體裝置物件(PDO)35的數量係為該容量資訊除以該限制容量之商數,且每一該些實體裝置物件(PDO)35等於該限制容量。另外,當該容量資訊不等於該限制容量的整數倍時,該些實體裝置物件(PDO)35的該數量係為該容量資訊除以該限制容量之商數加一,且該商數對應的每一該些實體裝置物件(PDO)35等於該限制容量。
另外值得注意的是,在此劃分儲存裝置50與習知之分割(Partition)不同,本發明之一較佳實施例中,該儲存裝置50所劃分之每一邏輯單元號(LUN)30於主機系統10中均視為一實體儲存裝置,每一個實體裝置物件(PDO)35對應的邏輯單元號(LUN)30均有一分割表(Partition Table)以及對應該分割表的邏輯區塊位址(LBA),並非如習知技術只能將該儲存裝置50劃分為數個邏輯磁碟區。
繼續參考第5圖,於步驟S22中,該主機系統10發出一命令以存取至少一該些實體裝置物件(PDO)35,然後執行步驟S32。更進一步地說,該主機系統10存取該儲存裝置50係根據對該些實體裝置物件(PDO)35發出SCSI之複數個命令描述方塊(CDB)來對該些邏輯單元號(LUN)30做讀取、寫入之動作。
命令描述方塊(CDB)係該主機系統10存取該些實體裝置物件(PDO)35對應的邏輯單元號(LUN)30時的存取命令(access command)。其中該些命令描述方塊包括十位元組之讀取(READ)命令或十位元組之寫入(WRITE)命令。
於步驟S32中,該轉換單元20轉換該些邏輯單元號(LUN)30所對應之位址,以使該主機系統10透過該些實體裝置物件(PDO)35存取該儲存裝置50。進一步的說,該轉換單元20轉換該些邏輯單元號(LUN)30所對應之位址係將每一該邏輯單元號(LUN)30之位址加上該限制容量與該邏輯單元號(LUN)30之乘積的偏移值,藉此對應到該儲存裝置50。例如該轉換單元20將邏輯單元號(LUN)30(2)(即邏輯單元號1)內之LBA位址加上2TB與1的乘積,以得到實際邏輯單元號LUN 1在該儲存裝置50所對應之位址。
因此,該轉換單元20將該些邏輯單元號(LUN)30之位址轉換到實體儲存裝置50所對應之位址,使得主機系統10對各個實體裝置物件(PDO)35發出的命令描述方塊(CDB)可透過對應之邏輯單元號(LUN)30做存取,而不用轉換命令描述方塊(CDB),即可透過邏輯單元號讀取該儲存裝置,達到本發明之可支援大容量儲存裝置讀取的目的。
本發明另提供利用上述第二較佳實施例之支援大容量儲存裝置存取之
方法之系統,請繼續參考第6圖。該系統包括儲存裝置50、主機系統10以及位於儲存裝置50之韌體14的轉換單元20。
該主機系統10連接至該儲存裝置50,用以執行一初始化步驟以建立複數個實體裝置物件(PDO)35並且發出一命令以存取至少一該些實體裝置物件(PDO)35,其中每一該些實體裝置物件(PDO)35之容量不大於一限制容量。該轉換單元20設置於該儲存裝置50內,用以建立對應該些該實體裝置物件(PDO)35之複數個邏輯單元號30,其中該轉換單元20轉換該些邏輯單元號30對應之位址,以使該主機系統10透過該些實體裝置物件(PDO)35存取該儲存裝置50。其細節已詳述於上,於此不再贅述。
於第二較佳實施例中,該儲存裝置50係一大容量儲存裝置,其容量大於一限制容量,該限制容量例如為2 TB。該儲存裝置50具有一韌體(Firmware)14以及一實體磁碟機(未圖示)。值得注意的是,該儲存裝置50例如是單一個實體大於該限制容量之儲存裝置,或是經由磁碟陣列(Redundant Array of Independent Disks,RAID)整合技術,將多個實體儲存裝置整合成大於該限制容量之儲存裝置。該主機系統10係傳統的32位元作業係統,例如Windows XP、Windows 2000、Windows 98等軟體作業系統。該轉換單元20係以驅動程式(Driver)12實施。另外,每一該些邏輯單元號(LUN)30有一分割表(Partition Table)以及對應該分割表的邏輯區塊位址(LBA)。此外,該轉換單元20係以韌體(Firmware)14實施。
綜上所述,本發明第二較佳實施例之支援大容量儲存裝置存取之方法與系統利用該轉換單元20將該些邏輯單元號(LUN)30之位址轉換到實體儲存裝置50所對應之位址,使得主機系統10對各個實體裝置物件(PDO)35
發出的命令描述方塊(CDB)可透過對應之邏輯單元號(LUN)30做存取,而不用轉換命令描述方塊(CDB),即可透過邏輯單元號讀取該儲存裝置,達到本發明之可支援大容量儲存裝置讀取的目的。藉此解決傳統分割表不敷使用的問題。
雖然本發明已用較佳實施例揭露如上,然其並非用以限定本發明,本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
10...主機系統
12...驅動程式
14...韌體
20...轉換單元
30...邏輯單元號
35...實體裝置物件
50...儲存裝置
第1圖繪示本發明之第一較佳實施例中支援大容量儲存裝置存取之方法之流程圖。
第2圖繪示本發明之第一較佳實施例中轉換單元存取儲存裝置之系統架構圖。
第3圖繪示本發明之第一較佳實施例中初始化流程圖。
第4圖繪示本發明之一較佳實施例中SCSI Read 10以及SCSI Read 16命令的指命碼定義。
第5圖繪示本發明之第二較佳實施例中支援大容量儲存裝置存取之方法之流程圖。
第6圖繪示本發明之第二較佳實施例中轉換單元存取儲存裝置之系統架構圖。
第7圖繪示本發明之第二較佳實施例中初始化流程圖。
S5...步驟
S10...步驟
S20...步驟
S30...步驟
Claims (24)
- 一種支援大容量儲存裝置存取之方法,該方法包括下列步驟:連接一儲存裝置至一主機系統;該主機系統執行一初始化步驟,建立複數個實體裝置物件(PDO)以對應該儲存裝置,其中每一該些實體裝置物件之容量不大於一限制容量;該主機系統發出一命令以存取至少一該些實體裝置物件;以及一轉換單元轉換該命令之存取位址,以使該主機系統透過該些實體裝置物件存取該儲存裝置。
- 如申請專利範圍第1項所述之支援大容量儲存裝置存取之方法,其中該初始化步驟係包含該主機系統對該儲存裝置發出小型電腦系統界面(SCSI)之一命令描述方塊,以執行一讀取容量命令。
- 如申請專利範圍第2項所述之支援大容量儲存裝置存取之方法,其中該初始化包含下列步驟:(a)該儲存裝置對應該讀取容量命令回報該儲存裝置之超過該限制容量之一容量資訊;(b)該儲存裝置建立一邏輯單元號(LUN),並回報至該主機系統;以及(c)該主機系統依據該容量資訊建立該些實體裝置物件。
- 如申請專利範圍第3項所述之支援大容量儲存裝置存取之方法,其中當該容量資訊等於該限制容量的整數倍時,該些實體裝置物件的數量係為該容量資訊除以該限制容量之商數,且每一該些實體裝置物件等於該限制容量。
- 如申請專利範圍第3項所述之支援大容量儲存裝置存取之方法,其中當該容量資訊不等於該限制容量的整數倍時,該些實體裝置物件的該數量係為該容量資訊除以該限制容量之商數加一,且該商數對應的每一該些實體裝置物件等於該限制容量。
- 如申請專利範圍第4或5項所述之支援大容量儲存裝置存取之方法,其中該轉換單元轉換該命令之存取位址步驟中,更包括轉換該命令之位元組。
- 如申請專利範圍第6項所述之支援大容量儲存裝置存取之方法,其中該轉換單元轉換該命令之位元組係將一第一命令描述方塊轉換成一第二命令描述方塊來對該儲存裝置做讀取、寫入之動作。
- 如申請專利範圍第7項所述之支援大容量儲存裝置存取之方法,其中該第一命令描述方塊包括十位元組之讀取命令及十位元組之寫入命令,該第二命令描述方塊包括十六位元組之讀取命令及十六位元組之寫入命令。
- 如申請專利範圍第7項所述之支援大容量儲存裝置存取之方法,其中該轉換單元係以一映射(mapping)方式,將該第一命令描述方塊轉換成之該第二命令描述方塊。
- 如申請專利範圍第9項所述之支援大容量儲存裝置存取之方法,其中在相鄰之兩個該實體裝置物件中,兩個相同的該第一命令描述方塊在映射成兩個該第二命令描述方塊時,該兩個第二命令描述方塊之邏輯區塊位址位置訊息具有該限制容量的一偏移值。
- 一種支援大容量儲存裝置存取之方法,該方法包括下列步驟:連接一儲存裝置至一主機系統;該主機系統執行一初始化步驟以建立複數個實體裝置物件,其中每一該些實體裝置物件之容量不大於一限制容量;一轉換單元建立對應該些該實體裝置物件之複數個邏輯單元號;該主機系統發出一命令以存取至少一該些實體裝置物件;以及該轉換單元轉換該些邏輯單元號對應之位址,以使該主機系統透過該些實體裝置物件存取該儲存裝置。
- 如申請專利範圍第11項所述之支援大容量儲存裝置存取之方法,其中該初始化步驟係包含該主機系統對該儲存裝置發出小型電腦系統界面(SCSI)之一命令描述方塊,以執行一讀取容量命令。
- 如申請專利範圍第12項所述之支援大容量儲存裝置存取之方法,其中該初始化包含下列步驟:(a)該儲存裝置對應該讀取容量命令回報該儲存裝置之超過該限制容量之一容量資訊;(b)該儲存裝置依據該容量資訊建立該些邏輯單元號,並回報至該主機系統;以及(c)該主機系統建立相對應於該些邏輯單元號之該些實體裝置物件。
- 如申請專利範圍第13項所述之支援大容量儲存裝置存取之方法,其中當該容量資訊等於該限制容量的整數倍時,該些實體裝置物件的數量係為該容量資訊除以該限制容量之商數,且每一該些實體裝置物件等於該限制容量。
- 如申請專利範圍第13項所述之支援大容量儲存裝置存取之方法,其中當該容量資訊不等於該限制容量的整數倍時,該些實體裝置物件的該數量係為該容量資訊除以該限制容量之商數加一,且該商數對應的每一該些實體裝置物件等於該限制容量。
- 如申請專利範圍第11項所述之支援大容量儲存裝置存取之方法,其中每一該些邏輯單元號有一分割表以及對應該分割表的邏輯區塊位址。
- 如申請專利範圍第16項所述之支援大容量儲存裝置存取之方法,其中該轉換單元轉換該些邏輯單元號所對應之位址係將每一該邏輯單元號之位址加上該限制容量與該邏輯單元號之乘積的偏移值,藉此對應到該儲存裝置。
- 一種支援大容量儲存裝置存取之系統,該系統包括:一儲存裝置,具有大於一限制容量之容量;一主機系統連接至該儲存裝置,用以執行一初始化步驟以建立複數個實體裝置物件以對應該儲存裝置,並發出一命令以存取至少一該些實體裝置物件,其中每一該些實體裝置物件之容量不大於一限制容量;以及一轉換單元設置於該主機系統內,用以轉換該命令之存取位址,以使該主機系統透過該些實體裝置物件存取該儲存裝置。
- 如申請專利範圍第18項所述之支援大容量儲存裝置存取之系統,其中該限制容量係2兆位元組(TB)。
- 如申請專利範圍第18項所述之支援大容量儲存裝置存取之系統,其中該轉換單元係以一驅動程式實施。
- 一種支援大容量儲存裝置存取之系統,該系統包括:一儲存裝置,具有大於一限制容量之容量;一主機系統連接至該儲存裝置,用以執行一初始化步驟以建立複數個實體裝置物件,並發出一命令以存取至少一該些實體裝置物件,其中每一該些實體裝置物件之容量不大於一限制容量;以及一轉換單元設置於該儲存裝置內,用以建立對應該些該實體裝置物件之複數個邏輯單元號,其中該轉換單元轉換該些邏輯單元號對應之位址,以使該主機系統透過該些實體裝置物件存取該儲存裝置。
- 如申請專利範圍第21項所述之支援大容量儲存裝置存取之系統,其中該限制容量係2兆位元組(TB)。
- 如申請專利範圍第21項所述之支援大容量儲存裝置存取之系統,其中每一該些邏輯單元號有一分割表以及對應該分割表的邏輯區塊位址。
- 如申請專利範圍第21項所述之支援大容量儲存裝置存取之系統,其中該轉換單元係以一韌體實施。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW99121328A TWI426385B (zh) | 2010-06-29 | 2010-06-29 | 支援大容量儲存裝置存取之方法與系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW99121328A TWI426385B (zh) | 2010-06-29 | 2010-06-29 | 支援大容量儲存裝置存取之方法與系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201201015A TW201201015A (en) | 2012-01-01 |
TWI426385B true TWI426385B (zh) | 2014-02-11 |
Family
ID=46755626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW99121328A TWI426385B (zh) | 2010-06-29 | 2010-06-29 | 支援大容量儲存裝置存取之方法與系統 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI426385B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020002661A1 (en) * | 1998-06-30 | 2002-01-03 | Steven M. Blumenau | Method and apparatus for initializing logical objects in a data storage system |
WO2002054266A1 (en) * | 2001-01-02 | 2002-07-11 | Han-Gyoo Kim | Disk system adapted to be directly attached to network |
US20060010287A1 (en) * | 2000-10-13 | 2006-01-12 | Han-Gyoo Kim | Disk system adapted to be directly attached |
TWI272536B (en) * | 2003-12-31 | 2007-02-01 | Sandisk Corp | Flash memory system startup operation |
TWI282496B (en) * | 2002-06-01 | 2007-06-11 | Solid State System Co Ltd | Method for partitioning memory mass storage device and device thereof |
-
2010
- 2010-06-29 TW TW99121328A patent/TWI426385B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020002661A1 (en) * | 1998-06-30 | 2002-01-03 | Steven M. Blumenau | Method and apparatus for initializing logical objects in a data storage system |
US20060010287A1 (en) * | 2000-10-13 | 2006-01-12 | Han-Gyoo Kim | Disk system adapted to be directly attached |
WO2002054266A1 (en) * | 2001-01-02 | 2002-07-11 | Han-Gyoo Kim | Disk system adapted to be directly attached to network |
TWI282496B (en) * | 2002-06-01 | 2007-06-11 | Solid State System Co Ltd | Method for partitioning memory mass storage device and device thereof |
TWI272536B (en) * | 2003-12-31 | 2007-02-01 | Sandisk Corp | Flash memory system startup operation |
Also Published As
Publication number | Publication date |
---|---|
TW201201015A (en) | 2012-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8032689B2 (en) | Techniques for data storage device virtualization | |
JP4836118B2 (ja) | 複数の種類のストレージ装置を管理するための装置と方法 | |
US9009395B2 (en) | Storage subsystem and its data processing method for reducing the amount of data to be stored in nonvolatile memory | |
US8145841B2 (en) | Method and system for initializing storage in a storage system | |
KR102414500B1 (ko) | 지능형 데이터 배치 | |
US20070294459A1 (en) | Apparatus for bridging a host to a SAN | |
US8463992B2 (en) | System and method for handling IO to drives in a raid system based on strip size | |
US20050055501A1 (en) | High-density storage systems using hierarchical interconnect | |
US9612745B2 (en) | Raid set initialization | |
JP4905511B2 (ja) | 記憶装置の制御部及び制御方法 | |
JP5567545B2 (ja) | 仮想ボリュームに領域を割り当てるための方法及び装置 | |
US9223516B2 (en) | Data accessing method and apparatus for performing the same using a host logical unit (HLUN) | |
US20060168358A1 (en) | Storage control system | |
US20080195832A1 (en) | Storage controller and storage system | |
WO2014188479A1 (ja) | ストレージ装置及びストレージ装置の制御方法 | |
US8694602B2 (en) | Storage apparatus and its data processing method | |
US20120317313A1 (en) | Disk device assigned id codes for storage areas of a storage device | |
US20170046070A1 (en) | Storage control device | |
JP2014519062A (ja) | ストレージシステム及びその論理ユニット管理方法 | |
JP2006252165A (ja) | ディスクアレイ装置、及びコンピュータシステム | |
US7143234B2 (en) | Bios storage array | |
TWI426385B (zh) | 支援大容量儲存裝置存取之方法與系統 | |
US20050188145A1 (en) | Method and apparatus for handling data transfers | |
US8296530B1 (en) | Methods, systems, and computer readable media for optimizing the number of client write requests to virtually provisioned logical units of a physical data storage array | |
JP2009129261A (ja) | ストレージシステム及びストレージシステムの外部ボリューム接続経路探索方法 |