文章目录

  • SCSI/ISCSI
    • SCSI
    • ISCSI
  • SAS
  • FC/FCOE
    • FC
    • FCOE
  • PCle
  • IB
  • CIFS/ NFS
  • FTP/HTTP
    • FTP
    • HTTP

SCSI/ISCSI

SCSI

  • SAN(Storage Aera Network):存储区域网络,一种通过网络方式连接存储设备和应用服务器的存储构架,这个网络专用于主机和存储设备之间的访问。当有数据的存取需求时,数据可以通过存储区域网络在服务器和后台存储设备之间高速传输。

  • IP SAN:通过百兆/千兆/万兆以太网络连接应用服务器和后端存储系统。将SCSI指令和数据块通过高速以太网传输,继承以太网的优点,实现建立一个开放、高性能、高可靠性,高可扩展的存储资源平台。

  • SCSI即小型计算机接口(Small Computer System Interface),指的是一个庞大协议体系,到目前为止经历了SCSI-1/SCSI-2/SCSI-3变迁。

  • SCSI协议定义了一套不同设备(磁盘,磁带,处理器,光设备,网络设备等)利用该框架进行信息交互的模型和必要指令集。

  • SCSI协议本质上同传输介质无关,SCSI可以在多种介质上实现,甚至是虚拟介质。例如基于光纤的FCP链路协议,基于SAS的链路协议,基于虚拟IP链路的ISCSI协议。

  • 逻辑单元(LUN):LUN是SCSI目标器中所描述的名字空间资源,一个目标器可以包括多个LUN,而且每个LUN的属性可以有所区别,比如LUN#0可以是磁盘,LUN#1可以是其他设备。

  • 启动器(Initiator):本质上,SCSI是一个C/S架构,其中客户端成为启动器,负责向SCSI目标器发送请求指令,一般主机系统都充当了启动器的角色。

  • 目标器(Target):处理SCSI指令的服务端称为目标器,它接收来自主机的指令并解析处理,比如磁盘阵列的角色就是目标器。

  • SCSI的Initiator与Target共同构成了一个典型的C/S模型,每个指令都是“请求/应答”这样的模型来实现。

  • Initiator主要任务:发出SCSI请求

  • Target主要任务:回答SCSI请求,通过LUN提供业务,并通过任务管理器提供任务管理功能

  • 主机的SCSI系统一般工作中“启动器”模式下面,由于SCSI的体系结构来说,分为了“架构层(中间层)”,“设备层”,“传输层”,故此一般的操作系统,都将SCSI分为三个层次,包括Windows, Linux, AIX, Solaris ,BSD

  • Windows下的启动器架构:Windows将SCSI启动器分为三个逻辑层次,其中ScsiPort负责实现SCSI的基本框架性处理流程,比如设备发现,名字空间扫描等。若需要了解Windows驱动的详细细节可以参考DDK的文档或者WDM相关资料。

  • Linux下的启动器架构:Linux将SCSI启动器分为三个逻辑层次,其中scsi_mod中间层复杂处理SCSI设备无关和适配器无关的流程处理,比如一些异常,名字空间维护等。HBA驱动提供SCSI指令的打包解包传输等链路实现细节,设备驱动实现特定的SCSI设备驱动,比如著名的sd(SCSI磁盘)驱动,st(SCSI磁带)驱动,sr(SCSI光盘设备)驱动等。

  • Solaris下的启动器架构:Solaris的结构和Linux/Windows很类似,这里不再多说。

  • AIX下的启动器架构:AIX的结构也是分为三层,即:SCSI设备驱动,SCSI中间层,SCSI适配驱动。

  • Target一般依据SCSI体系结构,分为三个层次,分别是链路端口层(Port Layer),中间层( Middle Layer),目标设备层(Device Layer)。其中最重要的是中间层,在中间层中将以SAM/SPC为规范,对LUN命名空间,链路端口,目标设备,任务,任务集,会话等进行管理维护。端口层的驱动都以注册的形式动态载入,设备层的驱动也是动态载入。

  • 目标器中PORT模型:PORT驱动将动态载入,PORT主要完成的任务是对链路上携带的SCSI指令的解包和封包,比如将指令打包为FPC或者ISCSI或者SAS等,或者将指令从FCP/ISCSI/SAS中解开。iSCSI/FCP/SAS等硬件的目标器模式驱动都属于PORT范畴,PORT需要提供的方法函数可能包括,传输报文(xmit_response),准备好接受数据(xfer_data),管理指令处理完毕回调(mgmt_task_done),任务处理结束(cmd_done),端口控制(复位等control)等。

  • 目标器中间层:中间层维护了“LUN空间”,“任务集”,“任务(命令)”等模型,对于LUN空间维护有两种截然不同的实现方法,一种是所有的PORT都看见的是一个全局的LUN,并外一种是为每个PORT维护一个LUN空间,其中第一种方法实现较为简单,这里的讨论以第一种展开。

  • 目标器中的Device模型:本质上Device是一个SCSI指令“分析器”,通过处理INQUIRY告诉Initiator当前LUN是什么设备,通过READ/WRITE处理IO。

  • 控制器首先向总线处理器发出请求使用总线的信号。该请求被接受之后,控制器高速缓存就开始执行发送操作。在这个过程中,控制器占用了总线,总线上所连接的其它设备都不能使用总线。当然,由于总线具备中断功能,所以总线处理器可以随时中断这一传输过程并将总线控制权交给其它设备,以便执行更高优先级的操作。

  • SCSI 控制器相当于一个小型CPU,有自己的命令集和缓存。SCSI是一种特殊的总线结构,可以对计算机中的多个设备进行动态分工操作,对于系统同时要求的多个任务可以灵活机动的适当分配,动态完成。

  • 为了对连接在SCSI总线上的设备寻址,SCSI协议引入了SCSI设备ID和逻辑单元号LUN(Logical Unit Number)。在SCSI总线上的每个设备都必须有一个唯一的设备ID,当然服务器中的主机总线适配器也拥有自己的设备ID,固定为7。每条总线,包括总线适配器,最多允许有8个或者16个设备ID。设备ID一方面用以寻址,另一个作用是标识该设备在总线使用上的优先级。此外,在同一条总线上连接的不同的设备的设备ID必须不同,否则就会引起寻址和优先级的冲突。
  • 每一个存储设备可能包括若干个子设备,如虚拟磁盘、磁带驱动器等。 因此SCSI协议引入了逻辑单元号LUN ID,以便于对存储设备中的子设备进行寻址。
  • 传统的SCSI控制器连接单条总线,相应的只具有一个总线号。企业级的一个服务器则可能配置了多个SCSI控制器,从而就可能有多条SCSI总线。在引入存储网络之后,每个FCHBA(Host Bus Adapter)或iSCSI(Internet SCSI)网卡也都各连接着一条总线,因此必须对每一条总线分配一个总线号,在他们之间依靠不同的总线号加以区分。我们可以使用一个三元描述标识一个SCSI目标:总线号/目标设备ID/逻辑单元号LUN ID。

