網絡虛擬存儲 Iscsi實現方案
網絡虛擬存儲,通過Iscsi協議可以實現本地掛載磁盤,擴展本機設備存儲。
Iscsi有以下實現方案,簡單介紹下:
1.Powershell 腳本
PowerShell 提供了一些 cmdlet,比如 Get-iSCSITarget 和 New-iSCSISession,用于管理 iSCSI 會話。

PowerShell實現有比較完善的文檔:
- 簡介 - Training | Microsoft Learn - Iscsis以及里面的powershell培訓文檔 實現 Windows Server iSCSI - Training | Microsoft Learn
- iSCSI Module | Microsoft Learn、IscsiTarget Module | Microsoft Learn - 操作文檔
- iSCSI Target Server Overview | Microsoft Learn
2.WMI API
WMI其實也可以iSCSI WMI 類 - Windows drivers | Microsoft Learn,只不過貌似未開放。也可能比較老了,微軟不再維護
3.iscsicli 腳本
也可以通過命令行調用iscsicli

更多的操作,可以使用iscsicli help查看
4. 開源組件-Vanara.PInvoke.IScsiDsc
它內部是使用Win32API-iscsicli.h封裝

并對函數返回值int,做了隱式轉換,Win32Error定義了常見異常碼以及LastError異常信息。返回值這塊,挺不錯的設計
4. Win32API
Iscsi有官方的發現庫API: Iscsidsc.h 標頭 - Win32 apps | Microsoft Learn
比如獲取Iscsi會話列表:
1 ISDSC_STATUS ISDSC_API GetIScsiSessionListA(
2 [in, out] ULONG *BufferSize,
3 [out] ULONG *SessionCount,
4 [out] PISCSI_SESSION_INFOA SessionInfo
5 );
PInvoke調用DLL是 "C:\Windows\System32\iscsidsc.dll"
我們可以基于目前團隊內使用場景,對指定幾個API進行封裝,添加好注釋、做好輸出狀態及值的返回

浙公網安備 33010602011771號