☁️ 第一章 云计算的基础知识
📄 一句话概括

DAS、SAN、NAS 这三个词只差两个字,区别其实只有两点——怎么连(直连还是走网络)和给什么(给"块"还是给"文件");这两点决定了它能被几台机器用、以及能放多远。

📝 本节和前面几节的关系

前面两篇解决了"算力怎么切"(1-7)和"机器怎么堆"(1-8)。这一篇补上机房里的另一大件:存储。

顺序是按教材来的:先有服务器,再有存放数据的设备。而且这一篇会回答一个实际问题——为什么虚拟化(上一篇)必须配共享存储:虚拟机要在物理机之间搬来搬去,它的磁盘就必须能被多台物理机看到。

一、三个词,差在两点

教材把 DAS、SAN、NAS 放在一节,是因为它们的用法长得像、物理位置也常常挨着,但工作原理差别很大。判断时只看两点:

这两点决定了三件事:能不能被多台机器用、能放多远、性能受什么影响。

二、DAS:自己家的抽屉

DAS(Direct Attached Storage,直连存储):硬盘柜用线缆直接接在服务器上,对操作系统来说就是一块本地磁盘。

适用场景:单台数据库服务器需要一块快盘;或者一台机器独占的数据。

三、SAN:专门的货运通道

SAN(Storage Area Network,存储区域网络):把存储设备组成一个专用的网络(常用光纤通道或 iSCSI),服务器通过这个网络访问远端存储,看到的仍是一块"盘"。

为什么虚拟化必须配 SAN:虚拟机要在物理机之间迁移,它的磁盘就不能锁死在某一台上。把虚拟机磁盘放在共享存储上,任何一台物理机都能挂载它——这才是上一篇"虚拟机可以搬来搬去"的物理基础。

四、NAS:共享的文件柜

NAS(Network Attached Storage,网络附加存储):一台专门的设备接在普通以太网上,提供文件级的共享——你在电脑上看到的是一个网络位置、一个共享文件夹。

适用场景:部门共享的设计文件、备份归档、需要"大家一起用"的资料。

五、动手 Demo:三种存储的对照与选型

# 只问两点:怎么连、给什么
def classify(by_network, give_file):
    if not by_network:
        return "DAS(直连,块级)"
    if give_file:
        return "NAS(网络,文件级)"
    return "SAN(网络,块级)"

实跑输出:

==================================================================================================
D9 三种存储:DAS、SAN、NAS,差在【怎么连】和【给什么】
==================================================================================================
  对比项        DAS                   SAN                         NAS
  ----------------------------------------------------------------------------------------------
  全称          直连存储              存储区域网络                网络附加存储
  怎么连        线缆直接接在服务器上  专门的存储网络(FC/iSCSI)  普通以太网(TCP/IP)
  给什么        块(像一块本地硬盘)  块(像一块远端硬盘)        文件(像一台共享文件夹)
  距离          机柜内,几米          可跨机房                    局域网内即可
  谁在用        单台服务器独占        多台服务器共享              多台机器同时读写同一批文件
  典型痛点      别的机器用不上        贵、要专门的网              性能受以太网与协议开销影响

  【六个场景怎么选】
  场景                                    选谁        理由
  ----------------------------------------------------------------------------------------------
  单台数据库服务器要一块快盘              DAS         就一台机器用,直连最简单最快
  几十台服务器共享一个存储池              SAN         块级、低延迟、能划给不同机器
  设计部门共享一堆图纸文件                NAS         就是共享文件夹,权限好管
  要能跨机房做双活                        SAN         存储网络可延伸,DAS 做不到
  备份文件集中放一处                      NAS         文件级、便宜、够用
  虚拟化平台后面挂存储                    SAN         多主机共享是虚拟化的前提

  ④ 一句话记住:DAS 是【自己家的抽屉】,SAN 是【专门的货运通道】,
     NAS 是【共享的文件柜】。云服务的存储设备通常三种都用——
     按热数据、冷数据、共享文件分开放,这也是教材把这一节放在机架之后的原因。

读这个输出:注意两个判断词——"块"和"文件"。给块,等于给你一块空盘,你要自己格式化、自己管文件系统,自由度高性能好;给文件,等于给你一个现成的共享目录,省事但性能天花板低。DAS 和 SAN 都给块(差别在直连还是走网络),NAS 给文件——记住这一点,三个词就不会混了。

六、⚠️ 2026 现状

云上的存储名字换了一套,但底层思路没变,正好可以对照着读:

30 秒实验

打开公司电脑的"网络位置"或"此电脑",看看有没有映射的网络盘(通常带一个盘符、图标是一台小服务器):

  1. 它是什么? 多半就是 NAS——一个共享文件夹。
  2. 再想想:你本机那块盘是什么? 那是 DAS。
  3. 如果这个网络盘突然断开,你的工作受不受影响? 受影响,说明你把"常用资料"放在网络存储上了——这时要找的就不是更大的盘,而是它到你的这段网络稳不稳。

常见误区

  1. 错误:SAN 和 NAS 只是叫法不同,差不多。——纠正:差在"给块还是给文件"。SAN 给你一块空盘,你怎么用(用什么文件系统、怎么分区)完全自己决定,性能高、灵活;NAS 直接给你一个共享目录,省事但受协议限制。要性能与自由选 SAN,要省事与共享选 NAS。

  2. 错误:NAS 就是"便宜版的 SAN"。——纠正:它们服务的是不同的需求。NAS 的核心价值是"多台机器同时读写同一批文件、权限好管";SAN 的核心价值是"给多台机器各划一块高性能盘"。用 NAS 去跑数据库会慢,用 SAN 去做文件共享会贵——不是谁替代谁。

  3. 错误:本地盘够快,所以直接用 DAS 就行。——纠正:DAS 的最大问题是"别人用不上,服务器也搬不走"。一旦要做虚拟化、要做故障切换、要跨机器共享,DAS 立刻成为障碍。所以选存储不是选"快的",而是选"满足你未来动作的"——先在纸上写清楚"将来要不要迁移、要不要共享"。

  4. 错误:云上的存储就是硬盘,和本地一样。——纠正:云上要按数据的使用方式分三类买:给虚拟机挂的(块)、多台共享的(文件)、海量静态的(对象)。买错类型是云上最常见的浪费之一——比如把大量图片视频放在块存储里,价格会高出一截。

自测三问(点开对答案) 1. 为什么虚拟化平台后面通常挂 SAN,而不是 DAS? —— 因为**虚拟机的磁盘必须能被多台物理机看到**。虚拟机的核心能力是在物理机之间迁移与重启,如果磁盘直连在某台机器上(DAS),这台机器一停,虚拟机就跟着停。**把磁盘放到共享存储(SAN)上,任何一台物理机都能挂载它**——迁移与高可用才有了物理基础。 2. "给块"和"给文件"这两件事,为什么会导致性能差距? —— 因为**"给块"意味着客户端自己管文件系统**,读写请求直达磁盘块,路径短;**"给文件"意味着每次操作都要经过一层网络文件协议**,还要处理并发、锁、权限,路径长、开销多。**所以块级存储更适合数据库这类对延迟敏感的场景**,文件级更适合共享资料。 3. 今天的"对象存储"为什么能装下海量数据还很便宜? —— 因为它**放弃了"文件系统"这层负担**。你不去管目录结构、不用挂载、也不用维持一个块设备,取数据就是"用一个网址换一个对象"。**结构简单,就能做得极其规模化、极其便宜**——代价是不适合频繁小改(比如数据库那种随机读写),更适合一次写入、多次读取的内容。

相关笔记