工作室服务器诞生记

全文共4700字,阅读需9分钟

首先说明一下工作室服务器搭建的想法和初衷。

2021年11月份左右,工作室陆续有新成员加入。视频素材数据量明显变大,普通的U盘和电脑硬盘很难全部存下,移动硬盘多人传文件麻烦不说,携带储存不当还有数据丢失的风险。每个视频都要许多老师和同学一起筛选,网络上现有的网盘上传速度慢,而且每次分享给别人观看的时候都要下载app,觉得很麻烦。机缘巧合的机会刷到网上各种搭建NAS 的视频(NAS:Network Attached Storage:网络附属存储),于是下定决心添置一台能够多人同时共享文件,并且文件可靠性强的NAS。

以下是我总结的nas的优缺点:

优点:
1.可多人同时共享文件
2.可以自动进行文件备份,比单硬盘可靠得多
3.局域网内上传和下载速度是市面上各种网盘速度的十倍多
4.各种插件可以填充各种实用的功能

然而缺点也是显而易见的:
1. 搭建专业性要求高,学习成本高,有一定的技术性要求
2. 硬件支出成本高
3. 经常需要专人进行维护

刷了这么多视频,准备开始进行实操了。结果去某东上一查价格,整个人瞬间石化。

(请记住这里群晖的名字,下文中还有提到)

入门的两盘位NAS都要2000+,而且这还是不包含硬盘的价格(硬盘参考价格:一块4TB机械硬盘800rmb+),算下来整套服务器价格要4000+,这价格…我们这种小小的学生影视工作室当然高攀不起啊。于是我将目光转向了更加节约成本的解决方案:DIY NAS。顾名思义是全部自己选择配件并且纯手动搭建的办法。我也总结了两种方案各自的优缺点:

优点:
1. 节约成本 可以根据自己的需求选择配件
2. 后期升级灵活性强

缺点:
1. 需要极强的动手能力
2. 需要自己选购配件
3. 要自己安装系统,还要解决可能出现的奇奇怪怪的问题

带着这些想法去网上对比斟酌了很多,发现了几种主流且能满足需求的系统:FreeNas、CentOS、 Windows Server 及黑群晖。
其中freenas和centos是基于Linux进行开发的,由名可知,freenas是专门为文件存储进行了深度定制的,而centos则是进行服务器搭建的主流系统。
Windows server:微软开发专用于服务器的操作系统,可以理解为我们日常使用windows系统的深度定制版,其与windows使用了相同的系统内核和操作界面(可选),并在此基础上为服务器用途进行了一系列精简和优化。

黑群晖:群晖(Synology)本身就是生产文件存储产品的公司,群晖的nas在文件存储市场中占有很大的份额,由于其系统操作通俗易懂,特别受到一些个人、家庭以及中小型企业用户的青睐。黑群晖就是将群晖的系统单独提取出来,并且安装在自己组装的硬件上面(与黑苹果有异曲同工之妙,可以放在一起理解)。
Freenas由于其将内存(ram)用作文件缓存的特性,对硬件性能的要求较高。而黑群晖由于并不开源,所以仅兼容一小部分硬件。Centos绝对强大,但学习成本较高,对于我这种linux使用时间不足500小时的小白不太现实。而windows server安装和配置相对简单,且软硬件兼容性好,能运行windows上几乎所有的应用程序。并且对于访问端配置也极其友好,显然是最适合我们的选择。

确定了操作系统的可行性,接下来就是进行硬件的选择和搭配。良好的硬件搭配不仅能节省很多成本,也能在之后的配置中避免因硬件兼容性问题导致的许多问题和错误。
经过淘宝上的一番搜索和筛选,我最终选择了上古神U i5 4590(现售价320左右,购买时受到全球疫情的影响价格较高)和B85plus的板U套装内存受限于主板,选择了DDR3的1600频率8G内存。
硬盘方面,这里要感谢北校区IT王钢老师赞助的2块西数8T硬盘作为数据盘,除此之外还选用了1块nvme固态作为系统盘,一块sata固态作为缓存盘。考虑到之后服务器会长时间放在机房里,所以噪音和机箱体积直接忽略,使用了最便宜的解决方案。

服务器配置表如下:

(第一次自己组装主机,欢迎大家指出不足和改进措施)

装机工作是在北校区D楼计算机教室进行的,过程出乎意料的顺利,基本上没有任何需要返工或者奇怪的问题出现(走线除外…因为没有装机经验,走线基本不能看)。
硬件的部分折腾完,下面开始部署环境。此处要感谢B站up主HUGO陀陀的详细教程,每一步都有详细的教程,小白也能轻松上手!!!

