存儲高手速成:什么是SCSI協(xié)議

字號:

SCSI協(xié)議的主要功能是在主機(jī)和存儲設(shè)備之間傳送命令、狀態(tài)和塊數(shù)據(jù)。在各類存儲技術(shù)中,SCSI協(xié)議可謂是最重要的脊梁。
    操作系統(tǒng)與SCSI I/O
    操作系統(tǒng)對外部設(shè)備(如磁盤、磁帶、光存儲、打印機(jī)和掃描儀)的I/O操作,可以通過SCSI協(xié)議來實(shí)現(xiàn),一般情況下SCSI協(xié)議都嵌入到設(shè)備驅(qū)動器或者主機(jī)適配器的板載邏輯中。
    因?yàn)镾CSI協(xié)議層位于操作系統(tǒng)和外部資源之間,它具有不同的功能組件。例如,應(yīng)用程序一般將數(shù)據(jù)作為文件或者記錄來訪問。盡管數(shù)據(jù)最終都將在磁盤或者磁帶介質(zhì)上以數(shù)據(jù)塊的方式存放,但是文件的檢索需要一系列功能將未加工的塊數(shù)據(jù)裝配成應(yīng)用程序能夠操作的連續(xù)文件。
    這個過程的第一步由應(yīng)用程序通過操作系統(tǒng)所連接的文件系統(tǒng)承擔(dān)。文件系統(tǒng)以目錄、文件夾和文件的方式來創(chuàng)建人們可讀的數(shù)據(jù)抽象。當(dāng)一個用戶的應(yīng)用程序打開一個文件時,會引發(fā)一系列的進(jìn)程。它們使用底層SCSI命令,控制數(shù)據(jù)塊從存儲系統(tǒng)到內(nèi)存的安全傳輸。因此在文件系統(tǒng)層次中,數(shù)據(jù)傳輸在文件描述和塊I/O之間進(jìn)行。
    正像文件系統(tǒng)描述了對用戶應(yīng)用程序數(shù)據(jù)的抽象一樣,物理存儲設(shè)備被描述成文件系統(tǒng)的抽象。例如,在Windows中的E驅(qū)動器或者Unix中的/dev/dsk2可以是一個單獨(dú)的磁盤、一個大磁盤的一部分或者多磁盤的條帶陣列。文件系統(tǒng)依賴于卷管理功能,它將各種存儲設(shè)備看作可以并發(fā)的、很容易訪問的資源。設(shè)備的虛擬化將物理存儲轉(zhuǎn)換成邏輯存儲,并且承擔(dān)了在磁盤上放置數(shù)據(jù)塊所需的復(fù)雜任務(wù)。文件/數(shù)據(jù)塊轉(zhuǎn)換和映射功能可以像一個單獨(dú)的卷管理應(yīng)用程序那樣復(fù)雜,也可以像適配卡設(shè)備驅(qū)動程序接口那么簡單明了。例如,Windows NT提供了Windows磁盤管理程序,為物理磁盤分配邏輯驅(qū)動器名。適配卡的設(shè)備驅(qū)動程序負(fù)責(zé)將它的資源作為一個物理SCSI實(shí)體,出現(xiàn)在Windows磁盤管理程序中。Windows磁盤管理程序可以為這些資源分配邏輯名,文件系統(tǒng)按順序使用這些邏輯名為目錄和文件確定位置。
    邏輯抽象的層次從實(shí)際的物理SCSI設(shè)備一直到同主機(jī)系統(tǒng)的連接。在操作系統(tǒng)層次,一般的訪問方法允許對SCSI設(shè)備進(jìn)行統(tǒng)一的處理,而不考慮它們在系統(tǒng)中的物理連接??荚嚧筇崾驹诒4嫖募r,文件系統(tǒng)并不關(guān)心邏輯驅(qū)動器是一個SCSI單元、一個Fibre Channel陣列還是千兆以太網(wǎng)的某個IP存儲設(shè)備。在各種情況下,邏輯實(shí)體和物理存儲的映射完成主機(jī)系統(tǒng)和合適的目標(biāo)SCSI命令的發(fā)送,它在二者之間用來傳輸數(shù)據(jù)塊。
    不考慮潛在的通道,操作系統(tǒng)對物理設(shè)備的描述是通過總線/目標(biāo)/LUN三元組定義的,這種三元組來自于并行SCSI技術(shù)。總線描述了主機(jī)上潛在的幾個SCSI接口之一,每一個都支持一個單獨(dú)的磁盤串。目標(biāo)代表了串上一個單獨(dú)的磁盤控制器,窄SCSI一共可以有7個,寬SCSI可以有15個。LUN標(biāo)志允許控制器管理額外的磁盤,例如一個RAID設(shè)備。
    總線/目標(biāo)/LUN三元組和邏輯設(shè)備標(biāo)識符之間的映射為物理設(shè)備提供了到高層文件系統(tǒng)的端口。因?yàn)镕ibre Channel和IP存儲是串行通信,沒有總線設(shè)備,為了和操作系統(tǒng)的SCSI名稱相兼容,總線標(biāo)識符可以偽造。例如,一個單獨(dú)的服務(wù)器中的兩個IP存儲網(wǎng)卡可以具有不同的總線標(biāo)識符以模仿SCSI適配器配置。廠商不同,具體實(shí)現(xiàn)也不同,但是設(shè)備驅(qū)動器程序遵守操作系統(tǒng)的標(biāo)準(zhǔn)SCSI訪問方法。
    總線/目標(biāo)/LUN標(biāo)識符可以進(jìn)一步映射到某個傳輸?shù)膶ぶ窏l件上。例如,F(xiàn)CP(Fibre Channel Protocol,光纖通道協(xié)議)將總線/目標(biāo)/LUN映射到DI(device identification,設(shè)備標(biāo)識符)/LUN對上。因此,物理存儲的表示有兩個組成部分。一個是對于操作系統(tǒng),使用大家都熟悉的基于SCSI三元組的可訪問實(shí)體;另外一個是針對某個傳輸,以適應(yīng)更改拓?fù)浣Y(jié)構(gòu)的尋址條件。
    在這一層下面,數(shù)據(jù)塊傳送的引發(fā)器(initiator)和目標(biāo)相互交換SCSI-3命令和狀態(tài)。SCSI引發(fā)器和目標(biāo)之間的關(guān)系定義在SAM-2中,對于特定的SCSI-3實(shí)現(xiàn)有不同的標(biāo)準(zhǔn)文檔