您好,登錄后才能下訂單哦!
我們之前介紹了,linux I/O 棧的預(yù)習(xí)方面。簡(jiǎn)單地了解了一下整個(gè)linux I/O 棧的組成。
從今天開始我們仔細(xì)介紹linux I/O棧的導(dǎo)出I/O棧,linux I/O target。
一、基礎(chǔ)介紹
I/O導(dǎo)出協(xié)議棧是什么?
從廣義上講,大家每天可能都會(huì)去接觸這個(gè)東西。
比如:我們每天使用的移動(dòng)硬盤,它的內(nèi)部也是一個(gè)I/O導(dǎo)出協(xié)議棧,但是由于它不涉及于I/O命令的解析,它僅僅是做了從SATA轉(zhuǎn)USB的工作。
其實(shí)硬盤本身也是一個(gè)I/O導(dǎo)出的標(biāo)準(zhǔn)規(guī)范,它用的規(guī)范往往是在后端存儲(chǔ)協(xié)議實(shí)現(xiàn)(SAS 、SATA等)。
那么我今天主要介紹的是前端導(dǎo)出I/O協(xié)議棧,主要是包括:iscsi、fiber channel等大家比較常見的方式。
歷史上很多導(dǎo)出I/O協(xié)議棧,如我最早接觸的IET(iSCSI Enterprise Target),他只能導(dǎo)出iscsi target,還有SCST,他比較全面debug,很多hba板卡廠商推薦它。
我們重點(diǎn)介紹的是:linux 主線維護(hù)的LIO,也就是內(nèi)核里的target模塊。
linux I/O target的架構(gòu)是很清晰的,從最上層的管理由CLI實(shí)現(xiàn)。
CLI由/usr/lib/python3/dist-packages/rtslib_fb等支持。
rtslib_fb通過操作/sys/kernel/config/target目錄下面的目錄和文件來創(chuàng)建target內(nèi)核支持。
target在內(nèi)核的configfs是一套比較復(fù)雜的代碼,用來管理kernel里的target的各個(gè)實(shí)例。
target core模塊由內(nèi)核實(shí)現(xiàn),它主要是做SCSI CMD的仿真工作,能夠提供各樣先進(jìn)的能力。
比如在cluster的角度,支持persistent reservations,ALUA(asymmetric logical unit assigntment),
REFERRALS特性,fence特性等。能夠?qū)崿F(xiàn)高級(jí)VAAI特性,這主要用于vmware exsi。
這其中主要的SCSI命令unmap,zero,write same,xcopy等也可以適用于其他虛擬化存儲(chǔ)平臺(tái)。
存儲(chǔ)管理引擎包括:標(biāo)準(zhǔn)storage,內(nèi)存map和RDMA等功能。
最下層的fabric mod主要是導(dǎo)出協(xié)議驅(qū)動(dòng)的支持。
storage mod,主要是提供backend的種類支持。
【本文只在51cto博客作者 “底層存儲(chǔ)技術(shù)” https://blog.51cto.com/12580077 個(gè)人發(fā)布,公眾號(hào)發(fā)布:存儲(chǔ)之谷】,如需轉(zhuǎn)載,請(qǐng)于本人聯(lián)系,謝謝。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。