大话存储2-读书笔记

2018-04-27

冯诺依曼计算机结构

冯诺依曼体系结构图


存储系统架构演化过程

  1. 全整合阶段
    graph LR
    subgraph 服务器机箱
    A[应用程序]-->|内存通信|B((文件系统))
    B((文件系统))-->|内存通信|C(("卷(LUN)"))
    C(("卷(LUN)"))-->|IO总线通信|D["磁盘控制器"]
    D["磁盘控制器"]-->|SCSI总线通信|E((物理磁盘))
    end
    
  2. 磁盘外置阶段
    graph LR
    subgraph 服务器机箱
    A[应用程序]-->|内存通信|B((文件系统))
    B((文件系统))-->|内存通信|C(("卷(LUN)"))
    C(("卷(LUN)"))-->|IO总线通信|D["磁盘或者raid控制器"]
    end
    subgraph 磁盘柜JBOD
    D["磁盘或者raid控制器"]-->|SCSI总线通信|E((物理磁盘))
    end
    
  3. 外部独立磁盘阵列阶段
    graph LR
    subgraph 服务器机箱
    A[应用程序]-->|内存通信|B((文件系统))
    B((文件系统))-->|内存通信|C(("卷(LUN)"))
    C(("卷(LUN)"))-->|IO总线通信|D["磁盘控制器"]
    end
    subgraph 磁盘阵列
    D["磁盘控制器"]-->|SCSI总线通信|E(("控制器(LUN)"))
    E["控制器(LUN)"]-->|SCSI总线通信|F((物理磁盘))
    end
    
  4. 网络化独立磁盘阵列阶段
    graph LR
    subgraph 服务器机箱
    A[应用程序]-->|内存通信|B((文件系统))
    B((文件系统))-->|内存通信|C(("卷(LUN)"))
    C(("卷(LUN)"))-->|IO总线通信|D["FC协议适配器"]
    end
    subgraph 磁盘阵列
    D["FC协议适配器"]-->|FC网络通信|E(("控制器(LUN)"))
    E["控制器(LUN)"]-->|SCSI总线通信|F((物理磁盘))
    end
    
  5. 瘦服务器主机、独立NAS阶段
    • 在瘦服务器阶段,文件系统之下的所有层次模块转移到外部独立设备中,主机得到了彻底的解放,专门处理业务逻辑,而不必 花费太多资源去处理底层系统逻辑。
      graph LR
      subgraph 服务器机箱
      A[应用程序]
      end
      subgraph NAS设备机箱
      A[应用程序]-->|以太网络通信|B((文件系统))
      B((文件系统))-->|内存通信|C(("卷(LUN)"))
      C(("卷(LUN)"))-->|IO总线通信|D["FC协议适配器或者SCSI控制器"]
      D["FC协议适配器或者SCSI控制器"]-->|FC-AL网络通信或者SCSI总线通信|E((物理磁盘))
      end
      
  6. 全分离阶段
    graph LR
    subgraph 服务器机箱
    A[应用程序]
    end
    subgraph NAS设备机箱
    A[应用程序]-->|以太网络通信|B((文件系统))
    B((文件系统))-->|内存通信|C(("卷(LUN)"))
    C(("卷(LUN)"))-->|IO总线通信|D["FC协议适配器或者SCSI控制器"]
    end
    subgraph SAN磁盘阵列
    D["FC协议适配器或者SCSI控制器"]-->|FC-Fabric网络通信或者SCSI总线通信|E(("控制器(LUN)"))
    E["控制器(LUN)"]-->|SCSI总线通信|F((物理磁盘))
    end
    
  7. 统一整合阶段
  8. 迅速膨胀阶段
  9. 收缩阶段
  10. 强烈坍缩阶段

硬盘接口

  • SCSI与ATA是目前现行的两大主机与外设通信的协议规范。SCSI全称是Small Computer System Interface,即小型计算机系统接口。 目前,硬盘提供的物理接口包括如下几种。
  • 用于ATA指令系统的IDE接口,也称为PATA接口(Parallel ATA并行传输ATA)。
  • 用于ATA指令系统的SATA接口。
  • 用于SCSI指令系统的并行SCSI接口。
  • 用于SCSI指令系统的串行SCSI(SAS)接口。
  • 用于SCSI指令系统的IBM专用串行SCSI接口(SSA)。
  • 用于SCSI指令系统的并且承载于FabreChannel协议的串行FC接口(FCP)。

DAS、SAN、NAS

DAS

  • 人们将最原始的存储架构称为DAS Direct(Dedicate)Attached Storage,直接连接存储,意思是指存储设备只用于与独立的一台主机服务器连接,其他主机不能使用这个存储设备。