ISCSI

  • iSCSI协议最早由IBM、CISCO、HP发起,2004年起作为正式的IETF标准,现有的iSCSI协议依据SAM2(SCSI Architecture Model-2)

  • iSCSI (Internet SCSI)把SCSI命令和块状数据封装在TCP中在IP网络中传输

  • iSCSI作为SCSI的传输层协议,基本出发点是利用成熟的IP网络技术来实现和延伸SAN

  • iSCSI是互联网小型计算机系统接口(Internet Small Computer System Interface)的简称,是一种在TCP/IP上进行数据块传输的标准,可以理解为SCSI over IP

  • iSCSI可构成基于IP的SAN,为用户提供高速、低价、长距离的存储解决方案

  • iSCSI将SCSI命令封装到TCP/IP数据包中,使I/O数据块可通过IP网络传输

  • iSCSI (Internet SCSI)把SCSI命令和块状数据封装在TC。P中在IP网络中传输。iSCSI作为SCSI的传输层协议,基本出发点是利用成熟的IP网络技术来实现和延伸SAN。

  • iSCSI协议是SCSI远程过程调用模型到TCP/IP协议的映射。SCSI协议层负责生成CDB,并将其送到iSCSI协议层,然后由 iSCSI协议层进一步封装成PDU,经IP网络进行传送。

  • iSCSI的通信体系仍然继承了SCSI的部分特性,在iSCSI通信中,具有一个发起I/O请求的启动器设备(Initiator)和响应请求并执行实际I/O操作的目标器设备(Target)。在Initiator和Target建立连接后,Target在操作中作为主设备控制整个工作过程。

  • iSCSI Initiator:iSCSI启动器,可分为三种,即软件Initiator驱动程序、硬件的TOE(TCPOffload Engine,TCP卸载引擎)卡以及iSCSI HBA卡。就性能而言,软件Initiator驱动程序最差、TOE卡居中、iSCSI HBA卡最佳。

  • iSCSI Target:iSCSI目标器iSCSI Target,通常为iSCSI 磁盘阵列、iSCSI 磁带库等。

  • iSCSI协议为Initiator和Target定义了一套命名和寻址方法。所有的iSCSI节点都是通过其iSCSI名称被标识的。这种命名方式使得iSCSI名称不会与主机名混淆。

  • iSCSI使用iSCSI Name来唯一鉴别启动设备和目标设备。地址会随着启动设备和目标设备的移动而改变,但是名字始终是不变的。建立连接时,启动设备发出一个请求,目标设备接收到请求后,确认启动设备发起的请求中所携带的iSCSI Name是否与目标设备绑定的iSCSI Name一致,如果一致,便建立通信连接。每个iSCSI节点只允许有一个iSCSIName,一个iSCSI Name可以被用来建立一个启动设备到多个目标设备的连接,多个iSCSI Name可以被用来建立一个目标设备到多个启动设备的连接。

  • 在支持iSCSI的系统中,用户在一台SCSI存储设备上发出存数据或取数据的命令,操作系统对该请求进行处理,并将该请求转换成一条或者多条SCSI指令,然后再传给目标SCSI控制卡。iSCSI节点将指令和数据封装(Encapsulation)起来,形成一个iSCSI包,然后该数据封装被传送给TCP/IP层,再由TCP/IP协议将iSCSI包封装成IP协议数据以适合在网络中传输。也可以对封装的SCSI命令进行加密处理,然后在不安全的网络上传送。

  • 数据包可以在局域网或Internet上传送。在接收存储控制器上,数据报重新被组合,然后存储控制器读取iSCSI包中的SCSI控制命令和数据发送到相应的磁盘驱动器上,磁盘驱动器再执行初始计算机或应用所需求的功能。如果发送的是数据请求,那么将数据从磁盘驱动器中取出进行封装后发送给发出请求的计算机,而这整个过程对于用户来说都是透明的。尽管SCSI命令的执行和数据准备可以通过使用标准TCP/IP和现成的网络控制卡的软件来完成,但是在利用软件完成封装和解封装的情况下,在主机处理器上实现这些功能需要很多的CPU运算周期来处理数据和SCSI命令。如果将这些事务交给专门的设备处理,则可以将对系统性能的影响减少到最小程度,因此,发展在iSCSI标准下并执行SCSI命令和完成数据准备的专用iSCSI适配器是有必要的。iSCSI 适配器结合了NIC和HBA的功能。这种适配器以块方式取得数据,利用 TCP/IP处理引擎在适配卡上完成数据分化和处理,然后通过IP网络送出IP数据包。这些功能的完成使用户可以在不降低服务器性能的基础上创建一个基于IP的SAN。

  • PDU:协议数据单元

  • TCP/IP:传输控制协议/因特网互联协议

  • 8b/10b编码是将一组连续的8位数据分解成两组数据,一组3位,一组5位,经过编码后分别成为一组4位的代码和一组6位的代码,从而组成一组10位的数据发送出去。

