骏马金龙 (新博客:www.junmajinlong.com)

网名骏马金龙,钟情于IT世界里的各种原理和实现机制,强迫症重症患者。爱研究、爱翻译、爱分享。特借此一亩三分田记录自己成长点滴!!!

存储基础知识

1.1 几种常见存储设备的接口

1.IDE接口

IDE的英文全称为"Integrated Drive Electronics",即"电子集成驱动器",是曾经主流的硬盘接口。IDE接口也称之为ATA接口。ATA的英文拼写为"Advanced Technology Attachment"。2003年推出SATA(Serial ATA)后,原有的ATA改名为PATA(并行高技术配置,Parallel ATA)。

IDE是曾经普遍使用的外部接口,主要接硬盘和光驱。采用数据并行传送方式,一个IDE接口只能接两个外部设备。

IDE的工作方式需要CPU的全程参与,消耗的这部分资源会在一定程度上降低操作系统性能。

2.SATA接口

SATA(Serial ATA)是目前个人电脑上采用最多的接口。它采用串行连接方式。现在的SATAⅢ能达到的理论传输速度是6Gbps即750MB/s的速度。

3.SCSI接口

SCSI(Small Computer System Interface)小型计算机系统接口。它是各种计算机与外部设备之间的接口标准。

SCSI其内有控制芯片,可以代替cpu完成90%多的IO工作(如计算、控制、转换等),CPU不必浪费时间进行等待,可提高整体性能。

SCSI采用链式连接,SCSI总线是SCSI设备之间传输数据的通路,又被称作SCSI通道。它通过SCSI控制器来和硬盘之类的SCSI设备进行通信。

SCSI可以连接7—15个设备,由SCSI总线是宽总线(支持16个设备)还是窄总线(支持8个设备)决定。这些设备在SCSI体系结构中称为target,可能是一块硬盘、一个RAID阵列、一个cdrom等可能的设备。

每个target都必须有自己唯一的ID,在8-bit总线上,这个号码是07,在16-bit总线上,这个号码是015。

ID实际上就是这些设备地址。ID优先权由高到低的顺序为7-6-5-4-3-2-1-0-15-14-13-12-11-10-9-8

SCSI链的最后一个SCSI设备要用作终结器(terminator),终结器是由电阻组成的,位于SCSI总线的末端,用来减小相互影响的信号,维持SCSI链上的电压恒定。中间设备不需要终结器。一旦中间设备使用了终结器,那么就无法找到终结器后的SCSI设备了。而如果最后一个设备没用终结器,SCSI也会无法正常工作。

在每个target上还可以继续进行扩展(注意每个target对应一个ID),每个ID可以继续向下扩展最多32个逻辑设备,也称为逻辑单元(LU,logical unit)。每个逻辑单元对应一个设备,使用逻辑单元号LUN(Logical Unit Numbers)标识,LUN的范围是0-31。也就是说,SCSI可以扩展出很多很多存储设备。

SCSI的数据传输是以块的方式进行的。

在SCSI体系结构中,首先由initiator向target发起会话,此会话不像web服务那样休闲时就断开,而是像ssh服务那样,保持长久连接。在此会话中,initiator会发出scsi命令进行读写数据。

可以将initiator认为是scsi的客户端,它是数据操作的需求方,target是scsi的服务端,它是数据的来源,也就是一堆堆的存储设备。当initiator与target关联后,target上的每一个lu在initiator上会单独显示为一块硬盘格式,即/dev/sd{b,c,d,e...},显示的先后顺序根据lun号码来决定。

4.SAS接口

SAS是Serial Attached SCSI的缩写,即串行连接SCSI。也就是说SAS是新一代的SCSI技术,它和SATA一样都采用串行技术。

SAS技术引入SAS扩展器,使SAS系统可以连接更多的设备,其中每个扩展器允许连接多个端口,每个端口可以连接SAS设备、主机或其他SAS扩展器。

1.2 存储方案(存储技术)

所谓的存储方案,就是用单独的软硬件将磁盘或磁盘组管理起来供主机使用。也就是说,存储方案和存储设备是在不同层面的,存储方案是设计如何组织和利用存储设备的。

根据服务器类型分为封闭系统的存储和开放系统的存储

  1. 封闭系统主要指大型机,AS400等服务器。
  2. 开放系统指基于包括Windows、UNIX、Linux等操作系统的服务器。而开放系统的存储又分为内置存储和外挂存储:
    • 开放系统的外挂存储根据连接的方式又分为:直连式附加存储DAS(Direct Attached Storage)和网络化存储FAS(Fabric-Attached Storage);
    • 开放系统的网络化存储根据传输协议又分为:网络附加存储NAS(Network Attached Storage)和存储区域网络SAN(Storage Area Network)。

目前绝大部分用户采用的是开放系统,其中外挂存储占有目前磁盘存储市场的70%以上。