NAS

  • 带有集中式文件系统功能的盘阵,叫做网络附加存储(Network Attached Storage,NAS)。
  • NAS其实就是处于以太网上的一台利用NFS、CIFS等网络文件系统的文件共享服务器
  • NAS必须具备的物理条件如下:
    • 1.不管用什么方式,NAS必须可以访问卷或者物理磁盘。
    • 2.NAS必须具有接入以太网的能力,也就是必须具备以太网卡。

SAN(Storage Area Network,SAN)

  • SAN是一个网络上的磁盘,NAS是一个网络上的文件系统。

存储区域网络(Storage Area Network,SAN)

SAN的实现

  • SAN的实现其实就是把原来基于并行SCSI总线的存储网络架构全面迁移到FC提供的这个新的网络架构
  • FC的出现就是为了取代SCSI协议集的底层传输模块,由FC协议的底层模块担当传输通道和手段,将SCSI协议集的上层内容传送到对方。 可以说是SCSI协议集租用了FC协议,将自己的底层传输流程外包给了FC协议来做。

  • FC协议定义了在FC4层上的针对SCSI指令集的特定接口,称为FCP,也就是SCSI over FC。

  • FC协议决定先将连接主机和磁盘阵列的通路,从并行SCSI总线替换为串行传输的FC通路。而盘阵后端连接磁盘的接口,还是并行SCSI接口不变。

  • 虽然链路被替换成了FC,但是链路上所承载的应用层数据并没有变化,依然是SCSI指令集,和并行SCSI链路上承载的指令集一样,只不过换成FC协议及其底层链路和接口来传输这些指令以及数据而已。

  • 引入FC之后有如下优势。

    1. 提高了扩展性:
      • SCSI总线网络可以接入16个节点
    2. 增加了传输距离
      • SCSI线缆最长不能超过25米
    3. 解决了安全性问题
  • ZONE的功能就是在FC网络交换设备上阻断两个节点间的通路,这样某些节点就根本无法获取并访问到被阻断的其他节点,也就识别不到其上的LUN了。

  • ZONE有软ZONE和硬ZONE之分。软ZONE就是在名称服务器上做手脚,欺骗进行名称注册的节点,根据ZONE配置的信息向登录节点通告网络上的其他节点以及资源的信息。硬ZONE就是直接把交换机上某些端口归为一个ZONE,另一些端口归为另一个ZONE,在两个ZONE之间完全底层隔离,端口之间都不能通信,

  • “多路径”软件,

  • 多路径软件除了可以做到冗余高可用性的作用之外,还可以做到负载均衡。因为主机上如果安装了多块FC适配卡,数据就可以通过其中任何一块卡到达目的,这样就分担了流量。
  • 磁盘阵列的前端和后端用FC网络作为通路取代原来的并行SCSI通路技术,获得了极大的成功!如果说将主机通道替换成FC通路只能称为半网络的话,那么将一个个磁盘作为FC网络上的节点对待,可就是彻彻底底的网络化存储系统了。这也自然阐释了“网络存储”和“存储网络”的概念

SAN的原理

  • OSI模型是一种被提取抽象出来的系统间通信模型。OSI中文的意思为“开放式系统互联”模型,是一个描述两个或者多个系统之间如何交流的通用模型。它不只适合于计算机系统互联,而且适合任何独立系统之间的互联。

  • 系统互联通信所具备的“连、找、发”三要素。  1.连:就是指通信的双方必须用某种形式连通起来,否则两个没有任何形式连通的系统之间是无法通信的。即便是电磁波通信,也至少通过了电磁波连通。 2.找:是说通信的双方或者多方,必须能够区分自己和对方以及多方(广播系统除外)。 3.发:定义了通信的双方如何将数据通过连通介质或者电磁波发送到对方。

  • 任何互联系统都逃不过OSI模型,不可能存在某种不能归属于OSI中某个层次的元素。

FC网络的拓扑

  • FC协议是一套完全独立的网络协议,比以太网要复杂得多。FC其实是Fibre Channel的意思,由于Fibre和Fiber相似,再加上FC协议普遍都用光纤作为传输线缆而不用铜线,所以人们下意识的称FC为光纤通道协议而不是网状通道协议。
  • FC提供两种网络拓扑模式: 1.FC-AL:类似于以太网共享总线拓扑,但连接方式不是总线,而是一条仲裁环路。一个环路能接入最多128个节点。 2.Fabric:和以太网交换拓扑类似,是一个网状交换矩阵

  • FC网络中,存在七种类型的接口,其中N、L和NL端口被用于终端节点,F、FL、E和G端口在交换机中实现。

