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 - 简书

相关推荐
Anyexyz2 小时前
Windows 11 卸载 Edge
前端·windows·edge
晓风伴月3 小时前
Tauri Windows入门开发避坑指南
windows·tauri
sukalot5 小时前
windows蓝牙驱动开发-支持蓝牙事件通知
windows·驱动开发
王同学LM5 小时前
将Mac上Python程序的虚拟环境搬到Windows
windows·python·macos
liarsup14 小时前
【学习记录】AVL树及相关链表,线程池实现
windows·学习·链表
Adler学安全16 小时前
键盘启用触摸板-tips
windows·电脑
脆皮炸鸡75517 小时前
STL中list的模拟实现
c++·windows·list
天若子1 天前
flutter ListView 局部刷新
windows·flutter
千层冷面1 天前
Java Stream 全面解析
java·windows·python