NAS是什么?如何DIY一台NAS 存储?

NAS(Network Attached Storage),直译就是网络附属存储,如果要DIY,那么首先需要解决大容量存储的问题。

一般的NAS的存储规模通常在20T~100TB,普通市场没有这么大容量的磁盘,所以通常由几块到几十块硬盘组成。

也就是说NAS的文件系统,首先需要解决跨硬盘的存储的问题,即存储池。   

而普通的AIX、NTFS、EXT4、BSD等文件系统,由于无法跨越多个硬盘,所以将会被排除掉。

目前常见的跨硬盘的文件系统有:ZFS、RAID、VMFS、cephFS、BtrFS等等。

下面简单说下各文件系统的含义:

  1.  现在NAS上流行的ZFS(Zettabyte File System),也叫动态文件系统。
  2.  RAID,比如群晖的SHR(Synology Hybrid RAID)是群晖的自动 RAID 管理系统。
  3.  VMFS, vmware 裸机虚拟化用到的文件系统
  4.  cephFS,PVE虚拟化后用到的文件系统
  5.  BtrFS,又被称为 B-tree 文件系统、Butter FS 或者 Better FS。

他们都解决了存储扩展的问题,以及跨硬盘存储的问题, 使得我们在DIY的时候多了一种选择。

也有人说LVM(Logical Volume Manager)逻辑卷管理也能把多个磁盘组织成为一个文件系统呀。

由于lvm本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,所以不算在内。

如下图:

以及win10上的存储池,由于用win的NAS不多,这里也不算在内。 HDFS 分布式存储一样被排除。

总的来说,常用的可扩展存储池有上面的5种。也就是说我们DIY玩家不一定非得局限于某个厂家或者某个文件系统。

由于这5种是独立的文件系统,可简单理解为NTFS、或ext4,所以只要能在某个系统上挂载上这个文件系统,那么我们就得到了一个巨大容量的“硬盘”(存储池),这块“硬盘”还带有冗余纠错的功能。

  • 比如某个软路由上挂载BtrFS,就得到了一个软路由版的NAS。
  • 比如开个Ubuntu服务器,上面挂载ZFS、或者RAID0实现的存储池,同样也是一台NAS。
  • 或者开一台win服务器,然后挂载BtrFS、或者cephFS等等,组装成另外一种类型的NAS。

简单来说,就是我们需要一种能把N个硬盘组织为一个存储池的东东(经典的RAID0),然后挂载到我们定制的系统上,这样就是一台NAS了。

至于拿这么大的存储池,安装个Nextcloud当作网盘也好,还是当FTP也好,属于应用的范畴不在讨论范围之内。

当然,还是建议普通用户用成品,毕竟成品NAS,比如TrueNAS等都集成了虚拟机、NFS、Samba等等服务,以及管理页面,简单省事。

 

 

 

 

 

 

相关链接:

  1. 服务器如何选择Linux发行版系统?
  2. 自建NAS,是否需要RAID磁盘阵列?

 

 

 

评论列表: