网络虚拟存储 Iscsi实现方案

网络虚拟存储,通过Iscsi协议可以实现本地挂载磁盘,扩展本机设备存储。

Iscsi有以下实现方案,简单介绍下:

1.Powershell 脚本
PowerShell 提供了一些 cmdlet,比如 Get-iSCSITarget 和 New-iSCSISession,用于管理 iSCSI 会话。

PowerShell实现有比较完善的文档:

2.WMI API

WMI其实也可以iSCSI WMI 类 - Windows drivers | Microsoft Learn,只不过貌似未开放。也可能比较老了,微软不再维护

3.iscsicli 脚本
也可以通过命令行调用iscsicli

更多的操作,可以使用iscsicli help查看

4. 开源组件-Vanara.PInvoke.IScsiDsc
Vanara/PInvoke/IScsiDsc/readme.md at master · dahall/Vanara
它内部是使用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进行封装,添加好注释、做好输出状态及值的返回

相关推荐
玖雨y6 天前
【DDIA】存储和查询
数据库·后端·存储·ddia
极客先躯9 天前
高级java每日一道面试题-2025年7月14日-基础篇[LangChain4j]-如何集成开源模型(如 Llama、Mistral)?需要什么基础设施?
java·langchain·存储·计算资源·模型服务框架·网络 / 协议·java 依赖
运维行者_22 天前
稳健型微服务性能监控的基本指标
运维·服务器·网络·数据库·系统架构·自动化·存储
Gold Steps.22 天前
OpenEBS — 云原生 CNS 高性能存储
云原生·kubernetes·存储
酥暮沐25 天前
iscsi部署网络存储
linux·网络·存储·iscsi
smart19981 个月前
边缘AI存储服务器,软硬件一体化部署更简易价格更优
存储
长安即是故里1 个月前
使用HuggingFace免费搭建100G的图床和网盘,支持上传大文件
huggingface·存储·图床
cur1es1 个月前
【IO与文件及存储常识】
windows·io·文件系统·存储·file·硬盘·文件常识
ghostwritten1 个月前
Netapp 存储卷无法挂载pod
kubernetes·存储
唐宋元明清21882 个月前
.NET 磁盘管理-技术方案选型
windows·c#·存储