存储介质处理方法、系统及数据读写操作方法、系统的制作方法

文档序号:6560092阅读:161来源:国知局
专利名称:存储介质处理方法、系统及数据读写操作方法、系统的制作方法
技术领域
本发明涉及数据存储技术,特别是涉及一种对计算机存储介质进行虚拟 化的方法和系统。
背景技术
计算机数据存储在计算机物理存储介质上。计算机物理存储介质上的数 据存储单元是数据块,数据被写入计算机时,写入一个固定地址的数据块中, 并在需要时,从此数据块中读取数据。计算机物理存储介质的容量是物理存 储介质上全部数据块容量之和。计算机呈现给用户的物理存储介质容量是一 个固定的,物理存储介质本身所决定的实际数值。
图1是现有技术下数据读写的流程图。如图所示,现有技术下数据读写 包括以下步骤
步骤101: IO (Input-Output,输入输出)子系统发出数据读写指令。 每一个数据读写指令包括指令类型、数据地址、数据暂存区等。指令 类型可以是写数据指令,或读数据指令。如果是写数据指令,数据暂存区存 放写入的数据。如果是读数据指令,数据暂存区用于存放读取的数据。
物理存储介质通过SCSI (Small Computer System Interface,小型计算机 系统接口)与操作系统交互。操作系统在扫描存储设备时,逐一扫描SCSI端
口,并询问扫描到的物理存储介质的相关信息,据此建立可以被操作系统访
问的设备对象。当IO子系统发出数据读写指令时,通过操作系统建立的设备 对象,将指令直接发送到相应的物理存储介质。现有技术下,SCSI端口和与 SCSI端口连接的存储介质是物理设备。
步骤102:物理存储介质接收到所述指令。
根据计算机操作系统数据读写指令的组成规则,分解数据读写指令,获 得指令类型、数据地址等。
步骤103:判断所述指令是写数据指令还是读数据指令,如果是写数据指
令,执行步骤104,否则执行步骤105。
步骤104:将所述指令中的数据,记录在物理存储介质上,所述指令包含 的数据地址所定位的数据块中。
物理存储介质的数据块是计算机存储数据的基本单元,现有技术下,物 理存储介质的数据块是固定的、预先分配的,数据块地址是操作系统读写指 令中的数据地址。
写入数据后,执行步骤106,返回指令完成信息。
每一个写数据指令通过步骤101到步骤104,及步骤106完成。如果是读 数据指令,执行歩骤103后,执行步骤105。
步骤105:根据所述指令中的数据地址,从所定位的物理存储介质的数据 块中,读取所述指令中指定长度的数据。
读取数据后,执行步骤106,返回指令完成信息。
从以上对现有技术的描述中,可以看到,数据读写指令中的数据地址是 物理存储介质的数据块地址。数据存储的容量取决于物理存储介质的容量, 超出物理存储介质容量的数据读写无法完成。随着存储数据量的增加,现有 物理存储介质可能用尽,导致数据读写失败。即使增加新的物理存储介质, 由于新物理存储介质与现有物理存储介质是两个独立的物理设备,无法动态 整合为一个物理设备供使用,数据读写仍然无法完成。应用中,有些数据可 以存储在物理上分离的存储介质上;而有些数据必须连续存储在同一物理存 储介质上,这种应用环境下的存储介质的扩容将是一个难题。即便一种方法 可以提供以一个大容量的物理存储介质替换小容量存储介质,但是数据迁移 过程的数据不可用性,及数据迁移可能造成的数据丢失,都是用户担心的实 际问题。
随着计算机应用的普及,数据量增长带来的存储容量扩充,成为每一个 企业级用户关心的问题。为了减少可能的,由于数据量增长而带来的容量不 足,用户不得不以数倍于现实需求的容量购买计算机存储设备,因而加大预 算,增加成本。更加遗憾的是,随着新技术的更新,原来购置的设备可能未 及使用,已面临淘汰。
在实际应用中,还可能面临这样的问题,原来预计数据存储量大的应用,
使用中,容量的消耗与预计相差甚远,以至于分配给这一应用的物理存储介
质容量消耗甚少,基本闲置,但却无法重新分配给其它需要的应用使用;对 于需要扩容的应用只有通过重新购买新设备补充容量,造成不必要的成本增 加。

