NAS基础概念

NAS(Network Attached Storage)网络附加存储,即将存储设备连接到现有的网络上,提供数据和文件服务,支持网络文件共享协议CIFS、NFS,NAS实际上就是一个专门优化了的文件服务器。

NAS服务器一般由存储硬件(逻辑的、冗余的存储容器或RAID阵列)操作系统以及其上的文件系统等几个部分组成。它基于TCP/IP协议实现文件级数据的存取服务。 NAS将存储设备通过标准的网络拓扑结构连接,可以无需服务器直接上网,不依赖通用的操作系统,而是采用一个面向用户设计的、专门用于数据存储的简化操作系统,内置了与网络连接所需的协议,因此使整个系统的管理和设置较为简单。NAS是真正即插即用的产品,并且物理位置灵活,可放置在工作组内,也可放在其他地点与网络连接。因此,用户选择NAS解决方案,原因在于NAS价格合理、便于管理、灵活且能实现文件共享。 


nas与san的架构 nas的架构体系包括_linux

NAS组成结构

nas与san的架构 nas的架构体系包括_服务器_02

NAS拓扑结构

nas与san的架构 nas的架构体系包括_Windows_03

NAS应用框架图

 NAS设备是直接连接到以太网的存储器,并以标准网络文件系统如NFS、SMB/CIFS  TCP/IP接口向客户端提供文件服务。NAS设备向客户端提供文件级的服务,但内部依然是以数据块的层面与它的存储设备通讯,文件系统在NAS 存储器里面。

NAS基本特点

  • NAS 能够安装多个硬盘,它具备存储功能。
  • NAS 能通过网线传输数据,它具备网络功能。
  • NAS 配备一套系统和软件,它具备服务功能。

NAS的优缺点

优点:

  • 减轻服务器的负担

NAS设备的目的就是为了分离网络设备中的服务器和存储,让这二者独立进行。这样做能够让服务器(特别是通用服务器)有更多的计算资源来处理用户的各种应用和业务(比如电子邮件处理、远程应用等)。NAS则是用来帮助服务器完成一些文件的任务和I/O的操作。

  • 高效方便的文件共享

NAS支持多个系统之间的数据共享(Unix和Windows之间、Unix和Linux之间、Linux和Windows之间的数据传输共享)。终端客户则根本不许知道数据原先是在Unix系统上,还是Linux系统上,抑或是在Windows上。另外基于网络的文件级锁定提供了高级并发访问保护的功能。

  • 高扩展性

NAS的扩展只需通过添加一个节点及网络设备即可(做到真正的即插即用,并且部署位置非常灵活),基本上启动NAS设备,运行相应的网络文件系统,并将这个NAS设备接入网络环境就完成添加了。高级NAS更能做到支持网络接口的热安装、硬盘的的随时增加等。

缺点:

  • 存储性能问题

只适用于在较小的网络或局域网。因为NAS受限于网络带宽,很可能会出现当多客户端访问NAS文件存储时,NAS性能大大下降,最终不能满足用户需求。

  • 可靠性问题

当企业内部网络发展到一定的规模时,NAS设备的数据服务和数据管理形成了网络的双重负担,也就是说NAS除了要处理正常的终端数据I/O请求外,还需要做备份和恢复等操作。并且NAS后期的扩容成本高;一般的NAS没有高可用配置,容易形成单点故障。


NAS使用的协议

NFS(Network File System)协议

NFS是1985年由Sun公司开发的基于Unix环境下的网络文件系统。它采用TCP/IP,其主、从连线可覆盖整个互联网。也就是说,处在不同区域的NFS客户机也可通过网络分享的另一台NFS服务器的文件档案。NFS是Unix系统间实现磁盘文件共享的一种方法,支持应用程序在客户端通过网络存取位于服务器磁盘中数据的一种文件系统协议。

CIFS(Common Internet File System)协议

