Windows重度用户,又不想单独弄个设备来做NAS,于是有了一些构想,一方面分享出来给大家提供一些思路并听取意见,另一方面有一些尚未考虑好的问题想请教。
主要思路是把主力台式机在Windows普通版本(非服务器版)的情况下全天候开机,然后配置各种服务实现NAS的功能。
使用场景
22年在学校组的台式机,当时因为笔记本的16G内存实在是不够我使用了,又不能升级,就被逼无奈配了个台式机,报复性的配了64G的内存。
目前我的情况比较复杂,半学生半工作吧,电脑主要就是写代码,浏览器,office这样,但是干的活相对来说比较重,经常这边网站两个VSCode前后端+数据库挂着,那边开一堆PDF和网页搞学习,然后摸鱼的时候再开十几二十个网页看视频,视频暂停再开个小型的游戏啥的。内存的话日常占用就得32G,东西开多一点64G内存就显得很合理了。
笔记本的话是个性能很弱鸡的轻薄本,i7-8565U,散热不行,所以台式机就是主力,笔记本现在基本就是上网娱乐然后远程操控台式机这样。
在NAS方面我的需求不是很大(对机械硬盘的访问不是很频繁),主要需求就是备份文件(这里就有相册的需求)和存片(jellyfin),最好再有个远程访问的功能,用的不多但是得有这功能。
也就是说,在我的场景下,首先它得是一台能干活的Windows电脑,随时能够用笔记本远程连过去,然后再是一台并不经常使用,主要提供文件备份和视频服务的NAS,算下来基本上机械硬盘99%的时间都在休眠。
硬件&功耗&硬盘
最开始是12400核显+64G DDR4+4T机械硬盘,在日常使用时放着不动(硬盘自然是休眠没转的)用外部的功率计显示40W,后面买了块3050的显卡(游戏需求不大,主要解决有无问题),放进去之后功率显示60W左右。机械硬盘的话因为我用到NAS的场景很少,所以就不考虑进去了。
也就是说在待机情况下一天基本在一度电左右,我们这边的电费大约5毛出头,一个月电费20块钱,我觉得这个价格完全对得起收益,想省电的话可以配置晚上的时候自动休眠和开机。我现在主机直接放在工作的地方,所以电费不用我出,直接就没关机了。
我设想里,完全体的硬件和对应的用途如下:
- CPU可能换成13600K或者14600K
- 当初主板花了1100买的微星B660M迫击炮,还是max,散热也挑的能压i7的双塔风冷,所以总是想着哪天换个好点的CPU直接性能翻倍,不过目前来看12400虽然连笔记本都打不过,但是也没遇到性能瓶颈,所以可能永远都不会换
- 功耗的话,实际上英特尔的CPU不管高端还是低端,放着不动都是10W出头的软显功耗,并没有太大的影响
- 2T的SSD作为主力
- 目前我是1T的SSD作为日常使用,各种开发环境+软件+虚拟机+数据+工作文件,这部分能满足吃饭的需求,够用且留有余量
- 另外还有1T的SATA SSD,是之前刚接触NAS的时候买来做存储的。用来存游戏+BT下载+最近常用的文件
- 游戏的话最近常玩的放这里面然后安装包留在机械硬盘里存档
- BT下载放这里面,下好之后再复制到机械硬盘,并继续在这里做种,从而避免频繁读写机械硬盘,省电;等硬盘差不多满了之后就删掉一部分做种的内容腾出空间循环使用
- 常用的文件的话主要相当于就是个缓冲区,比如最近要学什么东西可能下几十G的视频教程丢这里面,等学完不用了就移入机械硬盘留档这样;或者有些临时的重要文件直接用软件在两块SSD之间保持同步形成备份
- 4T * 2组raid1备份重要文件
- 这部分主要是照片一类的“人生经历”,可以看作是对自己生活的留痕吧,照片+通话录音+工作文件这些,目前的话大概只有200G,所以4T的话哪怕以后组建家庭了我也觉得够用
- 由于这部分文件很重要,所以准备用两块全新的机械硬盘来raid1备份,目前的话只有一块
- 另外我也会配合onedrive这种相对靠谱的网盘进行二次备份,防止硬件全炸了的情况发生
- 16T * 2组raid1存电影
- 我本来的预期是两个8T总共16T的硬盘用来存片,因为不是很重要,所以这部分哪怕丢了也不是很心疼
- 但是4T往上的硬盘性价比就开始下降了,全新的8T硬盘差不多就要1000出头,所以买新硬盘感觉不划算
- 所以这部分在我的设想里是买两个二手的16T硬盘组raid1进行备份,淘宝看了一下,两万小时的16T硬盘不到1000就可以买到,甚至可以到800左右的价格,我买两个组raid1,总比直接两个8T串起来的可靠性强吧,而且空间是连续的,不用考虑两块硬盘怎么把文件显示在一起的问题
- 但是对二手硬盘毫无认识,不知道这里面有没有坑
总结一下就是,在硬盘这里,最小的情况下1T的固态就可以解决工作需要满足吃饭的要求,再来1T的固态可以解决游戏和常规一点的存档和备份需求,4T的raid1作为稳健的备份,16T的不靠谱raid1解决娱乐观影需求。层层递进可以根据情况一步一步往上添置。
又因为SSD相对更省电,下载这种频繁读写的操作都放在了SSD里,所以机械硬盘基本只在备份和看片的时候有读写,耗电就可以忽略不计了。
NAS功能实现
远程访问
目前的话电脑在工作的地方,所以直接就有网,但是只有ipv4。
对于远程连接Windows的办公需求,因为经常会有远程连接别人进行协助的需求,所以之前200多开了3年的向日葵会员,感觉挺划算的。
对于文件传输的问题,看我骚操作:
直接给电脑实现4G上网功能,有公网的ipv6!移远的4G网卡(买亏了,闲鱼只要50块钱左右就能买到这玩意了)+华强北专门为了这个需求设计的带天线的转接卡(现在降价了只要70),直接硬件层面解决远程访问的需求。只不过移远这弱鸡玩意只有cat4,写的是150M的带宽,实际上下行都只能跑到3MB的速度,发现之后感觉上当了……
也有5G的版本,移远的店里卖大几百,闲鱼应该是拆机的,300块钱左右,不用担心速度的问题了,转接板还是同一家店里的,不过要贵一些,硬件总成本400出头。
装好之后可以和有线网络共存,在网络适配器里自己调一下跃点数就可以了,可以实现ipv4的时候有线网络优先,然后ipv6的时候走4G,BT下载的时候可以在qbittorrent里设置只走有线网卡,不消耗4G流量。
然后我自己有个域名,配合ddns-go,可以把变化后的ipv6地址通过ddns映射到域名上,这样远程访问的时候只要有ipv6(使用手机网络)就可以直接域名访问台式机上的服务,甚至可以直接走RDP远程桌面。
至于流量的费用,网上有很多那种大额流量卡,说白了其实主要就是校园卡被拿出来卖了,每年开学的时候可以蹲一下比较好的套餐,基本都能找到两年19块钱然后一两百G通用流量的卡,像我自己之前办了个4年19,每个月130G+结转的校园卡给手机主力使用,感觉赚翻了,自己的手机卡直接改成5块钱的套餐用来接打电话。差一点的话像我电脑里现在的电信卡就被坑了,现在是29块钱每个月加上结转有200G+的流量。
其实如果流量使用不多的话,我觉得单身租房的情况下完全可以用这种方案代替宽带,我们这边的电信最便宜的家庭套餐99一个月,带宽肯定没有5G的速度高,更何况上传只有50M的带宽,配套的手机套餐也才20G的流量,更便宜的个人宽带(没有手机套餐)也要60块钱一个月,带宽好像是30M不记得了。甚至我现在租房的机构提供的网络也是60块钱一个月……考虑到可能存在租房搬家这些麻烦事,不如不办。如果游戏下载+BT下载能控制在100G左右的话,一张大额流量卡完全足够电脑使用了。
我现在的主要手机卡+两张流量卡+偶尔打电话,一个月也才60块钱,吃饱了撑的办宽带。
网络&路由器
上面说的是用移动网络实现远程访问的事情,这里说一下局域网,也就是路由器方面的问题。
说实话我完全不理解在正常人的使用场景下软路由到底在干啥……我的理解里无非就是科学那啥对吧,然后就是去广告,其他的需求说白了就算不上是路由器要做的事情了,NAS可以做,电脑也可以做,所以不能算是软路由的功能。除非说只有软路由这一个设备在24小时开机,这个时候我觉得才可以说“我需要通过软路由这个设备来部署一些长期在线的服务”,这种情况下我觉得软路由才是正经的需求,否则我有NAS或者有开机的电脑,为什么要单独再买一个软路由呢?(个人观点,不喜勿喷)
说一下我对这两个事情的理解吧:
- 科学的话我觉得除非是要给电视用,当然我这种单身的场景下显然没有,其他情况下直接在对应的设备上手动实现就可以了。因为如果部署在路由器级别的设备上,就没办法很方便的进行开关和切换了,而很多网站,尤其是查资料这种访问未知网站的时候,你并不知道到底哪个网站要走那条路对吧,所以我倾向于在本机部署,然后通过浏览器插件手动配置某个网站的开关,懂的都懂……手机也是,走VPN方式的话手动配置哪个APP要走哪个APP不走就好了。
- 去广告更是如此,我们只能说大部分的情况下没有问题,但是如果部署在路由器上,给全家一起上这个功能,那如果某个网站有反广告拦截的检测,这个问题恰好被家人遇上了……所以去广告我也倾向于在本机进行,就是个浏览器插件的事情嘛,一分钟就能教会家人怎么开关对吧。
然后说一下我的其他一些布置,比如之前这边工作地点给设备限速3MB的上传下载,搞得我下大量文件的时候很慢,于是就用hyperV装了个ikuai,在里面进行多播,播了5条线获得5个IP,把网速叠加到了10MB。具体就是把有线网卡映射给ikuai做为WAN进行多播获得网络,然后连接虚拟机的虚拟网卡做为LAN从虚拟机传出网络给Windows使用。不过后来这边给网络加上了认证服务,一个人只能同时在一个地方登录嘛,自然就搞不了这个了……(这个确实算软路由的功能,但不算是正常场景对吧)
还有就是我用MyPublicWifi把有线网络映射成了热点(比Windows自带的热点功能更稳定,自定义功能更多)。憨批AX211只能开2.4G的热点,所以局域网的速度只能跑到20MB左右,USB2.0的速度,一般情况下还是够用吧,相当于实现了路由器的功能,如果需要5G的热点我看有说可以换联发科的网卡。
配合前文说的移动网络上网的功能,如果是放在租的房子里的话,这个热点是能够满足小户型的路由器需求的,物联网什么的也能用的上,相当于路由器也省了。在我在工作地的场景下,我可以通过这个来实现局域网设备互联,比如后文会提到的手机备份。
在我的印象里,如果没有硬路由,软路由的系统里似乎开热点挺麻烦的吧,我觉得在我这种一个人使用且设备不多的情况下,这种方案反倒是最省事的,软路由省了,硬路由也省了,使用还方便。
文件共享
前文已经把远程访问的公网ipv6和局域网的布局解决了。
局域网的情况下,MyPublicWifi配置之后可以把电脑作为路由器级别的设备,固定ip就是192.168.137.1,所以如果是走热点进行局域网访问,直接固定这个ip即可。在工作地点之外,直接用手机网络给设备提供ipv6,走ddns映射的域名即可。需要注意的是如果走公网访问,因为是不同网段,所以需要在防火墙把对应端口打开。
文件共享方面,SMB就不用多说了吧……Windows可以直接配置IIS服务,然后直接把硬盘挂载到FTP服务,在手机上可以用MT文件管理器进行挂载,远程访问时速度就是电脑上移动网络的上传速度(我现在的4G方案只有3M,在没钱升级5G方案的情况下我觉得还行)。这样SMB和FTP都可以访问,可用性还是挺强的。(记得防火墙开放端口)
文件备份
对于手机文件的备份:我在手机上配置了SMS backup(好像是这么写的)用来每天自动把通话记录和短信备份成文件,然后又配置了foldersync,在每天早上10点+连接到电脑热点+正在充电的时候,就自动走SMB同步服务把照片+截屏+通话录音+短信给备份到电脑的对应文件夹里,这样就不怕哪天手机丢了坏了刷机搞死了什么的了。
然后就是电脑上相关内容的备份:
前文已经说了,本地重要文件会有raid1的硬盘阵列,为了防止硬件一起挂掉,配合onedrive和同步软件可以定期把阵列的文件同步一份过去(这部分的文件通过onedrive的文件随选功能不显示在电脑上,减轻onedrive同步的文件数量和扫描压力)。
还有就是QQ微信的聊天记录和游戏存档等问题。
对于微信,因为我用的不多,索性开了个hyperV虚拟机,把微信扔里面,这样电脑关机或者重启的时候虚拟机会自动休眠,开机之后自动启动,虚拟机里的微信会认为自己没有退出过,所以不用重新登录,自然也就不用去TM的手机扫码了。
然后聊天记录,微信的聊天记录我开了个虚拟磁盘文件,把微信的聊天记录文件夹改到里面去,这样微信虽然在虚拟机里,但是所有的聊天记录都在这个文件里面,搬迁的时候直接搬运这个一个文件就可以了,也不用担心哪天脑残把虚拟机点了个还原直接聊天记录没了(对,我之前就脑残搞错了把虚拟机恢复到了3个月之前,然后记录全没了)。后面的备份就简单了,只需要定期把这个文件往机械硬盘里复制一份就好了。
QQ的话我没有装虚拟机里,但是备份同理,只是我现在还没搞这一套走虚拟磁盘的备份方案。
游戏存档的话就比较麻烦了,如果是正版走steam同步那自然没问题,但是穷逼很多盗版游戏,如果想在重装系统的时候备份的话就只能一个个文件夹去备份了,这个很麻烦,自动化的话也得给每个游戏写个规则然后用同步软件同步指定的文件夹。
相册&影视&BT&其他
这几个其实相对而言就很简单了。
相册的话如果走Windows端,目前似乎只有MT photo可以用,100块钱的激活码,然后人脸识别服务什么的就得自己去配置和部署了,如果遇到重装系统,还得再配置一遍,感觉不方便。
也可以走docker部署,反正我也要用WSL,把配置文件什么的都放到C盘以外的地方。还可以走虚拟机的NAS或者Linux系统。我觉得走虚拟机是最方便的,因为虚拟机所有东西都可以放在C盘之外,重装系统之后只需要打开hyperV导入之前的文件夹就可以了。(hyperV可以直接把硬盘脱机然后传给虚拟机,所以虚拟机可以直接操控硬盘)
不过我目前还没折腾那么多,目前的话就静静的躺在文件夹里头……
影视的话我也没折腾太多,直接装了个win版的jellyfin,刮削什么的都没管。如果是在台式机上或者局域网看的话就直接文件夹打开走potplayer是吧,哪个在线服务有这个强……另外就是远程访问了,比如我在租的房子里的时候,就用手机开热点给笔记本,然后走jellyfin用核显转码在网页播放,体验挺不错的,就是该死的HDR颜色映射始终还是有问题。
BT的话,之前本地装的transmission,后来忘了是因为什么原因,转到qbittorrent了,都可以配置网页端进行管理,本地和远程都可以进行下载。前文说过,qbittorrent可以配置只走某个网卡进行BT下载,这样可以避免通过移动网络的流量下载。
不过我之前只有个天津大学的PT站,最近炸了……所以现在没有PT站点了,有没有大佬推荐一些对上传要求不是很高的PT站,或者比较好的BT也行……我这边挂着ipv4上传流量几乎都不动(也可能是因为我下的都是老资源吧)
至于其他比如Alist这种服务,如果有需求的话,一个是可以本地Windows部署,(如果有需要,)配置文件这些可以用软链接等方式放到和软件相同的文件夹下,然后软件整个放到C盘以外,这样就算重装系统之后也只需要重新注册一下服务或者开机启动就可以了,配置文件都还在。也可以再安装别的虚拟机系统来解决,然后把虚拟机系统的文件放在C盘以外,重装系统之后同样也只需要重新注册虚拟机就好了。
个人体会&关于raid&系统&优缺点
前文说了,我的需求就是两组raid1,在Windows系统下可以走系统的“存储池”功能组建软raid,这种方式出来的raid在磁盘管理里面都只有一个设备,有需要的话可以直接把这个新的硬盘拿给虚拟机用,也就是可以在虚拟机里装专门的NAS系统,然后把这个raid之后的硬盘拿进去。
(我记不太清了,可能这里有错误)
但是常规的Windows版本在这里不能进行太多的配置,要Windows服务器系统才有高级的配置,比如可以配置SSD进行加速,不过这也麻烦,没有GUI,我看到的教程都是一边敲命令一边搞的……这也算是Win NAS的缺点吧,缺少对硬盘进行更精细的管控的手段。
之所以不用Windows server,是因为很多普通版本的功能在server缺失,比如应用商店,虽然应用商店可以手动安装,但是保不齐什么其他功能会缺失,而且有的软件识别到企业版或者服务器版直接就不给用或者要收费,挺麻烦的。
至于其他PVE这种虚拟机系统,或者在Windows server里装虚拟的Windows作为主力系统来使用,我觉得都不符合我的需求,而且麻烦……
前文说了,首先我需要的是一台Windows电脑,然后才是NAS,用普通版本的Windows作为主力,我可以最大限度的保障我所有的常规服务能够正常工作,而在我这种方案下已经可以解决我的NAS需求。我何必再去搞什么显卡直连什么乱七八糟的接口映射,先启动虚拟机系统再启动要使用的Windows系统这种操作呢?而且有的软件出于授权考虑还有虚拟机检测(我现在在使用的软件里就有这样的),谁也无法保证走虚拟机系统的话会不会被检测出来对吧
(Windows下的虚拟机里面无法看到CPU的实时频率,我不知道PVE这种虚拟机能不能显示,有知道的可以说一下吗?)
对于后期可能存在的更高级别的NAS需求,到时候也可以考虑在虚拟机里安装NAS系统然后映射系统进去的方案,走PVE什么的不还是虚拟机对吧。
走Windows的话,我觉得最大的好处就是所有东西都是可以感知的。某个软件配置了哪些服务,使用了哪些文件,对于熟悉Windows的用户来说都是很容易就能看到的,只要把软件本身和配置文件都放到C盘以外,重装系统后二次部署是很方便的。要找某个配置文件什么的,哪怕不懂Windows的软件数据存放机制,用everthing这样的软件一搜名字就能找到。大部分的后台程序还会在右下角通知区域显示图标,点击就可以配置,任务管理器也可以直接看到图标和进程名字。
附一张我的通知区域截图:
折叠区域里第一排最后一个是manic time,用来记录电脑使用时的前台程序情况,同时每分钟截图一次,提供使用时间记录;第4排最后一个Wi-Fi图标是MyPublicWifi,用来开热点;输入法旁边的太阳图标是Twinkle Tray,调节台式机显示器的亮度用;耳机图标是MagicPods,用来调整华强北的TWS耳机设置,好像没啥用?现在主要用来看电量;音量图标是EarTrumpet,用来切换系统默认音频输出以及“音量合成器”的功能;其他图标的话都是比较常见的软件了,除了任务管理器和QQ,其他都是开机启动的;powertoy实际没啥用,不推荐,我只用那个双击ctrl聚焦鼠标功能,也没啥用,好像单纯就是感觉好看,所以想留着……
后台的话还有ddns-go,jellyfin,装微信的虚拟机,开发用的mysql这些。
顺便分享一下开始菜单,说起来又要骂win11了,大家看我现在这个任务栏如果到了win11上默认居中后会是什么样子……
对于长时间开机这方面的问题,我把电源键改成了休眠功能,如果需要搬动主机或者“关机”,就直接休眠就好了,下次开机还能接着用。
不过Windows确实长时间不关机或者说不重启的话有点难搞。我现在平均两周左右会因为各种原因手动重启一次,比如系统更新(我没有屏蔽更新),比如各种图形化界面的bug导致需要重启才能正常使用,比如几个星期之后能感觉到内存占用比正常情况下更多了。但这些的前提都是在我日常就在重度使用的情况下的,如果是像平常的服务器一样扔那儿使用后台服务,几个月都不连显示器或者远程操控那种,我觉得Windows完全没问题,而且重启都是我自己在使用的时候手动触发的,而不是因为蓝屏或者系统崩溃。
缺点的话:
主要就是Windows的虚拟机的限制了,hyperV的话无法映射USB设备,所以有时可能需要用VMware,比如之前我想在虚拟机里测试一个USB证书(要装一大堆配套软件,不想在主力系统里装);另外就是无法精准的给虚拟机分配CPU核心,之前看视频,PVE可以精准的给虚拟机分配可以使用的CPU核心,这样的话后续换用14600K这样的大小核CPU,就可以把小核分配给虚拟机。也有一些好处,比如hyperV的虚拟机可以做到按需分配内存,我用来安装微信的虚拟机分配了8G内存,但是实际只会分配不到3G过去。
另外就是Windows缺乏对文件和硬盘的精细控制,比如raid挂了之后咋办,这个我完全没有经验……再比如对于文件的版本管理功能也是个头大的问题。
同样的还有SMB和FTP这些服务的配置,Windows的默认的服务都缺乏对这些功能的详细参数配置,只能做到开箱即用但是开箱是啥样就是啥样。
尚未解决的问题
最重要的两个问题:
- 一个是关于raid阵列的组建和重建。比如我现在有一块机械硬盘,后面又买了一块一样的,想组raid1,能不能直接克隆过去然后组成raid1呢,还是说必须得两个硬盘一起格式化?如果是后者的话那就太麻烦了,阵列组建和重建,都得有第3个更大的硬盘才行,这不是坑人吗,我觉得raid1理论上应该是可以单盘直接组建的吧?
- 另一个是文件版本管理的问题。就是我担心哪天自己又脑残或者手残把文件给删了或者把一堆文件夹给拖到另一个文件夹里去了,所以我觉得得有个文件历史功能,这个Windows显然是做不了。NAS系统里有这样的功能吗?是基于特殊的磁盘格式的功能(比如我看好像btrfs有这种功能),还是NAS系统发现文件写入之后手动分配了某种id对其进行记录呢?
写了好多,都4个小时了,可能更多的是想分享吧,想把自己的这些布置分享给能看懂能理解的人,收获一些共鸣,我想这就是交流的意义吧。