目前的外挂存储解决方案主要分为三种:DAS、NAS和SAN。下图虽简单,却描述了这直连式存储和网络存储的区别。

存储方案内部使用的硬盘多为SATA/SAS,追求高性能也用SSD,经过串联或者RAID之后,对主机提供访问接口。

1.2.1 DAS存储

直接式存储(DAS:Direct Attached Storage),是指将存储设备通过SCSI接口或FC接口直接连接到一台计算机上。DAS不算是网络存储,在存储设备和主机之间没有任何网络设备的参与,只有挂载它的主机才可访问它。

最典型的DAS存储类型就是个人电脑中的硬盘,它和电脑直连,没有经过任何网络设备,也只有这台电脑可以访问它上面的数据。

也就是说,服务器发生故障时,连接在服务器上的DAS存储设备中的数据暂时不能被存取。

DAS是最原始最基本的存储方式,缺点在于容量有限、难于共享,从而造成信息孤岛。

DAS缺陷有二:

  • (1).DAS存储只能通过与之相连的主机进行访问,不能实现数据与其他主机的共享。
  • (2).直连式存储与服务器主机之间的连接通道通常采用SCSI或者SAS连接,随着服务器CPU的处理能力越来越强,存储硬盘空间越来越大,阵列的硬盘数量越来越多,SCSI或SAS通道将会成为IO瓶颈;且SCSI ID或SAS ID资源有限,能够建立的SCSI或SAS通道连接有限。也就是容量有限。

1.2.2 NAS存储

是指将存储设备通过标准的网络连接到一台或一群计算机上。

NAS有文件系统和IP地址,可以类似的理解为网上邻居的共享磁盘,或者NFS的服务端,即导出目录的一端。NAS是文件级的存储方法,它有自己的文件系统,如NFS,SMB的CIFS。所以它是真正即插即用的产品。

NAS和SAN本质上的不同点在于NAS有自己的文件系统,而SAN的文件系统在应用程序服务器上而非存储服务器上。这样的不同点导致NAS是文件级别的数据传输,而SAN是基于块级别的传输。

对于大量小文件来说,由于每个文件都要查找文件索引号,所在块号等等,这些都会消耗资源和时间,所以导致文件级别的传输要慢的多得多,而块级别的传输则不管某个块属于哪个文件,只要需要就会把块传输出去。

NAS性能比SAN要差很多,但相对成本也低很多。

1.2.3 SAN存储

SAN即存储区域网络(Storage Area Network,SAN)。目前有两种类型的SAN,一种是FC SAN(光纤通道的SAN),一种是IP SAN(以太网的SAN,即现在的iSCSI)。

一般都采用光纤通道(Fibre Channel)技术,通过光纤通道交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。FC SAN已经相当成熟,成为业界的实施标准。如果是IP SAN,则下图中的FC部分换为以太网,对交换机而言也没有光纤交换机那么严格的要求。

SAN是基于块级别的数据传输。在应用程序服务器本地有本地文件系统,这是和NAS根本上的区别。

SAN解决方案从基本功能剥离出存储这部分功能,在理论上比其他存储方案要先进一些。

相比于FC SAN,IP SAN的弱点除了在硬件设备上,还在于它要对数据进行TCP/IP的封装,这需要消耗资源(硬件iSCSI使用HBA卡控制芯片来封装不会消耗操作系统资源,但挺贵的)。同时它还要使用以太网,所以网络的情况对其也有很大影响。

SAN是目前业界中高端存储的主流标准。

1.2.4 SAN和NAS的区别

为什么提到NAS就不得不提到SAN呢?原因之一是它们的名称有69关系,容易混淆;之二是NAS和SAN既竞争又合作,很多高端NAS的后端存储就是SAN。NAS和SAN的整合也是存储设备的发展趋势。

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

现在高端存储已经很多都使用SAN+NAS了。如下图。

在上图的双虚线框表示一台NAS。它通过Fibre Channel从后端SAN获得存储空间,创建文件系统后,再通过以太网共享给服务器。SAN提供的存储单位是LUN,属于block级别的。经过NAS创建成文件系统后,就变成文件级别的了。

如果上图描述的不够清楚,下图就容易理解多了。NAS通过FC Switch连到SAN上,应用服务器再通过Ethernet Switch连到NAS上。同时SAN也直接提供block级别的存储给应用服务器。

关于NAS和SAN的区别,可以列出很多来。比如带宽大小,距离长短,共享优劣等等。几乎所有区别都是由两个因素衍生出来的。一个是FC与Ethernet,另一个是block与file system。简而言之,如果用户需要通过FC访问block,就用SAN;如果需要通过Ethernet访问file system,就用NAS。

posted @ 2018-05-21 22:46  骏马金龙  阅读(5276)  评论(2编辑  收藏  举报