# 18.1 网络文件系统还是网络驱动器
## 18.1 网络文件系统还是网络驱动器
做为服务器的系统通常是需要储存设备的,而储存设备除了可以使用系统内建的磁盘之外,如果内建的磁盘容量不够大, 而且也没有额外的磁盘插槽 (SATA 或 IDE) 可用时,那么常见解决的方案就是增加 NAS (网络附加储存服务器) 或外接式储存设备。再高档一点的系统,可能就会用到 SAN (储存局域网络) 这个高贵的玩意儿 ([注1](#ps1))。
不过,不论是哪一种架构,基本上,它们的内部硬盘通常是以磁盘阵列 (RAID) 作为基础的。磁盘阵列我们在基础篇第三版的[第十五章](http://linux.vbird.org/linux_basic/0420quota.php)谈过了,这里就不再啰唆。这里想要了解的是,啥是 NAS 又啥是 SAN ? 这两者有何不同?与本章主题有关的 iSCSI 又是啥呢?底下就让我们来谈一谈。
- - - - - -
### 18.1.1 NAS 与 SAN
由于企业的数据量越来越大,而且重要性与保密性越来越高,尤其类似数据库的内容,常常容量单位是以 TB (1TB = 1024GB) 在进行计算的。哇!真可怕!所以啰,磁盘阵列的应用就很重要了。那么磁盘阵列通常是在哪里呢? 磁盘阵列通常是 (1)主机内部有磁盘阵列控制卡,可以自行管理磁盘阵列。不过想要提供磁盘阵列的容量, 得要透过额外的网络服务才行; (2)外接式磁盘阵列设备,就是单纯的磁盘阵列设备,必须透过某些接口链接到主机上, 主机也要安装适当的驱动程序后,才能捉到这个设备所提供的磁盘容量。
不过,以目前的信息社会来说,你应该很少听到内建或外接的 RAID 了,常常听到的应该是 NAS 与 SAN ,那这是啥咚咚? 让我们简单的来说说:
- NAS (Network Attached Storage, 网络附加储存服务器)
基本上,NAS 其实就是一部客制化好的主机了,只要将 NAS 连接上网络,那么在网络上面的其他主机就能够存取 NAS 上头的资料了。简单的说,NAS 就是一部 file server 啰~不过,NAS 由于也是接在网络上面,所以,如果网络上有某个用户大量存取 NAS 上头的数据时,是很容易造成网络停顿的问题的,这个比较麻烦点~低阶的 NAS 通常会使用 Linux 系统搭配软件磁盘阵列来提供大容量文件系统。不过效能嘛就有待加强啦!此外,NAS 也通常支持 TCP/IP ,并会提供 NFS, SAMBA, FTP 等常见的通讯协议来提供客户端取得文件系统。
那为什么不要直接使用个人计算机安装 Linux 再搭配相关的服务,即可提供 NAS 预计要提供的大容量空间啦!干嘛需要 NAS 呢? 因为,通常 NAS 还会包括很多组态的接口,通常是利用 Web 接口来控制磁盘阵列的设定状况、提供 IP 或其他相关网络设定, 以及是否提供某些特定的服务等等。因为具有较为亲和的操作与控制接口,对于非 IT 的人员来说,控管较为容易啦。 这也是 NAS 存在的目的。
不过,目前倒是有类似 FreeNAS 的软件开发项目 (<http://sourceforge.net/projects/freenas/>, [注2](#ps2)),可以让你的 Linux PC 变成一部可透过 Web 控管的 NAS 哩!不过不是本章的重点,有兴趣的朋友可以自行前往下载与安装该软件来玩玩~
- SAN (Storage Area Networks, 储存局域网络)
从上面的说明来看,其实那个 NAS 就是一部可以提供大容量文件系统的主机嘛! 那我们知道单部主机能够提供的插槽再怎么说也是有限的! 所以并不能无限制的安插磁盘在同一部实体主机上面。但是如果偏偏你就是有大量磁盘使用的需求,那时该如何是好? 这时就得要使用到 SAN 这玩意儿啦!
最简单的看法,就是将 SAN 视为一个外接式的储存设备。只是单纯的外接式储存设备仅能透过某些接口 (如 SCSI 或 eSATA) 提供单一部主机使用,而 SAN 却可以透过某些特殊的接口或信道来提供局域网络内的所有机器进行磁盘存取。要注意喔,SAN 是提供『磁盘 (block device)』给主机用,而不是像 NAS 提供的是『网络协议的文件系统 (NFS, SMB...)』!这两者的差异挺大的喔!因此,挂载使用 SAN 的主机会多出一个大磁盘,并可针对 SAN 提供的磁盘进行分割与格式化等动作。想想看,你能对 NAS 提供的文件系统格式化吗?不行吧!这样了解差异否?
另外,既然 SAN 可以提供磁盘,而 NAS 则是提供相关的网络文件系统,那么 NAS 能不能透过网络去使用 SAN 所提供的磁盘呢?答案当然是可以啊!因为 SAN 最大的目的就是在提供磁盘给服务器主机使用,NAS 也是一部完整的服务器, 所以 NAS 当然可以使用 SAN 啦!同时其他的网络服务器也能够使用这个 SAN 来进行数据存取。
此外,既然 SAN 开发的目的是要提供大量的磁盘给用户,那么传输的速度当然是非常重要的。因此,早期的 SAN 大多配合光纤信道 (Fibre Channel) 来提供高速的数据传输。目前标准的光纤信道是速度是 2GB ,未来还可能到达 10GB 以上呢~不过,使用光纤等技术较高的设备,当然就比较贵一些。
拜以太网络盛行,加上技术成熟之赐,现今的以太网络媒体 (网络卡、交换器、路由器等等设备) 已经可以达到 GB 的速度了,离 SAN 的光纤信道速度其实差异已经缩小很多啦~那么是否我们可以透过这个 GB 的以太网络接口来连接到 SAN 的设备呢?这就是我们接下来要提到的 iSCSI 架构啦! ^\_^
- - - - - -
### 18.1.2 iSCSI 界面
早期的企业使用的服务器若有大容量磁盘的需求时,通常是透过 SCSI 来串接 SCSI 磁盘,因此服务器上面必须要加装 SCSI 适配卡,而且这个 SCSI 是专属于该服务器的。后来这个外接式的 SCSI 设备被上述提到的 SAN 的架构所取代, 在 SAN 的标准架构下,虽然有很多的服务器可以对同一个 SAN 进行存取的动作,不过为了速度需求,通常使用的是光纤信道。 但是光纤信道就是贵嘛!不但设备贵,服务器上面也要有光纤接口,很麻烦~所以光纤的 SAN 在中小企业很难普及啊~
后来网络实在太普及,尤其是以 IP 封包为基础的 LAN 技术已经很成熟,再加上以太网络的速度越来越快, 所以就有厂商将 SAN 的连接方式改为利用 IP 技术来处理。然后再透过一些标准的订定,最后就得到 Internet SCSI (iSCSI) 这玩意的产生啦!iSCSI 主要是透过 TCP/IP 的技术,将储存设备端透过 iSCSI target (iSCSI 目标) 功能,做成可以提供磁盘的服务器端,再透过 iSCSI initiator (iSCSI 初始化用户) 功能,做成能够挂载使用 iSCSI target 的客户端,如此便能透过 iSCSI 协议来进行磁盘的应用了 ([注3](#ps3))。
也就是说,iSCSI 这个架构主要将储存装置与使用的主机分为两个部分,分别是:
- iSCSI target:就是储存设备端,存放磁盘或 RAID 的设备,目前也能够将 Linux 主机仿真成 iSCSI target 了!目的在提供其他主机使用的『磁盘』;
- iSCSI initiator:就是能够使用 target 的客户端,通常是服务器。 也就是说,想要连接到 iSCSI target 的服务器,也必须要安装 iSCSI initiator 的相关功能后才能够使用 iSCSI target 提供的磁盘就是了。
如下图所示,iSCSI 是在 TCP/IP 上面所开发出来的一套应用,所以得要有网络才行啊!
![](https://box.kancloud.cn/2016-05-13_5735da79a4c5f.gif)
图 18.1-1、iSCSI 与 TCP/IP 相关性
- - - - - -
### 18.1.3 各组件相关性
由上面的说明中,我们可以知道一部服务器如何取得磁盘或者是文件系统来利用呢?基本上就是:
- 直接存取 (direct-attached storage):例如本机上面的磁盘,就是直接存取设备;
- 透过储存局域网络 (SAN):来自区网内的其他储存设备提供的磁盘;
- 网络文件系统 (NAS):来自 NAS 提供的文件系统,只能立即使用,不可进行格式化。
这三个东西与服务器主机能用的文件系统之间可以用维基百科的图示来展示:
![](https://box.kancloud.cn/2016-05-13_5735da79b6397.gif)
图 18.1-2、服务器取得文件系统的三个来源 (数据源为[注1](#ps1))
从上图中,我们可以发现在一般的主机环境下,磁盘装置 (SATA, SAS, FC) 可以透过主机的接口 (DAS) 来直接进行文件系统的建立 (mkfs 进行格式化),如果想要使用外部的磁盘,那可以透过 SAN (内含多个磁盘的设备),然后透过 iSCSI 等接口来联机, 当然,还是得要进行格式化等动作 (假设这个 SAN 尚未被使用时)。最后,如果是 NAS 的条件下,那么 NAS 必须要先透过自己的操作系统将磁盘装置进行文件系统的建立后,再以 NFS/CIFS 等方式来提供其他主机挂载使用。
接下来,网络服务器、客户端系统、NAS 与 SAN 的角色在区网里面又是如何呢?我们依旧使用维基百科的图示来说明一下 (DAS 是每部主机内部的磁盘,即底下图标中的圆柱体):
![](https://box.kancloud.cn/2016-05-13_5735da7a8989f.gif)
图 18.1-3、各组件之间的相关性 (数据源为[注1](#ps1))
NAS 可以使用自己的磁盘,也能够透过光纤或以太网络取得 SAN 所提供的磁盘来制作成为网络文件系统,提供其他人的使用。 Server 可以透过 NFS/CIFS 等方式取得 NAS 的文件系统,当然也能够直接存取 SAN 的磁盘。客户端主要则是透过网络文件系统, 并且直接使用 Server 提供的网络资源 (如 FTP, WWW, mail 等等)。
- - - - - -
- 鸟哥的Linux私房菜:服务器架设篇 第三版
- 第一部份:架站前的进修专区
- 作者序
- 第一章、架设服务器前的准备工作
- 1.1 前言: Linux 有啥功能
- 1.2 基本架设服务器流程
- 1.3 自我评估是否已经具有架站的能力
- 1.4 本章习题
- 第二章、基础网络概念
- 2.1 网络是个什么玩意儿
- 2.2 TCP/IP 的链结层相关协议
- 2.3 TCP/IP 的网络层相关封包与数据
- 2.4 TCP/IP 的传输层相关封包与数据
- 2.5 连上 Internet 前的准备事项
- 2.6 重点回顾:
- 2.7 本章习题
- 2.8 参考数据与延伸阅读
- 第三章、局域网络架构简介
- 3.1 局域网络的联机
- 3.2 本书使用的内部联机网络参数与通讯协议
- 第四章、连上 Internet
- 4.1 Linux 连上 Internet 前的注意事项
- 4.2 连上 Internet 的设定方法
- 4.3 无线网络--以笔记本电脑为例
- 4.4 常见问题说明
- 4.5 重点回顾
- 4.6 本章习题
- 4.7 参考数据与延伸阅读
- 第五章、 Linux 常用网络指令
- 5.1 网络参数设定使用的指令
- 5.2 网络侦错与观察指令
- 5.3 远程联机指令与实时通讯软件
- 5.4 文字接口网页浏览
- 5.5 封包撷取功能
- 5.6 重点回顾
- 5.7 本章习题
- 5.8 参考数据与延伸阅读
- 第六章、 Linux 网络侦错
- 6.1 无法联机原因分析
- 6.2 处理流程
- 6.3 本章习题
- 6.4 参考数据与延伸阅读
- 第二部分:主机的简易资安防护措施
- 第七章、网络安全与主机基本防护:限制端口, 网络升级与 SELinux
- 7.1 网络封包联机进入主机的流程
- 7.2 网络自动升级软件
- 7.3 限制联机埠口 (port)
- 7.4 SELinux 管理原则
- 7.5 被攻击后的主机修复工作
- 7.6 重点回顾
- 7.7 课后练习
- 7.8 参考数据与延伸阅读
- 第八章、路由观念与路由器设定
- 8.1 路由
- 8.2 路由器架设
- 8.3 动态路由器架设:quagga (zebra + ripd)
- 8.4 特殊状况:路由器两边界面是同一个 IP 网段: ARP Proxy
- 8.5 重点回顾
- 8.6 本章习题
- 8.7 参考数据与延伸阅读
- 第九章、防火墙与 NAT 服务器
- 9.1 认识防火墙
- 9.2 TCP Wrappers
- 9.3 Linux 的封包过滤软件:iptables
- 9.4 单机防火墙的一个实例
- 9.5 NAT 服务器的设定
- 9.6 重点回顾
- 9.7 本章习题
- 9.8 参考数据与延伸阅读
- 第十章、申请合法的主机名
- 10.1 为何需要主机名
- 10.2 注册一个合法的主机名
- 10.3 重点回顾
- 10.4 本章习题
- 10.5 参考数据与延伸阅读
- 第三部分:局域网络内常见的服务器架设
- 第十一章、远程联机服务器SSH / XDMCP / VNC / RDP
- 11.1 远程联机服务器
- 11.2 文字接口联机服务器: SSH 服务器
- 11.3 最原始图形接口: Xdmcp 服务的启用
- 11.4 华丽的图形接口: VNC 服务器
- 11.5 仿真的远程桌面系统: XRDP 服务器
- 11.6 SSH 服务器的进阶应用
- 11.7 重点回顾
- 11.8 本章习题
- 11.9 参考数据与延伸阅读
- 第十二章、网络参数控管者: DHCP 服务器
- 12.1 DHCP 运作的原理
- 12.2 DHCP 服务器端的设定
- 12.3 DHCP 客户端的设定
- 12.4 DHCP 服务器端进阶观察与使用
- 12.5 重点回顾
- 12.6 本章习题
- 12.7 参考数据与延伸阅读
- 第十三章、文件服务器之一:NFS 服务器
- 13.1 NFS 的由来与其功能
- 13.2 NFS Server 端的设定
- 13.3 NFS 客户端的设定
- 13.4 案例演练
- 13.5 重点回顾
- 13.6 本章习题
- 13.7 参考数据与延伸阅读
- 第十四章、账号控管: NIS 服务器
- 14.1 NIS 的由来与功能
- 14.2 NIS Server 端的设定
- 14.3 NIS Client 端的设定
- 14.4 NIS 搭配 NFS 的设定在丛集计算机上的应用
- 14.5 重点回顾
- 14.6 本章习题
- 14.7 参考数据与延伸阅读
- 第十五章、时间服务器: NTP 服务器
- 15.1 关于时区与网络校时的通讯协议
- 15.2 NTP 服务器的安装与设定
- 15.3 客户端的时间更新方式
- 15.4 重点回顾
- 15.5 本章习题
- 15.6 参考数据与延伸阅读
- 第十六章、文件服务器之二: SAMBA 服务器
- 16.1 什么是 SAMBA
- 16.2 SAMBA 服务器的基础设定
- 16.3 Samba 客户端软件功能
- 16.4 以 PDC 服务器提供账号管理
- 16.5 服务器简单维护与管理
- 16.6 重点回顾
- 16.7 本章习题
- 16.8 参考数据与延伸阅读
- 第十七章、区网控制者: Proxy 服务器
- 17.1 什么是代理服务器 (Proxy)
- 17.2 Proxy 服务器的基础设定
- 17.3 客户端的使用与测试
- 17.4 服务器的其他应用设定
- 17.5 重点回顾
- 17.6 本章习题
- 17.7 参考数据与延伸阅读
- 第十八章、网络驱动器装置: iSCSI 服务器
- 18.1 网络文件系统还是网络驱动器
- 18.2 iSCSI target 的设定
- 18.3 iSCSI initiator 的设定
- 18.4 重点回顾
- 18.5 本章习题
- 18.6 参考数据与延伸阅读
- 第四部分:常见因特网服务器架设
- 第十九章、主机名控制者: DNS 服务器
- 19.1 什么是 DNS
- 19.2 Client 端的设定
- 19.3 DNS 服务器的软件、种类与 cache only DNS 服务器设定
- 19.4 DNS 服务器的详细设定
- 19.5 协同工作的 DNS: Slave DNS 及子域授权设定
- 19.6 DNS 服务器的进阶设定
- 19.7 重点回顾
- 19.8 本章习题
- 19.9 参考数据与延伸阅读
- 第二十章、WWW 伺服器
- 20.1 WWW 的簡史、資源以及伺服器軟體
- 20.2 WWW (LAMP) 伺服器基本設定
- 20.3 Apache 伺服器的進階設定
- 20.4 登錄檔分析以及 PHP 強化模組
- 20.5 建立連線加密網站 (https) 及防砍站腳本
- 20.6 重點回顧
- 20.7 本章習題
- 20.8 參考資料與延伸閱讀
- 第二十一章、文件服务器之三: FTP 服务器
- 21.1 FTP 的数据链路原理
- 21.2 vsftpd 服务器基础设定
- 21.3 客户端的图形接口 FTP 联机软件
- 21.4 让 vsftpd 增加 SSL 的加密功能
- 21.5 重点回顾
- 21.6 本章习题
- 21.7 参考数据与延伸阅读
- 第二十二章、邮件服务器: Postfix
- 22.1 邮件服务器的功能与运作原理
- 22.2 MTA 服务器: Postfix 基础设定
- 22.3 MRA 服务器: dovecot 设定
- 22.4 MUA 软件:客户端的收发信软件
- 22.5 邮件服务器的进阶设定
- 22.6 重点回顾
- 22.7 本章习题
- 22.8 参考数据与延伸阅读