SAS

  • SAS采用点对点连接的设计使得通信的两个设备间建立了专用链路进行通信,而在并行SCSI中采用的多点总线设计则是多个设备共享同一条总线。使用点对点连接,通信速度也快得多,因为通信的两个设备之间不需要在通信前检测是否被允许使用连接链路。每个设备连接到指定的数据通路上提高了带宽。
  • 串行接口结构简单,支持热插拔,传输速度快,执行效率高。一般情况下,较大的并行电缆会带来电子干扰,SAS的电缆结构可以解决这个问题。SAS的电缆结构节省了空间,从而提高了使用SAS硬盘服务器的散热、通风能力。

  • SAS是Serial Attached SCSI的缩写,即串行连接SCSI。
  • SAS是SCSI总线协议的串行标准

  • 更低的成本:

    • SAS的背板可以兼容SAS和SATA两类硬盘,使用不同类型的硬盘时部需要再重新进行投资。
    • 不需要为SCSI和SATA标准分别设计不同的产品,同时也减少了设计时布线的复杂度和PCB的层数,因此降低了成本。
    • 系统集成商也不需要为给客户配置不同硬盘而采购不同的背板和线缆。
    • 可连接更多的设备
    • SAS技术引入了SAS扩展器,使SAS系统可以连接更多的设备,其中每个扩展器允许连接多个端口,每个端口可以连接SAS设备、主机或其他SAS扩展器。
  • 高可靠性

  • 器件可靠性同SCSI硬盘、FC盘,比SATA好。

  • 保留了经过验证的SCSI命令集。

  • 高性能

  • 端口单向速率高。

  • 与SATA兼容

  • SATA硬盘可以直接装入SAS环境里。

  • 可以在同一个系统里使用SATA或SAS盘,符合现在日益流行的分级存储战略。

  • SAS标准将SAS架构分为6层,从低到高依次是物理层、phy层、链路层、端口层、传输层和应用层,每层负责一定的功能。

  • 物理层:对于线缆、接头、收发器等硬件进行了定义;

  • PHY层:包括了最低级的协议,比如编码方案和供电/复位序列等等;

  • 链路层:描述的是如何控制phy层连接管理,以及原语、CRC校验和加解扰、速率匹配处理;

  • 端口层:描述的是链路层和传输层的接口,包括如何请求、中断、如何选择建立连接;

  • 传输层:定义了如何将所传输的命令、状态、数据封装在SAS帧中,以及如何分解SAS帧;

  • 应用层:描述了如何在不同类型的应用下使用SAS的细节。

  • SAS相对SCSI而言,最重要的提升在于:

  • 因为采用串行通信方式,可以提供更高的吞吐量,并为将来更高的性能成为可能。

  • 四个窄端口可以绑定成一个宽端口(Wide Link),提供更高的吞吐量。

  • SAS采用全双工(双向)通信模式,而不是单向通信。传统的并行SCSI只可以在一个方向上进行通信,当设备接收到并行SCSI的一个数据包后,如果该设备要响应该数据包,就需要在上一个链路断开后,再重新建立一个新的SCSI通信链路。而SAS,则可以进行双向通信。每个SAS电缆有4根电缆,2根输入2根输出。SAS可以同时进行数据的读写,全双工的数据操作提高数据的吞吐效率。

  • SAS结构采用扩展器(expander)进行接口扩展,具有非常好的扩展能力,最多可以连接16384个磁盘设备。

  • SAS Expander:SAS域中的互联设备,类似于以太网交换机,通过 Expander的级联可以大大增加终端设备的连接数,从而节约HBA花费。每个Expander最多可以连接128个终端设备或者128个Expander。1个SAS域由以下几个部分组成:SAS Expander、终端设备、连接设备(即SAS连接线缆)。

  • SAS Expander配备了一个地址的路由表跟踪,记录了所有SAS驱动器的地址。

  • 终端设备包括启动器(通常为SAS HBA卡)和目标器(SAS/SATA硬盘,也可以是处于目标模式的HBA卡)。

  • SAS 域中不能形成环路,以保证其发现终端设备流程的正常进行。

  • 实际使用中,因为带宽的原因,扩展器连接的终端设备比128个少很多

  • 大多数存储设备供应商现使用SAS线缆连接硬盘框到控制框,或者硬盘框之间的互连。SAS线缆通常将4个独立的通道(窄端口)捆绑成一个宽端口来提供更多的带宽。4个独立的通道都可以在12 Gb/s上进行,因此整个宽端口可以提供48 Gb/s 的带宽。为了确保SAS线缆上的数据量不超过整个SAS线缆的最大带宽,因此我们需要限制被连接在一个SAS环路上的硬盘的总个数。

  • 对于华为的设备来说,这个最大硬盘数是168块盘,也就是说最多7个24个硬盘槽位的硬盘框组成一个环路。但是,这个前提条件是在该环路中的所有硬盘都是传统的SAS硬盘。现在SSD盘用得越来越多了,我们必须意识到SSD盘传输速度远远高于SAS盘。因此对于SSD盘,最大环路硬盘数的最佳实践则为96块盘,也就是4个24个硬盘槽位的硬盘框组成的环路。

  • SAS线缆接口在SAS线缆单通道为6Gb/s时称为 Mini SAS 线缆,现在单通道速度提升到12Gb/s了,其相应的SAS线缆称为高密度Mini SAS线缆。

FC/FCOE