发明内容
有鉴于此,本发明的主要目的在于提供一种存储介质处理方法、系统及 数据读写操作方法、系统,从而将容量有限的、数量有限的物理存储介质虚
拟为大容量的、动态分配的、数倍于实际容量的虚拟存储介质,解决用户扩 容与资源高效使用的问题。
为了实现上述目的,本发明提供了一种存储介质处理方法,包括-.
步骤A,设置物理存储介质集的虚拟地址对照表,记录物理存储介质集、 物理存储介质及虚拟存储介质之间的对应关系;
步骤B,将物理存储介质的设备标识添加到虚拟地址对照表的相应单元;
步骤C,创建与物理存储介质集对应的虚拟存储介质的设备对象,并向 虚拟SCSI端口驱动模块注册,所述虚拟存储介质的设备标识记录于虚拟地址 对照表的相应单元;
步骤D,虚拟SCSI端口驱动模块向操作系统注册虚拟存储介质的设备对象。
上述的存储介质处理方法,其中,所述虚拟地址对照表包括 物理存储介质集标识记录单元,用于记录物理存储介质集标识; 物理存储介质设备标识记录单元,用于记录与物理存储介质集相对应的
物理存储介质的设备标识或数据块地址;及
虚拟存储介质设备标识记录单元,用于记录与物理存储介质集相对应的
虚拟存储介质的设备标识。
上述的存储介质处理方法,其中,所述步骤B中,将物理存储介质设备
标识或数据块地址添加到物理存储介质设备标识记录单元,并初始化所述物
理存储介质。
上述的存储介质处理方法,其中,所述步骤C具体包括
步骤Cl,根据创建虚拟存储介质指令中的物理存储介质集标识定位虚拟
地址对照表的虚拟存储介质设备标识记录单元;
步骤C2,创建虚拟存储介质的设备标识并记录在所述虚拟存储介质设备 标识记录单元中,并记录虚拟存储介质的容量;
步骤C3,创建所述容量的虚拟存储介质的设备对象,并向虚拟SCSI端 口驱动模块注册。
上述的存储介质处理方法,其中,所述步骤D具体包括
步骤Dl,虚拟SCSI端口驱动接收到操作系统的扫描SCSI端口指令后向 虚拟存储管理子模块发出询问请求;
步骤D2,虚拟存储管理子模块定位虚拟地址对照表中的虚拟存储介质设 备标识记录单元;
步骤D3,获取虚拟存储介质设备标识记录单元中的虚拟存储介质的设备 标识,在相同设备标识的设备对象不存在时,建立对应虚拟存储介质的设备 对象,并注册到操作系统。
为了更好的实现上述目的,本发明还提供了一种数据读写操作方法,用 于根据指令实现虚拟存储介质的设备对象的访问,其中,虚拟地址对照表包 括虚拟存储介质地址记录单元,记录有虚拟存储介质和物理存储介质间的地 址对应关系,所述方法包括
步骤E,根据虚拟存储介质和物理存储介质间的地址对应关系将数据写
指令中的数据块地址转换为物理存储介质的数据块地址后完成数据写操作; 和/或
步骤F,根据虚拟存储介质和物理存储介质间的地址对应关系将数据读 指令中的数据块地址转换为物理存储介质的数据块地址后完成数据读操作。
上述的数据读写操作方法,其中,所述步骤E具体包括
步骤El,判断所述写指令中的数据块地址是否为已分配的存储单元,如 果是,执行步骤E2;否则,执行步骤E3;
步骤E2,分配新的物理存储单元,并更新虚拟存储介质和物理存储介质
间的地址对应关系,进入步骤E3;
步骤E3,根据虚拟地址对照表中的虚拟存储介质和物理存储介质间的地 址对应关系,将所述写指令中的数据地址转换为物理存储介质的数据块地址,
并将数据写入到物理存储介质的数据块中。
上述的数据读写操作方法,其中,所述步骤E2具体包括
步骤E21,根据设置的物理存储介质分配原则,定位下一个可分配物理
存储介质的数据块地址;
步骤E22,将指令中的虚拟存储介质设备标识、虚拟存储介质数据块所
在的存储单元的起始地址、物理存储介质设备标识、物理存储介质可分配存
储单元的起始地址记录在对应的虚拟存储介质地址记录单元中。 上述的数据读写操作方法,其中,所述步骤F具体包括 步骤Fl,判断所述读指令中的数据块地址是否为已分配的存储单元,如
果是,执行步骤F2;否则结束读取操作;
步骤F2,根据虚拟地址对照表中的虚拟存储介质和物理存储介质间的地
址对应关系,将读指令中的数据地址转换为物理存储介质的数据块地址后, 定位物理存储介质的数据块并读取相应数据。
为了更好的实现上述目的,本发明还提供了一种存储介质处理系统,包
括用于存储数据的物理存储介质,其中,还包括
虚拟存储控制器,用于设置物理存储介质集的虚拟地址对照表,并将物 理存储介质的设备标识添加到虚拟地址对照表的相应单元后创建与物理存储
介质集对应的虚拟存储介质;
虚拟SCSI端口驱动模块,向操作系统注册为SCSI端口设备,用于为所 述虚拟存储介质建立设备对象,并用于将所述设备对象注册到操作系统;
所述虚拟地址对照表用于记录物理存储介质集、物理存储介质及虚拟存 储介质之间的对应关系。
上述的存储介质处理系统,其中,所述虚拟地址对照表包括
物理存储介质集标识记录单元,用于记录物理存储介质集标识;
物理存储介质设备标识记录单元,用于记录与物理存储介质集相对应的 物理存储介质的设备标识或数据块地址;及
虚拟存储介质设备标识记录单元,用于记录与物理存储介质集相对应的 虚拟存储介质的设备标识。
为了更好的实现上述目的,本发明还提供了一种数据读写操作系统,用
于根据指令实现对虚拟存储介质的设备对象的访问,其中,包括
虚拟存储控制器,用于根据虚拟地址对照表将数据读写指令中的虚拟存 储介质的数据块地址转换为物理存储介质的数据块地址后实现数据读写操 作;
虚拟存储介质和物理存储介质间的地址对应关系保存于虚拟地址对照表 的虚拟存储介质地址记录单元。
与现有技术相比,本发明的有益效果是采用本发明提供的技术方案, 操作系统扫描到的存储介质是虚拟存储介质,并且,其容量是虚拟容量。虚 拟存储介质的容量可以大于支持该虚拟存储介质的物理存储介质集的容量。 物理存储介质集中的物理存储介质可以动态增加,并且,虚拟存储介质的容 量也可以动态扩展,随时满足扩容要求。物理存储介质集中的物理存储介质, 只有在数据写入时,才动态地分配给虚拟存储介质存储数据,基于物理存储 介质集建立的所有虚拟存储介质共享其中的物理存储介质。因而,最大限度 地实现存储资源的高效使用。不难看出,本发明提供的技术方案在物理存储 介质的高效使用和存储热扩容方面具有的优势。从而,减少存储投入、延长 再投入周期,简化存储管理。


