Nas数据存储:UNRAID

1、什么是UNRAID

UNRAID是一种嵌入式操作系统,是基于LINUX slackware的RAID系统,其本质总结成一句话就是带有校验盘(即容错功能)的JBOD。

Unraid会从USB闪存设备安装并从中引导,然后加载到根RAM文件系统中,并且系统内存消耗最少。与操作系统有关的所有配置数据都存储在闪存设备上,并与操作系统本身同时加载。Unraid系统的管理是通过直观的Web界面完成的。

主要有三大功能:NAS(网络附加存储)、docker(容器)、vm(虚拟机)

2、UNRAID的优点

2.1、硬盘随便加

硬盘的管理方式是随便加硬盘,可以不同大小、不同速度,最后都是一个存储池,只要一个硬盘做冗余就行,有硬盘坏了就从那个校验盘进行恢复,对个人来说比折腾RAID可靠多了。

但是要求:校验盘>=其他盘。

 

2.2、最大可能保护数据

任何一个数据盘拆下来,挂载到其他操作系统上,可以直接读取。

可以损坏任何一个磁盘,不影响数据完整性。如果第二硬盘也倒下了,也只损失这个硬盘上的数据,而不会损失整个阵列数据。

举例:一个校验盘(阵列ABCD 4块硬盘+校验盘E)

  • 坏1块盘
    A-E盘中的任意一块坏了,对数据没有影响,用同容量或者更大容量(容量≤校验盘)的硬盘替换坏的硬盘即可。
  • 坏2块盘(数据1+校验1)
    数据盘中的A坏了,校验盘E也坏了,那只会丢失A盘中的内容,B/C/D盘中的内容仍然可以访问,只要把盘拿出来,挂载到其他LINUX系统上,即可访问其中内容。
  • 坏2块盘(数据2)
    数据盘中的A、B坏了,那数据只剩C、D,校验盘无法恢复2块硬盘的数据。

传统的 Raid 如果单独拆下一个硬盘,这个盘不可读取,剩下的盘也都不能读取。Unraid 的软 Raid 特点是只拆分文件夹,不拆分文件,也就是没有硬 Raid 的数据分片功能。单独拆下一个硬盘,文件也都可读可用。

2.3、支持硬盘无访问自动休眠

当硬盘处于休眠状态时系统要读取文件,Unraid 只需唤醒文件所在的那个盘即可,而传统 Raid 要唤醒所有硬盘,因为这个文件在所有的硬盘上。毕竟一个家用阵列,不是每时每刻都有访问需求的。节能、降噪。

2.4、系统小,在内存中运行

系统大小 200 多兆,(密钥和优盘 ID 绑定),系统在优盘内,但是优盘只起引导作用,启动后系统在内存运行;不需要分配一个磁盘用来装系统。

2.5、支持加SSD缓存

虚拟机和应用程序可以将其数据永久驻留在缓存池中,以提高整体性能,同时使用VirtFS(适用于KVM虚拟机)和Docker(适用于容器),可以保持阵列上的海量存储内容仍可供这些虚拟实例访问。

 

3、UNRAID的缺点

3.1、硬盘读写速度不快

因为一个文件是完整得写到一个硬盘中,无法通过条带等方式加快读写。所以,写入速度是小于单盘的性能(就算是所有阵列硬盘全部开启时的TurboWrite模式也达不到单块硬盘的最高连续写入速度)。不过可以通过加SSD缓存盘进行加速。

主要有如下三个情况:

  • 开启SSD缓存盘:800 MB/S
    直接写入到Cache(SSD)中,然后Cache盘会在每天设定的时间自动回写到阵列里)。这个时候就是SSD的写入速度了,飞快。比如可以到达800MB/S
  • 开启TurboWrite模式:100 MB/S
    写入速度取决于阵列里**最慢**的那块硬盘的读写速度。比如文件存到A盘上,那校验盘E、数据盘A是写入状态,数据盘BCD是读状态,A和E哪个慢哪个是瓶颈。一般单盘的性能是100MB/S左右
  • 开启Reconstruct模式:60 MB/S
    校验盘E、数据盘A是同时是读写状态,数据盘BCD是休眠状态,所有速度只有一般左右了,大概60 MB/S

3.2、UNRAID是要授权,不是开源的

UNRAID是要授权的。按照要使用的硬盘数量来收费,6 盘位售价 59 美刀,12 盘位售价 89 美刀,不限硬盘数量售价 129 美刀。

 

参考资料

  1. Unraid 优点和缺点