Fabric的寻址

  • N端口和F端口专用于Fabric交换架构中。连入FC交换机的终端节点的端口为N端口,对应的交换机上的端口为F端口。

  • N端口和F端口专用于Fabric交换架构中。连入FC交换机的终端节点的端口为N端口,对应的交换机上的端口为F端口。N代表Node,F代表Fabric。用N端口模式连入F端口之后,网络中的N节点之间就可以互相进行点对点通信了。

  • FC是一个高速高效、配置简单,不需要太多人为介入的网络。基于这个原则,为了进一步提高FC网络的速度和效率,在FC终端设备上,FC协议的大部分逻辑被直接做到一块独立的硬件卡片当中,而不是运行在操作系统中。如果将部分协议逻辑置于主机上运行,会占用主机CPU内存资源。

  • 首先,像以太网端口MAC地址一样,FC网络中的每个设备自身都有一个WWNN(World Wide Node Name),不管这个设备上有多少个FC端口,设备始终拥有一个固定的WWNN来代表它自身。然后,FC设备的每个端口都有一个WWPN(World Wide Port Name,世界范围的名字)地址,也就是说这个地址在世界范围内是唯一的,世界上没有两个接口地址是相同的。

  • FC协议决定在WWPN之上再映射一层寻址机制,就是像MAC和IP的映射一样,给每个连接到FC网络中的接口分配一个Fabric ID,用这个ID而不是WWPN来嵌入链路帧中做路由。这个ID长24位,高8位被定义成Domain区分符,中8位被定义为Area区分符,低8位定义为PORT区分符。 这样,WWPN被映射到Fabric ID,一个Fabric ID所有24b又被分成Domain ID、Area ID、Port ID这三个亚寻址单元。

  • 如果将几台交换机连接成一个FC网络,则它们会自动地协商自己的Domain ID,这个过程是通过选举出一个WWPN号最小的交换机来充当主交换机,由主交换机来向下给每个交换机分配Domain ID,以确保不会冲突。

FC-AL

  • L端口指仲裁环上各个节点的端口类型(LOOP)

  • 环路上的所有设备可以通过一个FCAL的集线器相连,以使得布线方便,故障排除容易。当然,也可以使用最原始的方法,就是首尾相接。

  • 私有环,就是说这个FC仲裁环是封闭的,只能在这个环中所包含的节点之间相互通信,而不能和环外的任何节点通信。

  • 开放环 这个环是开放的,环内节点不但可以和环内的节点通信,而且也可以和环外的节点通信。也就是说可以把这个环作为一个单元连接到FC交换机上,从而使得环内的节点可以和位于FC交换机上的其他N节点通信。如果将多个开放环连接到交换机,那么这几个开放环之间也可以相互通信。

  • 要实现开放环架构,需要特殊的端口,即下面描述的NL和FL端口。

  • NL端口是开放环中的一类端口,它具有N端口和L端口的双重能力。换而言之,NL端口支持交换式光纤网登录和环仲裁。而FL端口是FC交换机上用于连接开放仲裁环结构的中介端口。

  • 开放环内可以同时存在NL节点和L节点,而只有NL节点才能和环外的、位于FC交换结构中的多个N节点或者其他类型节点通信。NL节点也可以同时和L节点通信。

  • 开放环的融合机制 FC-SW设备的工作方式是它会登录到网络(FLOGI),并在Name Server中注册(PLOGI)。设备要传输数据时会先到Name Server查询Target设备,然后到目标设备进行注册(PRLI),最后传输数据。 FC-AL的设备工作方式与此完全不同,在环路的初始化(LIP)过程中,生成一个环路上所有设备地址的列表,被称作AL_PA,并存储在Loop中的每个设备上。当设备要与目标主机通信时,会到AL_PA中查询目标主机,然后根据地址进行通信。 要让一个私有环中的设备和Fabric中的设备达到相互通信,必须采用协议转换措施,因为FC AL和FC Fabric是两套不同的逻辑体系。

  • E端口是专门用于连接交换机和交换机的端口。因为交换机之间级联,需要在级联线路上承载一些控制信息,比如选举协议、路由协议等。

  • G端口比较特殊,它是“万能”端口,它可以转变为上面讲到过的任何一种端口类型,按照所连接对方的端口类型进行自动协商变成任何一种端口。

  • FC技术的两种拓扑,一个称霸前端,一个称霸后端,在磁盘阵列领域发挥得淋漓尽致。

  • ISCSI,即Internet Small Computer System Interface。即在这种协议中,SCSI语言甚至可以通过Internet来传递,也就是承载于TCP/IP之上。

  • ISCSI与NAS的区别如下。 虽然ISCSI与NAS都是利用TCP/IP+以太网来实现的,但是二者所传输的语言是大相径庭的。NAS传输的是文件系统语言,而ISCSI传输的是SCSI指令语言。NAS设备上必须运行一种或者多种文件系统逻辑,才能称为NAS;而ISCSI Target设备上不需要运行任何文件系统逻辑(盘阵自身操作系统文件管理除外)。

  • IP SAN出现之后,FC SAN的统治地位被大大地动摇了。FC目前唯一可以用来与IP SAN抗衡的武器,就是其高速度。