当前位置:首页 > 技术知识 > 正文内容

存储基础 DAS、NAS(nfs,cifs)、SAN,Samba(cifs)介绍和区别

maynowei7个月前 (08-12)技术知识76

介绍

DAS (硬盘,U 盘)

DAS 指 Direct Attached Storage(直连附加存储),直接到计算机主板总线,识别为一个块设备,例如硬盘,U 盘等,这种很难做到共享。

SAN (计算与存储分离,节点无自己的文件系统,文件系统在服务器)

SAN 指 Storage Area Network,SAN是通过光纤交换机连接存储阵列和服务器,建立专用数据存储的存储私网。

特点:

将计算与存储分离,通过FC交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。

NAS (节点有自已的文件管理系统)

NAS 指 Network Area Storage,将本地的存储空间共享给其他主机,一般是 C/S 架构,是文件级别的共享,计算机通常将共享的设别识别为一个文件系统,其文件服务器会管理锁以实现并发访问。常见的 NAS 有 NFS 和 CIFS。

NAS采用网络技术(TCP/IP、ATM、FDDI),通过网络交换机连接存储系统和服务器主机来建立存储私网。其主要特征是把存储设备、网络接口和以太网技术集成在一起,直接通过以太网网络存取数据。也就是把存储功能从通用文件服务器中分离出来。

区别

DAS和NAS 、SAN的区别

三种模式不同点在于存储连接形态,其中DAS模式最简单,就是直接把存储设备连接到服务,而这种模式最大的问题是:每个应用服务器都要有独立的存储设备,这样增加了数据处理的复杂度,随着服务器的增加,网络系统效率也急剧下降。为了解决上述问题,提出了NAS和SAN两种模式。

NAS和SAN的区别

NAS:通过TCP/IP协议访问数据,采用业界标准文件共享协议,如果NFS、HTTP、CIFS实现共享。

SAN:通过专用光纤交换机访问数据,采用SCSI、FC-AL接口。

NAS和SAN最本质的区别就是文件管理系统在哪里。如图1所示,SAN结构中,文件管理系统(FS)分别在每一个应用服务器上面,而NAS则是每个应用服务器通过网络共享协议,使用同一个文件管理系统。即NAS和SAN存储系统的区别就是NAS有自已的文件管理系统。


1、结构不同:


SAN结构中,文件管理系统(FS)还是分别在每一个应用服务器上;而NAS则是每个应用服务器通过网络共享协议(如:NFS、CIFS)使用同一个文件管理系统。换句话说:NAS和SAN存储系统的区别是NAS有自己的文件系统管理。


2、目标不同:


NAS是将目光集中在应用、用户和文件以及它们共享的数据上。SAN是将目光集中在磁盘、磁带以及联接它们的可靠的基础结构。将来从桌面系统到数据集中管理到存储设备的全面解决方案将是NAS加SAN。




NFS(NAS的一种)


NFS 全称是 Network FileSystem,NFS 和其他文件系统一样,是在 Linux 内核中实现的,因此 NFS 很难做到与 Windows 兼容。NFS 共享出的文件系统会被客户端识别为一个文件系统,客户端可以直接挂载并使用。


NFS 的实现使用了 RPC(Remote Procedure Call) 的机制,远程过程调用使得客户端可以调用服务端的函数。由于有 VFS 的存在,客户端可以像使用其他普通文件系统一样使用 NFS 文件系统,由操作系统内核将 NFS 文件系统的调用请求通过 TCP/IP 发送至服务端的 NFS 服务,执行相关的操作,之后服务端再讲操作结果返回客户端。


NFS 文件系统仅支持基于 IP 的用户访问控制,NFS 是在内核实现的,因此 NFS 服务由内核监听在 TCP 和 UDP 的 2049 端口,对于 NFS 服务的支持需要在内核编译时选择。它同时还使用了几个用户空间进程用于访问控制,用户映射等服务,这些程序由 nfs-utils 程序包提供。


RPC 服务在 CentOS 6.5 之后改名为 portmapper,它监听在 TCP/UDP 的 111 端口,其他基于 RPC 的服务进程需要监听时,先像 RPC 服务注册,RPC 服务为其分配一个随机端口供其使用。客户端在请求时,先向 RPC 服务请求对应服务监听的端口,然后再向改服务发出调用请求。

Samba(CIFS,NAS的一种)


NFS 只能在 Unix 系统间进行共享,而 Windows 对其支持很有限。因此有人就在 Linux/Unix 系统中实现了 Windows 文件共享所使用的 CIFS 协议,也叫做 SMB(Simple Message Block)协议。这使得 Windows/Linux/Unix 间可以自由的进行文件共享。


samba 主要监听在这几个端口:137/udp, 138/udp, 139/tcp, 445/tcp


在 Windows 中共享的文件系统,可以在 Linux 中使用 samba 客户端访问,或者直接挂载访问。


相关文章

Windows 加密盘BitLocker爆锁屏绕过严重漏洞

BitLocker Windows内置现代设备级数据加密保护功能,BitLocker与Windows内核深度集成。有大量的企业和个人使用BitLocker加密自己关键数据,以防止数据泄密。BitLoc...

一文弄懂 GO 的 互斥锁 Mutex !(互斥锁的使用方法)

在 Go 语言并发编程中,互斥锁(Mutex)是一个非常重要的同步原语。本文将深入介绍 Mutex 的使用方法、实现原理以及最佳实践。1. 什么是 Mutex?Mutex(互斥锁)是一种用于多线程编程...

分析 Rust 程序的火焰图(rust火吗)

分析 Rust 程序的火焰图(Flame Graph)是定位性能瓶颈的核心手段,其核心是通过可视化的函数调用栈和时间分布,找到 CPU 耗时、内存分配、锁竞争等热点。以下是详细的分析方法和步骤,结合...

C++11 同步机制:互斥锁和条件变量

前段时间,我研究了 ROS2(Jazzy)机器人开发系统,并将官网中比较重要的教程和概念,按照自己的学习顺序翻译成了中文,进行了整理和记录。到目前为止,已经整理了20多篇文章。如果你想回顾之前的内容,...

聊聊并发编程: Lock(并发锁有哪些)

之前学习了如何使用synchronized关键字来实现同步访问,Java SE 5之后,并发包中新增了Lock接口(以及相关实现类)用来实现锁功能,它提供了与synchronized关键字类似的同步功...

C++26中同步与原子操作新变化(c++ 同步)

引言随着多核处理器和并发编程的普及,C++26进一步增强了对同步与原子操作的支持,为开发者提供了更高效、更安全的工具来应对多线程编程中的数据竞争与同步挑战。自C++11引入原子操作以来,C++标准库在...