找回密码
 立即注册
首页 业界区 业界 网络虚拟存储 Iscsi实现方案

网络虚拟存储 Iscsi实现方案

邹弘丽 2025-6-4 21:14:35
网络虚拟存储,通过Iscsi协议可以实现本地挂载磁盘,扩展本机设备存储。
Iscsi有以下实现方案,简单介绍下:
1.Powershell 脚本
PowerShell 提供了一些 cmdlet,比如 Get-iSCSITarget 和 New-iSCSISession,用于管理 iSCSI 会话。
1.png

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
2.png

更多的操作,可以使用iscsicli help查看
4. 开源组件-Vanara.PInvoke.IScsiDsc
Vanara/PInvoke/IScsiDsc/readme.md at master · dahall/Vanara它内部是使用Win32API-iscsicli.h封装
3.png

并对函数返回值int,做了隐式转换,Win32Error定义了常见异常码以及LastError异常信息。返回值这块,挺不错的设计
4. Win32API
Iscsi有官方的发现库API: Iscsidsc.h 标头 - Win32 apps | Microsoft Learn
比如获取Iscsi会话列表:
  1. 1 ISDSC_STATUS ISDSC_API GetIScsiSessionListA(
  2. 2   [in, out] ULONG                *BufferSize,
  3. 3   [out]     ULONG                *SessionCount,
  4. 4   [out]     PISCSI_SESSION_INFOA SessionInfo
  5. 5 );
复制代码
PInvoke调用DLL是 "C:\Windows\System32\iscsidsc.dll"
我们可以基于目前团队内使用场景,对指定几个API进行封装,添加好注释、做好输出状态及值的返回出处:http://www.cnblogs.com/kybs0/让学习成为习惯,假设明天就有重大机遇等着你,你准备好了么本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册