我們知道vSAN主要是以Object的形式作為儲存單位,存的是VM Object,而Block和File兩個常用的儲存單位也經常被大企業或資料中心所用到。vSAN當然也有暴露相關的接口,這裡來聊聊vSAN裡iSCSI存取block storage和Fileservice存取檔案的原理。
首先,SCSI是SAS/SATA的SSD/HDD用於與作業系統溝通的一種interface protocol,本來是需要透過實體接口才能進行存取。後來又制定了可以透過網路TCP/IP來傳送SCSI指令的技術,叫做iSCSI,使得連接距離可以達到無上限,連結的伺服器數量也是無限。
這也是為何vSAN提供此接口的原因。vSAN本質上是一塊專用儲存網路,形成了一個儲存池,外部應用可以隨時取用、擴容等等。像是Thin provision,vSAN加上iSCSI技術,把儲存變成「可路由」的,像普通的網路通信一樣,使得遠在天邊的應用或主機可以直接存取vSAN上的儲存池。
在vSAN中,開啟iSCSI服務後,會產生一個home object for iSCSI去存一些相關的metadata。
iSCSI服務啟動後,我們可以到vSAN Cluster→Configuration→iSCSI Target→add新增一個iSCSI Target。我們可以把iSCSI target當成一個vSAN的endpoint。
最後,我們可以根據iSCSI target分配LUN的ID。LUN的單位就是一個磁碟,這種感覺就像是在一個磁碟組下面創建一個磁碟。
我們也能基於vSAN Datastore提供NFS的服務,這是vSAN 7的新功能。vSAN上的File service是一個分散式的檔案系統(VDFS),主要的目的是提供VM間的檔案共用,當然也可以像NAS那樣在自己的電腦上掛載一個NFS。
從上圖可以看到vSAN FileService是共用vSAN儲存的。當然,ESXi node上必須啟用一台File service node VM,把Object轉換成File格式,也就是上圖的綠色Applicance VM,最後整合在一起,給Clients或VM透過SMB/NFS共享檔案池。
更多vSAN相關的文章歡迎參閱我的部落格: https://kaichiachen.github.io/2023/09/07/vsan/vsan_fileservice_iscsi/