Dan*_*ley 118

首先最好定义块设备和文件系统之间的区别。如果您熟悉 UNIX,则更容易掌握这一点,因为它客观地区分了两者。这同样适用于 Windows。

  • 块设备的句柄原始磁盘。
    • 例如/dev/sda对于磁盘或/dev/sda1该磁盘上的分区。
  • 文件系统,以便层叠在块设备的顶部,以存储数据。然后您可以安装它。
    • 比如mount /dev/sda1 /mnt/somepath

考虑到这些术语,就可以更容易地看出以下各项之间的区别。

  • DAS是磁盘中的块设备,磁盘物理上[直接] 连接到主机。
    • 您必须先在其上放置一个文件系统,然后才能使用它。
    • 实现这一点的技术包括 IDE、SCSI、SATA 等。
  • SAN是通过网络传送的块设备。
    • 与 DAS 一样,您仍必须在其上放置一个文件系统,然后才能使用它。
    • 执行此操作的技术包括 FibreChannel、iSCSI、FoE 等。
  • NAS是通过网络传送的文件系统。
    • 它已准备好安装和使用。
    • 执行此操作的技术包括 NFS、CIFS、AFS 等。

在此处输入图片说明

  • 我不同意你对非 NAS 的定义。如果您构建一个 linux 服务器并将其用于利用现有文件系统的存储,并使用已建立的网络协议(如答案中所述的 CIFS、AFP 等)共享它,那么它实际上是网络附加存储。我认为您对首字母缩略词 NAS 感到困惑,假设“A”表示设备。的确,大量的 NAS 是设备,但仅仅因为某些 NAS 是设备,并不排除所有 NAS 都是设备。 (10认同)
  • +1 - 干得好。SAN 和 NAS 之间的区别的很好的阐述。 (3认同)
  • 我不同意NAS的定义。Dan Carley 所描述的实际上是一个网络文件系统。NAS 是提供网络文件系统的设备。电器特性是必不可少的。带有 NFS 服务器的自制 linux 机器不是 NAS。 (3认同)

Mar*_*ino 20

我想改进这个问题的答案,因为它已经被问过很多次了。

如果您要问DASNASSAN之间的区别,那么您是在数据存储上下文中。在这一领域,存在许多共享主要目标的技术:数据的持久性和可用性

块设备和文件系统

大多数存储设备共享相同的物理和逻辑结构,为了能够定位您想要的数据,您需要一种方法来识别您的数据驻留的位置,所以这就是为什么硬盘驱动器具有扇区(或简称“”)。在许多情况下,这反映了写入物理介质的数据的布局。通过寻址扇区号访问您的数据,虽然不是很复杂,但容易出错,您必须跟踪自己写入的数据和写入的扇区。这是文件系统可以派上用场的地方,一个简单的文件系统将帮助您解决所使用的块并为您提供一个通用接口来检索您的数据,最常用的范例是文件夹/文件结构(这就是为什么它被称为文件系统)。

因此,文件系统本质上简化了与您的数据的接口,并负责内务管理并记住它将您的东西放在哪些块/扇区中。通常在文件系统中,您不会引用块号来获取数据,而是引用文件名。这解释了设备和文件系统之间的区别,文件系统必须驻留在块设备上。

DAS

最简单的存储是连接到您的计算机/服务器的硬盘。硬盘驱动器需要以某种方式进行通信,并且它们需要使用定义明确的物理接口和协议才能让您的计算机理解它们,当今 PC 最常用的接口和协议是 SATA 或串行 ATA(串行高级技术附件) )。因此,通过相同接口物理连接到您的 PC 的硬盘被标识为直接附加存储或简称DAS。明确地说,直接连接到系统的ANY 设备构成了DAS,甚至是U盘(显然物理接口是USB)。除非您通过块号访问您的磁盘,否则您需要在它之上建立一个文件系统才能充分利用它。

NAS

