收藏 分享(赏)

一种智能网络磁盘(IND)存储系统结构的研究_.doc

上传人:dreamzhangning 文档编号:2287065 上传时间:2018-09-09 格式:DOC 页数:11 大小:1.07MB
下载 相关 举报
一种智能网络磁盘(IND)存储系统结构的研究_.doc_第1页
第1页 / 共11页
一种智能网络磁盘(IND)存储系统结构的研究_.doc_第2页
第2页 / 共11页
一种智能网络磁盘(IND)存储系统结构的研究_.doc_第3页
第3页 / 共11页
一种智能网络磁盘(IND)存储系统结构的研究_.doc_第4页
第4页 / 共11页
一种智能网络磁盘(IND)存储系统结构的研究_.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、1一种智能网络磁盘(IND)存储系统结构的研究 *赵跃龙 1、2) 戴祖雄 2、3) 王志刚 2) 杨希 2) 1 ) ( 华南理工大学计算机科学与工程学院 广州 510640 ) 2 ) ( 中南大学信息科学与工程学院 长沙 410083 )3 ) ( 湖南科技大学计算机科学与工程学院 湘潭 411201 )摘 要 针对当前计算机存储系统结构中存在的若干问题,本文提出了一种新型的智能网络磁盘(IND-Intelligent Network Disk)存储系统结构。分别给出了 IND 内部数据的读/写控制、容错处理、负载平衡等智能控制算法,已经构建了一个 IND 结构的模拟原型 IND 存储系

2、统。IND 存储系统中各个 IND 都是直接与网络连接,若干个 IND 组成一个集群存储系统,给用户提供了一个虚拟化的海量存储系统。另外,由于各 IND 都具有一定的智能度,所以它是一种灵活可变的智能型网络存储器系统。关键词 智能网络磁盘(IND);IND 存储系统;读/写控制;容错处理;负载平衡中图分类号:TP303Research on Storage System ArchitectureOf the Intelligent Network Disk (IND)ZHAO Yue-Long 1、2) DAI Zu-Xiong 2、3) WANG Zhi-Gang 2) YANG Xi 2)

3、1 ) ( School of Computer Science and Engineering, South China University of Technology, Guangzhou 510640 )2 ) ( School of Information Science and Engineering, Central South University, Changsha 410083 )3 ) ( School of Computer Science and Engineering, Hunan University of Science and Technology, Xian

4、gtan 411201 )Abstract In this paper, some problems on storage system architecture of computer network are analyzed, a novel storage system architecture of the Intelligent Network Disk (IND) is presented. The internal read and write control algorithms, the tolerant-fault strategies, and the workload

5、balance algorithms for the IND storage system, are all described in detail. Also a basic experimental system of the IND storage architecture has been constructed. Since each IND of the IND storage system is linked directly to the high LAN, some INDs can form a network cluster of storage system. And,

6、 it will provide a virtual huge storage system for users. In addition, as each IND has some intelligence, the IND storage system is a flexible Intelligent Network Storage System. Keywords Intelligent Network Disk; IND Storage System; Read/ Write control; Tolerant-Fault; Workload Balance* 收稿日期:2006-0

7、1-09。本项研究工作受国家自然科学基金项目( 60573145) 、湖南省自然科学基金项目(05JJ30120) 、广州市科技计划项目(2007J1-C0401)资助。赵跃龙,男,1958 年生,博士,教授,博士生导师,主要从事计算机外存储系统等方面的研究工作;E-mail: 。戴祖雄,男,1964 年生,博士研究生,主要从事计算机网络存储方面的研究工作。王志刚,男,1962 年生,博士研究生,主要从事计算机体系结构方面的研究工作。杨 希,男,1970 年生,博士研究生,主要从事计算机网络存储方面的研究工作。11 引言随着互联网技术的迅速发展,网络上的数据信息已经呈爆炸性地增长,Inter