B站视频截图

首先进行的是最没有挑战性的环节:装系统。这个环节对我来说完全没难度,毕竟也是自己封装过系统的人了(bushi)。
接下来进行文件共享设置,针对南校区和北校区建立了两个完全独立的账户,双方只能编辑和查看自己上传的内容。需要两个校区联动的时候可以新建一个临时共享,最大程度保证文件的安全性。

在服务器上配置好文件共享之后,就可以愉快地在windows系统下磁盘映射了。此时就可以看出本地服务器相比网盘的便捷性,不需要安装任何程序或插件,只需要通过windows自带的局域网共享就能直接访问共享文件。

之前提到的各大品牌的成品nas,为控制散热、噪音和功耗,几乎都是使用了J1900,J4105之类的低压U,此类cpu与主流I系列相比,只能应对基本的系统及文件管理需求。然而虽然我们选择的酷睿i系列CPU制程较老,但由于机房内不需要考虑以上三类问题,在性能释放方面有压倒性优势,应对普通的文件存储等使用场景绰绰有余。故在基础的网络存储基础上又搭建了一些功能:

1.在线文件发放
一些需要公开发放的文件,如果让所有访问者全部使用windows的局域网共享,无疑会增加访问者的操作难度;公开服务器的内部文件系统对数据安全也存在威胁。然而网上此类教程少之又少,且大部分文章都已经过时,参考价值有限。为此,我直接使用HTML搭建了工作室的主页索引,主页上会标注一些常用服务的链接以及信息。搭建完成后,访问者只需要在浏览器中访问服务器的ip地址即可快速找到定位自己需要的信息及链接,且与服务器文件存储区完全隔离,不会有安全风险。

2.可道云文件服务器
可道云(kodbox) 是私有云网页端解决方案,对于部分不支持smb共享协议的用户(如安卓手机)也可以访问可道云浏览文件,搭配端口映射服务,即可在局域网之外访问服务器内文件(之前是想把可道云当做主力使用,但一段时间后发现可道云完全使用IIS服务进行转码,受限于cpu性能,上传及下载速度只能达到7mb/s 故仅做应急使用)。
使用了一段时间,又在万能的互联网上找到了一个冷门小众云盘平台——索鸟快传。虽然已经停止更新,且界面比较简陋,但其功能强大,且直接由c语言编写,内网实测速度上下行基本可跑满全部带宽。

3.Jellyfin影音服务器
Jellyfin流媒体影音服务器可以将视频在观看前进行在线转码,可有效节省带宽,解决了传统视频文件需要先完全下载再本地打开的尴尬。对于动辄几个G的视频素材,想要在周末及节假日远程进行样片的挑选和审核,Jellyfin可以做到即点即播,仅需几秒的等待时间即可观看,并且视频进度条可以随意拖拽,无需等待过长时间。Jellyfin十分考验CPU以及显卡的视频解码能力,打开视频的前几秒,ffmpeg编解码程序可达到100%的cpu占用,几秒后恢复正常。

4.校内局域网直播平台
局域网直播可以算得上是在服务器的这些附加功能中搭建步骤最繁琐的功能(同时也是最让我有成就感的)。
在网上搜索关于直播服务器搭建的教程和技术文档,几乎都是使用nginx+ffmpeg进行搭建和推流的。经过我的多次尝试,发现此种直播方式效率低下。ffmpeg转码对性能占用极高,且没有图形化界面,只能通过命令进行推流。这意味着直播服务器只能推流录播内容,与直播平台的搭建初衷出入较大。在github上进行了一番搜索,发现了smart rtmpd这一软件。

找到了比nginx更加高效的直播平台,接下来解决推流的问题。我使用的是同样在github上的开源项目——obs studio(许多接触过直播的同学们应该都有所耳闻)。

需要在obs中填写对应的服务器地址和串流密钥即可进行推流(obs通常会在第三台电脑上打开,并且推流到机房内的直播服务器,再由观看端统一访问直播服务器进行观看)。
经过测试,直播服务器可以实现全校局域网范围内进行推流和观看,延迟基本可以控制在5s之内(实际使用时为应对直播中可能的突发事件设置了10秒钟的延时),观看端的数量几乎不会对服务器的cpu占用率造成影响。理论上只要网络条件满足,服务器性能可支持几千人同时在线观看。

5.关于服务器的数据备份
看到网上太多人因为硬盘损坏导致文件不能正常提取的案例了,尽管身边朋友都认为没必要做备份,我还是乖乖进行了镜像备份。两块8t硬盘1#作为日常使用,另一个2#每天凌晨会对1#硬盘进行全盘镜像备份,并且为了解决在外访问困难的问题,使用了微云同步助手对资料文件夹进行云端对比和上传。这样既解决了文件备份的问题,又借用了腾讯的服务器进行异地存储和下载,几乎可以做到万无一失。

如图:在第一次备份时会进行全盘备份,之后每次的备份会以增量备份的形式出现:即对比与上一次备份相比增加的内容,将新增内容备份到磁盘中。被删除的内容将会在备份盘内继续保存,以便于后期进行恢复。

     服务器实际使用过程中踩过的坑和问题
1.之前一直想把nvme用作缓存的,但是windows server2019存储池中的分层功能似乎无法正确识别nvme协议的固态硬盘,每次在建立分层的时候都会出现莫名其妙的错误。网上也没有类似案例,因为大部分人都只会使用SATA协议的ssd作为缓存。

2.在存储池中,如果使用自带的mirror模式作为双备份,在一些软件中可能会无法识别这些文件。具体问题是写入数据时显示文件已经存在,但读取文件却读不到对应的文件。经过了多次尝试,最后还是建议使用windows backup进行备份,不要使用存储池。并且在恢复数据时使用windows backup进行备份的磁盘可以在任意其他机器上读取数据。
最后浅放几张服务器的更新日志。

  总结:一入nas深似海。现在回想发现,最开始我们的需求只是一台能多人同时局域网内共享文件的nas,但更新到了现在,文件存储只不过是服务器的众多功能之一。这也是diynas的好处之一,可以根据自己的喜好无限添置功能。如果我们当初花费大几千入手了一台整机nas,凭借弱鸡的j4125和可怜的2gb内存一定不可能拓展到今天服务器这么多的功能。现在的我们已经不管它叫nas了,而是直接称其为服务器。因为这台“nas” 不单单只是一个存储文件的空间,可以说我们工作室新开展的许多业务都是围绕着这台服务器的。对于我来说,这台服务器更是意义重大,它是我人生中第一台真正从零开始动手组装的计算机,标志着我从“云装机”正式进军到线下装机。不仅如此,这台服务器更是我在网络it方面迈出的第一步(之前一直没走出操作系统这一关)。搭建和维护这台服务器,比起它的功能性,我更享受的是解决各种“疑难杂症”的过程,和问题得到解决时所带来的成就感。这是之前的我从未体验过的快感。当然这一切都要感谢工作室制片——姜瑛老师和北校区it王钢老师一直以来的帮助和鼓励,无论是在硬件上的鼓励还是对解决问题的帮助,两位老师都在服务器的搭建和维护上起到了重大作用。

撰稿:李叙宁
手绘:袁若青

免责声明:
1.本文仅供IT爱好者参考、学习、交流使用,严禁任何商业用途,否则产生的一切后果将由使用者承担,作者不对任何资源负法律责任。
2.本文提到所有品牌产品仅代表特有场景的使用观点,与品牌和产品自身性能无关;
3.本文如出处标注有误或侵权,请联系删除。

本文引用资料:
NAS装机教程配置分享:组台高性能NAS,就别在乎钱了——什么值得买
https://baijiahao.baidu.com/s?id=1717818807576905165&wfr=spider&for=pc
smart_webrtc 使用说明汇总(定期更新)——freeabc的CSDN博客
https://blog.csdn.net/freeabc/article/details/108561272
windows 存储分层配置教程——知乎
https://zhuanlan.zhihu.com/p/426652369
【威联通TS-262C】威联通(QNAP) TS-262C 2盘位 Intel®处理器网络存储服务器内建2.5G网口NAS私有云——京东
https://item.jd.com/100027771730.html
【群晖DS220+】群晖(Synology)DS220+ 2盘位 NAS网络存储服务器 (无内置硬盘)——京东
https://item.jd.com/100014187286.html#crumb-wrap
superconvert/smart_rtmpd: rtmp server, smart, compact, high performance(c, c++), high concurrency, easy to maintain, easy to deploy, (supports multiple operating systems windows and linux, arm, freebsd)——github
https://github.com/superconvert/smart_rtmpd
用windows server 2022安装自己的WINDOWS NAS_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV1mr4y1k7cE?spm
我的NAS折腾之旅(纯NVME固态NAS)_NAS存储——什么值得买
https://post.smzdm.com/p/avwov2gm/

审核:姜瑛

公众号原文链接:https://mp.weixin.qq.com/s/e0svVo5r58WaUzwLsFy2ig
发布于2022年5月1日