但是,如果您想向其他计算机提供对文件系统的访问权限(用于共享或传输文件),该怎么办?多年来已经创建了许多协议来实现与其他计算机在网络上的文件共享。我只会根据操作系统命名主要的:UNIX 和类似的 - NFS;DOS/Windows - CIFS(又名 SMB);苹果 - 法新社。他们所做的是通过网络共享文件。当然,“文件”意味着底层文件系统结构,文件系统意味着块设备,但因为它是通过网络完成的,所以它被称为 NAS -网络附加存储. 所有这些接口都明确禁止块地址的远程查找(首先出于安全原因),并且通常甚至不会实现此类查找。网络文件系统可以被认为足够安全以并发方式使用(YMMV),协议实现将处理由于并发访问同一资源(文件)而引起的问题,通常通过将文件锁定到单个用户/请求者. 虽然任何计算机都可以通过网络共享文件并被称为 NAS,但仅凭市场营销的力量,NAS 已成为主要目的是通过网络共享文件的设备。那么,如果您构建自己的服务器,其唯一目的是通过网络提供文件服务,它是 NAS 吗?当然是这样。

SAN

假设我喜欢按块号读取我的数据,因为我已经编写了自己的软件,但我需要很多磁盘驱动器,而不是一台计算机可以托管。解决方案是共享其他计算机的磁盘,但如前所述,我的 NAS 不提供远程查找块号的方法。所以我需要使用另一种协议来共享我的磁盘驱动器,一个不需要文件系统来运行的协议。目前存在以下接口/协议/网络以通过网络共享磁盘:

  • SCSI - 小型计算机系统接口。SCSI 是一种古老的低级协议,经常使用/封装到辅助或传输协议中,以在控制器和磁盘之间发送命令。它是许多当前使用的协议的基础。
  • SAS - 串行连接 SCSI。这允许创建整个 SAN,因为 SAS 支持路由和寻址。
  • FC - 光纤通道
  • iSCSI - 互联网小型计算机系统接口。通常使用以太网连接器和电缆作为其物理传输,但可以在任何能够传输 IP 的物理传输上运行。
  • ATAoE和类似 - 以太网上的 ATA

实际上,任何低级协议都可以封装到网络数据包中并远程发送,以允许访问本地连接的硬盘。然后你可以通过块号读取数据,或者简单地在新的块设备上创建一个文件系统。

注意!我故意从这个答案中遗漏了许多主题(或严重简化了它们),而且我确信我拼错了单词并错误地写了句子。欢迎您编辑它并使其更好!

进一步阅读参考:

维基百科上的 DAS

维基百科上的SAN

维基百科上的NAS

维基百科上的 SCSI


kin*_*ish 9

虽然来自 itmanagement.com 的描述还可以,但我认为它们可以更具体一些。

对于 NAS,您通常指的是使用 CIFS 或 NFS 等协议通过网络安装共享存储空间的东西。挂载它们的系统不会将它们视为本地存储,而是将它们视为网络存储。这很重要,因为许多程序不允许将网络存储用于各种事情。

使用 SAN,存储空间通过 iSCSI 或光纤通道安装。您仍在使用网络来安装空间,但协议允许进行安装的系统将空间视为本地存储,从而允许更多程序正确使用它。

DAS 只是直接连接(即,不通过网络)到系统的存储。内部硬盘驱动器、USB 驱动器等。


Col*_*ard 8

NAS代表网络附加存储。它与传统的直连存储的不同之处在于,在 NAS 中,NAS 产品上的操作系统和其他软件专门用于数据存储。

SAN代表存储区域网络。SAN 是一种网络,旨在将存储硬件和软件连接到服务器。SAN 通常有两种形式:作为主要专用于在计算机系统和存储系统之间传输数据的网络,或者作为包含同一网络中的所有存储元件和计算机系统的完整系统。

DAS代表直接附加存储。DAS 通常用于区分直接连接到服务器或工作站的存储系统以及 NAS 和 SAN 设置。

来自http://www.itmanagement.com/faq/storage-faq/