一种磁盘存储空间管理方法、装置及存储设备技术领域
本发明涉及存储技术,尤其涉及一种磁盘存储空间管理方法、装置及存储
设备。
背景技术
如今,人类早已步入信息时代。各种电子设备,如智能手机、PC、数码像
机等,与人们的生活密切相关。而随着蓝光视频、无损音乐、高像素照片等的
出现,家庭数据量出现了大规模地增长。因此,对家庭专用存储设备的需求日
渐增强。
软RAID(RedundantArraysofIndependentDisks,磁盘阵列),是指软
件生成的磁盘阵列。通过把多个块设备(如磁盘、磁盘分区、逻辑卷等)做为
成员,经过条带化等技术生成一种新的具有数据保护功能的块设备。具体来说
是指Linux系统中利用mdadm命令带“-C”或者“-create”参数生成的块设备,
以下简称RAID。
家庭用户有时希望既把家中的旧硬盘交由存储系统进行统一管理,以便利
用存储系统的各种上层应用程序对磁盘进行访问,又保留旧硬盘中的数据。这
个旧有磁盘可能为如下情形:可能是从Windows、Linux、MAC等操作系统上拔
下来的磁盘;可能是从我们的另一套家庭存储设备上拔下来的磁盘;可能是上
面两种情况任意数量(在物理槽位支持的范围内)磁盘的混合。
因为RAID是基于多个磁盘分区的,而一个磁盘可以划分为多个分区的,
所以,一旦磁盘发生变动,如损坏、插、拔,就会同时影响到多个RAID,如
果RAID的磁盘成员越多,那受影响的RAID也更多。
一个RAID设备构建出来后,MD(MultipleDevices,多台设备)驱动是通
过主、次设备号来管理RAID成员的。一个磁盘,拔出去以后,再插回来,这
时虽然还是同一个磁盘,磁盘序列号未变,但磁盘中的原有的分区可能已经被
删除、修改或者重新划分,且无论家庭专用存储设备的系统在识别时,磁盘分
区的次设备号是否与原来一致,上述情况都是MD驱动无法处理的。对于全新
的磁盘,或者说数据不需要保留的磁盘,可以直接清除掉盘内的数据,按我们
的方式进行管理;但对于用户的旧有磁盘而言,磁盘(或者其分区)一旦成为
RAID的成员,那么,磁盘里的数据会全部丢失。如何保留多种多样的旧有磁
盘中的数据,并对磁盘进行统一管理,提供给用户访问,也是需要解决的问题。
所以,有必要在管理磁盘存储空间时主动感知这些变化,精准地识别出RAID
的各个成员,并对RAID进行适当的处理。
发明内容
有鉴于此,本发明提供一种磁盘存储空间管理方法、装置及存储设备,能
够对存储设备磁盘的变化进行感知,以便用户保留旧有磁盘中的数据。
基于上述目的本发明提供的一种磁盘存储空间管理方法,包括如下步骤:
识别磁盘插入存储设备的操作;
根据磁盘自身携带的元数据和文件系统,识别新插入磁盘的是否携带数据;
当新插入的磁盘携带数据时,根据用户的指令,保留新插入磁盘中的数据,
并将新插入磁盘中的文件系统在存储设备上挂载成共享目录。
可选的,根据磁盘自身携带的元数据、识别新插入磁盘是否携带数据的步
骤具体包括:
判断磁盘是否携带元数据,若磁盘携带元数据,则识别磁盘的携带数据;
若磁盘不携带元数据,但具有文件系统,则识别磁盘携带数据。
所述将新插入磁盘中的文件系统在存储设备上挂载成共享目录的步骤具
体包括:
若新插入的磁盘携带元数据,将新插入磁盘的磁盘阵列RAID中的文件系
统挂载成共享目录;
若新插入的磁盘不携带元数据但携带文件系统,将新插入磁盘的文件系统
挂载成共享目录。
可选的,保留新插入磁盘中的数据的步骤具体包括:
扫描存储设备的所有磁盘,得到系统中当前状态下的分区列表;
若新插入的磁盘携带元数据,则根据新插入磁盘所携带的元数据,获得所
述新插入磁盘中的磁盘阵列RAID成员的分区通用唯一识别码UUID;根据所
述分区列表和所述分区通用唯一识别码UUID,查找到所述分区通用唯一识别
码UUID对应的系统当前状态下的分区;在所述存储设备上,重新组装出新插
入磁盘中的磁盘阵列RAID;根据重新组装出的RAID设备挂载出共享目录;
若新插入的磁盘不携带元数据,则将分区列表中的分区挂载成共享目录。
可选的,根据重新组装出的RAID设备挂载出共享目录的步骤具体包括:
当磁盘所携带的元数据中包含的元数据通用唯一识别码UUID与存储设
备的系统通用唯一识别码UUID一致时,把重新组装出的磁盘阵列RAID挂载
成存储空间,然后从存储空间中恢复出共享目录;
当磁盘所携带的元数据中包含的元数据通用唯一识别码UUID与存储设
备的系统通用唯一识别码UUID不一致时,把重新组装出的磁盘阵列RAID挂
载成共享目录。
可选的,当达到设定的创建存储空间触发条件或接收到用户发送的存储空
间创建指令时,执行如下步骤:
选中存储设备的空白磁盘,并对选中的空白磁盘进行分区,得到新创建的
磁盘分区;
以新创建的磁盘分区为单位,创建软磁盘阵列RAID;
在所述软磁盘阵列RAID上创建文件系统;
将所述软磁盘阵列RAID信息连同空白磁盘的元数据标识保存到空白磁
盘的元数据中,以更新空白磁盘的元数据;
将更新后的空白磁盘的元数据保存在存储设备的系统配置文件中。
可选的,以新创建的磁盘分区为单位、创建软磁盘阵列RAID的步骤具体
包括:
在选中的空白磁盘上构建第一分区,再以第一分区为成员构建磁盘阵列
RAID,作为可靠存储空间;并在选中的空白磁盘上构建第二分区,再以第二
分区为成员构建磁盘阵列RAID,作为不可靠存储空间;
所述可靠存储空间采用具有数据冗余能力的方式存储数据,使用的磁盘阵
列RAID包括:RAID1、或RAID5、或RAID6、或RAID10;所述不可靠存储
空间不具有数据冗余能力,使用的磁盘阵列RAID包括:RAID0、或线性式存
储LINEAR。
可选的,所述方法还包括:
接收到删除存储空间的指令;
根据所述删除存储空间的指令,卸载存储空间;
停止需要删除的存储空间对应的磁盘阵列RAID;
清除磁盘阵列RAID中的各个磁盘的磁盘阵列RAID超级块信息和元数据;
在系统配置文件中删除所述存储空间对应的元数据;
若存储设备中不存在其它磁盘阵列,在系统配置文件中删除系统标识。
可选的,所述方法还包括:
接收到删除磁盘的指令;
卸载待删除的磁盘上所有的文件系统;
若待删除的磁盘的元数据标识与存储设备的元数据标识不同,则停止待删
除磁盘上的磁盘阵列RAID,清除待删除磁盘上的磁盘阵列RAID超级块信息
以及其携带的元数据信息。
可选的,将新插入磁盘本身的磁盘阵列RAID成员在存储设备上挂载成共
享目录之后,还包括:
使用所述共享目录,在存储设备已有磁盘和新插入的磁盘之间通过磁盘接
口传输数据。
同时,本发明还提供一种磁盘存储空间管理装置,包括:
插入操作识别模块:用于识别磁盘插入存储设备的操作;
数据识别模块:用于根据磁盘自身携带的元数据和文件系统,识别新插入
磁盘的是否携带数据;
数据保留模块:用于当新插入的磁盘携带数据时,根据用户的指令,保留
新插入磁盘中的数据;
目录挂载模块:用于将新插入磁盘中的文件系统在存储设备上挂载成共享
目录。
可选的,所述数据识别模块具体包括:
第一识别单元:用于当确定磁盘携带元数据,则识别磁盘的携带数据;
第二识别单元:用于当确定磁盘不携带元数据,但具有文件系统,则识别
磁盘携带数据。
可选的,所述目录挂载模块具体包括:
第一共享目录挂载单元:用于在新插入的磁盘携带元数据的情况下,将新
插入磁盘的磁盘阵列RAID中的文件系统挂载成共享目录;
第二共享目录挂载单元:用于在新插入的磁盘不携带元数据但携带文件系
统的情况下,将新插入磁盘的文件系统挂载成共享目录。
可选的,所述数据保留模块具体包括:
分区列表获得模块:用于扫描存储设备的所有磁盘,得到系统中当前状态
下的分区列表;
通用唯一识别码UUID获取单元:用于当新插入的磁盘携带元数据时,则
根据新插入磁盘所携带的元数据,获得所述新插入磁盘中的磁盘阵列RAID成
员的分区通用唯一识别码UUID;并触发分区查找单元;
分区查找单元:用于根据所述分区列表和所述分区通用唯一识别码UUID,
查找到所述分区通用唯一识别码UUID对应的系统当前状态下的分区;并触发
RAID组装单元;
RAID组装单元:用于在所述存储设备上,重新组装出新插入磁盘中的磁
盘阵列RAID;并触发共享目录第一挂载单元;
共享目录第一挂载单元:用于根据重新组装出的RAID设备挂载出共享目
录;
共享目录第二挂载单元:用于若新插入的磁盘不携带元数据,则将分区列
表中的分区挂载成共享目录。
可选的,所述共享目录第一挂载单元具体包括:
存储空间挂载子单元:用于当磁盘所携带的元数据中包含的元数据通用唯
一识别码UUID与存储设备的系统通用唯一识别码UUID一致时,把重新组装
出的磁盘阵列RAID挂载成存储空间,然后触发共享目录回复子单元;
共享目录恢复子单元:用于从存储空间中恢复出共享目录;
共享目录挂载子单元:用于当磁盘所携带的元数据中包含的元数据通用唯
一识别码UUID与存储设备的系统通用唯一识别码UUID不一致时,把重新组
装出的磁盘阵列RAID挂载成共享目录。
可选的,所述装置还包括:
空白磁盘分区模块:用于当达到设定的创建存储空间触发条件或接收到用
户发送的存储空间创建指令时,选中存储设备的空白磁盘,并对选中的空白磁
盘进行分区,得到新创建的磁盘分区;
软磁盘阵列RAID创建模块:用于以新创建的磁盘分区为单位,创建软磁
盘阵列RAID;
文件系统创建模块:用于在所述软磁盘阵列RAID上创建文件系统;
元数据更新模块:用于将所述软磁盘阵列RAID信息连同空白磁盘的元数
据标识保存到空白磁盘的元数据中,以更新空白磁盘的元数据;
元数据保存模块:用于将更新后的空白磁盘的元数据保存在存储设备的系
统配置文件中。
可选的,所述软磁盘阵列RAID创建模块具体包括:
可靠分区构建单元:用于在选中的空白磁盘上构建第一分区;
可靠存储空间构建单元:用于以第一分区为成员构建磁盘阵列RAID,作
为可靠存储空间;
不可靠分区构建单元:用于在选中的空白磁盘上构建第二分区;
不可靠存储空间构建单元:以第二分区为成员构建磁盘阵列RAID,作为
不可靠存储空间;
所述可靠存储空间采用具有数据冗余能力的方式存储数据,使用的磁盘阵
列RAID包括:RAID1、或RAID5、或RAID6、或RAID10;所述不可靠存储
空间不具有数据冗余能力,使用的磁盘阵列RAID包括:RAID0、或线性式存
储LINEAR。
可选的,所述装置还包括:
删除存储空间指令接收模块:用于接收到删除存储空间的指令;
存储空间卸载模块:用于根据所述删除存储空间的指令,卸载存储空间;
磁盘阵列RAID停止模块:用于停止需要删除的存储空间对应的磁盘阵列
RAID;
第一磁盘阵列RAID信息清除模块:清除磁盘阵列RAID中的各个磁盘的
磁盘阵列RAID超级块信息和元数据;
元数据删除模块:用于在系统配置文件中删除所述存储空间对应的元数据;
系统标识删除模块:用于若存储设备中不存在其它磁盘阵列,在系统配置
文件中删除系统标识。
可选的,所述装置还包括:
删除磁盘指令接收模块:用于接收到删除磁盘的指令;
文件系统卸载模块:用于卸载待删除的磁盘上所有的文件系统;
磁盘阵列RAID停止模块:用于当待删除的磁盘的元数据标识与存储设备
的元数据标识不同时,停止待删除磁盘上的磁盘阵列RAID;
第二磁盘阵列RAID信息清除模块:用于清除待删除磁盘上的磁盘阵列
RAID超级块信息以及其携带的元数据信息。
可选的,所述装置还包括:使用所述共享目录,在存储设备已有磁盘和新
插入的磁盘之间通过磁盘接口传输数据。
进一步,本发明还提供一种存储设备,包括用于存储数据的磁盘,还包括
本发明任意一项实施例所提供的磁盘存储空间管理装置。
从上面所述可以看出,本发明提供的磁盘存储空间管理方法、装置及存储
设备,当存储设备新插入磁盘时,若新插入的磁盘含有数据,可以把磁盘中的
文件系统以共享目录的形式呈现给用户使用;也可以在磁盘上构建软RAID,
挂载成新的存储空间,然后创建共享目录给用户使用。这样不仅能让用户充分
利用家中旧有的磁盘,而且当用户需要在我们的设备上进行数据迁入、迁出时,
会非常的方便。
附图说明
图1为本发明实施例的方法流程示意图;
图2为本发明实施例的磁盘类型转移示意图;
图3A、3B为本发明实施例的磁盘存储空间划分示意图;
图4为本发明实施例的装置结构示意图。
具体实施方式
为了给出有效的实现方案,本发明提供了下述实施例,以下结合说明书附
图对本发明实施例进行说明。
本发明首先提供一种磁盘存储空间管理方法,包括如图1所示的步骤:
步骤101:识别磁盘插入存储设备的操作;
步骤102:根据磁盘自身携带的元数据和文件系统,识别新插入磁盘的是
否携带数据;
步骤103:当新插入的磁盘携带数据时,根据用户的指令,保留新插入磁
盘中的数据,并将新插入磁盘中的文件系统在存储设备上挂载成共享目录。
从上面所述可以看出,本发明提供的磁盘存储空间管理方法,对含有数据
的磁盘,可以把磁盘中的文件系统以共享目录的形式呈现给用户使用,从而用
户向家庭专用存储设备中插入磁盘时,可以根据自己的需要将磁盘中的数据进
行保留,避免磁盘在变更插放位置时引起内部分区被删除而丢失。
在本发明的具体实施例中,对于连接到家庭专用存储设备上的磁盘赋予元
数据,该元数据中包括用于标识磁盘,使得不同的磁盘插接到存储设备上时能
够通过元数据识别、区分开来。
在本发明一些实施例中,根据磁盘自身携带的元数据、识别新插入磁盘是
否携带数据的步骤具体包括:
判断磁盘是否携带元数据,若磁盘携带元数据,则识别磁盘的携带数据;
若磁盘不携带元数据,但具有文件系统,则识别磁盘携带数据。
在本发明具体实施例中,在存储设备的配置文件中存储系统标识,当磁盘
在该存储设备上建立分区、创建存储空间之后,该存储设备的系统标识会被写
入磁盘的元数据中,作为磁盘的元数据标识,不同存储设备的系统标识一般不
同,因而,根据磁盘的元数据标识,就可以得知磁盘当前携带的数据来源是否
为磁盘新插入的存储设备,从而得知磁盘的类型是否为存储设备自有的磁盘。
在本发明具体实施例中,磁盘元数据包括元数据UUID(UniversallyUnique
Identifier,通用唯一识别码)、RAID信息;所述RAID信息进一步包括RAID
名称、RAID级别、文件系统指示符、RAID成员数、RAID成员大小、以及各
个分区的UUID。其中,RAID名称为磁盘阵列名称,RAID级别可以是LINEAR、
RAID0、RAID1、RAID5、RAID6、RAID10等。RAID成员数、RAID成员大
小用于表示磁盘阵列的分区数、各个分区大小。例如,用大小分别为100、200、
300的三个分区创建一个RAID,则RAID成员数为3,RAID成员大小为100。
在同一磁盘上,各个分区都具有不同的通用唯一识别码UUID。当一磁盘在存
储设备上进行分区、并构建RAID之后,存储设备会赋予该磁盘元数据,并且
磁盘被赋予的元数据UUID与存储设备系统UUID一致,当该磁盘稍后从存储
设备上拔出后,若磁盘没有格式化为空白盘,磁盘的元数据会一直保留在磁盘
上。
在本发明具体实施例中,将插接到存储设备上的磁盘分为数据盘、兼容盘、
用户盘、空白盘。数据盘:包含元数据信息,且元数据标识UUID与当前系统
UUID相匹配;兼容盘:包含元数据信息,但元数据标识UUID与当前系统
UUID不匹配;用户盘:不包含元数据信息,但包含文件系统,数据需要保留;
空白盘:不包含元数据信息,也不包含文件系统。当磁盘插接到存储设备上,
存储设备通过识别磁盘所携带的元数据,判断磁盘的元数据UUID与存储设备
的系统UUID是否一致,若磁盘的元数据UUID与存储设备的系统UUID一致,
那么该磁盘为数据盘;若磁盘具有元数据、但元数据UUID与存储设备的系统
UUID不一致,那么该磁盘为兼容盘,即该磁盘可能是从别的存储设备上拔下
来的,且该磁盘所插接的上一存储设备对该磁盘进行了分区;若磁盘不具有元
数据、但具有文件系统,那么该磁盘为用户盘,即该磁盘可能是从别的存储设
备上拔下来的,别的存储设备可能是例如Windows系统、Linux系统、MacOS
(苹果操作系统)系统等;且该磁盘上次所插接的存储设备在对该磁盘进行分
区或写入数据时没有对该磁盘赋予元数据,从Windows系统、Linux系统、
MacOS系统等系统的存储设备上拔下来的磁盘不可能具备本发明所提出的元
数据;若磁盘不具有元数据或文件系统,那么该磁盘为空白盘,不携带数据,
在插接到新的存储设备上不存在数据丢失的问题。在本发明实施例中,磁盘所
属类型是随着存储空间的管理操作而变化的。磁盘类型的状态转移图如图2
示,图2中,“置于其它存储设备”指的是,采用本发明提供的方法为磁盘赋
予元数据的存储设备,而并非具有现有技术中的Windows、Linux、MacOS等
系统的存储设备。比如,用户的旧有磁盘,经过数据保留,则转变为用户盘;
当用户不想再保留用户盘里的数据时,可以删除用户盘,这时该磁盘则转变为
空白盘,在空白盘上创建存储空间后,该磁盘又转变为数据盘。
在本发明的具体实施例中,所述元数据还包括版本号、校验值、元数据签
名等信息,用于在识别解析元数据时验证元数据的有效性。
磁盘携带数据的情况包括两种:一是,磁盘携带元数据;这时磁盘中携带
的数据是我们自己的设备创建的,磁盘中包含RAID,RAID中再包含文件系
统;二是,磁盘直接携带文件系统;这时磁盘中携带的数据是其它系统(比如
Windows、Linux、MacOS等)创建的。所述将新插入磁盘中的文件系统在存
储设备上挂载成共享目录的步骤具体包括:
若新插入的磁盘携带元数据,将新插入磁盘的磁盘阵列RAID中的文件系
统挂载成共享目录;
若新插入的磁盘不携带元数据但携带文件系统,将新插入磁盘的文件系统
挂载成共享目录。
在本发明一些实施例中,保留新插入磁盘中的数据的步骤具体包括:
扫描存储设备的所有磁盘,得到系统中当前状态下的分区列表;
若新插入的磁盘携带元数据,则根据新插入磁盘所携带的元数据,获得所
述新插入磁盘中的磁盘阵列RAID成员的分区通用唯一识别码UUID;根据所
述分区列表和所述分区通用唯一识别码UUID,查找到所述分区通用唯一识别
码UUID对应的系统当前状态下的分区;在所述存储设备上,重新组装出新插
入磁盘中的磁盘阵列RAID;根据重新组装出的RAID设备挂载出共享目录;
若新插入的磁盘不携带元数据,则将分区列表中的分区挂载成共享目录。
根据重新组装出的RAID设备挂载出共享目录的步骤具体包括:
当磁盘所携带的元数据中包含的元数据通用唯一识别码UUID与存储设
备的系统通用唯一识别码UUID一致时,把重新组装出的磁盘阵列RAID挂载
成存储空间,然后从存储空间中恢复出共享目录;
当磁盘所携带的元数据中包含的元数据通用唯一识别码UUID与存储设
备的系统通用唯一识别码UUID不一致时,把重新组装出的磁盘阵列RAID挂
载成共享目录。
在本发明一些实施例中,当达到设定的创建存储空间触发条件或接收到用
户发送的存储空间创建指令时,执行如下步骤:
选中存储设备的空白磁盘,并对选中的空白磁盘进行分区,得到新创建的
磁盘分区;
以新创建的磁盘分区为单位,创建软磁盘阵列RAID;
在所述软磁盘阵列RAID上创建文件系统;
将所述软磁盘阵列RAID信息连同空白磁盘的元数据标识保存到空白磁
盘的元数据中,以更新空白磁盘的元数据;
将更新后的空白磁盘的元数据保存在存储设备的系统配置文件中。
以新创建的磁盘分区为单位、创建软磁盘阵列RAID的步骤具体包括:
在选中的空白磁盘上构建第一分区,再以第一分区为成员构建磁盘阵列
RAID,作为可靠存储空间;并在选中的空白磁盘上构建第二分区,再以第二
分区为成员构建磁盘阵列RAID,作为不可靠存储空间;
所述可靠存储空间采用具有数据冗余能力的方式存储数据,使用的磁盘阵
列RAID包括:RAID1、或RAID5、或RAID6、或RAID10;所述不可靠存储
空间不具有数据冗余能力,使用的磁盘阵列RAID包括:RAID0、或线性式存
储LINEAR。
在本发明的具体实施例中,可靠的RAID存储空间由不同磁盘的分区构建
而成,可选的RAID级别有RAID1、RAID5、RAID6、RAID10;不可靠的RAID
存储空间由磁盘上单独的一个分区构建,可选的RAID级别有RAID0、LINEAR
(线性式存储)。可靠存储空间的分区大小可以根据需要灵活确定:如可选择
磁盘总容量的30%或者20%;也可设置为一个固定的大小,如300G、500G
等。这里的“可靠”与“不可靠”是以磁盘损坏、丢失的情况来衡量的。可靠
存储空间中的数据,在其存储的这个磁盘中丢失的情况下,还能够在其它磁盘
中找到相同的备份数据。例如,在两个磁盘A、B中构建一个可靠存储空间,
该可靠存储空间由两个磁盘中相同大小的空间或不同大小的空间构成,当数据
存入磁盘A或磁盘B的可靠存储空间时,会同时存入磁盘B或磁盘A的可靠
存储空间,当磁盘A或磁盘B损坏时,磁盘B或磁盘A的可靠存储空间中的
相同备份数据仍然能够调用,从而保证数据存储的可靠性。
在本发明的一种具体实施例中,把元数据放在磁盘最开始的位置,然后每
个磁盘分为两个区,第一个分区占据总容量的一定百分比,例如30%;第二分
区为总容量的70%。可靠存储空间选择RAID1的组合方式,不可靠存储空间
选择RAID0的组合方式。磁盘两两进行组合,根据系统中的磁盘的数量可分
为两种情况:
图3A是系统中共有偶数个磁盘的情形。这时两个磁盘之间可以构建出一
个可靠存储空间,两个不可靠存储空间。可靠存储空间的容量为磁盘容量的
30%,每个不可靠存储空间的容量为磁盘容量的70%。这时的可靠存储空间是
由两个成员组成,具有真正意义上的数据冗余能力。一个磁盘损坏的情况下,
可保证可靠存储空间中的数据不丢失。
图3B是系统中有奇数个磁盘的情形。这时第一个分区仍按RAID1的方式
构建RAID。这时的可靠存储空间只有一个成员,不能做到真正意义上的可靠。
但是,当有新的磁盘插入时,就按偶数个磁盘的策略给可靠存储空间增加新的
成员,实现真正的可靠。也就是说,当有新的磁盘插入存储设备时,将新的磁
盘的30%的存储空间连同图3B中所示的磁盘的第一分区一起,作为可靠存储
空间,新插入磁盘中70%的存储空间连同图3B中所示的磁盘的第二分区,分
别作为不可靠存储空间。
假设一个存储单元由两个磁盘构成,单个磁盘的容量为U,可靠存储空间
采用RAID1的方式,不可靠存储空间采用RAID0的方式。那么:在上述实施
例中,以一个分区为一个存储单位构建RAID,则可同时得到一个可靠存储空
间,两个不可靠存储空间,总的可用空间为:总大小:30%*U+70%*2*U=1.7U。
而如果以一个磁盘为一个存储单位构建RAID,则要么得到一个可靠存储空间;
要么得到一个或者两个不可靠存储空间。如果得到一个可靠存储空间,那么存
储空间总大小为(U+U)*50%=U;如果得到一个或两个不可靠存储空间,
那么存储空间总大小为:U+U=2U。
如果对磁盘的分区更细,那么可同时得到的可靠存储空间个数和不可靠存
储空间个数都会更多,总的可用空间的大小也更灵活。
在本发明一些实施例中,所述方法还包括:
接收到删除存储空间的指令;
根据所述删除存储空间的指令,卸载存储空间;
停止需要删除的存储空间对应的软磁盘阵列RAID;
清除软磁盘阵列RAID中的各个磁盘的磁盘阵列RAID超级块信息和元数
据;
在系统配置文件中删除所述存储空间对应的元数据;
若存储设备中不存在其它磁盘阵列,在系统配置文件中删除系统标识。
在本发明一些实施例中,所述方法还包括:
接收到删除磁盘的指令;
卸载待删除的磁盘上所有的文件系统;
若待删除的磁盘的元数据标识与存储设备的元数据标识不同,则停止待删
除磁盘上的软磁盘阵列RAID,清除待删除磁盘上的磁盘阵列RAID超级块信
息以及其携带的元数据信息。
在本发明一些实施例中,将新插入磁盘本身的磁盘阵列RAID成员在存储
设备上挂载成共享目录之后,还包括:
使用所述共享目录,在存储设备已有磁盘和新插入的磁盘之间通过磁盘接
口传输数据。
在实际应用场景下,用户新购入一款家庭存储设备,但这时用户家中已经
存在较大量的已有数据,如照片、视频、文档等。对于传统的家用NAS(Network
AttachedStorage,网络附加存储)设备,这时只能通过网络的方式或者USB
外接口的方式把已有数据迁入新的存储中心。如果数据量有几百G甚至上T,
那么数据传输将耗费大量的时间。利用本发明能支持用户数据盘的特性,可大
大提高用户数据迁移的效率。
在本发明具体实施例中,首先,在存储设备的已有磁盘上创建好存储空间,
再在存储空间上创建出共享目录;然后把用户数据盘插入存储设备,选择数据
保留,把新插入的用户数据盘挂载成为共享目录。共享目录就是用户可以直接
操作的基本单元,所以,这时只需要在这两种共享目录之间做数据拷贝就行了,
而且这种拷贝就是同一系统上不同磁盘之间的数据对拷,数据传输时间大量缩
短。
对于其它的存储设备,要想把旧磁盘中的数据导入到存储系统中,就需要
先把磁盘接入到另一台计算机,然后让该计算机读取磁盘中的数据,再通过网
络把数据传输到存储系统,最后由存储系统把数据保存到存储空间中。这种方
式数据需要经过计算机的读取、网络传输、存储系统写入的过程,流程冗长,
数据传输效率低。
而本发明上述实施例采用的数据迁移方式,因为在同一个系统上,用户数
据盘与存储空间数据盘之间是共享系统总线(如PCI:PeripheralComponent
Interconnect,外设部件互连标准)的,所以几乎能达到磁盘接口,如SATA(Serial
AdvancedTechnologyAttachment,串行高级技术附件)、IDE(IntegratedDrive
Electronics,集成驱动电子设备)的最大速率。其传输速度上远不是USB接口、
网络接口所能比的。对于支持热插拔的SATA磁盘,还能做到像USB设备一
样方便地即插即用,极大地提高用户的使用感受。
进一步,本发明提供一种磁盘存储空间管理装置,结构如图4所示,包括:
插入操作识别模块:用于识别磁盘插入存储设备的操作;
数据识别模块:用于根据磁盘自身携带的元数据和文件系统,识别新插入
磁盘的是否携带数据;
数据保留模块:用于当新插入的磁盘携带数据时,根据用户的指令,保留
新插入磁盘中的数据;
目录挂载模块:用于将新插入磁盘中的文件系统在存储设备上挂载成共享
目录。
在本发明一些实施例中,所述数据识别模块具体包括:
第一识别单元:用于当确定磁盘携带元数据,则识别磁盘的携带数据;
第二识别单元:用于当确定磁盘不携带元数据,但具有文件系统,则识别
磁盘携带数据。
在本发明一些实施例中,所述目录挂载模块具体包括:
第一共享目录挂载单元:用于在新插入的磁盘携带元数据的情况下,将新
插入磁盘的磁盘阵列RAID中的文件系统挂载成共享目录;
第二共享目录挂载单元:用于在新插入的磁盘不携带元数据但携带文件系
统的情况下,将新插入磁盘的文件系统挂载成共享目录。
在本发明一些实施例中,所述数据保留模块具体包括:
分区列表获得模块:用于扫描存储设备的所有磁盘,得到系统中当前状态
下的分区列表;
通用唯一识别码UUID获取单元:用于当新插入的磁盘携带元数据时,则
根据新插入磁盘所携带的元数据,获得所述新插入磁盘中的磁盘阵列RAID成
员的分区通用唯一识别码UUID;并触发分区查找单元;
分区查找单元:用于根据所述分区列表和所述分区通用唯一识别码UUID,
查找到所述分区通用唯一识别码UUID对应的系统当前状态下的分区;并触发
RAID组装单元;
RAID组装单元:用于在所述存储设备上,重新组装出新插入磁盘中的磁
盘阵列RAID;并触发共享目录第一挂载单元;
共享目录第一挂载单元:用于根据重新组装出的RAID设备挂载出共享目
录;
共享目录第二挂载单元:用于若新插入的磁盘不携带元数据,则将分区列
表中的分区挂载成共享目录。
在本发明一些实施例中,所述共享目录第一挂载单元具体包括:
存储空间挂载子单元:用于当磁盘所携带的元数据中包含的元数据通用唯
一识别码UUID与存储设备的系统通用唯一识别码UUID一致时,把重新组装
出的磁盘阵列RAID挂载成存储空间,然后触发共享目录回复子单元;
共享目录恢复子单元:用于从存储空间中恢复出共享目录;
共享目录挂载子单元:用于当磁盘所携带的元数据中包含的元数据通用唯
一识别码UUID与存储设备的系统通用唯一识别码UUID不一致时,把重新组
装出的磁盘阵列RAID挂载成共享目录。
在本发明一些实施例中,所述装置还包括:
空白磁盘分区模块:用于当达到设定的创建存储空间触发条件或接收到用
户发送的存储空间创建指令时,选中存储设备的空白磁盘,并对选中的空白磁
盘进行分区,得到新创建的磁盘分区;
软磁盘阵列RAID创建模块:用于以新创建的磁盘分区为单位,创建软磁
盘阵列RAID;
文件系统创建模块:用于在所述软磁盘阵列RAID上创建文件系统;
元数据更新模块:用于将所述软磁盘阵列RAID信息连同空白磁盘的元数
据标识保存到空白磁盘的元数据中,以更新空白磁盘的元数据;
元数据保存模块:用于将更新后的空白磁盘的元数据保存在存储设备的系
统配置文件中。
在本发明一些实施例中,所述软磁盘阵列RAID创建模块具体包括:
可靠分区构建单元:用于在选中的空白磁盘上构建第一分区;
可靠存储空间构建单元:用于以第一分区为成员构建磁盘阵列RAID,作
为可靠存储空间;
不可靠分区构建单元:用于在选中的空白磁盘上构建第二分区;
不可靠存储空间构建单元:以第二分区为成员构建磁盘阵列RAID,作为
不可靠存储空间;
所述可靠存储空间采用具有数据冗余能力的方式存储数据,使用的磁盘阵
列RAID包括:RAID1、或RAID5、或RAID6、或RAID10;所述不可靠存储
空间不具有数据冗余能力,使用的磁盘阵列RAID包括:RAID0、或线性式存
储LINEAR。
在本发明一些实施例中,所述装置还包括:
删除存储空间指令接收模块:用于接收到删除存储空间的指令;
存储空间卸载模块:用于根据所述删除存储空间的指令,卸载存储空间;
磁盘阵列RAID停止模块:用于停止需要删除的存储空间对应的磁盘阵列
RAID;
第一磁盘阵列RAID信息清除模块:清除磁盘阵列RAID中的各个磁盘的
磁盘阵列RAID超级块信息和元数据;
元数据删除模块:用于在系统配置文件中删除所述存储空间对应的元数据;
系统标识删除模块:用于若存储设备中不存在其它磁盘阵列,在系统配置
文件中删除系统标识。
在本发明一些实施例中,所述装置还包括:
删除磁盘指令接收模块:用于接收到删除磁盘的指令;
文件系统卸载模块:用于卸载待删除的磁盘上所有的文件系统;
磁盘阵列RAID停止模块:用于当待删除的磁盘的元数据标识与存储设备
的元数据标识不同时,停止待删除磁盘上的磁盘阵列RAID;
第二磁盘阵列RAID信息清除模块:用于清除待删除磁盘上的磁盘阵列
RAID超级块信息以及其携带的元数据信息。
在本发明一些实施例中,所述装置还包括:使用所述共享目录,在存储设
备已有磁盘和新插入的磁盘之间通过磁盘接口传输数据。
进一步,本发明还提供一种存储设备,包括本用于存储数据的磁盘,还包
括本发明任意一项实施例所提供的存储空间管理装置。
应当理解,本说明书所描述的多个实施例仅用于说明和解释本发明,并不
用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特
征可以相互组合。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及
其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。