图1是现有技术下数据读写流程图2是本发明的存储介质处理系统的系统方框图3是本发明向物理存储介质集中添加物理存储介质的流程图4是本发明创建虚拟存储介质的流程图5是本发明虚拟存储介质设备对象注册到操作系统的流程图。 图6是本发明实现数据读写过程的流程图; 图7是虚拟存储介质集容量串行分配原则的示意图; 图8是虚拟存储介质集容量并行分配原则的示意图。
具体实施例方式
本发明的主要思想是,创建虚拟存储介质,并在物理存储介质和虚拟存 储介质之间建立对应关系,在操作系统进行存储设备扫描时,将虚拟存储介 质提供给操作系统。在IO子系统发出数据读写指令时,虚拟存储设备根据建
立的对应关系将数据读写指令映射到物理存储介质,进行相应的读写操作。 这样,通过建立虚拟存储介质设备对象,可以为物理存储介质提供动态、有 效的分配管理机制,充分利用物理存储介质,从而解决用户扩容与资源均衡 消耗的问题。
以下参照附图详细说明本发明的方法和系统。
图2是本发明提供的存储介质处理系统方框图。如图2所示,实现本发
明的系统包括IO子系统、虚拟SCSI端口驱动模块、虚拟存储控制器以及物 理存储介质。虚拟存储控制器包括虛拟存储管理子模块和IO控制子模块,用 于分配、管理虚拟存储介质,完成数据读写指令。
其中,IO子系统,用于将存储设备扫描指令发送给虚拟SCSI端口驱动 模块,并且,将数据读写指令发送给虚拟存储控制器建立的虚拟存储介质设 备对象。数据读写指令中的数据块地址是虚拟存储介质的数据块地址。
虚拟SCSI端口驱动模块,是向操作系统提供标准SCSI端口的设备驱动 模块。虚拟SCSI端口驱动模块启动时,向操作系统注册为SCSI端口设备,
用于在接收到操作系统下达的存储设备扫描指令时,向虚拟存储控制器中的 虚拟存储管理子模块发出询问请求,将得到的虚拟存储介质设备对象返回给
IO子系统。
虚拟存储管理子模块,用于将虚拟存储介质设备对象返回给io子系统,
创建、分配、管理虚拟存储介质,以及在接收到添加、删除物理存储介质指 令时添加、删除物理存储介质,并将虚拟存储介质和物理存储介质间的对应 关系记录在虚拟地址对照表中。
IO控制子模块,用于在接收到来自10子系统的数据读写指令后,对照
虚拟地址对照表,将接收到的数据读写指令中的数据块地址,转换为物理存 储介质数据块地址,并在完成数据读写后返回指令完成信息。
物理存储介质,用于存储数据。物理存储介质在虚拟存储控制器模块的 管理和分配下,以虚拟存储介质的形式,提供给用户读写数据。物理存储介 质可以是本地磁盘、网络共享磁盘或存储局域网环境下的网络连接磁盘。
上述的虚拟地址对照表,直接保存在物理存储介质上,用于记录虚拟存 储介质和物理存储介质间的对应关系。系统启动时,调入内存中,并在物理
存储介质的虚拟化分配和管理过程中不断更新。
上述虚拟存储介质,是由虚拟存储管理子模块根据虚拟地址对照表中的 信息创建的,可以直接被操作系统访问的存储设备。在本发明中,虚拟存储
介质可以提供给本地数据读写使用;也可以通过文件共享协议,如NFS
(Network File System)协i义、CIFS (Common Internet File System)幼、议、 HTTP协议(Hyper Text Transfer Protocol),提供给网络环境下的服务器共享 文件系统的数据读写;还可以进一步通过FC协议、iSCSI协议,提供给存储 局域网环境下的其它服务器使用。
图3是本发明向物理存储介质集中添加物理存储介质的流程图。如图3 所示,包括
步骤301:虚拟存储管理子模块接收到添加物理存储介质指令,所述指令 中包括物理存储介质设备标识、物理存储介质集标识以及物理存储介质集的 类型。其中,物理存储介质集类型包括新物理存储介质集或现有物理存储介 质集。
物理存储介质是数据存储的最终实际介质。物理存储介质设备标识是识 别物理存储介质,进行数据读写的唯一设备标识。本发明中通过所记录的物 理存储介质和虚拟存储介质之间的对应关系,定位物理存储介质,完成针对 于虚拟存储介质的数据读写。
一组物理存储介质的集合组成物理存储介质集,物理存储介质集标识可 以由用户定义,也可以由虚拟存储控制器产生。
步骤302:判断所述指令是否将物理存储介质添加到新物理存储介质集?
如果是,执行步骤303;否则,执行步骤304。
步骤303:在物理存储介质上分配虚拟地址对照表,并初始化虚拟地址对 照表。
按照所述指令将物理存储介质添加到新物理存储介质集时,首先,在所 述指令中的物理存储介质上分配一个数据存储区存储虚拟地址对照表,并初 始化虚拟地址对照表。
虚拟地址对照表,记录虚拟存储介质和物理存储介质间的地址对应关系。 虚拟地址对照表存储在物理存储介质上,也可以在系统启动时,调入内存。
虚拟地址对照表中的记录单元分为四种类型物理存储介质集标识记录 单元、物理存储介质设备标识记录单元、虚拟存储介质设备标识记录单元、 以及虚拟存储介质地址记录单元。 一组连续的物理存储介质设备标识记录单 元组成物理存储介质列表,添加或删除物理存储介质时,物理存储介质列表 得以更新; 一组连续的虚拟存储介质设备标识记录单元组成虚拟存储介质列 表,创建或删除虚拟存储介质时,虚拟存储介质列表得以更新;虚拟存储介 质地址记录单元只在数据写入虚拟存储介质时才分配,已分配的、连续的虚 拟存储介质地址记录单元组成虚拟存储介质地址列表。
系统中,至少有一个虚拟地址对照表,也可以有多个虚拟地址对照表。 一个虚拟地址对照表至少有一个物理存储介质集标识记录单元,以及与之相 对应的至少一个物理存储介质列表, 一个虚拟存储介质列表和一个虚拟存储 介质地址列表。物理存储介质列表中的记录单元数,虚拟存储介质列表中的 记录单元数,可以预先设置。
一种区分虚拟地址对照表记录单元的方法是为每一个记录单元设置不同 的标志位。如0代表空记录单元,1代表物理存储介质集记录单元,2代表物
理存储介质设备标识记录单元,3代表虚拟存储介质设备标识记录单元,4代
表虚拟存储介质地址记录单元。采用此区分方法,在记录信息的同时,记录 单元的标志位需更新。另一种区分的方法可以通过地址指针来实现,在物理 存储介质集记录单元中记录与之对应的物理存储介质列表的起始地址,虚拟 存储介质列表的起始地址和虚拟存储介质地址列表的起始地址。
在虚拟地址对照表初始化过程中,需要将物理存储介质集标识记录在物
理存储介质集标识记录单元中。继续执行步骤304,将所述指令中的物理存 储介质设备标识记录在新分配的虚拟地址对照表的物理存储介质列表中。执 行步骤305,对所述指令中的物理存储介质初始化。在物理存储介质初始化 完成后,执行步骤306,返回指令完成信息。
在执行步骤302的判断后,如果所述指令是将物理存储介质添加到现有 物理存储介质集,则执行步骤304。
步骤304:将所述指令中的物理存储介质设备标识记录在所定位的虚拟地 址对照表的物理存储介质列表中。
对照虚拟地址对照表中物理存储介质集标识记录单元中记录的物理存储 介质集标识,定位与所述指令中物理存储介质集对应的物理存储介质列表, 将所述指令中的物理存储介质设备标识记录在所定位的虚拟地址对照表的物 理存储介质列表的空记录单元中。
本实施例中,物理存储介质设备标识记录单元中记录的是物理存储介质 设备标识。其它实施例中,可以通过记录其它与物理存储介质识别相关的信 息定位物理存储介质,还可能结合记录物理存储介质的数据块地址,将一部 分物理存储介质添加到物理存储介质集中。
步骤305:初始化所述指令中的物理存储介质。
初始化物理存储介质的过程,是向所述指令中的物理存储介质的所有数
据块写入零数据的过程。初始化完成后,执行步骤306。 歩骤306:返回指令完成信息。
添加物理存储介质指令可能包括添加多个物理存储介质的请求,所述指 令可以通过重复步骤302到步骤305添加每一个物理存储介质,完成全部添 加请求后,执行步骤306,返回指令完成信息。
上面对添加物理存储介质的操作进行了说明,当然也可进行删除物理存 储介质的操作,其不同之处在于不用进行判断(缺少步骤302,因为删除肯 定只能针对现有的物理存储介质集进行操作),同时,也可不进行初始化操作, 而在相应的步骤304中是删除物理存储介质列表中的物理存储介质设备标 识。
添加了物理存储介质后,可以进一步针对物理存储介质集创建虚拟存储 介质。
参见图4,创建虚拟存储介质的步骤包括
步骤411:虚拟存储管理子模块接收到创建虚拟存储介质指令,所述指
令中包括物理存储介质集标识和虚拟存储介质容量。
虚拟存储介质容量是用户定义的,与实际存储容量无必然联系的虚拟容 量。虚拟存储介质容量可以大于物理存储介质集中的物理存储介质容量之和。
步骤412:定位虚拟地址对照表的虚拟存储介质列表。
对照虚拟地址对照表中物理存储介质集标识记录单元中记录的物理存储
介质集标识,定位与所述指令中物理存储介质集对应的虚拟存储介质列表。
步骤413:创建虚拟存储介质的设备标识,记录在虚拟地址对照表的虚 拟存储介质列表中,同时记录所要创建的虚拟存储介质的容量。
虚拟存储管理子模块创建用于识别虚拟存储介质的设备标识,记录在所 定位的虚拟地址对照表的虚拟存储介质列表的空记录单元中,同时记录所述 指令中的虚拟存储介质容量。
步骤414:创建所述指令中指定容量的虚拟存储介质的设备对象,并向虚 拟SCSI端口驱动模块注册。
虚拟存储管理子模块创建可被操作系统识别的虚拟存储介质的设备对 象,其设备标识为新分配的虚拟存储介质设备标识,容量为所述指令中的虚
拟存储介质容量。并且,向虚拟SCSI端口驱动模块注册新建的设备对象。
步骤415:返回指令完成信息。
新创建的虚拟存储介质不占用物理存储空间,操作系统看到的虚拟存储 介质的数据块只是虚拟的数据块,没有物理存储介质的数据块被分配给该虚 拟存储介质使用。虚拟存储介质的容量代表着数据存储可能使用的最大空间。
支持虚拟存储介质存储数据的物理存储介质的数据块,在创建虚拟存储 介质过程中,并不被分配。只有在数据写入虚拟存储介质时,才会动态的分 配给虚拟存储介质。基于物理存储介质集建立的虚拟存储介质共享物理存储 介质集中的所有物理存储介质的存储资源。
创建虚拟存储介质指令可能包括创建多个虚拟存储介质的请求,所述指
令可以通过重复步骤412到步骤414,创建每一个虚拟存储介质,完成全部 创建请求后,执行步骤415,返回指令完成信息。
新创建的虚拟存储介质,在操作系统发出扫描SCSI端口指令时,向操作 系统注册,进一步被操作系统使用。
图5是本发明虚拟存储介质设备对象注册到操作系统的流程图,包括
步骤501:操作系统发出扫描SCSI端口指令。
SCSI端口驱动是操作系统和存储介质间的通讯端口。操作系统扫描存储 设备时,逐一向SCSI端口发出询问请求,等待应答。
步骤502:虚拟SCSI端口驱动接收到所述指令,向虚拟存储管理子模块
发出询问请求。
虚拟SCSI端口驱动启动后,向操作系统注册为SCSI端口设备。在操作 系统发出扫描SCSI端口指令时,虚拟SCSI端口驱动接收到所述指令,进一
步向虚拟存储控制器中的虚拟存储管理子模块发出询问请求。
步骤503:虚拟存储管理子模块,定位虚拟地址对照表中的虚拟存储介质 列表。
虚拟地址对照表中可能包括多个虚拟存储介质列表,虚拟存储子模块将
逐一定位每一个虚拟存储介质列表,并重复步骤504到步骤508,向操作系
统注册每一个虚拟存储介质设备对象。
步骤504:判断当前记录单元是否记录了虚拟存储介质信息,如果是,
执行步骤505;否则,执行步骤509。
步骤505:获得当前记录单元中虚拟存储介质的设备标识。 步骤506:判断具有相同设备标识的设备对象是否已经存在? 判断虚拟存储管理子模块已经建立的虚拟存储介质的设备对象中,具有
相同设备标识的设备对象是否己经存在?如果是,执行步骤508;否则,执
行步骤507。
步骤507:根据虚拟存储介质的设备标识,建立虚拟存储介质设备对象, 并向虚拟SCSI端口驱动模块注册。
步骤508:设置下一记录单元为当前单元。 返回执行步骤504。
在执行步骤504的判断后,如果当前记录单元是空记录单元,执行步骤 509,返回指令完成信息。这一判断条件成立的前提是虚拟存储介质列表中的 记录单元是按照顺序分配的。如果,虚拟存储介质列表的记录单元,不按照 顺序,任意分配,则需要以虚拟存储介质列表的记录单元数为判断条件。循 环次数超出记录单元数,执行步骤509,返回指令完成信息。
步骤509:返回指令完成信息。
系统中可能包括多个虛拟地址对照表,重复步骤503到步骤508,定位每 一个虛拟地址对照表中的每一个虚拟存储介质列表,为其中的虚拟存储介质 建立设备对象,并向操作系统注册。
指令完成信息返回后,操作系统将看到新建的,具有虚拟容量的,与物 理存储介质具有相同设备属性的虚拟存储介质。并且,IO子系统可以直接向 虚拟存储介质发出数据读写指令。
图6是本发明实现数据读写过程的流程图包括
步骤601: IO子系统发出数据读写指令。
每一个数据读写指令包括指令类型、数据地址、数据暂存区等。指令 类型可以是写数据指令,或读数据指令。如果是写数据指令,数据暂存区存 放写入的数据。如果是读数据指令,数据暂存区用于存放读取的数据。
所述指令直接发送到虚拟存储介质设备对象,虚拟存储介质通过虚拟 SCSI端口与操作系统交互。操作系统在扫描存储设备时,逐一扫描SCSI端
口 ,并询问扫描到的存储设备的相关信息。当IO子系统发出数据读写指令时,
通过设备对象,将指令直接发送到相应的虚拟存储介质。
步骤602:虚拟存储介质接收到所述指令。 步骤603:判断是写数据指令?
虚拟存储控制器的10控制子模块判断接收到的指令是否为写数据指令, 如果是,执行步骤604;否则,执行步骤609。
步骤604:判断所述指令中的数据地址是否为已分配的存储单元。
虚拟存储控制器的io子模块定位所述指令发送到的虚拟存储介质所在
的虚拟地址对照表,并进一步定位虚拟地址对照表中的虚拟存储介质地址列 表。读取虚拟存储介质地址列表中的每一个记录单元所记录的信息,判断所 述指令对应的虚拟存储介质的相应数据地址是否己存在,如果是,执行步骤
606;否则,执行步骤605。
判断所述指令中的数据地址是否是已分配的存储单元的步骤包括
(604a)获得所述指令发送到的虚拟存储介质的设备标识,对照虚拟地 址对照表的虚拟存储介质列表,定位物理存储介质集。
(604b)定位与所定位的物理存储介质集对应的虚拟存储介质地址列表,
设置虚拟存储介质地址列表的起始单元为当前记录单元。
(604c)读取当前记录单元中的虛拟存储介质设备标识,及虚拟存储介
质的数据块地址。
(604d)判断所述指令对应的虚拟存储介质设备标识是否和读取的虚拟 存储介质设备标识相同。如果是,进一步判断,所述指令中的数据地址是否 在以所读取的数据块地址为起始地址的已分配存储单元中。
(604e)如果上述判断成功,说明所述指令中的数据地址在己分配的物 理存储单元中,执行步骤606。如果上述判断失败,将下一个记录单元设置 为当前记录单元,重复步骤(604c)和步骤(604d),直到完成整个虚拟存储 介质地址列表的査询。
如果查询失败,说明所述指令中的数据地址是未分配的存储单元,执行 步骤605。
步骤605:分配新的物理存储单元,更新虚拟存储介质地址列表。
实现步骤605的步骤包括 (605a)根据设置的物理存储介质分配原则,定位下一个可分配物理存 储介质的数据块地址。
(605b)定位虚拟存储介质地址列表的空记录单元。 (605c)将所述指令中的虚拟存储介质设备标识、虚拟存储介质数据块 所在的存储单元的起始地址、物理存储介质设备标识、物理存储介质可分配 存储单元的起始地址,记录在所定位的虚拟存储介质地址记录单元中。
此步骤中可分配的存储单元,并不局限于一个物理的数据块,可以是连 续数据块的集合。存储单元所包含的数据块数量,可以由用户设置,也可以 由系统设置。存储单元中起始数据块的地址用于识别存储单元的物理位置, 是存储单元的起始地址。虚拟存储介质和物理存储介质的存储单元,包含相 同数量的数据块。但是,虚拟存储介质存储单元的起始地址并不一定和物理 存储介质存储单元的起始地址相同。
此步骤中分配的存储单元的容量,并不一定等于所述指令中的数据长度。 所述指令中的数据长度可能小于存储单元的容量,也可能大于存储单元的容 量。如果所述指令的长度大于分配的存储单元的容量,需要重复步骤605, 分配下一个存储单元,直到所分配的存储单元满足所述指令中的数据读写长 度要求。
完成物理存储单元分配后,执行步骤606和步骤607,将所述指令中的数
据,写入到新分配的,由所述指令中的数据地址转换,并定位的物理存储介 质的数据块中。
步骤606:根据虚拟地址对照表中虚拟存储介质地址列表,将所述指令 中的数据地址转换为物理存储介质的数据块地址。 实现步骤606的步骤包括
(606a)在所定位的虚拟存储介质地址列表中,定位具有相同虚拟存储 介质设备标识,和相同虚拟存储介质存储单元的起始地址的记录单元。
(606b)读取所定位的记录单元中的物理存储介质设备标识和物理存储 介质存储单元的起始地址。
步骤607:将所述指令中的数据,写入到所定位的物理存储介质的数据 块中。
步骤608:返回指令完成信息。
在步骤603的判断中,如果是读指令,执行步骤609。
步骤609:判断所述指令中的数据地址是否为已分配的存储单元。
判断所述指令中的数据地址是否为已分配的存储单元,如果是,执行步
骤610;否则,执行步骤612。
判断所述指令中的数据地址是否是已分配的存储单元的步骤和步骤604
的步骤相同。
步骤610:对照虚拟地址对照表中虚拟存储介质地址列表,将所述指令 中的数据地址转换为物理存储介质的数据块地址。
步骤610转换数据块地址的步骤和步骤606的步骤相同。
步骤611:定位物理存储介质的数据块,读取所述指令中指定长度的数据。
步骤612:返回指令完成信息。
执行数据读写指令步骤605时,分配新的物理存储单元,可以有三种分
配原则串行分配原则、并行分配原则和选择性分配原则。
图7是物理存储单元串行分配原则示意图,图8是物理存储单元容量并 行分配原则示意图。
根据容量串行分配原则,物理存储单元的分配,从物理存储介质集中第
一个物理存储介质的第一个可分配数据块开始,顺序分配存储单元,写入数
据;物理存储介质集中的第一物理存储介质的空间分配完毕,继续从同一个 物理存储介质集中的第二物理存储介质的第一个可分配数据块开始顺序分配 存储单元,写入数据;依次分配第三、第四...物理存储介质。
参见图7,数据"A"、"B"、"C"、"D"先后写入虚拟存储介质1的F0000001、 虚拟存储介质2的FF000001、虚拟存储介质1的F000000F、和虚拟存储介 质2的FF000002数据块中。虚拟存储介质1接收到将数据"A"写入地址 F0000001的指令,虚拟存储控制器的IO子模块判断所述指令是写数据指令, 进一步判断所述指令中的数据地址是未分配的存储单元,IO控制子模块根据 容量串行分配原则,定位物理存储介质集中的物理存储介质1的10000001数 据块为下一个可分配数据块,分配新的虚拟存储介质地址记录单元,将虚拟 存储介质l设备标识、所述指令中的地址F0000001、所定位的物理存储介质 1设备标识和数据块地址10000001写入新分配的虚拟存储介质地址记录单元 中,将所述指令中的数据"A"写入物理存储介质1的地址为10000001的数 据块中,完成所述指令。
虚拟存储介质2接收到写入数据"B"的指令,IO控制子模块根据容量 串行分配原则,判断下一个可分配的存储单元为物理存储介质1上地址为 10000002的数据块,因此,将虚拟存储介质2设备标识、所述指令中的地址 FF000001、所定位的物理存储介质1设备标识和数据块地址10000002写入新 分配的虚拟存储介质地址记录单元中,将所述指令中的数据"B"写入物理存 储介质1的地址为10000002的数据块中,完成所述指令。
根据容量串行分配原则,IO控制子模块继续将数据"C"、 "D"写入到物 理存储介质1的连续数据块10000003、 10000004中,并将相关信息记录在虚 拟存储介质地址列表的记录单元中。
根据容量串行分配原则,连续写入的、即使分布于不同虚拟存储介质的
数据,也将存储于同一物理存储介质的连续数据块空间。如图7中,先后写 入虚拟存储介质1、虚拟存储介质2的数据"A"、 "B",存储在同一物理存储 介质l连续分布的、相邻数据块10000001、 10000002中。
根据容量串行分配原则,分布于同一虚拟存储介质的两个连续数据块中
的数据,由于写入顺序的非连续性,同样可能分布于物理存储介质的非连续
数据块空间。如图7中,写入虚拟存储介质2的地址FF000001、 FF000002 的数据"B"、 "D",存储在同一物理存储介质1上不相邻的两个数据块 10000002、 10000004中。
遵循容量串行分配原则,物理存储介质数据块分配顺序由数据写入顺序 决定的,物理存储介质的数据块分配是连续的。容量串行分配原则,可以最 有效的利用虚拟存储池中的物理存储资源。然而,当遵循容量串行分配原则 的物理存储介质集中的一个物理存储介质出现故障时,将导致所有将数据存 储在这一物理存储介质上的虚拟存储介质的数据的不可用,甚至永久丢失。
根据容量并行分配原则,物理存储单元的分配,从物理存储介质集中每 一个物理存储介质的第一个可分配数据块开始,顺序分配存储单元,写入数 据;物理存储介质集中的第一物理存储介质的第一个可分配存储单元被分配 使用后,继续从同一物理存储介质集中的第二物理存储介质的第一个可分配 存储单元分配空间;依次从第三、第四...物理存储介质的第一个可分配存 储单元分配空间,直到最后一个物理存储介质的第一个可分配存储单元被分 配使用。再从第一物理存储介质的第二个可分配存储单元开始分配空间,循 环至最后一个物理存储介质的第二个可分配存储单元被分配使用。依此分配 每一个物理存储介质的第三个、第四个...可分配存储单元,循环至物理存 储介质的全部数据块空间被分配使用完毕。
参见图8,数据"A"、 "B"、 "C"、 "D"、 "E"先后写入虚拟存储介质1 的F0000001、虚拟存储介质2的FF000001、虚拟存储介质1的F000000F、 虚拟存储介质2的FF000002数据块,和虚拟存储介质2的FF000003数据块 中。虚拟存储介质1接收到将数据"A"写入地址F0000001的指令,虚拟存 储控制器的IO子模块判断所述指令是写数据指令,进一步判断所述指令中的 数据地址是未分配的存储单元,IO控制子模块根据容量并行分配原则,定位 物理存储介质集中的物理存储介质1的10000001数据块为下一个可分配数据
块,分配新的虚拟存储介质地址记录单元,将虚拟存储介质1设备标识、所
述指令中的地址F0000001、所定位的物理存储介质1设备标识和数据块地址 10000001写入新分配的虚拟存储介质地址记录单元中,将所述指令中的数据
"A"写入物理存储介质1的地址为10000001的数据块中,完成所述指令。
虚拟存储介质2接收到写入数据"B"的指令,10控制子模块根据容量 并行分配原则,判断下一个可分配的存储单元为物理存储介质2上地址为 10000001的数据块,因此,将虛拟存储介质2设备标识、所述指令中的地址 FF000001、所定位的物理存储介质2设备标识和数据块地址10000001写入新 分配的虚拟存储介质地址记录单元中,将所述指令中的数据"B"写入物理存 储介质2的地址为10000001的数据块中,完成所述指令。
根据容量并行分配原则,10控制子模块继续将数据"C"、 "D"、 "E"写 入到物理存储介质3的地址为10000001的数据块,物理存储介质1的地址为 10000002的数据块,和物理存储介质2的地址为10000002的数据块中,并 将相关信息记录在虚拟存储介质地址列表的记录单元中。
容量并行分配原则,是根据数据写入顺序,并行分配物理存储介质集中 每一个物理存储介质存储单元的原则。容量并行分配原则可以有效地提高数 据读写效率。
根据容量并行分配原则,连续写入同一虚拟存储介质连续数据块的数据, 将存储于连续的、并行排列的、不同的物理存储介质上,具有相同数据块地 址的存储单元中。
容量选择分配原则,是将虚拟存储介质与物理存储介质选择性的对应分 配原则。 一个虚拟存储介质可以对应物理存储介质中的一个或多个物理存储 介质,对应于一个虚拟存储介质的物理存储介质的容量分配遵循容量串行分 配原则。
遵循容量选择分配原则的一个物理存储介质的故障,只影响与此物理存 储介质对应的虚拟存储介质的数据的可使用性。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不 局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可 轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明 的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种存储介质处理方法,其特征在于,包括步骤A,设置物理存储介质集的虚拟地址对照表,记录物理存储介质集、物理存储介质及虚拟存储介质之间的对应关系;步骤B,将物理存储介质的设备标识添加到虚拟地址对照表的相应单元;步骤C,创建与物理存储介质集对应的虚拟存储介质的设备对象,并向虚拟SCSI端口驱动模块注册,所述虚拟存储介质的设备标识记录于虚拟地址对照表的相应单元;步骤D,虚拟SCSI端口驱动模块向操作系统注册虚拟存储介质的设备对象。
2. 根据权利要求1所述的存储介质处理方法,其特征在于,所述虚拟地址对照表包括物理存储介质集标识记录单元,用于记录物理存储介质集标识;物理存储介质设备标识记录单元,用于记录与物理存储介质集相对应的物理存储介质的设备标识或数据块地址;及虚拟存储介质设备标识记录单元,用于记录与物理存储介质集相对应的 虚拟存储介质的设备标识。
3. 根据权利要求2所述的存储介质处理方法,其特征在于,所述步骤B中,将物理存储介质设备标识或数据块地址添加到物理存储介质设备标识记 录单元,并初始化所述物理存储介质。
4. 根据权利要求2所述的存储介质处理方法,其特征在于,所述步骤C具体包括步骤Cl,根据创建虚拟存储介质指令中的物理存储介质集标识定位虚拟 地址对照表的虚拟存储介质设备标识记录单元;步骤C2,创建虚拟存储介质的设备标识并记录在所述虚拟存储介质设备 标识记录单元中,并记录虚拟存储介质的容量;步骤C3,创建所述容量的虚拟存储介质的设备对象,并向虚拟SCSI端 口驱动模块注册。
5. 根据权利要求4所述的存储介质处理方法,其特征在于,所述步骤D 具体包括步骤Dl,虚拟SCSI端口驱动接收到操作系统的扫描SCSI端口指令后向 虛拟存储管理子模块发出询问请求;步骤D2,虚拟存储管理子模块定位虚拟地址对照表中的虚拟存储介质设 备标识记录单元;步骤D3,获取虚拟存储介质设备标识记录单元中的虚拟存储介质的设备 标识,在相同设备标识的设备对象不存在时,建立对应虚拟存储介质的设备 对象,并注册到操作系统。
6. 根据权利要求1、 2、 3、 4或5所述的存储介质处理方法,其特征在 于,虚拟地址对照表设置于物理存储介质。
7. 根据权利要求1、 2、 3、 4或5所述的存储介质处理方法,其特征在 于,物理存储介质包括本地磁盘、网络共享磁盘或存储局域网环境下的网络 连接磁盘。
8. 根据权利要求2、 3、 4或5所述的存储介质处理方法,其特征在于, 所述虚拟地址对照表的单元通过标志位或地址指针区分。
9. 一种数据读写操作方法,用于根据指令实现对权利要求1创建的虚拟存储介质的设备对象的访问,其特征在于,虚拟地址对照表包括虚拟存储介 质地址记录单元,记录有虛拟存储介质和物理存储介质间的地址对应关系, 所述方法包括步骤E,根据虚拟存储介质和物理存储介质间的地址对应关系将数据写 指令中的数据块地址转换为物理存储介质的数据块地址后完成数据写操作; 和/或步骤F,根据虚拟存储介质和物理存储介质间的地址对应关系将数据读指令中的数据块地址转换为物理存储介质的数据块地址后完成数据读操作。
10. 根据权利要求9所述的数据读写操作方法,其特征在于,所述步骤E 具体包括步骤El,判断所述写指令中的数据块地址是否为已分配的存储单元,如果是,执行步骤E2;否则,执行步骤E3; 歩骤E2,分配新的物理存储单元,并更新虚拟存储介质和物理存储介质 间的地址对应关系,进入步骤E3;步骤E3,根据虚拟地址对照表中的虚拟存储介质和物理存储介质间的地址对应关系,将所述写指令中的数据地址转换为物理存储介质的数据块地址, 并将数据写入到物理存储介质的数据块中。
11. 根据权利要求IO所述的数据读写操作方法,其特征在于,所述步骤E2具体包括步骤E21,根据设置的物理存储介质分配原则,定位下一个可分配物理存储介质的数据块地址;步骤E22,将指令中的虚拟存储介质设备标识、虚拟存储介质数据块所 在的存储单元的起始地址、物理存储介质设备标识、物理存储介质可分配存 储单元的起始地址记录在对应的虚拟存储介质地址记录单元中,进入步骤 E3。
12. 根据权利要求11所述的数据读写操作方法,其特征在于,步骤E21 中物理存储介质分配原则包括串行分配原则、并行分配原则和选择分配原则。
13. 根据权利要求9所述的数据读写操作方法,其特征在于,所述步骤F具体包括步骤Fl,判断所述读指令中的数据块地址是否为已分配的存储单元,如 果是,执行步骤F2;否则结束读取操作;步骤F2,根据虚拟地址对照表中的虚拟存储介质和物理存储介质间的地 址对应关系,将读指令中的数据地址转换为物理存储介质的数据块地址后, 定位物理存储介质的数据块并读取相应数据。
14. 根据权利要求10或13所述的数据读写操作方法,其特征在于,指令 中虚拟存储介质设备标识与虚拟存储介质地址记录单元中的虚拟存储介质设 备标识一致,且指令中的数据地址在以所读取的数据块地址为起始地址的已 分配存储单元中,则判断数据块地址是否为已分配的存储单元。
15. 根据权利要求10或13所述的数据读写操作方法,其特征在于,将指令中的数据地址转换为物理存储介质的数据块地址具体包括在虚拟存储介质地址记录单元中定位具有相同虚拟存储介质设备标识和 相同虚拟存储介质存储单元的起始地址的记录单元;获取所定位的记录单元中的物理存储介质设备标识和物理存储介质存储 单元的起始地址。
16. —种存储介质处理系统,包括用于存储数据的物理存储介质,其特征在于,还包括虚拟存储控制器,用于设置物理存储介质集的虚拟地址对照表,并将物 理存储介质的设备标识添加到虚拟地址对照表的相应单元后创建与物理存储介质集对应的虚拟存储介质;虚拟SCSI端口驱动模块,向操作系统注册为SCSI端口设备,用于为所 述虚拟存储介质建立设备对象,并用于将所述设备对象注册到操作系统;所述虚拟地址对照表用于记录物理存储介质集、物理存储介质及虚拟存 储介质之间的对应关系。
17. 根据权利要求16所述的存储介质处理系统,其特征在于,所述虚拟地址对照表包括物理存储介质集标识记录单元,用于记录物理存储介质集标识; 物理存储介质设备标识记录单元,用于记录与物理存储介质集相对应的物理存储介质的设备标识或数据块地址;及虚拟存储介质设备标识记录单元,用于记录与物理存储介质集相对应的虚拟存储介质的设备标识。
18. 根据权利要求17所述的存储介质处理系统,其特征在于,所述虚拟 地址对照表的单元通过标志位或地址指针区分。
19. 根据权利要求16所述的存储介质处理系统,其特征在于,物理存储 介质包括本地磁盘、网络共享磁盘或存储局域网环境下的网络连接磁盘。
20. 根据权利要求16所述的存储介质处理系统,其特征在于,虚拟地址对照表设置于物理存储介质。
21. —种数据读写操作系统,用于根据指令实现对权利要求16的虚拟存 储介质的设备对象的访问,其特征在于,包括虚拟存储控制器,用于根据虚拟地址对照表将数据读写指令中的虚拟存 储介质的数据块地址转换为物理存储介质的数据块地址后实现数据读写操 作;虚拟存储介质和物理存储介质间的地址对应关系保存于虚拟地址对照表 的虚拟存储介质地址记录单元。
全文摘要
本发明提供一种存储介质处理方法、系统及数据读写操作方法、系统,其中该存储介质处理方法包括步骤A,设置物理存储介质集的虚拟地址对照表,记录物理存储介质集、物理存储介质及虚拟存储介质之间的对应关系;步骤B,将物理存储介质的设备标识添加到虚拟地址对照表的相应单元;步骤C,创建与物理存储介质集对应的虚拟存储介质的设备对象,并向虚拟SCSI端口驱动模块注册,所述虚拟存储介质的设备标识记录于虚拟地址对照表的相应单元;步骤D,虚拟SCSI端口驱动模块向操作系统注册虚拟存储介质的设备对象。本发明在物理存储介质的高效使用和存储热扩容方面具有的优势,减少了存储投入、延长了再投入周期,简化了存储管理。
文档编号G06F12/08GK101105737SQ20061010179
公开日2008年1月16日 申请日期2006年7月11日 优先权日2006年7月11日
发明者任永坚, 烨 陈 申请人:任永坚;陈 烨
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1