一、为什么要NAS?
虽然每个人都有各自的理由,但核心诉求点集中在安全存储和备份分享数据,支持远程访问,可安装包括虚拟化、web服务器等的额外拓展等。NAS的本质是网络+存储。
我使用NAS主要目的是:
二、NAS有哪些可选项
目前家用NAS,可以选择DIY自建,即自己购买硬件组装搭建NAS,NAS本质上也是一台计算机,只是在功能上偏向于存储而已,操作系统可以选择存储专用的FreeNAS的系统,也可以直接购买成品,诸如威联通、群晖、铁威马等。对于没有太多计算机基础的小伙伴,建议就不要自行搭建了,挑选硬件和系统容易交学费,故障排查繁琐。
个人之前用过铁威马,感觉是具备基础的NAS功能,如果只是想简单安全备份存储文件,铁威马确实够用了,性价比高。但就功能性和额外拓展的能力相比威联通和群晖,确实稍弱。鉴于本人使用NAS的目的,综合考虑后,购买了威联通的TS-873A。之前也考虑过价格相近的商用的机架式的NAS设备,诸如TS-832PXU,但企业级设备噪音较大,家用无法忍受。
选择TS-873A,我的核心诉求点如下:
还有一些特性,我暂时用不着,诸如可扩充显卡,远程访问,搭建虚拟化环境等。可以访问https://www.qnap.com.cn/zh-cn/product/ts-873a
看下官方的介绍。
三、实际体验与改造
四、开始实验
威联通NAS有两种系统,一种是传统的QTS,基于EXT4,另一种是 QuTS hero,基于ZFS。先说下结论,最终我还是用的QTS。虽然hero有许多高级特性,诸如去重,块大小可选等等,但对于我而言,稳定性更重要,高级功能虽然好但非必须,hero对机器性能的要求要远高于QTS,hero系统一旦初始设定完磁盘,就难以变更。虽然最终未使用hero系统,但我依然针对hero系统做了一系列的实际测试。
注意下,因为硬件所限,部分对照实验仅供参考,实验环境如下:
NAS与服务器均使用万兆电缆连接到交换机上,网络环境不成为速度瓶颈点
安装系统并创建存储池与区块LUN,开启iSCSI。安装好系统后,注意以下2点:
服务器上还做了以下设置:
使用CrystalDiskMark 6.0.2 x64版本。测试次数选5,大小32GiB,测试队列数与线程数使用默认项,分别是顺序写入Q32T1、随机4K Q8T8、随机4K Q32T1、随机4K Q1T1
- 所有磁盘传输速度单位均是 MB/s
- 由于10G网络限制,部分测试项,特别是顺序读,已经达到网络传输速率上限,造成无法有效测量真实IO速度
- 多次重复测量,数值可能会有变化,变化幅度最大在15%左右。
测试维度有:
缩写:
测试环境:
测试环境:
测试环境:
测试环境:
高速缓存加速是利用SSD作为缓存用于改进NAS的读写性能,加速分3种,只读加速、只写加速、读写加速。加速用的SSD,RAID可选项有不启用,RAID 0,1,5,6,10。只读加速可以组RAID0,因为并不存在数据丢失风险,RAID 0 是最优选项。只写或者读写缓存,建议使用RAID 1,5,6,10,避免因为SSD本身故障导致数据丢失或损坏的情况。高速缓存加速读的原理是,当从LUN或卷读取数据时,QTS将数据复制到SSD缓存以加速未来的读取请求。加速写的原理是QTS先将传入数据写入SSD缓存,然后再将数据刷新到常规存储。如果新数据在缓存中,对新数据的读取访问也会加速。
Qtier简单描述就是,QTS系统会根据存储设备速度将存储进行分层,然后按照数据访问频率,再各层之间移动数据。将经常访问的数据移动到最快速的磁盘,以提高读写性能,并将不常访问的数据移动到大容量的磁盘,降低存储成本。
- Seq Q32T1 Read,无论是RAID 1 还是10,有无开缓存,都基本触及或接近10G网络的速度上限。
- Seq Q32T1 Write,不开启缓存,基本和RAID 1 和 RAID 10 实际速度接近,高速缓存加速的写速度其实就是SSD的写入速度,和高速缓存原理的描述一致。Qtier的写入,RAID 1 和 10 接近2倍的差异,而且和HDD写入速度接近,猜测应该是直接写到HDD磁盘上的。
- 4KB Q8T8 Read,速度差异小。
- 4KB Q8T8 Write,Qtier和不开启加速的速度是接近的,高速缓存速度是最快的。
- 4KB Q32T1 Read,速度也相对较小。
- 4KB Q32T1 Write,不开启加速和开启高速缓存的结果和预期的一致,高速缓存的写速预期是应该和写入SSD 的 RAID 1 速度差不多,测试结果相近。但Qtier性能较差,甚至比不开启加速的速度更低,我甚至一度怀疑我测试有问题,特意多次测量,但结果依然不佳,这点让我不是很理解。
- 4KB Q1T1 Read,速度差异小。
- 4KB Q1T1 Write,不论什么RAID类型,是否开启加速,速度差异都不大。
从实验结果看,顺序读取由于触及网络上限,可能真实速度还可以再更快一些,毕竟 安装在本地的 M2 SSD 顺序读取都可以到 3500 MB/s 这样的速度了。关于顺序文件写入,由于Qtier是直接写入到HDD,所以速度比较低。关于4K文件的读,速度大抵和预期的差不多,高速缓存的速度和做RAID 1的SSD读速相近,Qtier和 做 RAID 10 的 HDD 读速相近。而在写性能方面,特别是在随机并行写入的场景下,高速缓存优势明显。虽然所有涉及Qiter的测试,在测试前我已经把相关的LUN设置为Qiter必做分层的LUN了,且手动执行了分层优化的任务,但因为我的实验场景是随机数据写入,所以从实验结果上看,Qtier优势不大,真实场景下性能应该会好一些。
总之,如果是有很多随机小文件读写的场景,诸如虚拟化等,用高速缓存加速更合适。而Qtier,更适合IO可预测的场景,诸如文件服务器等。
测试环境:
QTS系统中,针对不同的块大小,即使是在不同RAID场景下,并没有显著的性能区别。
测试环境:
和QTS系统相同的是,Quts hero系统顺序读写,小文件随机读,性能差异不大。但随机写小文件场景下,不同块大小的速度,写性能差异较大。
测试环境:
实测证明,ZIL对性能影响非常大,2个数量级的性能差异,非必要应尽量不开启ZIL。
原文链接:https://blog.csdn.net/qwe123321123/article/details/126856541?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171828022116800188519981%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171828022116800188519981&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-5-126856541-null-null.nonecase&utm_term=nas+%E9%93%81%E5%A8%81%E9%A9%AC