zoukankan      html  css  js  c++  java
  • 存储基础知识

    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。

  • 相关阅读:
    Treap 树堆 容易实现的平衡树
    (转)Maven实战(二)构建简单Maven项目
    (转)Maven实战(一)安装与配置
    根据请求头跳转判断Android&iOS
    (转)苹果消息推送服务器 php 证书生成
    (转)How to renew your Apple Push Notification Push SSL Certificate
    (转)How to build an Apple Push Notification provider server (tutorial)
    (转)pem, cer, p12 and the pains of iOS Push Notifications encryption
    (转)Apple Push Notification Services in iOS 6 Tutorial: Part 2/2
    (转)Apple Push Notification Services in iOS 6 Tutorial: Part 1/2
  • 原文地址:https://www.cnblogs.com/f-ck-need-u/p/9069823.html
Copyright © 2011-2022 走看看