FC

  • FC是一种高性能的串行连接标准。其接口传输速率为4Gbps 、8Gbps、16Gbps或更高速率。传输介质可以选择铜缆或光纤,传输距离远,支持多种互联拓扑结构

  • Fibre Channel的定义:也就是“网状通道”的意思,简称FC。Fiber和Fibre只有一字之差,所以产生很多误解。FC只代表Fibre Channel,而不是Fiber Channel,后者被翻译为“光纤通道”。像TCP/IP一样,FC协议集同样具备TCP/IP和以太网中的很多概念,例如:FC交换机、FC路由器、SPF算法等。完全可以将FC协议理解为SAN中的TCP/IP,因为他们都遵循OSI模型。

  • FC协议其实并不能翻译成光纤协议,FC的链路介质可以是光纤、双绞线或同轴电缆,只是FC协议普遍采用光纤作为传输线缆而不是铜缆,因此很多人把FC称为光纤通道协议。

  • FC协议优点:高带宽、高可靠性、高稳定性、低延迟、抵抗电磁干扰,等优点,能够提供非常稳定可靠的光纤连接,容易构建大型的数据传输和通信网络,目前支持1x、2x、4x和8x的带宽连接速率,随着技术的不断发展该带宽还在不断进行扩展,以满足更高带宽数据传输的技术性能要求。

  • FC开发于1988年,在那个时候,光纤通道主要用于简化连接,增加数据传输距离,而不是增加数据传输的速度。后来,它被用于提高硬盘协议的传输带宽,侧重于数据的快速、高效、可靠传输。到上世纪90年代末,FC SAN开始得到大规模的广泛应用。

  • 前景分析:。

  • 从调研机构的分析走势来看,16G FC已经成为必然趋势,且随着PCIe3.0 的到来以及虚拟机密度的增加,需要更高的I/O吞吐量,32G FC也将势如破竹,前途无量。

  • 标准更新和商用规律:FC标准每隔36~48年个月进行一次更新,在新标准出来后,12~24个月实现商用,主流厂商会在2年内陆续推出产品。每代标准生命周期6年左右,但是从8G、16G来看,生命周期明显在缩短,更新换代周期明显加快。

  • 光纤通道的主要部分实际上是FC-2。其中从FC-0到FC-2被称为FC-PH,也就是“物理层”。光纤通道主要通过FC-2来进行传输,因此,光纤通道也常被成为“二层协议”或者“类以太网协议”。

  • 光纤通道的数据单元叫做帧。即使光纤通道本身为五层,但是大部分光纤通道是指第二层协议。一个光纤通道帧最大2148字节,而且光纤通道帧的头部与以太网数据包不同。光线通道只使用一个帧格式,在多个层上完成各种任务。

  • 帧的功能决定其格式。光纤通道帧起始于帧开始(SOF)标志,随后是帧头部,稍后我们将讨论帧头。然后是数据,或光纤通道内容,最后是帧结束(EOF)标志。这样封装的目的是让光纤通道可以在需要时被其他类似于TCP这样的协议所承载。

  • 光纤通道和SCSI之间的关系:光纤通道不是SCSI的替代品。光纤通道将使用帧传输SCSI的指令和状态信息。SCSI是位于光纤通道协议栈FC4的上层协议,SCSI是FC协议的子集。

  • 当传输大量的数据时,将有大量的帧需要被发送。当一组帧作为一批被发送时,我们称之为一个交换。

  • 光纤通道协议从1988年开发出来后,已经使用了很长一段时间,是一个比较成熟的技术。目前,SAN有几种方法来实现物理组件之间的连接。

  • 点对点:两个设备直接连接到对方。这是最简单的一种拓扑,连接能力有限。

  • 仲裁环:这种连接方式中,所有设备连接在一个类似于令牌环的环路上。在这个环路中添加或者移除一个设备会导致环路上所有活动中断。环路上一个设备的故障将导致整个环路不能进行工作。通过添加光纤通道集线器的方法,能够将众多设备连接到一起,形成一个逻辑上的环路,并且能够旁路故障节点,使得环上节点的故障不会影响整个环路的通信。仲裁环曾经用于小型的SAN环境中,但是现在已经不再使用。而最主要的原因是一个仲裁环最多只能容纳127个设备,而现在SAN环境中使用的设备基本上都多于127个设备。

  • 交换网络:这是构建现代FC SAN的方式。它使用FC 交换机连接主机和存储设备。在现代的SAN中,最好使用两个交换机连接主机和存储设备,这样可以形成链路冗余,增强SAN的可靠性。交换机是一个智能设备,它不仅可以进行设备间的互联,而且还可以做得更多。

  • FC光纤交换机划分ZONE功能与以太网交换机划分VLAN功能相似,都是为了实现特定组设备之间的相互通信避免广播包的泛洪。

  • Zone特性可以让同一个VSAN中的成员进行访问控制,在VSAN内进一步划分区域,在Zone内根据不同的目的添加不同的N_Port成员。使不同Zone内的N_Port成员之间相互隔离。

  • RSCN(Registered State Change Notification): 交换机具备的一项功能,负责在架构本身或其内部状态发生改变时,通知注册的节点。

