SCSI 中定義的provision

2021-09-19 21:27:09 字數 2018 閱讀 3391

lb:logic block

lba: logic block address

lu: logic unit (對應乙個邏輯儲存實體)

vpd: vital product data scsi 協議規定的scsi裝置產品資料。

兩大等級:full provison和logical block provision

1)full provision就是沒有任何供給策略,所有的lb在裝置上都有physical block對應。

2)logical block provision 並不是所有的lb在裝置上都有physical block對應。

1)resource provison

2)thin provison

裝置不能保證所有的lba都有足夠的資源對映,也就是說lb數量可以大於裝置所有physical block支援的量。

2)anchor:lba有對應的phyical block,當時此物理資源類似於暫留的意思。

2.1 .1 獲取logical block provison 能力

通過inquiry 命令查詢vpd page 0xb2(logical block provision頁)。

4個字段:

1)lbpu(logical block provision unmap)

支援scsi命令unmap

2)lbpws(logical block provision write same)

支援scsi命令write same(16)with unmap bit

3)lbpws10(logical block provision write same 10)

支援scsi命令write same(10)with unmap bit

注:如果乙個裝置即支援write same 16 with unmap和write same 10 with unmap,且它支援write same 32,那麼它一定得支援write same 32 with unmap

4)lbprz(logical block provision read zero)

從處於provison的logical block讀出的資料為0(如果設定為xx1),或者預設值(此欄位設定為010b)。

如果lbprz為000,那麼裝置不能保證從unmap block讀取的資料。

5)anc_sup(anchor support)

支援anchor命令。

read capacity 16 命令返回時刻,可以反饋當前logical block的provison狀態

1)lbpme(logical block provision management enable )

當設定為1時刻,表示支援logical provision

2)lbprz(logical block provsion read zero)

為1表示,當前從provison 的lba讀取的資料硬體保障為0或者特定值。

2.2.1 unmap命令

對指定位置開始的一段lba啟動unmap操作。

注:通過unmap命令我們不能期望後續read返回特定的資料值(例如0)。如果需要這樣的話應該使用write same with

2.2.2 write same 10 with unmap

write same 10 命令帶unmap欄位設定為1會將此字段unmap。

2.2.3 write same 16 with unmap

write same16 命令帶unmap 欄位為1會將此字段unmap。

注:對於write same 16 with unmap和write same 10 with unmap,如果命令資料區域寫入的字段將導致unmap操作後,read去讀的資料和協議定義不一致的時候,那麼這個unmap操作無效,只會執行正常的write same動作。

通過get lba status命令可以獲取裝置當前指定lba的provision狀態(也可以獲取所有的provison狀態下的lba)。

注:如果此裝置(lu)是full provision,那麼status為0.

SCSI硬碟的優勢

1 速度快 伺服器使用的 硬碟轉速快,可以達到每分鐘7200或10000轉,甚至更高 它還配置了較大 一般為2mb或4mb 的回寫式 快取 平均訪問時間比較短 外部傳輸率和內部傳輸率更高,採用ultra wide scsi ultra2 wide scsi ultra160 scsi ultra32...

iSCSI 中 SCSI 讀寫請求處理分析

iscsi initiator 是通過 scsi command pdu 向 target 發出 scsi 請求,target 接收請求,執行 scsi 命令,然後返回資料以及 scsi 狀態。在 scsi 任務執行時,initiator target 之間會涉及大量資料 i o。rfc3720 中...

scsi裝置的請求處理函式(request fn

每個塊裝置驅動程式的核心就是它的請求處理函式,即請求佇列中對應的request fn函式 struct request queue下面分析scsi裝置的請求處理函式 static struct scsi device scsi alloc sdev struct scsi target starge...