淺談SSD之SRIOV、NAMESPACE、NVM SET
隨著NVMe 1.4推出,越來越多的企業級feature引進; SRIOV、namespace、NVM Set等等,這些feature如何使用,他們的邊界在何處?
SRIOV:利用PF和VF的屬性,將一個裝置虛擬出多個PCIe裝置,利於虛擬機器操作,從而提升效能。
NAMESPACE:NVMe ssd由主控和flash組成,如果想把flash空間分成很多個邏輯空間去管理,可以分成namespace 1~n,這樣的每個邏輯空間都是一個Namespace。通俗的講namespace是flash邏輯空間管家。
NVM Set: NVM Set是NVM的集合,它與其他NVM Set中的NVM是分開的。NVM Set中可以建立一個或多個名稱空間,這些名稱空間繼承NVM Set的屬性。一個名稱空間完全包含在一個NVM集合中,並且不能跨越多個NVM集合。可以看出NVM Set即是邏輯空間和物理空間的管家。
SRIOV資源分佈:
從資源分配來說,PCIe層面PF和VF有很多共用的地方,比如configuration和bar;當然也又很多獨立的部門,比較VF有一小部分configuration獨立的,而且VF有獨立reset(function level reset)。
NVMe層面,個人覺得還是相對獨立,PF和VF都有自己的IO佇列,命令也是相對獨立的。
namespace:namespac就像一個管家,對所有的user logic空間管理,每個namespace可以刪除、修改、新增。
NVM Set: 個人感覺NVM set 會凌駕於namespace之上,它的許可權不僅在於管理logic空間,連physical空間也會涉及到。
雖然目前還沒用到,但是感覺未來NVM Set基於channel、ce、lun來管理phyical空間會比較易於實施。