8、net 上无穷无尽的信息资源迫切需要有一个网络结构形式的海量存储系统来进行大容量的信息存储。由于信息内容的丰富性和多媒体化对大存储容量的需求、巨大数量的用户群及响应时间的要求对存储器系统的性能提出了更加苛刻的要求。目前的磁盘阵列(RAID) 、光盘阵列、高速磁带库系统等大容量存储系统等均无法在存储容量、可用性、高速度、可扩展性、数据备份以及灾难恢复等方面满足这些要求。面对这种急切的需求,现有的存储器体系结构和存取技术已经受到空前的挑战和压力。但是这些强烈的需求也激励着人们不断地去探索新的技术和方法,促使人们除了在存储设备层次上进行探索外,更多的是还必须要从存储系统的体系结构和管理软件等方面来深

9、层次地考虑和解决问题。为了顺应这种强烈的需求,近年来分别诞生了NAS 和 SAN 1 12 两种结构的 网络存储技术,目前它们已经获得了比较广泛的应用,也是当前计算机存储器技术研究领域内的重要研究方向之一。但是,现在的 NAS 和 SAN 这两种网络存储体系结构中也存在一些问题:(1)NAS 虽然基于将控制流和数据流分开的思想,能够在物理连接上将存储器直接连到网络上,不再挂在服务器后端。服务器仅起控制管理的作用,从而减轻服务器的工作负载使系统的整体性能得到提高,但随着文件请求增加到一定程度,服务器的性能会下降。各个 NAS 设备之间的数据信息不容易聚合,而且 NAS 的集中式“瘦文件服务器”结

10、构容易产生单点故障失效问题 13。(2) SAN 虽然可以提供较高速的数据块传送、可伸缩的虚拟存储和远程备份,但一般需要专门的光纤交换机设备和光接口的存储器,所以它是一种成本较高的网络存储方案 14 15; SAN 中也存在对数据的文件级 I/O 访问的支持比较弱的问题。 (3)在 NAS 和 SAN 的网络存储结构中每个磁盘存储器都是“被动”地响应“读/写”请求,磁盘驱动器是没有“主动”权去进行自主工作;在主机没有发出“读/写”请求时,整个存储器网络都处于“空闲”状态,浪费了宝贵的网络带宽资源。另外在整个存储器网络中一般缺少负载自动平衡的机制等等。因此,研究一种能较好地解决 NAS 和 SA

11、N 结构中存在问题的解决方案是非常必要和有意义的。2 智能网络磁盘(IND)存储系统结构基于此,本文提出了一种新型的、能够适应于网络存储的智能网络磁盘(IND-Intelligent Network Disk)的系统结构。这种智能网络磁盘(IND)的逻辑结构如图 1 所示:图 1 智能网络磁盘( IND)硬件逻辑结构图在图 1 所示的智能网络磁盘(以下均简称 IND)的逻辑结构图中,已经将传统的磁盘存储器改造成了带有网络接口(Inerface Network Card) 、Memory存储器和控制器(Controller)的硬件逻辑结构,需要说明的是:这里所指的 Memory 存储器和控制器(

12、Controller)与有些磁盘存储器内部的 Cache 和控制器并不一样,网络接口是为了便于 IND 与网络直接相连接。Memory 存储器主要是用来存放集成在 IND 上的微型文件管理服务程序和一些关于 IND 之间的消息通信、分布式存储控制策略、容错、负载均衡等智能算法程序。控制器(Controller)则是负责处理 IND 与网络连接、完成执行智能控制算法等功能的控制中心。由上述的若干个 IND 可以组成一种新型的智能网络磁盘(IND)存储系统,这种智能网络磁盘(IND)存储系统的拓扑结构如图 2 所示:图 2 智能网络磁盘( IND)存储系统拓扑结构图2在 IND 与网络的拓扑连接示

13、意图中,我们对网络中的 IND 进行了集群(Cluster)处理,将所有的IND 分成了两个集群Cluster 1 和 Cluster 2(实际上根据需要,也可以将全部的 IND 组成任意个我们所希望的集群个数)来处理。这种方法有利于今后整个存储器网络的扩展和控制,而且配置也比较灵活。在图 2 的网络拓扑连接中,还设立了一个安全认证与配置服务器,主要是用来解决整个 IND 存储器网络的安全问题和存储器网络结构信息的初始化配置问题。在安全认证与配置服务器中,安全认证服务所占的比重较大,而配置服务因为 IND 的特殊结构,相对来说比较小,这样也保证了服务器的负载不至于太重。值得注意的是,在上面的网