FCOE

  • FCoE(Fibre Channel over Ethernet)可以提供标准的光纤通道原有服务,如发现、全局名称命名、分区等,而且这些服务都可以照标准原有的运作,保有FC原有的低延迟性、高性能。

  • 从FC协议的角度来看,FCoE就是把FC承载在一种新型的链路上,即以太网二层链路。需要注意的是,这个以太网必须是增强型无损以太网,才能满足FC协议对链路层的传输要求。

  • FCoE的特点:

    • 协议标准组织:2008年提交美国国家标准委员会(ANSI)T11 委员会进行审批,需要与IEEE密切配合。
    • 协议目标:FCoE希望利用以太网的拓展性,同时保留光纤通道在高可靠性和高效率方面的优势。
    • 其他挑战:FC与以太网相结合,需要克服防止丢包、路径冗余和故障切换、帧分段与重组、无阻塞传输等方面的问题。
    • FC固有的兼容性差、不支持远距离传输两大问题,FCoE同样无法解决
  • 备注:VoIP = Voice over IP。一种在以太网上传输音频和视频数字技术的方法

  • FCOE保留了FC-2以上的协议栈,把FC中的FC-0和FC-1用以太网的链路层取代。

  • 因为FC的FC-0作用是定义承载介质类型,FC-1作用是定义帧编解码方式,这两层是在FC SAN网络传输时需要定义的方式。而FCOE是运行在以太网中,所以不需要这两层处理,而是用以太网的链路层取代这两层处理。

  • FCoE的价值在于在同样的网络基础体系上用户有权利选择是将整个逻辑网络全部当成传输存储数据与信号的专用局域网,或是作为混合存储信息传送、网络电话、视频流以及其它数据传输的共用网络。FCoE的目标是在继续保持用户对光纤通道SAN所期望的高性能和功能性的前提下,将存储传输融入以太网架构。

  • 运行的环境不同: FC协议是运行在传统的FC SAN的存储网络中。而FCOE则是运行在以太网的存储协议。

  • 运行通道不同: FC协议是运行在FC网络中,所有的报文都是运行在FC通道中。在以太网中存在各种协议报文,有IP,ARP等传统以太网协议,而FCOE是运行要在以太网中需要创建一个虚拟的FC通道来承载FCOE报文。

  • 与FC协议相比增加了FIP初始化协议:由于FCOE是运行在以太网中的存储协议,要让FCOE能正常的运行在以太网中,就需要FIP初始化协议来获取FCOE运行的相应vlan,与哪个FCF建立虚通道,和虚链路的维护等。所以从这方面来讲FCOE比FC多了一个FIP的初始化协议 。

  • FCOE需要其他协议支持:由于以太网是可以容忍网络丢包的,但是FC协议不允许出现丢包,那么FCOE做为以太网中传输的FC协议来说同样是继承了这点特点不允许丢包。所以想要FCOE协议可以正常的运行在以太网络中就需要对以太网做一定的增强来避免丢包 ,这种增强型的以太网叫CEE(Converged Enhanced Ethernet)

  • FC型光纤连接器:FC是Ferrule Connector的缩写,表明其外部加强方式是采用金属套,紧固方式为螺丝扣。此类连接器结构简单,操作方便,制作容易,但光纤端面对微尘较为敏感,且容易产生菲涅尔反射,提高回波损耗性能较为困难。

  • SC型光纤连接器:SC是Square Connector的缩写,其外壳呈矩形,所采用的插针与耦合套筒的结构尺寸与FC型完全相同,其中插针的端面多采用PC或APC型研磨方式;紧固方式是采用插拔销闩式,不需旋转。此类连接器价格低廉,插拔操作方便,介入损耗波动小,抗压强度较高,安装密度高。

  • 按光纤端面形状分有FC、PC(包括SPC或UPC)和APC

    • FC型—Flat Connect:称为平面连接器,采用的陶瓷插针的对接端面是平面接触方式(FC)。此类连接器结构简单,操作方便,制作容易,但光纤端面对微尘较为敏感,且容易产生菲涅尔反射,提高回波损耗性能较为困难。回波损耗:40dB
    • PC型— Physical Connect:称为球面连接器,其对接端面呈球面的插针(PC),而外部结构没有改变,使得插入损耗和回波损耗性能有了较大幅度的提高。回波损耗:40dB
    • APC型—Angle Physical Connect:称为研磨式球面连接器,与PC型类似。回波损耗:55dB
  • ST型光纤连接器:ST和SC接口比较类似,不同的是ST连接器的芯外露,SC连接器的芯
    在接头里面。对于10Base-F连接来说,连接器通常是ST类型的,对于100Base-FX来说,
    连接器大部分情况下为SC类型的。

  • MT-RJ型连接器:MT-RJ是Multi Transmit-Receive Joint,是多芯发送接收一体的连接器,它带有与RJ-45型LAN电连接器相同的闩锁机构,通过安装于小型套管两侧的导向销对准光纤,为便于与光收发信机相连,连接器端面光纤为双芯(间隔0.75mm)排列设计,是主要用于数据传输的下一代高密度光纤连接器。

  • LC型连接器:LC是Lucent Connector的缩写,顾名思义是由朗讯公司研究开发出来的,采用操作方便的模块化插孔(RJ)闩锁机理制成。其所采用的插针和套筒的尺寸是普通SC、FC等所用尺寸的一半,为1.25mm。这样可以提高光纤配线架中光纤连接器的密度。目前,在单模SFF方面,LC类型的连接器实际已经占据了主导地位,在多模方面的应用也增长迅速。

  • MU型连接器:MU是Miniature Unit Coupling的缩写,是以目前使用最多的SC型连接器为基础,由NTT研制开发出来的世界上最小的单芯光纤连接器。该连接器采用1.25mm直径的套管和自保持机构,其优势在于能实现高密度安装。利用MU的l.25mm直径的套管,NTT已经开发了MU连接器系列。随着光纤网络向更大带宽更大容量方向的迅速发展和DWDM技术的广泛应用,对MU型连接器的需求也将迅速增长.

