引言
it技术的发展经历三次浪潮:第一次浪潮以处理技术为中心,以处理器的发展为核心动力,产生了计算机工业,促进了计算机的迅速普及和应用;第二次浪潮以传输技术为中心,以网络的发展为核心动力。这两次浪潮极大地加速了信息数字化进程,使得越来越多的人类信息活动转变为数字形式,从而导致数字化信息爆炸性地增长,进而引发it技术的第三次发展浪潮:存储技术浪潮。
存储技术浪潮的核心是基于网络的存储技术。目前,流行的网络存储系统主要有两种:附网存储(nas) 和存储区域网(san)。按照存储网络工业协会(snia) 的定义:nas 是可以直接联到网络上向用户提供文件级服务的存储设备,而san 是一种利用fibre channel 等互联协议连接起来的可以在服务器和存储系统之间直接传送数据的网络。nas 是一种存储设备,有其自己简化的实时操作系统,它将硬件和软件有效地集成在一起,用以提供文件服务,具有良好的共享性、开放性、可扩展性。san 技术的存储设备是用专用网络相连的,这个网络是一个基于光纤通道协议的网络。 由于光纤通道的存储网和lan 分开,性能就很高。在san 中,容量扩展、数据迁移、数据本地备份和远程容灾数据备份都比较方便,整个san 成为一个统一管理的存储池( storage pool) 。由于具有这些优异的性能,san 已成为企业存储的重要技术。
但在实际应用中nas 和san 也存在很多缺陷,越来越不能满足it技术的快速发展和数字化信息爆炸性地增长的需求。如nas 设备存在如下缺陷: (1) 数据的传输速度慢,因为nas只能提供文件级而不能提供块级的数据传输; (2) 数据备份时性能较低,nas 在数据备份时要占用其大部分网络带宽,其它i/o 性能受到影响; (3) 只能管理单个nas ,很难将位于同一局域网中的多个nas 集中管理。san 也存在以下缺陷: (1) 设备的互操作性较差,不同厂家的设备很难互操作; (2) 构建san成本高,目前只有实力较大的企业构建自己的san; (3) 管理和维护成本高,企业需要花钱培训专门的管理和维护人员;(4) san 只能提供存储空间共享而不能提供异构环境下的文件共享。
针对nas 和san 的优缺点,目前出现了多种新的网络存储技术, 如: nas gateway (nas head) 、基于ip 的san 技术、对象存储技术。nas 网关能将san 连结到ip 网络,使ip 网络用户能通过nas 网关直接访问san 中的存储设备,所以nas 网关具有以下优点:能使nas 和san 互连在同一lan中,突破了fc 拓扑的限制,允许fc 设备在ip 网络使用;减少了光纤设备的访问成本,允许访问未有充分利用的san 存储空间。基于ip 的san 互连技术主要包括: fcip( ip tunneling) 、ifcp、iscsi、infiniband、mfcp ,其代表技术是iscsi 技术。iscsi技术原理是将scsi 协议映射到tcp/ ip之上,即将主机的scsi 命令封装成tcp/ ip 数据包,在ip 网络上传输,到达目的节点后,再恢复成封装前的scsi 命令,从而实现scsi 命令在ip网络上的直接、透明传输,使访问远程的scsi 盘可以像本地的硬盘一样方便。 存储对象具有文件和块二者的优点:象数据块一样在存储设备上被直接访问;通过一个对象接口,能象文件一样,在不同操作系统平台上实现数据共享。nas gateway 虽实现了nas 和san 在ip 的融合,但不是真正的融合,因为它不能将nas 设备和san 设备融合起来向用户提供统一的存储池,用户也只能以文件i/o的方式访问存储设备。对象存储虽具有nas 和san 的优点,但需要设计专门的对象存储接口,需要对现有的文件系统进行修改,这阻碍了它的进一步普及推广。
本文提出并实现了一种在ip 协议下融合iscsi、nas、san 的统一存储网络(简称usn) 。在usn 中,nas 设备、iscsi设备和san 设备并存,用户可以块i/o 的方式访问usn 中的iscsi 设备和san 存储设备,也可以文件i/o 方式访问usn 中的nas 存储设备和san 存储设备,整个usn 是一个统一的存储池。并且,usn 能同时提供服务器通道和附网高速通道向客户机提供数据,减少了服务器瓶颈,提高系统的i/o 速度。usn 既有nas 的优点(低成本、开放性、文件共享) ,又有san 的优点(高性能、高扩展性) 。usn 同nas gateway(nas head) 技术、基于ip 的san 技术、对象存储技术相比具有明显的优势。
usn总体结构
usn 系统的硬件结构如图1 所示。usn 由nas 设备、iscsi设备和san 设备,以及元数据服务器和应用服务器组成。用户可以文件i/o 的方式访问usn 中的nas 设备和经过nas头访问san 中的存储设备,也可以块i/o 的方式访问usn 中的iscsi 设备和san 中的存储设备。usn 同时向用户提供服务器通道和附网高速通道,对于元数据和小数据请求都经过服务器通道完成,对于大数据请求则经过附网高速通道完成,这样大大提高整个系统的i/o 速度,减少服务器瓶颈。整个usn 是用基于ip 的技术构建,可以兼容现有的存储系统,添加和删除存储设备都很方便。所以,整个系统的性能、扩展性都很好。usn 真正实现了nas 和san 的统一,即同一存储网络中既有nas 设备,又有san 结构;实现文件i/ o 和块i/o 的统一,即用户可以文件i/o 方式(文件为单位) 也可以块i/o方式(块为单位) 访问usn 中的设备;实现了文件协议和块协议在tcp/ ip 协议上的统一,用户可以nfs(unix 用户) 和cifs(windows 用户) 访问usn ,也可以scsi(iscsi 用户) 访问usn。
图2 是usn 的软件结构图,其中gmpfs 是全局多协议文件系统,位于usn 系统中的各个应用服务器上,它支持使用cifs 协议的windows 用户对usn 的访问,支持使用nfs 协议的unix用户对usn 的访问,也支持使用iscsi 协议的块协议用户对usn 的访问。gmpfs 通过对目前存储系统所使用的元 数据进行扩展,采用启发式的方法,收集用户应用信息,为用户提供统一、方便、快捷的存储访问接口以及合理的数据存储方案。asa 是自主存储代理模块,它能够自动地发现海量存储系统中存储设备的种类和可利用的各种资源,自主地对这些存储设备和资源进行有效的统一管理和优化。asa 根据应用的不同和应用的具体需求,安排与应用相适应的存储设备种类、性能以及可靠性和可用性等级等,并为i/ o 请求选择合适的数据通道,使应用得到最优的存储资源分配,从而使整个系统的性能达到最佳。
系统设计
usn 是一个复杂的系统,涉及到许多复杂的技术,本文主要论述其核心技术的设计和实现,即gmpfs、asa 和iscsi 系统的设计与实现。 gmpfs 可以驻留在多种操作系统平台上(unix,windows ,linux) ,支持各种协议用户的访问(nfs ,cifs ,iscsi) ,为用户或应用程序提供对网络存储系统的数据访问服务。 asa 将多种存储技术(这些存储技术各有所长,也各有所短) 整合为一个统一的海量存储系统,充分发挥各种存储技术的优势,使得该存储系统对特定的应用程序而言服务性能达到最优,有效地满足多方面的应用需求。iscsi 真正的实现了块i/ o 和文件i/ o 在ip 网络上的统一,文件协议和块协议在ip 协议上的统一。
全局多协议文件系统的设计
gmpfs 保留了分布式文件系统的灵活性和高性能的优点,而克服了其在不同i/ o 协议支持方面的缺陷,能同时支持nfs、cifs 和iscsi 协议用户的访问。 gmpfs 在提供文件存取的方法和文件目录结构的同时,还为每种存储卷提供特定的存储模式。 每种存储模式包含某种文件系统的元数据结构,操作接口(文件类型和数据块类型) ,功能函数集(格式化,检索等) ,优化方法(cache方法和预取等) 和存储空间分配回收方法及数据结构。对于文件卷而言,存储模式包含实现posix语义的操作函数和文件目录结构;对于分区卷而言,存储模式必须面向特定分区类型,如ntfs ,ext3。 所有的存储模式都必须在元数据服务器中的asa 系统中注册,以便asa 为用户的i/o 请求进行通道选择。
gmpfs的结构如图3 所示。其中协议转换接口主要通过nfs 的扩展程序模块和samba 模块的组合对nfs 协议和cifs协议的支持,并通过iscsi 目标器驱动程序的扩展对iscsi 协议的支持。启发式数据管理接口主要是用启发式方法获得用户对存储数据的需要,如性能、使用率以及安全性等。gmpfs数据组织逻辑界面提供数据组织的逻辑视图,这一点正是针对传统文件系统文件目录结构对于海量数据难以管理的弱点,在增加元数据信息的前提下,通过查询和检索,按照用户需要提供各种类型文件视图,例如根据文件创建的用户和时间进行分类。扩展的文件或卷操作接口、数据组织与分配管理、元数据组织结构和i/ o 定向器等主要是保证与传统的文件系统操作语义兼容,实现程序级的数据访问。应用程序无需修改就可以使用usn 系统中的数据。提供与元数据服务器中的asa 及存储资源的接口和通讯,能充分利用asa 系统所掌握的存储资源,合理组织数据,满足用户或应用程序对数据存储的多方面、个性化要求。如通过同时提供服务器通道和附网高速通道,改善用户的i/ o 性能服务,减少服务器瓶颈。
iscsi系统设计
iscsi 协议定义的是scsi 到tcp/ ip 的映射,即将主机的scsi 命令封装成ip 数据包,在ip 网络上传输,到达目的节点后,再恢复成封装前的scsi 命令,从而实现scsi 命令在ip 网络上的直接、透明传输。它整合了现有的存储协议scsi 和主流网络协议tcp/ ip 等两种主流协议,实现了存储和网络的无缝融合。从应用的角度看,iscsi 一方面通过scsi 命令的远程传送,实现了和远程存储设备的命令级交互,使用户访问远程的scsi 设备像本地的scsi 设备一样方便,而且具有高速度;另一方面也可用于改造传统的nas、san 技术,实现nas 和san 的融合。iscsi 系统是usn 系统的核心部分之一,iscsi 的设计实现了基于ip 的数据块访问机制。
目前iscsi 的实现方式可以考虑采用以下三种方式:纯软件方式、智能iscsi 网卡实现方式、iscsi hba 卡实现方式。由于我们是设计usn 的原形系统,所以只采用纯软件方式,iscsi hba 卡方式是下一步产品化我们将实现的目标。iscsi系统整体设计模型如图4 所示(不包括管理模块) 。服务器端(target) 采用linux 操作系统, 客户端( initiator) 采用windows2000。scsi 微端口驱动在系统中生成一个虚拟的scsi 磁盘,过滤驱动截获系统发给scsi 磁盘的scsi 命令,通过核心态的网络接口发给服务器处理。
自主存储代理系统的设计
自主存储代理asa 的一端面对海量存储系统。目前的存储系统有das(直连存储) 、nas、san、iscsi 等,asa 能够自动地发现海量存储系统中存储设备的种类和可利用的各种资源,自主地对这些存储设备和资源进行有效的统一管理和优化;根据应用的不同和应用程序的具体需求,安排与应用程序相适应的存储设备种类、性能以及可靠性和可用性等级等,使应用程序得到最优的存储资源分配。
asa 的另一端面对应用程序(gmpfs) 。asa 通过对目前存储系统所使用的元数据进行扩展,采用启发式的方法,收集用户应用信息,为用户提供统一、方便、快捷的存储访问接口以及合理的数据存储方案;根据用户i/o请求所涉及数据的属性,选择客户端与存储设备交互数据的通道,即元数据(目录、卷信息等) 和小数据i/o请求,选择服务器通道,对大数据i/o请求选择高速附网通道。大、小数据i/o请求由asa 自主地根据整个系统的i/o信息量进行调整。asa 系统结构如图5 所示。
客户端与usn交互流程
usn 系统中包括三类用户:windows 文件i/o用户(使用cifs 协议) ,unix 文件i/o用户(使用nfs 协议) ,iscsi 块i/o用户(使用iscsi 协议) 。用户在客户端与usn 系统交互流程与图6 所示。
块i/o客户的具体的数据读写流程为(如图6) : (1) 客户1上的应用程序发出的块i/o命令(scsi 命令) 经iscsi 设备驱动层和tcp/ ip 协议栈之后,封装成ip 数据包,在ip 网络上传输; (2) 封装后的scsi 命令达到usn 服务器之后,经解封装,恢复成封装前的scsi 命令,usn 服务器利用这些scsi 命令对iscsi 存储设备发出块i/o读写请求; (3) 被请求的数据块经iscsi 设备中的iscsi 层和tcp/ ip 协议栈封装成pdu ,iscsi 设备传送的pdu 到客户端可经两个途径:一种是经过服务器转发,一种是经过高速附网通道直接传到客户端; (4)pdu 经ip 网络上传输返回到客户1 后,pdu 经客户1 解封装并由其文件系统组合成文件。
当usn 系统提供file i/o 服务时,其数据读写过程(如图6 所示) : (1) 客户2 (文件i/o) 向usn 服务器发出文件读写请求(其工作方式和传统的nas 相同) ; (2)usn 服务器接到客户端的文件读写请求后:一方面,将该i/o 请求发给对应的nas设备或nas 头,nas 设备或nas 头将所请求数据传给usn 服务器,再经usn 服务器传到客户端;另一方面usn 服务器不把文件i/o 请求传到nas 或nas 头,而是将nas 或nas 头的ip 地址传给客户端,客户端通过该ip 地址直接与nas 或nas头进行数据交互。
这里的nas 头主要是支持fc 协议的san 设备能直接挂到tcp/ ip 网络,支持nfs/ cifs 用户的访问,nas 头也可安装iscsi目标器驱动程序支持iscsi 用户的访问。不论是块i/o请求还是文件i/o请求,都可通过附网高速通道实现客户端与存储设备的数据交互。
试验评估
从客户端对构建usn 的各子存储系统以及整个usn 进行功能和性能评测,并作进一步的比较。我们从两个方面对统一存储网进行测试:功能测试和性能测试。功能测试包括: (1)构建100m及1000m以太网环境,将iscsi 存储设备与服务器连接;在服务器操作系统中安装iscsi 软件包后,使用户能够通过网络获得iscsi 存储设备提供的存储空间,并能象使用本地硬盘一样对其进行操作。
本测试项测试服务器端iscsi 盘安装、设置、管理和使用等各项功能; (2) iscsi 存储设备作为nas 头的存储设备,与nas 头组成一个nas 存储系统,本测试项测试iscsi 盘在nas 中的安装、设置、管理和使用等各项功能; (3) iscsi 盘与本地盘、fc-raid 盘构成各种冗余度的raid ,本测试项测试各种存储盘在raid 中的安装、配置、管理和使用等各项功能; (4) 多个nas、iscsi 设备、nas 头连接fc-raid 通过多gmpfs 和asa 构建成usn 海量存储系统,本项测试测试gmpfs 和asa 系统在融合nas、iscsi 和san 的系统中的安装、配置及使用等各项功能。
性能测试包括:测试在100m和1000m网环境中不同工作负载下nas 存储设备、iscsi 存储设备、fc-raid、本地硬盘以及它们组成的海量usn系统的数据传输性能:包括单位时间内的io 次数、一次io 的平均响应时间、数据传输率和cpu 利用率。该项测试的主要思想是针对不同的网络应用环境,对各种存储设备和各种传输通道进行频繁的io 处理,在确定时间内统计并计算io 率、数传率、响应时间、cpu 利用率等性能参数,从而得到的各种性能评估。
测试环境
iscsi 存储设备:p42.0ghz cpu ,256mb dram, ibm dpss318350 18g硬盘,redhat linux 9.0 操作系统;linux 服务器:pentium 42.66ghz ( fc2pga) cpu ,256mb dram, 80gb ultraata/ 1007 ,200rpm硬盘,redhat linux 9.0 操作系统;windows服务器端:xeon 3.06ghz cpu ,512m dram 内存,smart array6i (板载) 存储控制器,qlogic qla2300 pci fc adapter 光纤适配器,ibm 36。4gb (32p0726) 10krpm 硬盘,microsoft windows2003操作系统;fc-raid:nexstor 4000s ,cpu 600mhz,512m sdram,10 ×st314680fc 硬盘;普通nas 存储设备: p42.66ghz cpu ,512mb ddr ,maxtor 160g硬盘,redhat linux 9.0 操作系统。
网络连接:iscsi 设备和普通nas 设备都使用100m以太网卡realtek rtl8139 ;windows 服务器使用1000m 以太网卡hp nc7782 gigabit server adapter ;linux服务器使用1000m以太网卡。hpnc7782gigabit server adapter。
功能测试
根据测试流程,功能测试包括三个方面的内容: (2) 平台的统一,即在windows 下能通过单一目录树方式访问多个存储节点,功能与linux 下的pvfs 相似; (2) 协议的统一,即通过windows 的“计算机管理”和initiator 发起端(iscsi 客户端) 可以管理fc-raid 和iscsi target 及普通的nas 设备,并利用“动态磁盘机制”实现多种冗余;设备的统一,即iscsi target 通过和initiator 配合,使得该target 成为nas 系统中的一个存储设备。
性能测试
测试内容
采用第三方的iometer 测试软件进行的测试。iometer是intel 公司专门开发的用于测试系统i/o 性能的测试程序。 它的测试参数比较全面,能非常全面的反映服务器的i/ o性能。为了说明usn 存储系统的性能,在相同条件下测试以下项目进行对比分析: (1) 对usn 服务器本地硬盘读写性能测试; (2) 100m以太网环境下fc-raid 盘读写性能测试; (3)100m以太网环境下远程iscsi 盘读写性能测试; (4) 100m 以太网环境下fc-raid 盘和远程iscsi 盘构建的各级raid 盘的读写性能测试; (5) 1000m以太网环境下远程iscsi 盘读写性能测试; (6) 100m以太网环境下usn 系统的读写性能测试。
实验结果比较
本地ide 硬盘、100m iscsi 硬盘、1000m iscsi 硬盘、fc-raid、fc-raid 与iscsi 构成的raid0 及usn 系统数据传输率性能比较如图7 所示。
本地ide 硬盘、100m iscsi 硬盘、1000m iscsi 硬盘、fc-raid 及fc-raid 与iscsi 构成的raid0 ,以及usn 的io/ s 性能比较如图8 所示。
本地ide 硬盘、100m iscsi 硬盘、1000m iscsi 硬盘、fc-raid及fc-raid 与iscsi 构成的raid0 ,以及usn 的平均响应时间性能比较如图9 所示。
本地ide 硬盘、100m iscsi 硬盘、1000m iscsi 硬盘、fc-raid 及fc-raid 与iscsi 构成的raid0 ,以及usn 的cpu 占用率比较如图10 所示。
实验结果分析
请求文件或数据块大小对存储系统性能的影响从图7、图8 和图9 中单条曲线的走势可以看出,当请求文件或数据块较大时,从目的盘或系统上读写数据耗费的时间长,通过网络传输的时间也相应增加,所以:小包的平均响应时间 大包的iops。请求包大时,针对一个请求包所进行的额外操作较请求包小时少,连续的读写所耗费的时间小于小包读写所耗费的时间,因此:小包的mbps < 大包的mbps。
服务器端iscsi 盘的各项性能表现趋势在100m以太网和千兆以太网环境中不同请求包大小的情况下符合上述规律,本地ide 硬盘、fc-raid 和usn 系统也符合上述述规律。
性能分析
从图7、图8 和图9 可以看出, i/o 请求在1k~128kb 时,usn系统的i/o 请求响应速度比本地ide 硬盘、fc-raid、100m远程iscsi 硬盘和1000m iscsi 硬盘快的多。 当i/o 请求大于128kb 时,usn 系统的i/o 请求响应速度比fc-raid 的 i/ o 请求响应速度略慢,比其它存储子系统的速度快的多,最高速度可达45mb/ s。 其原因是我们在usn 的服务器端除加载了gmpfs(支持使用多种访问协议用户) 和asa(提供服务器通道和附网高速通道) 的同时,还加载了我们实验室以前开发的智能预取、硬盘缓存技术(dcd) 、负载均衡和零拷贝系统或软件模块,所以,不论是大i/o 请求还小i/o 请求,都能提供极好的i/o 请求响应性能。 而fc-raid 由于自身的数据校验等时延等特性,对小的i/o 请求响应速度较慢,对越大的i/o请求响应速度越快。
对于usn 的iscsi 盘存储子系统,从实验结果可以看出,当请求数据块较小时,100m网络环境下的性能和1000m网络环境下的性能差别不明显,随着请求块或文件逐步增大,两者iops 和mbps 的差距越来越大。请求数据块为1024k时,仅更换网络传输中的数据链路层和物理层,从100m 网络环境提升到1000m网络环境,磁盘数据传输率得到较大的提高,后者约是前者的3 倍。
从图10 可以看出,100m的iscsi 存储子系统的cpu 占用率最高,原因是在响应用户的i/o 请求,要求服务器不断的对iscsi 的协议数据单元进行封装和解封装。 本地的ied 硬盘cpu 占用率最低,usn 系统的服务器端cpu 占用率次之,原因是usn 系统中小的i/o 请求直接经过服务器处理,而大的i/o 请求经过附网高速通道由存储设备自身处理。
结论和展望
我们提出、设计和实现的统一存储网络系统,全部采用ip互联设备,价格比光纤通道低得多,在管理软件的开发实现上以及系统的使用维护上,都具有多得多的资源和经验。 并且,千兆以太网技术比光纤通道技术发展迅速,10gbps 以太网交换机已经推出并在市场上热销,其性能前景也比光纤通道交换机好得多。 所有这些为统一存储网络的产品化打下了坚实的基础。
目前,我们已经从理论、结构和实践上实现了统一存储网络原型系统,现在,我们正在开发和完善多用户、多功能、多种平台支持的iscsi 设备,设计和实现新的安全和高可用文件系统,以便为统一存储网络系统产品化后能真正为广大企业,尤其是为广大中小企业提供开放性、性能、可展性、性/ 价比都更好的海量存储系统。
如何在Ubuntu Linux中创建一个简单的C项目
如何构建有效的边缘物联网架构
简述行为语句的可综合性
无功补偿设备谐振问题如何解决
ARM中国总裁:智能机拼硬件不是长久之计
融合NAS和SAN的存储网络设计
贴片Y电容最基本的规格参数有哪些?你知道几个?
创盈芯携带新品亮相广州国际电子博览会
五分钟看完奔驰A180时尚型 C-NCAP碰撞测试全过程
如何在癌症放射治疗过程中使用人工智能
详解8通道可编程电容式触摸芯片工作原理以及应用领域
中国LED企业该如何应对专利战?
软中断与硬中断介绍
基于Blackfin的图像处理,及其性能与CMOS传感器中I
内存行业衰退 未来是否会恢复市场尚未可知
Spring Boot Starter需要些什么
龙芯中科与中科信息签订合作框架协议
孩子不爱阅读怎么办?让阿尔法蛋大蛋2.0成为他的专属主播
LVD太阳能电磁感应灯开发
煤气管道堵漏的治理方案