CIFS则是由微软开发,用于连接Windows客户机和服务器的通用互联网文件系统。后来经过Unix服务器厂商的重新开发后,它可用于连接Windows客户机和Unix服务器,执行文件共享和打印等任务。它最早的由来是NetBIOS,这是微软开发的在局域网内实现基于Windows名称资源共享的API。之后,产生了基于NetBIOS的NetBEUI协议和NBT(NetBIOS OVER TCP/IP)协议。NBT协议进一步发展为SMB(Server Message Block Potocol)和CIFS协议。其中,CIFS用于Windows系统,而SMB广泛用于Unix和Linux,两者可互通。SMB协议还被称作LanManager协议。CIFS可籍由与支持SMB的服务器通信而实现共享。


NAS通信过程

nas与san的架构 nas的架构体系包括_linux_04

 ① 主机客户端通过NFS Client对NAS上的一个输出目录/nas/export进行挂载操作,将其挂载到本地/mnt/nas路径下;

② 主机客户端某程序发起对/mnt/nas/nas.txt文件的读取操作,读取偏移从0字节往后1024字节(即读取文件的前1024字节)。该动作通过调用操作系统提供的文件操作API执行,例如Read();

③ I/O请求发送到NFS client,NFS client知道/mnt/nas路径对应得其实是NAS server的/nas/export目录,所以NFS client将上层下发的这个读取请求封装成NFS协议规定的标准格式通过网络传送到NFS server;

④ NFS server 接收到请求后,将请求通过操作系统API传送到文件系统模块处理;

⑤ 文件系统接收到针对/nas/export/nas.txt文件的读取请求后,首先查询缓存内是否有对应数据,如果有,直接返回结果;如果没有,则需要将这段字节所落入的底层存储空间的块信息取回,通过查询INode表等元数据获得。得到底层块位置后,文件系统通过调用操作系统API将块的读取请求交给卷管理层;

⑥ 卷管理层是将底层物理磁盘设备虚拟化封装的层次。当卷管理层收到针对某个卷某个段的LBA地址的请求后,它要进行翻译,将目标虚拟卷的地址翻译成对应得底层物理块设备地址;翻译完后,卷管理层将对应的目标地址请求再次通过操作系统API发生给驱动程序层。

⑦ 块设备驱动是负责对相应块设备进行I/O的角色,它将这些I/O发送给SCSI CDB Generator(SCSI指令的翻译中心);

⑧ SCSI CDB Generator将对应得IO请求描述为SCSI协议标准格式。之后,这些指令被发送到SCSI/FC 适配器的驱动程序处;

⑨ 设备驱动程序接收到SCSI指令后,将其封装到对应得链路帧中通过内部总线网络传送到目标;

⑩ SCSI指令传送到目标设备,目标设备执行相应指令并返回结果。


NAS使用场景

(1)用作个人存储中心

存储方面,NAS 相比网盘有容量上的绝对优势,再加上软件支持良好,可以用于以下用途:

  • 存储文件:将文件存储到 NAS 中。比如存储文档、图片、音乐、视频等,属于 NAS 的基础用途。
  • 备份文件:将某个设备备份到 NAS 中。比如备份文件、备份手机照片、作为 Time Machine 备份 macOS、通过 Active Backup 备份 Windows 等。
  • 管理文件:配合软件来管理文件。比如以影视库的形式组织视频;再比如以在线相册的形式组织照片,把家人的照片按人物、事件组织起来。

使用 NAS 还能让文件获得更高的安全性,通过硬盘组 RAID 方案、机器断电保护等方式,让文件的安全性更高,降低硬盘损坏的风险。

长远地看,NAS 在价格方面也比云服务优惠不少,永久使用且不需要年费,不需要担心网盘的容量限制、速度限制、资源和谐等问题。将来如需扩容,根据需要自行购买大容量硬盘就可以叠加容量。

(2)用作个人云服务器

网络方面,NAS 的主要使用环境是局域网内,在局域网环境下除了存储文件,还可以额外做到

  • 多设备同步:将文件在多个设备之间进行传输。比如在手机和电脑之间同步文件,将电脑上的文件同步到 NAS。
  • 局域网视频:直接通过 App、TV 播放 NAS 上的高清视频、音频,由于局域网速度快,通过 NAS 的播放会比视频网站快上许多。
  • 智能家居:通过局域网管理家中的监控设备,并将拍摄的画面保存到 NAS 中。

参考链接: