一种将存储设备虚拟划分为多个设备的方法

文档序号:6603089阅读:191来源:国知局
专利名称:一种将存储设备虚拟划分为多个设备的方法
技术领域
本发明涉及存储设备技术领域,具体涉及一种将存储设备虚拟划分为多个设备的 方法。
背景技术
计算机的产生与其快速的发展,为现代人类的资料保存及资源共享提供了极大的 方便。但是,现实生活中,经常会出现离开办公室或家里到另一个地方出差、办公,同时需要 携带大量的文件、资料或个人私密的文件,而不管是传统的桌上型计算机,还是便携式的手 提计算机,都存在着体积大,不便携带的缺点。为此,抽取式的移动存储设备便产生了,它使储存于存储装置中的大量资料得以 随使用者移动。例如⑶、DVD、移动硬盘、U盘、MP3、MP4、数码相机等,这些存储设备通常通 过各自的接口与计算机间接或直接相连,实现数据的交互。U盘是目前常用的计算机外设部件,由USB接口、外壳和里面的Flash储存电路构 成,体积小,便于携带,使用方便,常用于储存重要的资料。此外,存储卡可以为各种移动设 备提供扩展存储功能。例如,移动终端中可以通过存储卡扩展存储空间,常见的存储卡包括 SD、MMC、TF卡等。再例如很多数码相机、MP3、MP4等数码设备也可以通过存储卡扩展存储 空间。制造商在U盘或存储卡完成硬件生产和组装后,还需要对U盘或存储卡进行量产 程序才能投入市场。现有技术对存储卡进行量产的方法包括采用专用量产机,向U盘或 存储卡发出扫描U盘或存储卡中坏块的私有命令;将扫描到的坏块信息和相关信息由专用 量产机通过私有命令写入u盘或存储卡中Flash的隐藏区域。其中相关信息包括芯片的规 格、物理参数、配置信息、接口类型信息等。然而,由于不同制造商生产的U盘或存储卡中芯片类型、采用的命令类型等不同, 因此,发出扫描坏块命令,写入坏块信息和相关参数到U盘或存储卡中,必须采用与之相适 应的私有命令。而不同的私有命令所需要的量产机不同。例如,有的制造商对U盘或存储 卡进行量产时,根据其特有的私有命令,需要专门的可编程逻辑门阵列,或者是复杂可编程 逻辑器件,或者是专门设计的中央处理器。这些专门的设备对应的量产机也是专用的。于 是,需要采用与私有命令对应的专用量产机来执行这一方法。这样,不仅没有统一的U盘或 存储卡量产方法,通用性差,而且由于专用量产机价格高昂导致现有量产方法成本较高。CN200710128445. 8公开了一种存储卡的量产方法,采用普通读卡器即可实施对存 储卡坏块的扫描,并将扫描到的坏块信息与相关信息写入存储卡中的隐藏区域,降低了存 储卡量产的成本。CN200810170863. 8公开了一种具有独立的双物理盘的U盘,U盘内部包括两套独 立的储存电路,两套储存电路通过一个HUB连接到同一个USB接口,提高了 U盘的可靠性。CN200710135056. 8提供了从移动存储设备启动多操作系统的组合装置及方法,使 用户可以从一个手提的存储设备而运行多操作系统,生成、管理和修改磁盘分区,轻松地运行多语言环境,设置和管理模拟或测试环境,在不需要关机和关闭应用程序的情况下进行 操作系统间切换。众多存储设备的出现,虽然丰富了人们存储数据的手段,但是也为使用者带来诸 多不便,用户不得不根据需要携带不同介质的存储设备,以满足相应的功能,如同时携带 DVD碟片、移动硬盘等。因此,人们迫切需要一种技术,使用户只需要携带一个设备,便能够 替代其他存储设备实现相应的功能。

发明内容
本发明实施例要解决的问题是提供一种将存储设备虚拟划分为多个设备的方法 及系统,以解决现有技术中无法实现用一种存储设备替代其他不同类型的存储设备的缺 陷,完成不同类型的存储设备应有的功能。例如,用户可以根据需要将CD、DVD、ZIP、硬盘分 区等功能通过自定义配置,集成于一个U盘中,完成后,用户只需要携带该U盘即可实现其 他存储设备对应的功能。为了实现上述目的,本发明的实施例提供了一种存储设备虚拟划分的方法,包括 以下步骤通过中间设备将一个物理存储设备划分为一个或多个分区,每个分区虚拟为一个 独立的逻辑设备;设置每个逻辑设备的类型和属性信息,生成逻辑设备配置信息表;将逻辑设备信息表存储于该物理存储设备中,通过修改逻辑设备配置信息表,可 以实现对逻辑设备功能的变更。进行虚拟划分时,主要是通过虚拟LUN实现。LUN的全称是LogicalUnit Number, 也就是逻辑单元号。微机或单片机结构的SCSI总线上可挂接的设备数量是有限的,我们可 以用Target ID (也有称为SCSI ID的)来描述这些设备,设备只要一加入系统,就有一个 代号,我们在区别设备的时候,只要说几号几号就可以。但是,随着存储设备种类的增多,需 要描述的设备是远远超过该数字的,于是引进了 LUN的概念,也就是说LUN ID的作用就是 扩充了 Target ID。每个Target下都可以有多个LUN Device,通常将LUN Device简称为 LUN,这样每个设备的描述就由原来的Target x变成Target x LUN y 了,显而易见,系统描 述设备的能力增强了。实际上,LUN ID不等于某个设备,只是个号码而已,不代表任何实体属性,在实际 应用中,我们碰到的LUN可能是磁盘空间,可能是磁带机,或者是media changer等等。本发明提供的方法即是通过中间设备虚拟LUN,将一个设备虚拟划分为多个逻辑 设备,为每个逻辑设备分配一个LUN号,更有意义的是,可以同时借助本发明的中间设备对 已虚拟划分的逻辑设备的LUN属性信息进行设置和修改,用户虚拟划分完毕并设置了逻辑 设备配置信息后,一个物理存储设备便能够在主机端显示为多个设备,在使用上相当于同 时拥有多个不同类型的设备,极大地提高了工作效率,节约了用户的使用成本,提高了工作 效率和生产效率。本发明的有益效果在于(1)通过本发明提供的中间设备,生产厂商可以将其集成于主板上或集成于存储 设备中或做成独立产品;
(2)用户可以通过本发明提供的方法,根据需要对存储设备进行任意的虚拟划分, 以满足不同用户的个性化需求;(3)在量产方面,本发明将屏蔽不同生产商的量产方法,构建一个统一的平台,极 大地降低了量产的生产成本,同时使存储设备的功能得到更广泛的应用,其市场应用前景 无可估量。


图1是本发明以USB移动设备进行虚拟划分的原理结构图;图2是本发明以USB移动设备进行虚拟划分的流程图;图3是本发明以存储卡为例进行虚拟划分的原理结构图;图4是本发明方法虚拟分区在磁盘上存储的数据结构图;图5是本发明查询逻辑设备配置信息的流程图;图6是本发明一种通过READ/WRITE命令修改配置信息表的流程图。
具体实施例方式本发明的优选实施例提供了一种将存储设备虚拟划分为多个设备的方法。该方法 在现有的主机和存储设备之间添加一个中间设备,通过该中间设备可以实现对现有的物理 存储设备进行虚拟划分,将其划分为多个逻辑设备。这一方法的实施可以将现有的不同种 类的存储设备进行集成,使用户只需一个存储设备便能拥有多个不同的存储设备的功能。 例如,将一个U盘虚拟划分为软驱、光驱、硬盘等几种设备,此时用户的电脑无需有软驱、光 驱,更不需要光碟等介质设备,仅通过U盘便能够实现上述各种设备的功能。对于生产商而 言,USB移动设备以及存储卡的量产成本一直很高,需要专门的量产工具进行生产,且每个 生产厂家量产的私有命令都不一样,给用户的使用也带来极大的不便。而本发明专利的实 施则能够很好地解决这一问题,生产商可以将本发明的中间设备集成于主机端或集成于存 储设备端或作为独立设备生产,通过该中间设备,便能屏蔽掉各生产厂商不同命令、不同协 议结构的信息,使用户可以非常方便地将物理存储设备虚拟划分为多个逻辑设备。本发明 的有益效果在于用户可以通过本发明提供的方法,根据需要对存储设备进行任意的虚拟 划分,以满足不同用户的个性化需求;此外,本发明将屏蔽不同生产商的量产方法,构建一 个统一的平台,极大地降低了量产的生产成本,同时使存储设备的功能得到更广泛的应用, 其市场应用前景无可估量。在生产制造时,中间设备可以做成一个独立的设备,也可以集成于主机或存储设 备中,中间设备通过接口协议如USB、IEEE1393、蓝牙等与主机或存储设备相连。用户如果 想对其存储设备进行逻辑划分,则可以将待划分的存储设备通过本发明的中间设备与主机 相连,完成虚拟划分;当然,用户也可以不进行划分,还可以对已划分的逻辑设备进行修改 或复原。如果用户不需要对存储设备进行划分,则可以直接与主机相连,提供了灵活性。中间设备负责接收并解析主机发送的控制命令至逻辑设备,同时接收并解析逻辑 设备返回的信息至主机。此外,存储设备并不局限于移动存储设备,可以是固定存储设备和 移动存储设备。固定存储设备包括但不限于通过ATA、SATA、PATA、SCSI协议传输数据的固定硬盘;移动存储设备包括但不限于通过匪(、30、1 、旧8、记££1394、蓝牙协议进行数据传 输的U盘、存储卡、手机、数码设备。在将存储设备进行虚拟划分的具体实施过程中,按照如下步骤进行首先,通过中间设备将一个物理存储设备划分为一个或多个分区,每个分区虚拟 为一个独立的逻辑设备。在进行虚拟划分时,主要是通过虚拟LUN实现。LUN的全称是 Logical Unit Number,也就是逻辑单元号。将一个设备虚拟划分为多个逻辑设备,为每个 逻辑设备分配一个LUN号;其次,设置每个逻辑设备的类型和属性信息,生成逻辑设备配置信息表。该过程即 是对已虚拟划分的逻辑设备的LUN属性信息进行设置和修改,用户虚拟划分完毕并设置了 逻辑设备配置信息后,一个物理存储设备便能够在主机端显示为多个设备,在使用上相当 于同时拥有多个不同类型的设备。例如,用户根据需要将U盘虚拟划分为3个逻辑设备,并 将逻辑设备的类型分别命名为软驱、光驱、硬盘;将光驱的属性信息设置为只读,这样用户 只需操作该U盘便相当于同时拥有了软驱、光驱和硬盘的功能。然后,将逻辑设备信息表存储于所述物理存储设备中,通过修改所述逻辑设备配 置信息表,实现对逻辑设备功能的变更。在对逻辑设备的信息进行配置后,为了使配置的信 息能够在断电后依旧永久保存,因此,本发明在设计时将用户配置的逻辑设备信息生成一 个逻辑设备配置信息表,并将其存储于存储设备上,当该存储设备通过本发明的中间设备 与主机相连时,中间设备能够自动地解析该存储设备中的逻辑设备配置信息表,解析后将 逻辑设备的相关信息显示于主机端。当然,用户也可以对该逻辑设备配置信息表进行修改, 如将软驱更改为加密磁盘区,修改完毕后又将保存至存储设备端。本发明可以有两种工作模式,即原始模式和虚拟模式。原始模式即编程模式,这时可以访问存储设备上的原始数据,通过软件程序向存 储设备写入逻辑设备配置信息。虚拟模式即工作模式,这时存储设备虚拟为多个设备,配置信息不可访问。原始模式和虚拟模式的转换可以通过物理/软件的开关,或者通过接入/移除中 间设备来实现。写入逻辑设备配置信息时通常通过专门软件实现,其工作步骤如下通过专门软件把物理存储设备设置为原始模式;专门软件从物理存储设备特定的位置,0扇区或其他扇区读取现有的配置信息表, 并将所述配置信息表的信息显示给主机;主机通过专门软件,增加、删除或修改现有的信息表;专门软件把新的信息写回物理存储设备;然后将物理存储设备设置为工作模式。在进行逻辑设备配置时,逻辑设备的类型包括但不限于TVTRAN1、软盘驱动器、硬 盘驱动器、光盘驱动器、不同操作系统分区、加密分区、压缩分区等;TVTRAN1是一种虚拟的 视频添加设备,用于实现用户与视频之间的互动功能。逻辑设备的属性包括但不限于只读、只写、可读可写、加密、压缩等。本发明以USB移动存储设备为优选实施例,对本发明的方法进行详细介绍。
图1是本发明以USB移动存储设备进行虚拟划分的原理结构图;在该结构中,中间 设备作为独立的设备分别与主机和存储设备相连。主机101通过USB端口 102与中间设备连接,中间设备通过USB接口引擎103解 析主机101发送的命令以及USB存储设备106返回的信息;具体的解析机制通过输入命令 过滤模块104和返回结果过滤模块105完成。输入命令过滤模块104和返回结果过滤模块105是本发明中间设备的核心模块, 输入命令过滤模块104负责对主机101发送的命令进行解析,并能够根据需要对主机101 发送的命令进行修改,生成新的命令后再发送至USB存储设备106 ;返回结果过滤模块105 负责对USB存储设备106响应的信息进行过滤,如芯片的型号、版本、生产厂商、存储设备类 型等;如果用户对该设备进行了虚拟划分,则该模块将过滤掉USB存储设备106返回的原始 设备信息,而将用户设置的逻辑设备配置信息予以返回至主机,使用户在主机端看见的是 划分后的逻辑设备而不是该USB存储设备的原始信息。图2是本发明以USB移动设备进行虚拟划分时的流程图,其实施的步骤如下存储设备通过中间设备与主机进行相连;中间设备接收主机发送给存储设备的命令,并将其传递至存储设备;某些命令也可以在中间设备里直接完成,而不需要经过存储设备,比如,在主机询 问某个LUN设备的大小时,中间设备可以根据在内存的虚拟分区信息表,直接返回结果。又 例如,如果主机尝试向某个标为只读的LUN设备写入时,直接返回出错信息。中间设备也可能把主机发来的命令进行修改,然后才传递给存储设备。例如,主机 尝试读取某个LUN设备的信息时,中间设备把开始扇区加上虚拟分区的位移,得到在存储 设备上的真实扇区数。存储设备接收主机发送的命令,根据存储设备与主机间的通信协议,返回处理结 果;所述存储设备返回的结果包括存储设备芯片信息、坏块地址、存储设备类型;中间设备对存储设备返回的结果进行处理,过滤掉存储设备返回的原始信息,根 据预先设置的逻辑设备配置信息,将存储设备虚拟为一个或多个逻辑单元号LUN ;中间设备将处理后的一个或多个逻辑单元号LUN信息返回至主机;存储设备在主机端显示为一个或多个不同类型的设备。其中,中间设备与主机、中间设备与存储设备之间通过接口协议传输数据;接口协 议包括但不限于ATA、SATA、PATA、SCSI、MMC、SD、TF、USB、IEEE1394、蓝牙;中间设备负责解析不同存储设备的芯片信息,并判断存储设备的原始类型;所述 原始类型是指所述存储设备未被虚拟划分之前的设备类型。中间设备对存储设备虚拟划分后,生成逻辑设备配置信息表,并将该表存储于存 储设备中;中间设备通过读取逻辑设备配置信息表,对虚拟划分后的逻辑设备进行操作。中间设备从存储设备中读取配置信息表。配置信息表是由专门的软件,在原始模 式下写入存储设备的。中间设备利用配置信息表对存储设备进行虚拟划分。当主机通过中间设备与USB移动存储设备连接后,主机则通过201发出USB控制 命令,中间设备则通过202接收主机发送的USB命令,接收该命令后,中间设备通过USB接口引擎将其转至104输入命令过滤模块,对主机发送的命令进行处理,处理时通过203进行 判断。如果有些功能可以在中间设备实现,则无需将命令传至USB存储设备,中间设备处理 后将结果直接返回给主机;如果中间设备无法处理,则将命令传递至USB存储设备。204进 行进一步判断,如果主机此时发送的命令中没有涉及对USB存储设备进行虚拟划分、修改 逻辑设备配置信息等,则中间设备直接将主机发送的命令通过206传送至USB移动存储设 备;如果主机此时发送的命令中包含对USB存储设备进行虚拟划分、修改逻辑设备配置信 息等,则中间设备需要通过205对主机发送的命令进行修改,生成可以对USB移动存储设备 进行虚拟划分的命令,再通过206发送至USB设备。207为USB设备接到主机发送的原始命令或经过中间设备修改过的命令后,对USB 存储设备进行相应的处理,并返回相应的结果。208为中间设备接收USB设备返回的结果,并通过209对USB返回的结果进行判 断。如果返回的结果不需要修改,则直接将USB设备返回的结果通过211发送至主机;如果 需要对返回的结果进行修改,则通过105返回结果过滤模块对USB设备返回的结果进行过 滤,通过210修改USB返回的结果,过滤完毕后再通过211将结果返回至主机。最终主机通过212获得USB移动存储设备显示的运行结果。图3是本发明的另一个优选实施例,该图是以存储卡为例进行虚拟划分的原理结 构图,其结构构成依然是将中间设备作为独立模块。在实际应用中,用户的存储终端并不限于USB接口的设备,还有很多存储卡,这些 存储卡可以为各种移动设备提供扩展存储功能。例如,移动终端中可以通过存储卡扩展存 储空间,常见的存储卡包括SD、MMC、TF卡等。再例如很多数码相机、MP3、MP4等数码设备也 可以通过存储卡扩展存储空间。随着存储卡容量的不断增大,如何充分利用这些存储卡的空间,将其虚拟划分为 多个设备,也将能大大地方便用户的需要。例如,用户手中只有SD卡,但是需要完成DVD相 关功能,而用户的手提电脑中又没有DVD光驱,此时,便可以将SD卡虚拟划分,将其一部分 空间虚拟划分为DVD驱动器。本发明具体实施时依然通过中间设备建立主机与存储卡之间的连接,在该实施例 中主机通过USB端口与中间设备一端进行连接,中间设备另一端通过存储卡接口与存储卡 进行连接。中间设备通过303USB端点控制模块对主机发送的命令进行处理,通过301虚拟 分区处理模块对存储卡的存储空间进行虚拟划分,并通过302USB端点数据传输模块对主 机和存储卡之间的数据进行传输。例如,用户需要借用SD卡实现DVD光驱的功能,此时用户可以将SD卡插入至本发 明的中间设备上,并将中间设备通过USB接口连接至主机上。连接成功后,用户可以通过桌 面PC或移动PC或嵌入式设备等对连接的SD卡进行虚拟划分。在划分的过程中,用户根据 需要先将SD卡划分为几个分区,如3个分区,然后再设置每个分区的设备类型及属性信息, 划分完毕后进行保存,此时用户虚拟划分的逻辑设备信息便保存在SD卡上。主机操作系统 会根据已有的分区标识,以字母顺序对用户新设置的分区进行顺序排列。例如,主机运行的 是Windows操作系统,且已经有C、D、E分区,用户设置完后,系统便会显示为C、D、E、F、G、 H,同时显示用户设置的逻辑设备的类型,如F为⑶-ROM、G为DVD-ROM、H硬盘存储区。设置完毕后,用户便可以将相关程序或数据存储至SD卡对应的逻辑设备中,如将必须从光盘启动的程序复制到DVD-ROM中,当用户需要时,便可以将SD卡通过中间设备接 至主机上,然后运行SD卡DVD-ROM中的安装程序或其他程序。用户也可以将SD卡的某个分区设置成加密的类型,这样用户便可以将一些重要 的数据存储至SD卡的加密设备中,以提高数据的安全性。图4是本发明方法虚拟分区在磁盘上存储的数据结构图401为数据头标识,即传送数据的头标识。数据头标识用于标识配置信息的存在。 如果标识不匹配,就说明这个设备还没有被正确配置,后面的字段也就不能使用了。在数据 传送过程中,除了要传我们原本希望传送的数据之外,为了保证我们希望传送的数据能有 序、可靠、完整的传送,我们要设计系统能够自动地插入一些额外的数据,这些数据称之为 数据头。因此,在传送的数据结构中便需要对数据头进行标识,使接收方获知哪些是原始数 据,哪些是标识数据。402为版本号,即本发明方法设计的系统的当前版本号,版本号由二至四个部分组 成主版本号、次版本号、内部版本号和修订号。主版本号和次版本号是必选的;内部版本 号和修订号是可选的,但是如果定义了修订号部分,则内部版本号就是必选的。所有定义的 部分都必须是大于或等于0的整数。403为第一个分区数据的位移,它指向虚拟分区表的开始位置。即检查待虚拟划分 的物理存储设备,根据用户的设置,查看其有效的可以用空间,并记住虚拟划分的每个分区 的物理空间大小,尤其要记住第一个分区的地址位移,通过该位移确定第一个分区的地址 以及其他分区的首地址。404为分区的数目,即用户设置的待划分的分区数目。405为数据CRC验证码,即循环冗余码校验,英文名称为CyclicalRedundancy Check,简称CRC。它是利用除法及余数的原理来作错误侦测(Error Detecting)的。实际 应用时,虚拟划分程序计算出CRC值并随数据一同发送给存储设备,存储设备对收到的数 据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通讯出现错误。在实际应用中,CRC又可分为以下几种标准①CRC-12码;②CRC-16码; ③CRC-CCITT码;④CRC-32码。CRC-12码通常用来传送6-bit字符串。CRC-16及CRC-CCITT 码则用是来传送8-bit字符,其中CRC-16为美国采用,而CRC-CCITT为欧洲国家所采用。 CRC-32码大都被采用在一种称为Point-to-Point的同步传输中。下面以最常用的CRC-16为例来说明其生成过程。CRC-16码由两个字节构成,在 开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或,之后 对CRC寄存器从高到低进行移位,在最高位(MSB)的位置补零,而最低位(LSB,移位后已经 被移出CRC寄存器)如果为1,则把寄存器与预定义的多项式码进行异或,否则如果LSB为 零,则无需进行异或。重复上述的由高至低的移位8次,第一个8-bit数据处理完毕,用此 时CRC寄存器的值与下一个8-bit数据异或并进行如前一个数据似的8次移位。所有的字 符处理完成后CRC寄存器内的值即为最终的CRC值。下面为CRC的计算过程1.设置CRC寄存器,并给其赋值FFFF (hex)。2.将数据的第一个8-bit字符与16位CRC寄存器的低8位进行异或,并把结果存 入CRC寄存器。
3. CRC寄存器向右移一位,MSB补零,移出并检查LSB。4.如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多项式码相异或。5.重复第3与第4步直到8次移位全部完成。此时一个8_bit数据处理完毕。 6.重复第2至第5步直到所有数据全部处理完成。7.最终CRC寄存器的内容即为CRC值。常用的CRC循环冗余校验标准多项式如下CRC(16 位)=X16+X15+X2+1CRC(CCITT) = X16+X12+X5+1CRC (32 位)=X32+X26+X23+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1以CRC(16位)多项式为例,其对应校验二进制位列为1 1000 00000000 0101。本发明中列出的标准校验多项式都含有(X+1)的多项式因子;各多项式的系数均 为二进制数,所涉及的四则运算仍遵循对二取模的运算规则。对二取模的四则运算指参与运算的两个二进制数各位之间凡涉及加减运算时均 进行 X0R 异或运算,即1X0R 1 = 0,0X0R 0 = 0,1X0R 0=1)406为其他扩展信息,即本发明方法中用于产品更新及方法改进后的一些预留扩
展{曰息。407为虚拟分区设备类型,该字段描述了用户设置的虚拟分区的设备类型,如软 驱、⑶-R0M、DVD_R0M、ZIP等,在设置时,用户通过直观的设备类型进行选择,但设置完毕后, 在该字段通过数字或字符代替用户设置的设备类型。例如可以将001表示为软驱、010表示 为 CD-R0M、011 表示为 DVD-ROM、100 表示为 ZIP。408为虚拟分区开始扇区的LBA值,LBA(Logical Block Addressing)为逻辑块寻 址模式。在LBA模式下,我们知道硬盘上的一个数据区域由它所在的磁头、柱面(也就是磁 道)和扇区所唯一确定。在LBA地址中,地址不表示存储设备的实际物理地址(柱面、磁头 和扇区),LBA编址方式将CHS三维寻址方式转变为一维的线性寻址,将存储设备所有的物 理扇区的C/H/S编号通过一定的规则转变为一线性的编号,系统效率得到大大提高,避免 了烦琐的磁头/柱面/扇区的寻址方式。在访问存储设备时,再将这种逻辑地址转换为实 际存储设备的物理地址。LBA与C/H/S之间的转换设NS为每磁道扇区数,NH为磁头数,C、H、S分别表示磁盘的柱面、磁头和扇区编 号,LBA表示逻辑扇区号,div为整除计算,mod为求余计算,则LBA = NHXNSXC+NSXH+S-1 ;C = (LBA div NS)div NH ;H = (LBA div NS)mod NH ;S = (LBA mod NS)+1例如LBA = 0 贝丨J CHS = 0/0/1从C/H/S到LBA的计算公式LBA = (C-CS) *PH*PS+ (H-HS) *PS+ (S~SS)409为虚拟分区的扇区数,用户设置完第一个虚拟分区后,计算得到的扇区总数。410为虚拟分区扩展信息,该字段用于虚拟分区的其他应用。
411为第二个虚拟分区,这一分区的数据结构与第一分区的数据结构相同。412为第N个虚拟分区,如果用户设置了 N个虚拟分区,则这N个虚拟分区具有相 同的数据结构。图5为本发明查询逻辑设备配置信息的方法,包括以下步骤501主机发出INQUERY命令;502在缓存中检查配置信息表;503判断配置信息表是否已经缓存;如果配置信息表没有缓存,则通过504从物理存储设备特定位置,该特定位置一 般为0扇区,其他扇区也可以,读取配置信息表;并通过505把配置信息表缓存起来;如果配置信息表已缓存,506根据配置信息表,生成INQUERY信息表;507则将结果返回给主机;508为主机获得运行结果。图6是本发明一种通过READ/WRITE命令修改配置信息表的方法,包括以下步骤601 主机发出 READ/WRITE 命令;602在缓存中检查配置信息表;603判断配置信息是否已经缓存;如果配置信息表没有缓存,则604从物理存储设备特定位置,一般为0扇区,其他 扇区也可以,读取配置信息表;并通过605把配置信息表缓存起来;如果配置信息表已缓存,则通过606修改原来的READ/WRITE命令;然后通过607把虚拟LUN的位移加到READ/WRITE命令的开始扇区;通过608把命令发给物理存储设备;609为物理存储返回操作结果;最后通过610把结果返回给主机。本发明通过具体实施例进行说明,本领域技术人员应当明白,在不脱离本发明范 围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或具体情况, 可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实 施例,而应当包括落入本发明权利要求范围内的全部实施方式。
权利要求
一种存储设备虚拟划分的方法,其特征在于,包括以下步骤通过中间设备将一个物理存储设备虚拟划分为一个或多个分区,每个分区虚拟为一个独立的逻辑设备;所述虚拟划分的工作模式分为原始模式和虚拟模式;设置每个逻辑设备的类型和属性信息,生成逻辑设备配置信息表;将逻辑设备配置信息表存储于所述物理存储设备中,通过修改所述逻辑设备配置信息表,实现对逻辑设备功能的变更。
2.如权利要求1所述一种存储设备虚拟划分的方法,其特征在于所述原始模式即编程模式,存储设备上的原始数据允许被访问,通过软件程序向存储 设备写入逻辑设备配置信息;所述虚拟模式即工作模式,存储设备虚拟为多个设备,配置信息不允许被访问; 所述原始模式和虚拟模式的转换通过物理/软件的开关,或者通过接入/移除中间设 备来实现。
3.如权利要求1所述一种存储设备虚拟划分的方法,其特征在于所述中间设备与主机、中间设备与存储设备之间通过接口协议传输数据;所述接口协 议包括但不限于ATA、SATA、PATA、SCSI、MMC、SD、TF、USB、IEEE1394、蓝牙;所述逻辑设备的类型包括但不限于TVTRAN1、软盘驱动器、硬盘驱动器、光盘驱动器、 不同操作系统分区;所述逻辑设备的属性包括但不限于只读、只写、可读可写、加密、压缩; 所述TVTRAN1是一种虚拟的视频添加设备,用于实现用户与视频之间的互动功能。
4.一种过滤存储设备协议信息的方法,其特征在于,包括以下步骤 存储设备通过中间设备与主机进行相连;中间设备接收主机发送给存储设备的命令,并将其传递至存储设备; 存储设备接收主机发送的命令,根据存储设备与主机间的通信协议,返回处理结果;所 述存储设备返回的结果包括存储设备芯片信息、坏块地址、存储设备类型;中间设备对存储设备返回的结果进行处理,过滤掉存储设备返回的原始信息,根据预 先设置的逻辑设备配置信息,将存储设备虚拟为一个或多个逻辑单元号LUN ; 中间设备将处理后的一个或多个逻辑单元号LUN信息返回至主机; 存储设备在主机端显示为一个或多个不同类型的设备。
5.如权利要求4所述,一种过滤存储设备协议信息的方法,其特征在于所述中间设备与主机、中间设备与存储设备之间通过接口协议传输数据;所述接口协 议包括但不限于ATA、SATA、PATA、SCSI、MMC、SD、TF、USB、IEEE1394、蓝牙;所述中间设备负责解析不同存储设备的芯片信息,并判断存储设备的原始类型;所述 原始类型是指所述存储设备未被虚拟划分之前的设备类型。
6.如权利要求4所述,一种过滤存储设备协议信息的方法,其特征在于所述中间设备对存储设备虚拟划分后,生成逻辑设备配置信息表,并将该表存储于存 储设备中;所述中间设备通过读取逻辑设备配置信息表,对虚拟划分后的逻辑设备进行操作。
7.一种逻辑设备配置信息的数据结构表达方法,其特征在于 所述逻辑设备配置信息的内容包括基础信息和分区信息;所述基础信息的字段包括但不限于 数据头标识,用于标识配置信息的存在;版本号,用于标识设备的当前版本号,版本号由二至四个部分组成主版本号、次版本 号、内部版本号和修订号;第一个分区数据的位移,用于指向虚拟分区表的开始位置; 分区的数目,设置的待划分的分区数目; 数据CRC验证码,即循环冗余码校验;其他扩展信息,用于产品更新及方法改进后的一些预留扩展信息; 所述分区信息的字段包括但不限于 虚拟分区设备类型,用于描述设置的虚拟分区的设备类型;虚拟分区开始扇区的LBA值,所述LBA(Logical Block Addressing)为逻辑块寻址模 式,通过LBA值确定虚拟分区开始扇区的地址;虚拟分区的扇区数,设置完第一个虚拟分区后,计算得到的扇区总数; 虚拟分区扩展信息,用于虚拟分区的其他扩展应用;所述各虚拟分区的信息具有相同的结构和字段,虚拟分区的个数由设置的分区的数目 决定。
8.一种写入逻辑设备配置信息的方法,其特征在于,包括以下步骤 通过专门软件把物理存储设备设置为原始模式;专门软件从物理存储设备特定的位置,O扇区或其他扇区读取现有的配置信息表,并将 所述配置信息表的信息显示给主机;主机通过专门软件,增加、删除或修改现有的信息表; 专门软件把新的信息写回物理存储设备; 然后将物理存储设备设置为工作模式。
9.一种查询逻辑设备配置信息的方法,其特征在于,包括以下步骤 主机发出INQUERY命令;检查配置信息表是否已经缓存;如果配置信息表没有缓存,从物理存储设备特定位置,O扇区或其他扇区读取配置信息 表,并把配置信息表缓存起来;如果配置信息表已缓存,根据配置信息表,生成INQUERY信息表; 将结果返回给主机。
10.一种通过READ/WRITE命令修改配置信息表的方法,其特征在于,包括以下步骤 主机发出READ/WRITE命令;检查配置信息表是否已经缓存;如果配置信息表没有缓存,从物理存储设备特定位置,0扇区或其他扇区读取配置信息 表,并把配置信息表缓存起来;如果配置信息表已缓存,修改原来的READ/WRITE命令,把虚拟LUN的位移加到READ/ WRITE命令的开始扇区;然后把命令发给物理存储设备; 物理存储设备返回操作结果;把 结果返回给主机。
全文摘要
本发明的优选实施例提供了一种将存储设备虚拟划分为多个设备的方法。该方法在现有的主机和存储设备之间添加一个中间设备,通过该中间设备可以实现对现有的物理存储设备进行虚拟划分,将其划分为多个逻辑设备。这一方法的实施可以将现有的不同种类的存储设备进行集成,使用户只需一个存储设备便能拥有多个不同的存储设备的功能。本发明的有益效果在于在使用方面,用户可以通过本发明提供的方法,根据需要对存储设备进行任意的虚拟划分,以满足不同用户的个性化需求;在量产方面,本发明将屏蔽不同生产商的量产方法,构建一个统一的平台,极大地降低量产的生产成本,同时使存储设备的功能得到更广泛的应用,其市场应用前景无可估量。
文档编号G06F3/06GK101882058SQ20101018326
公开日2010年11月10日 申请日期2010年5月26日 优先权日2010年5月26日
发明者孟智平, 李斌, 郭海锋 申请人:孟智平
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1