对于一般用户来说,Windows NAS系统是最佳选择

发表时间: 2023-10-29 22:31

抛开现在的市场占有率不谈,其实对于普通用户来说最好的NAS系统是Windows,是不是有一些意外呢?对于一个NAS初哥来说,用了各种不同系统的NAS起初的目的就是为了逃离微软的掌控,但事实上很多玩NAS的用户兜兜转转好久,最终又会回到Windows下。

咱们今天唠唠这个问题。看看微软在存储上默默的做了些什么?

第一个要点:你要了解的是咱们说在存储上的Windows 并不是Windows 10或者Windows 11这类面对普通桌面发布的Windows系统。要知道Windows本身是一个庞大的家族,针对于不同的使用需求Windows系统是有自己不同的版本的,通常流行的Windows 10或者11仅仅是面对于桌面用户,还有一些Windows系统被应用在不同的领域范畴。

这里面一些资深的IT工作者会脱口而出Windows之外还会有Windows Server版。这些还是皮毛,如果再细分到专业领域中,Windows Server的特殊版本还会有一启动就会只运行专门领域应用的Windows Server Storage Server或者Hyper-V Server的版本。

这些特殊版本仅仅安装windows 内核和必要的服务,安装完毕后,启动起来甚至连开始菜单都没有,仅仅包含一个敲命令或选择功能的PowerShell命令行窗口。

当然了,在企业级应用中这些看似残缺的Windows系统并不妨碍正常使用,这些特定功能的Windows服务器完全可以通过远端的服务器进行管理,而管理方式也仅仅是需要每台正常的Windows Server服务器在启动的时候就会跳出的“服务器管理器”这样的工具就可以直接远程管理——这是微软大战略的一部分。

在真正的业务环境中,只要是企业的域管理员账户就可以通过“服务管理器”来管理企业域下的任何服务器和计算机。因此,服务管理器也就成为了管理Windows Server上面各种服务的管理入口。为此,大家也会明白为什么会有只运行Windows 内核和仅有的几个服务的Windows服务系统了吧?——这些系统并不需要登陆到系统内就可以进行管理。

说回咱们的文件管理主题,Windows Server是基于角色的服务器系统,在系统中可以通过添加角色和功能向导对服务器赋予特殊的角色:

“文件服务器”恰恰就是Windows Server的一种常见角色。我们可以通过预定义一些角色功能为Windows Server挂载特定的服务功能:

当添加了“文件和存储服务”角色后,在服务器管理其中就可以激活文件和存储服务页面:

进而可以在存储池中利用系统内没有挂载的磁盘建立出一个存储池。

然后在存储池内建立虚拟磁盘或者虚拟目录

看到这里会有很多人迷惑,为什么不直接加载磁盘而是要通过Windows的存储池机制呢?这主要是为了利用更高级的存储功能。例如弹性存储。我们可以陆续的向一个存储池内添加物理磁盘而保持存储池的自然增长。而且,添加的磁盘并不一定是要相同规格或固定的尺寸。一切存储服务都可以依靠Windows 存储服务套一个壳。

同时,我们可以在不同的虚拟盘内实现不同的数据安全等级,例如简单卷(这里是指存储池里面的简单卷)——类似于Jbod,可以统筹多块硬盘的空间进行顺序存储以获得扩展性,再如奇偶校验卷,则是在存储池内实现分布奇偶校验机制,类似于Raid-5。

通过选择不同的卷格式,我们就可以实现数据不同的安全等级,同时:由于Windows自己的存储池管理机制,在已经分配了空间的磁盘上,我们可以很轻松的扩大磁盘空间大小。

而且,这种磁盘空间的大小改变并不会影响到磁盘的在线状态,也就是说我们可以在磁盘工作的时候同步改变磁盘大小。这对一些任务繁重的工作组级别的应用就相当有意义了,不会因为磁盘存储方面的维护导致其他成员的工作中断。

第二个要点:更快的系统支持程度。通常Windows的文件共享主要是依靠SMB也就是“服务器消息块(Server Message Block)”进行文件和打印的共享,这是一个很有历史的协议了,目前,SMB 3.0实际上已经普遍被很多新版的操作系统支持。

在SMB 3.0中有两个相当重要的网络传输特性被支持(当然你得有适当的网卡驱动),第一个是RDMA,也就是远端直接内存访问:

通常的情况下我们的数据需要经过存储硬件-操作系统内核-应用程序-操作系统内核-网络硬件发起传输,而接受数据的一段也需要重复这个过程。通过实施RDMA指令,两台计算机可以直接打通内存-网卡的通道,数据的传输并不一定非得经由操作系统到应用程序的层面而是可以直接透过网络进行内存同步。这时候由于没有冗余的层级,速度得以大幅度加快。

类似于intel的一些网卡透过iWARP(RDMA在intel的技术序列中的名称),可以实现RDMA效果。而由于RDMA的协议基本特性,在对SMB的支持也就更显得性能突出,而目前SMB的最好载体实际上也只是Windows。

同样,SMB 3.0的Multichannel(多通道)特性注意不是链路聚合,可以有效的利用主机中多块网卡分块传输单一目标文件。这对大文件的传输是有成倍的收益的。

它可以充分的利用多块网卡的传输带宽对单一文件的传输进行倍速。这一点虽然一些NAS系统也有支持,但是需要装不同的插件实现,而对于Windows来说,这是内置功能,并且优化的要比其他的NAS系统更好。

其三:多样性,实际上在Windows server系统不仅仅可以实现文件共享级别的SMB存储分享服务,还可以提供iscsi、多共享池等额外的可缩放的存储服务。这时候利用Windows作为存储服务器就有了更大的灵活性。

其四:新的文件系统,在2012版的Windows Server中ReFS(Resilient File System,弹性文件系统),到了现在最新的2022版Windows Server中ReFS的已经完全稳定可用。这是一个崭新的块存储系统。

尤其是结合Windows存储池的使用,ReFS的机制将最大化的得以体现。ReFS是基于块的存储,一段数据经过HASH计算在hash表中找到自己的位置。对应的传统文件系统FAT、NTFS基本上都是基于链表的方式进行数据存储。这时ReFS的优势就在虚拟机和Docker上体现出来了——虚拟机也好、Docker也好都会在磁盘中反复存储大量相同的文件。由于相同的文件块HASH值是相同的,因此在ReFS中仅仅占用一次空间。这样就对大量部署的虚拟机和Docker文件存储空间友好,在不影响性能的前提下大幅度的压缩存储空间。

写到最后,很多人就开始讨论Windows Server的价格问题和能够跑得起来Windows Server的服务器并不是一般的NAS可比。实际上,Windows Server相对于CPU和IO设备来比更吃内存,只需要将内存给足Windows Server一般都可以在高性能模式下运行,而运行效果并不比同平台的其他系统差。如果觉得Windows的众多额外服务比较拖累自己,那么就可以参考前面提到的专有服务模式运行一台Windows Server或者将存储服务和Hyper-V共同运行于一台服务器中,也就完成了绝大多数所需要的NAS的绝大多数功能。

对呀技术小白而言,他们喜欢的Docker容器,实际上在Windows Server中也有图形化、命令行以及基于Web的容器管理工具。

这一点实际上比基于社区服务的开源NAS也更加丰富。