Tech补齐NAS的短板
2021-01-20大腹翁
大腹翁
自从疫情开始,个人私有云存储的需求与日俱增,NAS从小众用户的玩物逐渐走向主流市场。然而很多NAS用户发现,看上去很美好的个人云存储,在面对一些使用场景时,会有短板出现。最典型的场景就是大量数据吞吐的环境,比如视频博主的剪辑工作、自建测试数据库等。
面对这样的市场呼声,NAS厂商自然给出了解决方案—高速率网卡和SSD高速缓存,这样的配置完美打在了痛点之上,只是用户在使用上走偏了。众所周知,SSD这几年经过不断发展,主流容量越来越高,用户淘汰下来的小容量SSD越来越多,这些小容量SSD就被用作了NAS的高速缓存。有意思的是,这样做的用户,并没有得到好的使用体验。为什么呢?我们就拿WD Red SN700 SSD 4TB这样的NAS专用高速缓存固态硬盘来聊聊这个问题。
一块SSD最重要的是什么?当然是速度,相比前几年那些小容量SSD,现如今SSD的速度已经今非昔比了。拿这款专为NA S设计的高速缓存固态SN700 4TB来说,使用CrystalDiskMark8.0进行测试,可以得到顺序读取3435MB/s、顺序写入3123MB/s、随机读写也能近600MB/s。这些数字是以前的老家伙们绝对达不到的水准。当然,光有速度还不行,既然是给NAS当作缓存,那么读写量就是一个需要考虑的因素。SN700最高提供高达5100TBW的写入量,并且还有5年的质保,可以说是将各项指标都拉满了。
当然,这么说还是太虚了,我们来上机实际测试一下。先说一下测试环境,NAS为威联通TS-653D搭配QM2-2P10G1TA加速卡,这块加速卡集成了两个NVMe高速固态缓存接口和一个万兆网口,我们将SN700 4TB的SSD装在加速卡上进行测试。机械硬盘我们选择了一款入门级别的WD60EZRZ 6TB硬盘,之所以选择这样一块硬盘,是想看到高速缓存对这样一款性能较为普通的硬盘能有多大的提升。基于同样的考虑,我们没有采用多块硬盘组RAID的方式。将NAS运行环境搭建好之后使用万兆网络连接电脑,将NAS的存储空间通过iSCSI协议在电脑上模拟出一个虚拟本地硬盘,这样我们就能通过对这个虚拟硬盘的测试,测出性能的变化。
在单机械硬盘,没有SSD缓存的情况下,顺序读取速度基本和在电脑上使用时相差不大,顺序写入速度略有损耗,至于随机读写嘛,对于机械硬盘就不要抱有太高的要求了。然后我们找了100GB的文件进行了实际的读写测试,跟测试软件的结果差不多,从NAS持续读取有接近130MB/s的速度,写入NAS稍慢一点也有100MB/s的速度。基本上可以得出结论—这就是这块6TB硬盘本身的极限速度了。
接下来,我们将SN700 4TB装入NAS,设为高速缓存,其他设置不变。可以看到顺序读取速度达到632MB/s,顺序写入也有488MB/s,多线程随机读取直接翻番,而多线程随机写入更是快了近百倍。仔细看这份数据我们可以发现很多有意思的地方,首先,NVMe高速缓存的作用是毋庸置疑的。其次,这还远不是它能达到的最高速度,虽然现在使用NVMe通道作为高速缓存,但数据的实际出口还是机械硬盘所在的SATA通道,高速缓存帮助机械硬盘活生生将单个SATA通道的6Gb/s带宽跑满了。如果是多个硬盘组RAID,再加上这样的高速缓存,那么跑满万兆网卡的带宽也不是太大的问题。总的来说,有了像WD SN700这样的高速缓存加持,NAS可以从一个冷数据仓库摇身一变,成为一台生产力工具。特别对于需要在NAS进行虚拟化应用、数据库存储(OLTP)、并發访问和协作编辑的个人和小型工作室来说,都是大有益处的。毕竟一台NAS+高速缓存专用SSD的价格,比起一台服务器来说,还是更加亲民的。
此外,值得注意的是,实际NAS+高速缓存场景在实际使用过程中,会比测试数据提升更加明显。这是因为现在市面上主流NAS品牌的高速缓存加速原理,都是靠“猜”用户的热数据来工作的,也就是说NAS系统会根据用户访问文件的频率来判断数据的优先级,然后将用户最常使用的数据提前存入SSD中进行缓存。也就是说使用的时间越久,NAS“猜中”用户热数据的命中率就越高,速度也就越快。这也从侧面说明了另外一个事情—对于NAS的高速缓存,容量越高越好,像WDSN700 4TB这样的固态硬盘就非常适合,毕竟缓存固态硬盘的容量越大,能缓存的数据就越多,用户体验就越好。
当然,如果你对读写都有高要求,建议一次使用两块WD Red SN700作为高速缓存。因为目前主流NAS对于单块SSD的高速缓存,都是用作读取,这对于文件数据仓储是足够了。但对大量I/O密集型工作负载,如虚拟化和OLTP数据库,只有读取缓存远远不够—只有在配齐读写双缓存SSD的时候,NAS系统才能发挥缓存的最大速度优势,达到一个最理想的工作状态。抛开细节的配置选择,一些小小的投入就能将NAS最大的短板补齐,完全发挥生产力的特性,何不试试呢?