PCle

  • 1991 年,Intel 公司首先提出了PCI 的概念,随着现代化处理器技术的发展,在互连领域,使用高速差分总线替代并行总线是大势所趋。与单端并行信号相比,高速差分信号用于更高的时钟频率,PCIe总线应运而生。

  • PCI Express(又称PCIe)是一种高性能、高带宽串行通讯互连标准,最早由英特尔提出,后由外设组件互连特别兴趣组(PCI-SIG)制定,以取代基于总线的通信架构,如:PCI、PCI Extended (PCI-X) 以及加速图形端口(AGP)。

  • 相对于传统的PCI总线,PCI Express有如下优点:

  • 双通道,高带宽,传输速率快:实现类似全双工传输模式(RX和TX分开);传输速率高,第一代PCIe X1的带宽是2.5千兆位/秒(Gbps),第二代则达到5.0Gbps,而最近发布的PCIe3.0标准则能支持8.0Gbps的速率;对更大的带宽,则可以通过扩展链路数目来实现,而带宽则是其N条通路的N陪。

  • 兼容性:在软件层保持与PCI兼容,版本升级,向下兼容PCI软件。

  • 易用性:支持热插拔,PCIe总线接口插槽中包括“热插拔检测信号”,可以像USB进行热拔插和热交换。

  • 具有错误处理和先进的错误报告功能:得益于PCI Express总线是分层结构,其软件层具有错误处理和提供错误报告能力,详细后续介绍。

  • 每个物理连接还有多个虚拟通道:在每个物理通道中支持多个虚拟通道(理论上允许8个虚拟通道进行独立的通讯控制),从而支持每个虚拟通道的Qos,达到非常高的流量质量控制。

  • 节省IO,减少板级空间,降低串扰:例如,典型的PCI总线数据线至少达到50根IO,而PCIe Xl仅需要4根IO。而IO减少,节省了板级空间,各个IO直接的距离可以更宽,从而减少串扰。

  • PCI Express标准的制定是着眼未来的,它还在继续发展为系统提供更高的吞吐量。第一代PCIe约定的吞吐量是2.5千兆位/秒(Gbps),第二代则达到5.0Gbps,而最近发布的PCIe3.0标准则能支持8.0Gbps的速率。在PCIe标准继续利用最新的技术以提供不断增加的吞吐量的同时,利用分层协议、通过使驱动程序保持与现有PCI应用的软件兼容性将简化从PCI到PCIe的过渡。
    PCIe协议的特性包括:

    • 点对点连接
    • 高可靠
    • 树形组网
    • 全双工
    • 基于帧结构的传输
  • PCI Express总线架构中的物理层主要决定总线的物理特征。在未来的发展中,可以通过速度提升或更改编解码方式来进一步提升PCI Express总线性能,而这些变更都只会作用于物理层,不会影响其它结构,为升级带来了便利。

  • 数据链路层(Data Link Layer)

  • 数据链路层的重要作用就是要保证PCI Express总线传输的数据包的正确性和可靠性。它会检查数据包封装是否完整正确,并将序列号和冗余校验代码(CRC)添加到数据中进行检测和纠错,并采用ack/nack握手协议进行检测纠错

  • 事务层(Transaction Layer)

  • 处理层的主要作用有两个,一是接受来自软件层送来的读、写请求,或者本身创建一个请求封装包传到数据链路层,这种数据包称为“处理层数据包”(TransactionLayerPacket,TLP另一个作用是接受从链路层传来的响应数据包(DataLink Layer Packet,DLLP),并将其与相关的软件请求相关联,传送至软件层处理

IB

  • IPoIB 即IP over IB,作为Linux内核与IB驱动的适配层,负责构建、销毁IP报头,发送和接收IP报文。

  • IB前端网络用于与客户交流进行数据交互的网络,基于IPoIB协议传输数据;

  • IB后端网络用于存储设备内部各节点间数据交互的网络, RPC模块利用RDMA完成节点间数据同步;

  • InfiniBand标准定义了一套用于系统通信的多种设备,包括信道适配器、交换机和路由器信道适配器用于同其它设备的连接,包括主机信道适配器(HCA)和目标信道适配器(TCA).

  • Infiniband协议的主要特点:

  • 基于标准的协议:成立于1999年的InfiniBand贸易协会由225家公司组成,它们共同设计了该开放标准。主要掌控该协会的成员包括:Agilent, Dell, HP, IBM, InfiniSwitch, Intel,Mellanox, Network Appliance和Sun Microsystems公司。其他的100多家成员则协助开发和推广宣传该标准。

  • 速度:Infiniband每秒10gigabytes的性能明显超过现有的Fibre Channel的每秒4 gigabits,也超过以太网的每秒1 gigabit的性能。

  • 内存:支持Infiniband的服务器使用主机通道适配器,把协议转换到服务器内部的PCI-X或者PCI-Xpress总线。HCA具有RDMA功能,有时也称之为内核旁路(Kernel Bypass)。RDMA对于集群来说很适合,因为它可以通过一个虚拟的寻址方案,让服务器知道和使用其他服务器的部分内存,无需涉及操作系统的内核。

  • 传输卸载(Transport Offload):RDMA 能够帮助传输卸载,后者把数据包路由从OS转到芯片级,节省了处理器的处理负担。要是在OS中处理10 Gbps的传输速度的数据,就需要 80 GHz处理器。

  • 物理层:定义了三种速率的连接,分别为1X、4X和12X,其信号单倍传输速率分别为2.5、10和30Gb/ s。也就是说,IBA允许多路连接直到获得30Gbps的连接速度。由于采用了全双工串行通信方式,单速的双向连接只需要4根电缆,在采用12速方式时,也只需48根电缆线,这是非常具有吸引力的。

  • 链路层:链路层提供了局部子系统中的信息包设计、点到点连接操作以及包交换等功能。在包通信一级,指定了两种特殊的包类型,既数据传输和网络管理包。网络管理包提供了设备枚举的操作控制、子网指示、容错等功能;数据传输包则用来传送实际的数据信息。每个包的最大长度为4KB,在每个特定的设备子网内,每个数据包的方向和交换通过本地的16位标识地址的子网管理器完成。

  • 网络层:提供了信息包从一个子结构到另外一个子结构的路由机制。源和目的节点的每个路由包有一个全局路由头(GRH)和一个128位Ipv6地址。网络层也嵌入了一个标准的全局64位标识,这个标识在所有的子网中都是惟一的。通过这些标识值之间错综复杂的交换,允许数据跨越多个子网传输。

  • 传输层:传输层主要负责信息包的按序分发、分割、通道多路技术以及传输服务等。传输层也负责处理数据包分段的发送、接收和重组。

  • IBA原希望成为运算、通讯、储存等设备的机内、机外标准接口,不过IBA一开始就丧失了通讯设备的机内运用可能,因为通讯设备业者多已实行Rapid I/O,使IBA只能先将目标订于运算及储存设备,但也适逢网络型储存、储域网络(Storage Area Network;SAN)的快速兴起,使光纤信道(FC)获得成长普及,之后IBA转向运算设备,原可望取代PCI,然而PCI-X已先行卡位,且PCI-X提出后的不到两年时间Intel再提出接替PCI-X的PCIe,使得IBA用于设备机内的可能微乎其微,就连Intel的主要竞争业者:Sun、AMD等也倾向在运算设备机内使用HyperTransport/HTX,而非IBA(Infiniband Architecture)。

  • 机内没有机会,IBA只能朝机外高速连接的领域发展,虽然PCI、PCIe、Rapid I/O等都尚无机外连接方案,但不幸的是FC亦在外接方面开展迅速,IBA必须与FC争抢地盘,FC传输表现虽输IBA,但价格却相对低廉,加上相近时间内Ethernet从1Gbps进展至10Gbps,且其光纤传输(IEEE 802.3ae)、铜线传输(IEEE 802.3an)标准也先后于2002年、2005年正式定案。

  • IBA终于在集群式超级计算机上找到发挥,由于FC只至2Gbps、4Gbps,10Gbps Ethernet尚不够成熟,延迟控制也尚待精进,放眼望去最合适的便是IBA,IBA低延迟、能以10Gbps为基准单位进行倍增传输,使得全球前五百大效能的超级计算机中有相当多套系统都使用上IBA,或至少是IBA与其它高速联机的搭配混用。

  • 然而,金字塔至顶的五百大超级计算机毕竟是少数,其用量规模难以长期支撑IBA产业及其生态永续发展,必须往更普遍的集群运算应用开拓,然而从顶级往中下层面推行,依然遭遇到与FC、GbE冲突的课题,同时也要面对一些业者的专属特用技术,如Quadrics的QsNet,或Myricom的Myrinet。

  • 现在谈论InfiniBand,主要应用在服务器集群,系统之间的互连,并在存储、数据中心以及虚拟化等领域得到应用,以下简称IB。

  • Mellanox Technologies于1999年成立,总部设在美国加州的圣塔克拉拉和以色列的Yokneam。Mellanox公司是服务器和存储端到端连接解决方案的领先供应商。2010年底Mellanox完成了对著名Infiniband交换机厂商Voltaire公司的收购工作,使得Mellanox在HPC、云计算、数据中心、企业计算及存储市场上获得了更为全面的能力。

  • 通道适配器分为:主通道适配器:Host Channel Adapter(HCA),用于主控NODE;目标通道适配器:Target Channel Adapter(TCA),用于外设NODE,使IO设备脱离主机而直接置于网络中。

  • 通道适配器实现物理层,链路层,网络层和传输层的功能。

  • 通道适配器是IB网络接口的一个重要组成部分,是带有特定保护特性的可编程DMA器件,允许本地和远端的DMA操作。

  • 对SDR, DDR,FDR-10, 和 QDR, 使用 8b/10b编码 :每10 bits 包含8bits 的数据

  • 对FDR 和EDR, 使用 64b/66b编码 :每66 bits 包含64 bits的数据

  • 剩余的2bits为帧起始位和帧结束位
    -有效的单向理论吞吐量(实际的数据速率,非信令速率)会低于此数值。

CIFS/ NFS

  • CIFS:

    • 1996年,微软提出将SMB改称为CIFS(Common Internet File System),并加入了许多新的功能。现在CIFS指SMB的统称,具体各个版本分别为SMB1,SMB2,SMB3.0。SMB是一种客户端/服务器,请求/响应模式。
    • SMB(Server Message Block)最初是IBM的贝瑞·费根鲍姆(Barry Feigenbaum)研制的,其目的是将DOS操作系统中的本地文件接口“中断13”改造为网络文件系统。SMB协议主要用于在计算机间共享文件、打印机、串口等。
    • SMB从1988年至今不断完善,历经多个版本,从SMB发展到SMB2(2007)SMB3(2012)。
    • CIFS(Common Internet File System)是由微软开发用于连接Windows客户机和服务器的文件共享协议。
    • CIFS是微软开发和使用的SMB(Server Message Block)公开后形成的标准。SMB主要用于网络上的计算机共享文件、打印机和串行端口等资源。
    • 经过UNIX服务器厂商重新开发后,SMB可以用于连接UNIX服务器和Windows客户端,执行打印和文件共享等任务。
  • CIFS业务特点:

    • 兼容多种操作系统,可以实现异构网络环境下的文件资源共享。
    • CIFS共享的单位是目录,所共享的目录可被多个客户端访问。
    • 以集群方式对外提供共享服务,节点间可相互监控服务状态。
    • 可根据业务和节点状态实现负载均衡,数据访问在集群内均匀分布。
  • NFS:

    • NFS(Network File System)是当前主流异构平台共享协议之一,主要应用在Linux、UNIX环境中。NFS可用于不同类型计算机、操作系统、网络架构和传输协议的环境,提供网络文件远程访问和共享服务。
    • NFS SERVER采用集群部署形式。
    • NFS SERVER部署在各个存储服务器上,是分布式、全对称集群架构。
    • 在Linux/UNIX/AIX/HP-UX/Mac OS X等类UNIX系统中提供网络文件系统存储服务。允许用户像问本地文件一样访问其他系统上的文件。提供对无盘工作站的支持以降低网络开销。
    • 简化应用程序对远程文件的访问使得不需要因访问这些文件而调用特殊的过程。
  • NFS业务特点:

    • 兼容多种操作系统,可以实现异构网络环境下的文件资源共享。
    • NFS共享的单位是目录,所共享的目录可被多个客户端访问。
    • 以集群方式对外提供共享服务,节点间可相互监控服务状态。
    • 可根据业务和节点状态实现负载均衡,数据访问在集群内均匀分布。
  • 认证方式:NTLM,Kerberos 等

  • 网络通信可以over TCP 或其他方式如:rdma等

  • 网络文件操作经处理后转交给实际文件系统

  • NTLM安全性支持提供者服务。NTLM的意思即NT LanManger,是NT下提供的认证方法之一,使用了64位的加密手段。

  • Kerberos 网络认证。Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机/服务器应用程序提供强大的认证服务。

  • RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

  • RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。

  • DNS:domain name service,用于实现域名和IP的映射.

  • AD: active directory, AD域,提供目录服务.

  • CIFS协议主要用于文件共享,这里介绍两个典型的应用场景:

  • 文件共享服务场景

  • 文件共享服务是最典型的应用场景,其主要应用于企业文件服务器,媒资等等,为用户提供文件共享服务。

  • Hyper-v虚拟机应用场景

  • 微软主推Hyper-v虚拟机,使用SMB共享虚拟机镜像。该场景下需要依赖SMB3.0的Failover特性(故障透明切换),该特性可以保证在结点故障情况下,进行结点切换,业务不中断,从而保证了虚拟机运行的可靠性。

  • 云虚拟化软件(如:VMware)专门对NFS客户端进行了优化,用来把虚拟机存储空间建立在NFS服务器的共享空间上。

  • 这个根据云计算优化过的NFS客户端提供更好的性能和可靠性。

FTP/HTTP

FTP

  • FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
  • 在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
  • FTP有两种文件传输模式:
    • 二进制模式,用于传输程序文件(比如后缀名为.app、.bin和.btm的文件)。
    • ASCII码模式,用于传输文本格式的文件(比如后缀名为.txt、.bat和.cfg的文件)。

FTP用于在远端服务器和本地主机之间传输文件。

HTTP

  • HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端的协议。

  • HTTP采用短连接方式进行报文传输,每次传输结束后连接就中断。

  • 区别于CIFS及NFS协议,通过WebDav扩展协议及挂载ostorvfs文件系统,能够实现HTTP共享创建,资源文件的上传、下载、修改、锁定等功能。

  • HTTPS是HTTP协议的安全版本,基于SSL/TLS安全加密。SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

  • WEB服务器也称为WWW(WORLD WIDE WEB)服务器,通过HTTP协议,为用户提供网上信息浏览服务。用户通过浏览器向服务器发送请求,浏览服务器上的资源信息。

  • 由于Web已经成为 Internet 的基础,因此 HTTP 1.1(超文本传送协议)被证实是用来传输数据的非常灵活的通用协议。

  • 但是,HTTP 存在一些明显的缺点,从而限制了它作为综合的 Internet 通讯协议而被采用:它非常适合用于查看的静态文档,但不能提供以足够复杂(以便向客户端提供丰富的创作功能)的方式来处理文档的方法。例如,当两个作者在未进行交流的情况下同时对一个文档进行更改时,就会出现“更新丢失”问题。只有由最后一个作者完成、并将修改后的文档重新上载到服务器的修改才会保留下来,另一个作者进行的更改将丢失。

  • WebDAV(Web 分布式创作和版本管理)扩展了 HTTP/1.1 协议,允许客户端发布、锁定和管理Web上的资源。

常用存储协议详细说明(SCSI、SAS、FC、PCle、IB、CIFS、FTP、HTTP)【5】相关推荐

  1. 存储硬盘接口ATA/SATA/SCSI/SAS/FC比较

    硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据.不同的硬盘接口决定着硬盘与控制器之间的连接速度,在整个系统中,硬盘 接口的性能高低对磁盘阵列整体性能有直接的影响,因此了解 ...

  2. ATA/SATA/SCSI/SAS/FC总线简介

    ATA/SATA/SCSI/SAS/FC 都是应用于存储领域的总线,在当今的存储系统中,普遍应用的硬盘接口主要有 SATA . SCSI . SAS 和FC , ATA 比较古老,在一些老的低端存储系 ...

  3. 常用开源协议详细解析

    开源在今天的软件业已经很普遍,但开源是否意味着使用者可以对开源后的代码为所欲为呢?答案是否定的.开源运动同样有自己的游戏规则和道德准则.不遵行这些规则不但损害开源运动的健康发展,也会对违规者造成名誉和 ...

  4. 小知识:常用开源协议详细解析

    來源:http://www.mscto.com/open/20081117-7075.html 开源在今天的软件业已经很普遍,但开源是否意味着使用者可以对开源后的代码为所欲为呢?答案是否定的. 开源在 ...

  5. K8S-持久化存储及常用存储方案

    K8S-持久化存储及常用存储方案 1. 存储知识的回顾 1.1 块存储 传统的文件系统,是直接访问存储数据的硬件介质的.介质不关心也无法去关心这些数据的组织方式以及结构,因此用的是最简单粗暴的组织方式 ...

  6. scsi协议_存储协议有哪些类型?常见存储协议分析

    一.存储协议类型 1.1.协议概况 通过上一章节的学习,应该对数据中心存储协议有了比较基础的了解,我们知道了现在的数据中心已经变为SAN为主流的部署模式.下面我们来更深层次的从协议的角度了解存储协议类 ...

  7. 存储组网技术详细说明(SAN、NAS、DAS等)【6】

    文章目录 网络存储分类 数据中心存储网络 存储分类 存储模型比较 SAN与NAS DAS.SAN.NAS对比 DAS-传统存储技术 SAN-存储区域网络 定义 FC SAN和IP SAN NAS-网络 ...

  8. FCoE协议详细解析

    详细解析FCoE协议 FCoE标准是博科首先提出来的.FCoE是由包括Brocade.IBM, HP,EMC, NetApp, Cisco, Emulex, Broadcom, Intel, Nuov ...

  9. 最全流媒体协议详细总结介绍(RTP/RTCP/RTSP/RTMP/MMS/HLS/HTTP/ HTTP-FLV(HDL) /SDP)

    RTP:实时传输协议(Real-time Transport Protocol)          RTP是一种基于包的传输协议,它用来传输实时数据.在网络上传输数据包的延迟和误差是不可避免的,对此R ...

最新文章

  1. Glusterfs 分布式存储安装部署
  2. img 标签 访问图片 返回403 forbidden问题
  3. 各浏览器对document.getElementById等方法的实现差异
  4. java1.8中的时间处理类
  5. 天刀服务器维护到几点,3月3日服务器例行维护公告
  6. TX2017秋招笔试题之编码
  7. QString 的使用技巧
  8. 3500个常用汉字列表
  9. 笨办法学Python,其实一点都不笨
  10. 如何制定软件开发计划
  11. mysql非唯一索引怎么表示_MySQL 唯一索引和非唯一索引(普通索引)区别
  12. BAT校招产品经理:52道经典面试问题解答思路
  13. 一:细说python3中sort和sorted
  14. 在微信收藏笔记中的录音文件拷贝或另存问题--适用于silk无法导出,看不见的情况
  15. html适应不同的分辨率,css如何适应不同分辨率?
  16. 【黄啊码】vue配合PHP实现导出excel进度条显示
  17. 神经网络(Neural Networks)简介
  18. win10安装的es设置自启动时报错Failed starting ‘elasticsearch-service-x64‘ service
  19. word 导出编辑ftl_Java实现用Freemarker完美导出word文档(带图片)
  20. 不属于计算机主机部件的是,电脑考试考查选择题有答案 2

热门文章

  1. 企业邮箱登录入口有哪些?企业邮箱如何快速登录?
  2. velocity模板引擎帮助
  3. 今目标自动签退1.1版本
  4. ai前世识别_AI人脸识别前世今生app-AI人脸识别前世今生软件下载v2.0-西西软件下载...
  5. 微型计算机的外辅储存器,微型计算机的外辅储存器是指
  6. python判断值是否存在_python如何判断元素是否存在
  7. 如何基于SSM设计实现一个学生学籍管理系统
  8. 时空复杂度之珠心算测验
  9. Windows下安装使用Spacy英文库en_core_web_md,解决Warning: no model found for 'en_core_web_md'
  10. C#Winform的DataGridView控件使用详解2—DataGridView表格样式设置及表格操作