前言
不知道有多少人在家里搭建中央存储设备的,也就是NAS。这个东西在我日常生活中,存储了大量的个人资料,家人们的照片,技术的资料,还有各种高清影视剧。搭配公网的IP,可以真正做到,任何时候任何地点的读取资料的需求。
我之前玩NAS写过一篇基础性的介绍文章,包括公网的申请和端口映射,有兴趣的小伙伴可以读下:
https://mp.weixin.qq.com/s/Mw...
然而使用NAS一段时间后,虽然可以随时随地的对文件进行读取和保存。但是我发现还是有很多不方便的地方。
比如我电脑里的一个资料在公网环境要从NAS读取(注意是公网,内网其实怎么样都行),碰到了以下几个麻烦:
1.打开NAS的管理界面,进行授权登陆,把文件下载到本地运行。如果文件小倒还没事,如果文件体积一大,比如一部电影20个G,那我必须等电影全部下载到本地才可以观看。
2.群晖NAS提供了Synology driver文件同步工具,每台电脑上需要装一个客户端软件,A电脑同步上去,B电脑启动时还要等待Synology driver同步下来才能使用文件。我总觉得这种方式虽然可行,但还是太麻烦,还要通过第三方同步软件的支持才可以用。不原生。
3.如果是通过ftp,sftp等这种方式进行挂载访问,也是一样的问题。无非就是把网页的授权登陆换成了ftp的授权。而且ftp好像也不支持流方式的读取,电影无法直接读取播放。
4.至于smb协议方式,把smb映射到公网存在安全隐患。况且smb的传输效率也很低。
所以我后来都采用webdav协议进行挂载,把nas挂载成本地的一个网络硬盘进行访问。这种方式我一直觉得是最好的方式,因为相当于直接在本地进行了NAS磁盘的操作。也能以流的方式播放影视资源。多台电脑,也能同时挂载,这里存进去,那里就能实时读取到。相当便捷。
但是在使用webdav的时候我也发现一些弊端,比如有些软件或者游戏是不支持直接装在网络磁盘里的。
我于是就想,如果系统能把网络磁盘当做是自己本地的磁盘。那就完美了。
就在前段时间,一个老哥和我介绍了iSCSI这个协议,还真能实现这样的骚操作。我研究了以后,成功的把NAS的一部分磁盘空间完美的挂载到了本地,并且,系统会把这个磁盘完完全全当做是本地的磁盘空间。我的macbook pro瞬间扩大了一个T的容量!
好啦,前言有点长,所以,这篇文章就是给玩NAS的同学介绍下iSCSI协议的玩法。
什么是iSCSI
iSCSI(Internet Small Computer System Interface即Internet小型计算机系统接口),是一种在TCP/IP上进行数据块传输的标准,是由CiSCO和IBM两家公司发起的,并且得到了各大存储厂商的大力支持。iSCSI将SCSI命令封装于TCP/IP包之中,并且使用了一个SCSI帧头。iSCSI可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行快速的数据存取备份操作,也就是基于网络的存储。
这是关于iSCSI的解释,我给大家翻译一下:
首先iSCSI是一种通讯传输的协议标准,基于以太网进行数据传输,且传输速率非常高。其次目前很多系统的存储底层都支持这种协议,很多系统底层也支持这种协议,比如windows,macOS。所以这种协议,能够被系统的存储底层所识别,从而从内核层面进行挂载。这种挂载形式会被系统认为是本地的磁盘,但是走的却是网络传输协议。
一句话:操作系统原生的把NAS当做是自己本地的硬盘。安装软件游戏都没问题。
接下来就开搞,设置主要分2个端,服务端(NAS)和客户端(PC的操作系统)
NAS端的设置
我这里仅以群晖的NAS操作系统来介绍,威联通的我没玩过,但是原理都一样。
首先你得把群晖的NAS操作系统更新到7.0版本,可以通过控制面板->更新和还原这个界面来查看:
然后,套件中间里找到SAN Manager这个套件,进行安装:
打开安装好的SAN Manager,选择LUN,点击新增。
选择你创建空间所用的磁盘,然后输入分配容量,我这里分配的是1T容量。这里就是从你这块磁盘划分出一块空间当做一块虚拟磁盘的意思。
这里一路下一步下去,LUN就会创建好,而且SAN Manager会自动为你创建一个Target,并且把LUN和Target会绑定好关系。在iSCSI里,你就会看到已经创建并映射好关系的Target。这里的Target是你客户端最终要连接的目标。
然后你需要将NAS服务器的3260端口通过路由器映射出去,如果进行端口映射我这里就不说了。如果不会的请自行baidu。
至此,NAS端的设置就完成了。
Windows端的设置
windows是原生支持iSCSI协议的。无需第三方软件既可以完成配置。这里我以windows 10的设置来举例。
首先win+R打开运行,输入services.msc
然后在打开的服务窗口里找到Microsoft iSCSI Initiator Service,启动它
随后在控制面板中找到管理工具,打开它
在管理工具里找到iSCSI发起程序,双击打开
在弹出的窗口中选择发现tab页,点击发现门户
在弹出的窗口中,输入你家路由的公网IP地址(不知道怎么申请公网的,可以看开头的另一篇文章介绍)和端口,端口我这里映射的是33260。
如果检测通过的话,回到目标tab页,你就会看到已发现的target目标,点击连接就可以了。
设置完这些后,你会发现,你的磁盘并没有多一块出来啊。别急,磁盘还需要做最后一步初始化动作。右击我的电脑,点管理,打开磁盘管理器。你会发现有一块磁盘还未被分配(这里我是拿一块分配了5G空间的演示)
选择GPT分区表方式进行确定,然后进行格式化。这里磁盘格式要注意下,如果你是想在多台windows电脑进行挂载就选NTFS,如果你是想在macOS和windows之间进行共同挂载就选FAT32。
格式化完毕之后,我们可以看到。这块磁盘已经完全像是在本地一样了。
这时,我们打开我的电脑,会发现多了一块磁盘,而且从表面上来看,你完全看不出这是块iSCSI挂载的硬盘。你甚至于可以把软件和游戏装到这里面!
macOS端的设置-Initiator X
Mac下的iSCSI协议苹果一直以来没有集成,所以这里需要用到第三方的软件来进行挂载。
macOS下的挂载iSCSI的软件不多。而且大多数需要收费。研究了下,macOS下有2个选择,daemon tools和Initiator X。
Initiator X在不付费的情况下只能挂载一个target。(关于获取Initiator X软件的方法看文末)。
装好软件,点左上角的Discovery,填入你的公网地址和端口
然后系统就会加载这个ip端口下的target
双击连接后,桌面就会多出一个这么图标
接下来把这个拖进你的finder收藏列表就可以了
然后,让我们看下这个盘的容量
是不是,多出了一个T的容量了,而且从感觉上也接近原生磁盘。是不是很哇塞。
macOS端的设置-Deamon Tools
另一款软件是Deamon Tools,我自己就用这款软件来进行挂载iSCSI磁盘。它是一款收费软件
为什么我不用免费的?主要是我有多台电脑,也有好几个磁盘要挂载,用免费的满足不了我,而且另一个原因Deamon Tools确实是一款老牌的虚拟磁盘映射工具,出于对这款软件的信任,我买了它的序列号,一次购买,永久使用。而且也不贵。
收费标准如下,这里我只买了2台机器的,终生授权费用也不贵,也只有78人民币。而且支持微信和支付宝支付,对国人也比较友好。
安装好之后,界面长这样,我们只需要它的远程设备功能就可以了,右键添加,和之前差不多的方式,输入公网ip和端口,然后回到主界面就可以自动发现target,双击进行连接就可以了。
之后的操作就和之前一样了,在桌面上就会多出一个磁盘,把这个拖到收藏列表里就可以了。
因为我mac电脑基本不怎么关机,直接打开Deamon Tools会帮我们自动连接。这样方便很多。
传输速率如何
传输速率分2个方面,写入和读取。
因为iSCSI挂载的盘从本质上来说还是网络盘,所以写入和读取还是取决于网络的传输速率。但是这里写入和读取取决的点不一样。
写入,取决于你当前网络的上行速度和家里网络的下行速度,取最小值。比如我公司的上行速度是50Mbps,而我家里网络的下行速度是300Mbps,那么我写入的速度就是50Mbps,换算成实际速度,约等于6MB每秒。
读取,取决于你当前网络的下行速度和家里网络的上行速度,取最小值,比如我公司的下行速度是500Mbps,而我家里网络的上行速度是30Mbps,那么我读取的速度就是30Mbps,换算成实际速度,约等于4MB每秒。
一般来说,企业的上行速度会比家里的上行速度来的快,所以如果你是在公司用。写入速度一般都是大于读取速度的。
有的小伙伴可能会觉得,这种6M写入,4M读取的速度实在是慢的可以。其实你只要不传输电影,一般的资料文件是绰绰有余了。而且就算是电影,你也不需要进行下载到本地看,直接打开观看即可,会以流的方式进行读取。
实测下来,4M的读取速率,看2K视频都可以不卡顿了。4K视频对传输速率要求比较高,4K还是会出现卡顿。
需要注意的事项
iSCSI这种挂载方式相当于从你的NAS划分了一块虚拟的空间。
这块虚拟的空间如同你本地的磁盘一样,需要格式化,甚至于可以进行分区。但是你放在这块磁盘空间的文件在你的NAS上却不会被读出来。
会有小伙伴问,那这样的意义是什么呢。我NAS上读不出来有什么用。
其实如果你有多台电脑,就会直呼这是个神器了。因为文件存在NAS里,其实也并不需要NAS系统来进行使用。使用方肯定是你的电脑。你A电脑存进去,B电脑就能像在本地一样的使用。难道不香么。等于从使用层面来说,让你不会觉得NAS这个东西的存在。而文件却实实在在的保存在NAS里,你NAS也不需要读出文件来使用。
后记
这篇文章介绍了我玩NAS的一些分享,后续这个主题如果有人感兴趣,还会继续下去。为此我建了一个NAS交流群,感兴趣的小伙伴请在我公众号里回复"NAS",就可以加入群聊。关于此篇文章提到的软件,我都会在群里进行打包分享。
我的公众号新开辟了4个专栏,分别是开源推荐,技术干货,技术男的世界观以及技术改变生活。我是一个喜欢折腾的技术男,我日常分享除了写专业知识外,还会分享我对于这个世界的看法以及数码方面的应用介绍,我希望通过技术能改变和提高我们的生活效率。如果你对于我的内容感兴趣,希望你能点赞,分享,最重要的是关注我。