14、络拓扑连接示意图中,本文提出的每个 IND 磁盘都是与高速网络直接连接的,它为用户(客户机)进行数据文件 I/O 存取提供了最短的数据访问路径。在安全认证与配置服务器和各个IND 磁盘之间也没有专门的“私有”网络和命令通道;安全认证与配置服务器并不对 IND 进行直接控制,安全认证与配置服务器只是在当网络存储器(IND)需要扩展时才负责广播新的网络结构信息。因此,这种结构克服了 NAS 结构中的“集中”式文件服务器对网络存储的数据存取速度所造成不利的影响问题。由于将文件服务器的功能下放到了每一个 IND 上,所以在上面的网络结构中已经没有专门的文件服务器。即:在各 IND 上都集成了一个微型文

15、件服务程序来负责其文件的管理与操作,每个 IND 都能独立自主地对各自磁盘上的文件进行 I/O 存取操作。另外还赋予了各个 IND 一定的自主权和智能,譬如:将通过采用一系列的智能控制算法来解决各个 IND 之间的消息通信、分布式存储控制策略、容错处理和负载均衡等问题。这些技术措施可以保证每个 IND 能够更好地进行独立自主的工作,等等。因此,本文提出的这种智能网络磁盘(IND)存储系统结构对前面提到的网络存储器中存在的一些问题给出了解决方案,在系统结构上有一定的特点。为简化起见,以下均将智能网络磁盘(IND)存储系统简称为“IND 存储系统” ,下面将重点对 IND存储系统内部的读/写控制策

16、略、容错处理、负载平衡等智能控制算法进行介绍和说明。3 IND 存储系统工作原理3.1 存储系统工作模型为了便于理解和说明,本文给出了仅含一个集群的 IND 存储系统的数据读/ 写工作模型如图 3 所示:文件路由表备份区文件路由表备份区文件路由表备份区文件路由表备份区文件路由表备份区高 速 局 网 络.记录区 ( 1 . 1 )记录区 ( 1 . n )记录区 ( 2 . 1 )记录区 ( 2 . n )记录区 ( 3 . 1 )记录区 ( 3 . n )记录区 ( 4 . 1 )记录区 ( 4 . n )记录区 ( 5 . 1 )记录区 ( 5 . n )I N D 1 I N D 2 I

17、N D 3 I N D 4 I N D 5H O S T 4H O S T 1 H O S T 2 H O S T 3 H O S T n2 0 2 . 1 9 7 . 6 4 . 5 2 0 2 . 1 9 7 . 6 4 . 5 2 0 2 . 1 9 7 . 6 4 . 5 2 0 2 . 1 9 7 . 6 4 . 5 2 0 2 . 1 9 7 . 6 4 . 5 1 9 2 . 1 6 8 . 0 . 11 9 2 . 1 6 8 . 0 . 2 1 9 2 . 1 6 8 . 0 . 3 1 9 2 . 1 6 8 . 0 . 4 1 9 2 . 1 6 8 . 0 . 5( 1

18、 )( 3 ) ( 4 )( 2 )图 3 IND 存储系统的数据读/写工作模型图图 3 中的五个 IND 已经被“虚拟”为一个很大的网络逻辑磁盘,并且有一个统一对外的唯一 “存储”IP 地址,即:IND 存储系统的公共 IP 地址。为了方便起见,这里假设其 IP 地址为 202.197.64.5,这样、网络上的任何客户机或者服务器都可以通过这个公共IP 地址来访问 IND 存储系统(每个 IND 都有一个内部的子 IP 地址,如 IND3 的 IP 地址为:192.168.0.3) 。因此 IND 存储器系统对用户来说是透明的,非常方便。每个 IND 上的存储空间被划分为 2 个区域:记录区

19、、备份区。各 IND 上的控制软件则由嵌入式网络操作系统、网络接口控制软件、网络通信软件、磁盘驱动程序、文件路由表(FAT_ARP)等几部分组成,它们被固化在 IND 的 Flash 或者 ROM 区中。IND 上的记录区的作用是:将来自某主机的经过文件路由表“路由”过的一个“数据流”文件的内容记录在相应的INDip 上。而 IND 上的备份区的作用是:为了便于容错处理,当在某个 INDi 上记录一个“数据流”文件的同时,根据某种容错算法,也把同一个“数据流”文件内容记录在另外一个 INDj 上进行数据冗余备份。这样便于日后一旦 INDi 上记录的“数据流”文件不能进行读/写时,便可根据其对应

20、的容错算法,引导存储系统去访问原来存储在 INDj 上的备份“数据流”3文件,从而达到进行容错的目的。3.2 读/写控制算法3.2.1 FAT_ARP 表对 IND 存储系统中的文件进行管理和操作,必须有某种文件管理的存取模式和方法。本文是通过设置一个“文件路由表(FAT_ARP) ”的数据表结构来加以实现。其中 FAT_ARP 表结构如表 1 所示:表 1 FAT_ARP 表I N D 存储系统内部子 I P 地址I N D 上已使用存储空间I N D 存储系统对外 I P 地址I N D 上格式化最大容量文件名I N D 号I N D 1I N D 2I N D 3. . .I N D n

21、文件 6文件 4文件 5文件 m. . . . . . . . . . . . . . .3 5 . 6 G1 9 . 5 G2 0 . 3 G6 5 G1 2 0 G1 2 0 G1 2 0 G1 2 0 G2 0 2 . 1 9 7 . 6 4 . 52 0 2 . 1 9 7 . 6 4 . 52 0 2 . 1 9 7 . 6 4 . 52 0 2 . 1 9 7 . 6 4 . 51 9 2 . 1 6 8 . 0 . 11 9 2 . 1 6 8 . 0 . 21 9 2 . 1 6 8 . 0 . 31 9 2 . 1 6 8 . 0 . n从表 1 可以看出 FAT_ARP 表

22、是一张记录了整个IND 存储系统内容的“索引”文件分配表,各个“数据流”文件是按一定的负载情况分布在不同的 IND 上。FAT_ARP 具有文件“路由”的功能,它相当于是一个具有“软交换”功能的域名网关,当来自网络上的客户机或者服务器利用 IND 系统提供的“公共”IP 地址来访问这个 IND 存储系统时,可以根据文件路由表的“路由”的功能,将 IND 存储系统的公共 IP 地址转化为 IND 网络存储器系统内部的某个 IND 的 IP 地址,这样就可以使得主机系统 I/O 请求可以具体地分解到内部存储系统相应的 INDip 上去进行操作或者访问。任何客户机或者服务器都可以通过这个存储器的IP

23、 地址来访问 IND 存储系统,该存储器系统对用户来说是透明的。因为系统中所有的 IND 上的文件路由表内容都是相同的,也就是说每个 IND 上的文件路由表都是一张记录了整个 IND 存储系统的文件分配表(具有文件“路由”的功能) ,所以该系统对客户端提出的网络存储 I/O 请求,还可根据各 IND 的负载情况来确定响应该 I/O 请求的某个 IND。因此负载可以比较均衡地分配到各 IND 上去。另外,由于系统中不存在因所有的请求都要经过某一部件处理而引起的瓶颈隐患,所以即使是某个 IND 出现故障,也不会影响其它 IND 的正常工作(至多是处于降级模式下运行),因此 IND存储系统中不存在单

