Windows 网络存储ISCSI

本文介绍网络存储ISCSI的主要知识点以及如何通过代码控制挂载。

Windows网络存储有很多协议,我目前学习、稍微有了解的是FTP、SMB、ISCSI,FTP、SMB类似可以用来添加共享文件夹,或者添加映射网络驱动器:

我使用FTP都是先建个映射,再将内部的文件夹固定到快速访问。平时使用效率就很高了

回到ISCSI,最近买了2款NAS,多学习学习NAS这块

群晖,网上大家评价性能很好。我尝试了下,就退货了。。。略贵,操作还特别复杂

绿联,有点坑不支持ISCSI,只支持SMB这些协议,不过它的手机、PC设备数据同步,软件体验还蛮好的。

威联通,我买了入门级的262C版本,哈哈。4G内存2块硬盘位置,学习肯定是够用了。

iSCSI(Internet Small Computer Systems Interface)是一种使用IP网络传输SCSI命令的协议,使得存储设备能够通过网络进行访问。它将存储区域网络(SAN)的功能扩展到远程位置。 工作方式:iSCSI通过TCP/IP网络传输数据,它将存储设备看作是本地硬盘,允许块级存储访问

iSCSI是一种基于因特网及SCSI协议下的存储技术,使用 TCP/IP 协议(一般使用3260)让两台主机通过IP网络相互协商然后交换SCSI命令。

这样,iSCSI就是用广域网仿真了一个常用的高性能本地存储总线,从而创建了一个存储局域网(SAN),这样可将NAS的一部分空间作为虚拟磁盘与电脑端共享,像本地硬盘一样使用这部分空间,并且还是块级存储。

买回来初始化后,打开"iSCSI与光纤通道"应用,新建文件LUN快速创建一个ISCSI目标:

在控制台-系统状态,查找到我们的IP:

手动挂载操作

然后在你电脑Windows上,搜索iscsi,打开"iscsi发起程序"。输入IP,点确定即可:

回到第一个Tab,选中iqn目标连接。如果想省事也可以使用"快速连接",在第一个Tab中输入IP:

操作完了这些,打开Windows开始菜单-磁盘管理,就可以看到未初始化的磁盘了:

右键新建卷,完成盘符、格式化,就以正常使用了。这个操作比较耗时,276G磁盘花了35s。。。:

代码控制挂载

上面是手动操作挂载的,也可以通过基于iscsi命令快速实现

下面输入IP,查找iscsi目标:

复制代码
1 iscsicli AddTargetPortal 192.168.31.67 3260
2 iscsicli ListTargets

然后连接目标:

复制代码
1 iscsicli QLoginTarget iqn.2004-04.com.qnap:ts-262c:iscsi.yudong.87ddf4

操作成功后,iqn目标会显示连接成功:

以上是通过iscsicli实现的,详细的操作指令,可以通过cmd或者powershell输入iscsicli help查看。文档API也可以看 iSCSI 发现库 API - Win32 apps | Microsoft Learn

也可以通过PowerShell完成挂载,PowerShell实现有比较完善的文档,

iSCSI Module | Microsoft LearnIscsiTarget Module | Microsoft Learn
实现 Windows Server iSCSI - Training | Microsoft Learn

iSCSI Target Server Overview | Microsoft Learn

另外,WMI其实也可以iSCSI WMI 类 - Windows drivers | Microsoft Learn,只不过貌似未开放

之后就是初始化磁盘 ,命令行操作可以使用diskpart完成。diskpart可以参考 Windows 本地虚拟磁盘 - 唐宋元明清2188 - 博客园 里磁盘初始化的内容

如果需要.NET实现一键挂盘,可以针对上面的iscsicli或者powershell脚本进行封装下。

参考文章:

详解块存储、文件存储、对象存储区别 - 知乎

科普!一文详解 FTP、FTPS 与 SFTP 的原理 - 知乎

五大主流分布式存储技术对比分析,你 pick 哪一种?| 争议_gpfs luster-CSDN博客

【最强科普】一文读懂分布式存储 - 知乎

使用powershell配置和管理基于Windows的iSCSI - 简书

相关推荐
tyn1887 小时前
记录一次conda虚拟环境pip安装报错[WinError 32] 另一个程序正在使用此文件,进程无法访问
windows·conda·pip·虚拟环境·虚环境
陈苏同学16 小时前
[已解决] VS Code / Cursor / Trae 的 PowerShell 终端 conda activate 进不去环境的常见问题
linux·windows·conda
辰%16 小时前
如何重启pycharm中的项目?
windows·python·pycharm
iangyu19 小时前
【windows server脚本每天从网络盘复制到本地】
开发语言·windows·php
love530love21 小时前
家用或办公 Windows 电脑玩人工智能开源项目配备核显的必要性(含 NPU 及显卡类型补充)
人工智能·windows·python·开源·电脑
周胡杰1 天前
鸿蒙接入flutter环境变量配置windows-命令行或者手动配置-到项目的创建-运行demo项目
javascript·windows·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
几道之旅2 天前
分别在windows和linux上使用curl,有啥区别?
linux·运维·windows
一直奔跑在路上2 天前
【Ansible】基于windows主机,采用NTLM+HTTPS 认证部署
windows·https·ansible
郭逍遥2 天前
[工具]B站缓存工具箱 (By 郭逍遥)
windows·python·缓存·工具
x-cmd2 天前
[250512] Node.js 24 发布:ClangCL 构建,升级 V8 引擎、集成 npm 11
前端·javascript·windows·npm·node.js