我的笔记本电脑瞬间扩大一个T的容量!

代码诗人
• 阅读 11812

前言

不知道有多少人在家里搭建中央存储设备的,也就是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版本,可以通过控制面板->更新和还原这个界面来查看:

我的笔记本电脑瞬间扩大一个T的容量!

然后,套件中间里找到SAN Manager这个套件,进行安装:

我的笔记本电脑瞬间扩大一个T的容量!

打开安装好的SAN Manager,选择LUN,点击新增。

选择你创建空间所用的磁盘,然后输入分配容量,我这里分配的是1T容量。这里就是从你这块磁盘划分出一块空间当做一块虚拟磁盘的意思。

我的笔记本电脑瞬间扩大一个T的容量!

这里一路下一步下去,LUN就会创建好,而且SAN Manager会自动为你创建一个Target,并且把LUN和Target会绑定好关系。在iSCSI里,你就会看到已经创建并映射好关系的Target。这里的Target是你客户端最终要连接的目标。

我的笔记本电脑瞬间扩大一个T的容量!

然后你需要将NAS服务器的3260端口通过路由器映射出去,如果进行端口映射我这里就不说了。如果不会的请自行baidu。

至此,NAS端的设置就完成了。

Windows端的设置

windows是原生支持iSCSI协议的。无需第三方软件既可以完成配置。这里我以windows 10的设置来举例。

首先win+R打开运行,输入services.msc

我的笔记本电脑瞬间扩大一个T的容量!

然后在打开的服务窗口里找到Microsoft iSCSI Initiator Service,启动它

我的笔记本电脑瞬间扩大一个T的容量!

随后在控制面板中找到管理工具,打开它

我的笔记本电脑瞬间扩大一个T的容量!

在管理工具里找到iSCSI发起程序,双击打开

我的笔记本电脑瞬间扩大一个T的容量!

在弹出的窗口中选择发现tab页,点击发现门户

我的笔记本电脑瞬间扩大一个T的容量!

在弹出的窗口中,输入你家路由的公网IP地址(不知道怎么申请公网的,可以看开头的另一篇文章介绍)和端口,端口我这里映射的是33260。

我的笔记本电脑瞬间扩大一个T的容量!

如果检测通过的话,回到目标tab页,你就会看到已发现的target目标,点击连接就可以了。

我的笔记本电脑瞬间扩大一个T的容量!

设置完这些后,你会发现,你的磁盘并没有多一块出来啊。别急,磁盘还需要做最后一步初始化动作。右击我的电脑,点管理,打开磁盘管理器。你会发现有一块磁盘还未被分配(这里我是拿一块分配了5G空间的演示)

我的笔记本电脑瞬间扩大一个T的容量!

选择GPT分区表方式进行确定,然后进行格式化。这里磁盘格式要注意下,如果你是想在多台windows电脑进行挂载就选NTFS,如果你是想在macOS和windows之间进行共同挂载就选FAT32。

格式化完毕之后,我们可以看到。这块磁盘已经完全像是在本地一样了。

我的笔记本电脑瞬间扩大一个T的容量!

这时,我们打开我的电脑,会发现多了一块磁盘,而且从表面上来看,你完全看不出这是块iSCSI挂载的硬盘。你甚至于可以把软件和游戏装到这里面!

我的笔记本电脑瞬间扩大一个T的容量!

macOS端的设置-Initiator X

Mac下的iSCSI协议苹果一直以来没有集成,所以这里需要用到第三方的软件来进行挂载。

macOS下的挂载iSCSI的软件不多。而且大多数需要收费。研究了下,macOS下有2个选择,daemon tools和Initiator X。

Initiator X在不付费的情况下只能挂载一个target。(关于获取Initiator X软件的方法看文末)。

装好软件,点左上角的Discovery,填入你的公网地址和端口

我的笔记本电脑瞬间扩大一个T的容量!

然后系统就会加载这个ip端口下的target

我的笔记本电脑瞬间扩大一个T的容量!

双击连接后,桌面就会多出一个这么图标

我的笔记本电脑瞬间扩大一个T的容量!

接下来把这个拖进你的finder收藏列表就可以了

我的笔记本电脑瞬间扩大一个T的容量!

然后,让我们看下这个盘的容量

我的笔记本电脑瞬间扩大一个T的容量!

是不是,多出了一个T的容量了,而且从感觉上也接近原生磁盘。是不是很哇塞。

macOS端的设置-Deamon Tools

另一款软件是Deamon Tools,我自己就用这款软件来进行挂载iSCSI磁盘。它是一款收费软件

为什么我不用免费的?主要是我有多台电脑,也有好几个磁盘要挂载,用免费的满足不了我,而且另一个原因Deamon Tools确实是一款老牌的虚拟磁盘映射工具,出于对这款软件的信任,我买了它的序列号,一次购买,永久使用。而且也不贵。

收费标准如下,这里我只买了2台机器的,终生授权费用也不贵,也只有78人民币。而且支持微信和支付宝支付,对国人也比较友好。

我的笔记本电脑瞬间扩大一个T的容量!

安装好之后,界面长这样,我们只需要它的远程设备功能就可以了,右键添加,和之前差不多的方式,输入公网ip和端口,然后回到主界面就可以自动发现target,双击进行连接就可以了。

我的笔记本电脑瞬间扩大一个T的容量!

之后的操作就和之前一样了,在桌面上就会多出一个磁盘,把这个拖到收藏列表里就可以了。

因为我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个专栏,分别是开源推荐,技术干货,技术男的世界观以及技术改变生活。我是一个喜欢折腾的技术男,我日常分享除了写专业知识外,还会分享我对于这个世界的看法以及数码方面的应用介绍,我希望通过技术能改变和提高我们的生活效率。如果你对于我的内容感兴趣,希望你能点赞,分享,最重要的是关注我。

我的笔记本电脑瞬间扩大一个T的容量!

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Easter79 Easter79
3年前
vue+element 表格formatter数据格式化并且插入html标签
前言   vue中element框架,其中表格组件,我既要行内数据格式化,又要插入html标签一贯思维,二者不可兼得也一、element表格数据格式化  !(https://oscimg.oschina.net/oscnet/3c43a1cb3cbdeb5b5ad58acb45a42612b00.p
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
SSH 隧道实现内网穿透
家里买了台NETGEAR路由器刷了梅林固件,可以在USB接口上挂个存储当NAS用,发现家里的移动宽带是没有公网ip的,于是在外网访问不到内网,ddns也没法用了(不要给我推荐花生壳内网版😝)。那么,需求就是如何让外网访问到内网ip。于是想到了从内网到公网上的某台机器建立一条ssh隧道,通过访问公网机器把数据穿透到内网,实现方法:在内
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
4cast
4castpackageloadcsv.KumarAwanish发布:2020122117:43:04.501348作者:KumarAwanish作者邮箱:awanish00@gmail.com首页:
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
(绝对有用)iOS获取UUID,并使用keychain存储
UDID被弃用,使用UUID来作为设备的唯一标识。获取到UUID后,如果用NSUserDefaults存储,当程序被卸载后重装时,再获得的UUID和之前就不同了。使用keychain存储可以保证程序卸载重装时,UUID不变。但当刷机或者升级系统后,UUID还是会改变的。但这仍是目前为止最佳的解决办法了,如果有更好的解决办法,欢迎留言。(我整理的解决办法的参
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这