24、点故障问题。3.2.2 智能读/写控制算法(1)当要进行读/写的“数据流”文件记录恰好位于当前访问的 IND 的某个记录区(如图 3 中的IND3)上时,可以采用以下智能调度算法来进行读/写:算法 1 : / / 理想情况下 ( 这里给出写 I N D 盘的情况 )W h e n W r i t e ( H o s t I D , S t r e a m I D )S t e p 1 : I f ( D = F A T _ A R P ( I N D i d , S t r e a m I D ) = = I N D i d / / 如果查找文件路由表所确定 I N D i p 盘恰好是 I

25、N D i dt h e n I N D i p = I N D i d / / 则 直接将当前的 I N D i d 盘作为 I N D i p 来使用 ;e l s e g o t o S t e p 5 / / 否则跳转 S t e p 5 处 结 束 ;S t e p 2 : S e n d ( I N D i p , S t r e a m I D )/ / 将 “ 数据流 ” 文件的内容送到 相应的 I N D i p 盘上去S t e p 3 : P u t ( I N D i p , S t r e a m I D ) F i l e O u t p u t S t r e a

26、 m f o u t = n e w F i l e O u t p u t S t r e a m ( S t r e a m I D ) ;O b j e c t O u t p u t S t r e a m o u t = n e w O b j e c t O u t p u t S t r e a m ( f o u t ) ;( I N D i p ) o u t . w r i t e O b j e c t ( t h i s ) ;/ / 将 “ 数据流 ” 文件的内容写入 I N D i p 盘中S t e p 4 : U p d a t a _ F A T _ A R

27、P ( F A T _ A R P , S t r e a m I D ) ;/ / 更新 F A T _ A R P 的内容 S t e p 5 : 算法结束(2)如果要进行读/写的文件记录不在当前访问的IND 的记录区(如图 3 中的 IND1)上时,那么就必须将相应的 I/O 命令传送到包含有该读/写的文件记录信息的 IND(如图 3 中的 IND2)上去进行控制读/写操作。可以采用下面的智能调度算法来实现:4算法 2 : / / 一般情况下 ( 这里给出读 I N D 盘的情况 )S t e p 1 : W h e n R e a d ( H o s t I D , S t r e a

28、 m I D )I f ( D = F A T _ A R P ( I N D i d , S t r e a m I D ) ! = I N D i d/ / 如果当前盘不是需要 的 I N D i pt h e n S e e k ( I N D i p , S t r e a m I D ) ;/ / 则 重新寻找 包含有该 读 / 写 “ 数据流 ” 文件记录区的 I N D i pe l s e g o t o S t e p 2 S t e p 2 : G e t ( I N D i p , S t r e a m I D ) F i l e I n p u t S t r e a

29、 m f i n = n e w F i l e I n p u t S t r e a m ( S t r e a m I D ) ;O b j e c t I n p u t S t r e a m i n = n e w O b j e c t I n p u t S t r e a m ( f i n ) ;( I N D i p ) i n . r e a d o b j e c t ( ) ; / / 将 “ 数据流 ” 文件的内容从 I N D i p 盘中读出S t e p 3 : R e t u r n ( H o s t I D , I N D i p , S t r e

30、a m I D ) ;/ / 将 I N D i p 盘上读取的 “ 数据流 ” 文件内容返回给 主机 H o s t I DS t e p 4 : 算法结束3.3 容错处理同样为了便于解释和说明,下面给出了只有一个集群的 IND 存储系统的容错工作模型,如图 4 所示:备份区 ( 1 . 1 )文件路由表备份区 ( 5 . 1 )文件路由表备份区 ( 2 . 1 )文件路由表文件路由表备份区 ( 3 . 1 )文件路由表备份区 ( 4 . 1 )高 速 局 网 络.记录区 ( 1 . 1 ) 记录区 ( 2 . 1 ) 记录区 ( 3 . 1 ) 记录区 ( 4 . 1 )记录区 ( 5 .

31、 1 )I N D 1 I N D 2 I N D 3 I N D 4 I N D 5H O S T 4H O S T 1 H O S T 2 H O S T 3 H O S T n2 0 2 . 1 9 7 . 6 4 . 5 2 0 2 . 1 9 7 . 6 4 . 5 2 0 2 . 1 9 7 . 6 4 . 5 2 0 2 . 1 9 7 . 6 4 . 5 2 0 2 . 1 9 7 . 6 4 . 5 1 9 2 . 1 6 8 . 0 . 11 9 2 . 1 6 8 . 0 . 2 1 9 2 . 1 6 8 . 0 . 31 9 2 . 1 6 8 . 0 . 41 9

32、2 . 1 6 8 . 0 . 5( a )( b ) ( c )( 1 )( 2 )( 3 )( 4 )( 5 )“ 读 ” 错误时的容错处理 ( 从备份区读信息 )正常 “ 写 ” 操作时的 “ 冗余 ” 数据备份( 6 ).图 4 IND 存储系统的容错工作模型示意图如图 3 和图 4 所示,在 IND 存储系统中,已经设置了专门的备份区来存储记录区的冗余信息进行容错处理。其设计思想是:当在某个 INDi 上记录一个“数据流”文件的同时,根据容错算法,也把同一个“数据流”文件内容记录在另外一个 INDj 上来进行冗余备份。一旦 INDi 盘上记录的“数据流”文件不能进行读/写时,便可根据

33、其对应的容错算法,引导存储系统去访问存储在 INDj 上记录的备份“数据流”文件;这样做提高了整个 IND 存储系统的可用性和可靠性。本文给出了一种类似于磁盘阵列中 RAID_ 5 的数据冗余备份策略 16 对 IND 存储系统进行容错处理。这里容错处理算法采用“右旋转校验读/写法” ,亦即拟采用下面的计算公式来确定备份磁盘(备份IND)的 IP 地址:IP 备份磁盘 = IP MOD N + 1 ( 1)(这里 N =5 ,它是集群存储系统中的 IND 的最大个数)下面分别给出 IND 存储系统在数据备份和容错读出的算法如下:a、数据冗余备份算法: 考虑到冗余数据备份一般是在写 IND 的时

34、候才发生的情况 (正常“写”操作时的“冗余”数据备份,如图 4 上 IND1 的“写”操作) ,所以给出如下的数据冗余备份算法:算法 3 : / / 一般情况下 ( 这里给出读 I N D 盘的情况 )W h e n W r i t e ( H o s t I D , S t r e a m I D )S t e p 1 : I f ( D = F A T _ A R P ( I N D i d , S t r e a m I D ) = = I N D i dt h e n I N D i p = I N D i d ;/ / 直接将当前的 I N D i d 盘作为 I N D i p 来

35、使用e l s e S e e k ( I N D i p , S t r e a m I D ) ;/ / 重新寻找 包含有该 读 / 写 “ 数据流 ” 文件记录区的 I N D i pS t e p 2 : S e n d ( I N D i p , S t r e a m I D ) ;/ / 送 “ 数据流 ” 文件的内容到 相应的 I N D i p 盘上去S t e p 3 : P u t ( I N D i p , S t r e a m I D ) ;/ / 将 “ 数据流 ” 文件的内容记录在 I N D i p 盘中S t e p 4 : I P = I P M O D

36、5 + 1 ;/ / 采用 “ 右旋转校验写入法 ” , 确定备份磁盘的 I P 地址S t e p 5 : S e n d ( I N D i p , S t r e a m I D ) ;/ / 送 “ 数据流 ” 文件的内容到 备份磁盘 I N D i p 上去S t e p 6 : C o p y ( I N D i p , S t r e a m I D ) ;/ / 将 “ 数据流 ” 文件的内容写入 备份磁盘 I N D i p 的备份区中S t e p 7 : U p d a t a _ F A T _ A R P ( F A T _ A R P , S t r e a m I

37、 D ) ;/ / 更新 F A T _ A R P 的内容S t e p 8 : 算法结束b、智能容错读出算法(降级模式): 当发生不能从某个 IND 读出数据信息的情况时,就必须采取5如下的智能容错读出算法(以降级模式进行工作)从备份磁盘(备份 IND)来将备份信息读出(如图 4 上的 IND3 的“读”操作) 。其算法如下:算 法 4 : / / 一 般 情 况 下 ( 这 里 给 出 读 I N D 盘 的 情 况 )W h e n R e a d ( H o s t I D , S t r e a m I D )S t e p 1 : I f ( D = F A T _ A R P

38、( I N D i d , S t r e a m I D ) = = I N D i dt h e n I N D i p = I N D i d ;/ / 如 果 要 读 的 I D 恰 好 在 I N D i d 上 ,则 直 接 将 当 前 的 I N D i d 盘 作 为 I N D i p 来 使 用e l s e S e e k ( I N D i p , S t r e a m I D ) ;/ / 否 则 重 新 寻 找 包 含 有 该 读 / 写 “ 数 据 流 ” 文 件 记 录 区 的 I N D i pS t e p 2 : I f ( G e t ( I N D

39、i p , S t r e a m I D ) = = T r u e )t h e n R e t u r n ( H o s t I D , I N D i p , S t r e a m I D ) ;g o t o S t e p 6 ; / / 如 果 能 够 顺 利 读 出 ,则 将 I N D i p 盘 上 读 取 的 “ 数 据 流 ” 文 件 内 容 返 回 给 主 机 H o s t I D ;并 跳 转 S t e p 6 e l s e I P = I P M O D 5 + 1 ;/ / 否 则 采 用 “ 右 旋 转 校 验 读 出 法 ” , 确 定 从 备 份

40、 磁 盘 读 出 的 I P 地 址 ;S t e p 3 : G e t ( I N D i p , S t r e a m I D ) ;/ / 从 备 份 磁 盘 将 数 据 信 息 读 出S t e p 4 : R e t u r n ( H o s t I D , I N D i p , S t r e a m I D ) ;/ / 将 备 份 磁 盘 上 读 取 的 “ 数 据 流 ” 文 件 内 容 返 回 给 主 机 H o s t I D ;S t e p 5 : R e t u r n ( H o s t I D , I N D i p , “ F a l s e ” )

41、;/ / 将 “ F a l s e ” 信 息 返 回 给 主 机 H o s t I D , 报 告 在 I N D i p 盘 上 发 生 了 读 /写 错 误 , 通 知 存 储 系 统 进 行 必 要 的 处 理 工 作 。S t e p 6 : 算 法 结 束 。4 IND 存储系统的其它智能特性4.1 H-IND(主 IND)自动选举的智能算法因为在 IND 存储系统中,每个 IND 都是直接面向网络用户的,任何一个 IND 都具有响应客户端I/O 请求的能力(只要它“空闲 ”) ,因此当网络中某个文件 I/O 请求随机到达时,有可能会发生“存储竞争”或“存储目标不明确”的无序性

42、现象问题。为了避免这种现象发生,必须设计一种主 IND(H-IND)自动选举的智能算法。即:某一时刻在 IND 存储系统中通过某种智能算法自动选举一个 IND 作为 H-IND。当 H-IND 选举产生后,则在当前开始的一个时间段内,由该 H-IND 负责接收网络传来的 I/O 请求(它充当临时“文件服务器” 的角色,而其它 IND则接受它的调度和指挥) ,通过 H-IND 上的FAT_ARP(文件路由表)和智能读/写控制算法,将I/O 请求命令有选择性地转发给某个 IND(也有可能就是自己本身所在的 H-IND)来进行文件 I/O 处理。本文提出一种H-IND自动选举的智能算法如下:算法 5

43、:Setp1: 从 FAT_ARP 表中获取基本数据信息,计算 IND 存储系统中各 INDi 的 CPU 利用率 Hcpu-i。Setp2: 计算各个 IND 的权值:设某一时刻 IND存储系统的网络状况为 S(一般值为“0”或者“1” ,分别表示可用或者不可用) ,各个 IND 的空闲容量为 C i 则该时刻 IND i 的权值 W i 为:W i = S * Hcpu-i * C i / ( 2 )nj1按照公式( 1 ) 分别计算出各个 IND 的Wi( i=1,2.n) , 可以得到如下的权值分布表:W = W1, W2, . Wn i(1.n) ( 3)Step3:从 W 中求出权

44、值为最大的 IND max:IND max = MAX W1.W2,Wn ( 4 )Step4: 将 IND max 设定为 H-IND (主 IND):H-IND = IND maxStep5: 采用“心跳”机制监视 H-IND 的工作情况:如果 H-IND 工作一切正常则转 Step6。否则如果 H-IND 工作不正常,则从 IND 存储系统中将对应的 IND max 去掉, 即从 IND 上的 FAT_ARP 中将该IND max 去掉,并自动返回 Step2, 重新选举一个新的IND max 作为 H-IND。Step6: 算法结束,继续采用 “心跳”机制监视H-IND 的工作情况。4

45、.2 实现负载平衡的智能“写”算法为了实现前面提到的 H-IND 的功能,我们在 H-IND 上驻留了一个监控程序,它的主要职责就是通过FAT_ARP 表和读/写控制算法来响应客户请求并且转发客户的 I/O 请求给合适的 IND (或者 H-IND)去具体操作。对于 Read 命令请求, H-IND 将访问命令直接转发给相应的 IND 即可。但是对于 Write 请求,IND 存储系统则必须考虑负载平衡问题,因此在 H-IND 上运行的监控程序中必须有某种负载平衡智能算法来选择合适的 IND 存放文件。下面给出一种能够实现负载平衡“写”的智能算法如下:6算法 6:Setp1: 从 FAT_AR

46、P 表中获取基本数据信息,建立一张 IND 存储系统内部的“动态”负载表IND_D_LT。因为在 IND 存储系统中,Read 和 Write 将引发大量数据流,所以为了量化 IND 的负载, H-IND 另外还将记下每个 Read/Write 请求处理时间 t 和数据量 d。假设在(0,T)的时间段内,某 INDi已经处理了 n个请求,每个耗时为 ti ,每次存取的数据量为 di ,则INDi 的“动态”负载可表征为:( 5)niitB1i据此可以建立一个 IND 存储系统内部的“动态”负载的 IND_D_LT 表 ( 线性表)为:B = B1. B2, . Bn i(1.n) ( 6)St

47、ep2: 从 B 中求出负载为最小的 IND min :IND min = MIN B1.B2,Bn ( 7)Step3: 查寻 IND 存储系统的 IND_D_LT 表,选取负载最小的 IND 作为存储对象来响应来自客户机的文件 I/O 请求。这样可以使得负载比较小的 IND相对于负载较大的 IND 多服务一些 I/O 请求,也使得处理 I/O 请求与 IND 的处理能力的比值是比较均匀的,达到负载自动平衡的效果。Step4: ,释放 IND_D_LT 表占用的内存空间,更新 FAT_ARP 表中的内容。Step5: 算法结束,继续接收和响应来自客户机的文件 I/O 请求,开始新的一轮负载平

48、衡 “写”调度算法。4.3 二次“主动”负载平衡的智能处理算法当在某一个时间段内,如果 IND 存储系统没有接收到来自客户机的任何文件 I/O 请求时,就可以利用这段空闲时间来“主动”地第二次(进一步)调整其内部的“静态”负载分布情况,这也是 IND 存储系统的一个最具“智能”性的特征。本文给出一种基本的智能算法思想如下:算法 7:Step1: 从 FAT_ARP 中获取基本数据信息,建立一张 IND 存储系统内部各个 IND“静态负载率表”IND_S_LT。设网络“空闲”时,某 INDi上格式化存储容量为 C1,现在已占用的存储空间为 C2 ,则各个 INDi的“静态负载率”情况可表征为:

49、L i = C2i / C1i, 则 IND 存储系统的“静态负载率表”的线性表( IND_S_LT) 可表示为:L = L1. L2, Ln i(1.n) ( 8)此时,IND 存储系统的平均负载率为:( 9)niiipC1iStep2: 从 IND_S_LT 表中,分别选出负载率最重的 IND i 和负载率最轻的 IND j。IND max = MAX L1.L2,Ln ( 10)IND i = IND max IND min = MIN L1.L2,Ln ( 11)IND j= IND min Step3: 将 INDi 上一些文件数据迁移到 INDj 上来平衡两个 IND 上的负载。Step4: 分别更新 FAT_ARP 表和 IND_S_LT 表中的内容。Step5: 如

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报