基于闪存的磁带仿真方法 【技术领域】
本发明属于信息技术领域, 尤其是一种基于闪存的磁带仿真方法。背景技术 随着计算机系统的广泛应用, 用户对计算机数据的保护显得越来越重要。 目前, 保 护数据安全的主要手段是对数据进行定期备份和归档。在备份和归档设备的选择上, 在过 去的很长一段时间里用户通常会选择磁带介质 ( 磁带机、 磁带库 )。 随着磁盘技术的飞速发 展和企业 IT 运维预算的日益缩减, 虚拟磁带库技术应运而生。
传统的虚拟磁带库是利用虚拟磁带库技术, 将磁盘阵列仿真为行业标准的物理磁 带库 / 磁带驱动器, 从而在无需更换现有的磁带备份软件的基础上, 提高介质的访问速度、 可靠性及可用性。这种技术的缺点在于 : 备份到虚拟磁带库中的数据需要移动整个磁盘阵 列, 磁盘阵列是一个 1U、 2U 甚至几 U 的硬件设备, 移动很不方便, 造成数据归档、 数据交换的 局限。
目前, 闪存 (Flash Memory) 可以被仿真成磁盘, 将其当做硬盘、 磁盘阵列使用, 这 种仿真技术存在的问题 : 对于文件的操作特别是大量小文件的操作, 文件的增加、 删除、 修 改操作比较多, 因此对仿真成硬盘、 磁盘阵列的闪存反复读写次数多, 对闪存的写操作频 繁。 对于数据库操作而言也是, 数据库记录的增加、 删除、 修改操作比较频繁, 因此对闪存的 写操作也比较多。而闪存的基本存储单元是页, 并以块为单位进行擦除操作。闪存的写入 操作必须在空白区域进行, 如果目标区域已经有数据, 必须先擦除后写入, 因此擦除操作是 闪存的基本操作。对于大量小文件、 数据库这种频繁小数据量的操作, 那就可能造成 : 一方 面对某一些块的频繁读写而没有有效使用整个闪存空间, 使整个闪存的使用效率低, 另一 方面对某一块写一次同样计为使用了一次, 在同样的使用次数限制下闪存整体使用寿命降 低。
发明内容
本发明的目的在于克服现有技术的不足, 提供一种基于闪存的磁带仿真方法, 该 磁带仿真方法可以将闪存仿真成可以离线保存的磁带, 能够随时拔出离线保存并在另外的 虚拟磁带装置上读出, 既保证了数据的安全, 又方便了用户的使用。
本发明解决现有的技术问题是采取以下技术方案实现的 :
一种基于闪存的磁带仿真方法, 包括基于闪存的磁带仿真数据写入处理方法和基 于闪存的磁带仿真数据读取处理方法, 其中 :
基于闪存的磁带仿真数据写入处理方法包括如下步骤 :
步骤 1 : 装载磁带的步骤 ;
步骤 2 : 设定写入数据偏移量的步骤 ;
步骤 3 : 以虚拟磁带形式向闪存写入数据的步骤 ;
基于闪存的磁带仿真数据读取处理方法包括如下步骤 :步骤 1 : 装载磁带的步骤 ; 步骤 2 : 设定读取数据偏移量的步骤 ; 步骤 3 : 以虚拟磁带形式从闪存中读取数据的步骤。 而且, 所述装载磁带的步骤包括如下处理过程 : (1) 应用模块经对外接口模块向磁带库仿真管理模块发送 SCSI 装载磁带命令 ; (2) 磁带库仿真管理模块检查驱动器状态并进行装载磁带处理 ; (3) 磁带库仿真管理模块经对外接口模块向应用模块返回磁带装载状态。 而且, 所述设定写入数据偏移量的步骤包括如下处理过程 : (1) 应用模块向对外接口模块发送 SCSI 写入命令 ; (2) 对外接口模块设定写入数据偏移量并传送给存储访问控制模块 ; (3) 存储访问控制模块访问闪存指定数据偏移量的位置 ; (4) 存储访问控制模块经对外接口模块向应用模块返回设定写入数据偏移量状态。 而且, 所述以虚拟磁带形式向闪存写入数据的步骤包括如下处理过程 :
(1) 应用模块经对外接口模块向存储访问控制模块发送写入数据命令 ;
(2) 仿真磁带存储池模块向闪存的指定偏移量位置写入数据 ;
(3) 存储访问控制模块经对外接口模块向应用模块返回写入数据状态。
而且, 所述仿真磁带存储池模块向闪存的指定偏移量位置写入数据的过程包括如 下步骤 :
①仿真磁带存储池模块判断闪存是否格式化, 如果未格式化则将闪存格式化后进 入下一步 ;
②检测能否读取闪存的序列号, 如果不能读取则进行出错处理 ;
③读取闪存的序列号及容量, 将闪存的序列号作为磁带的条码, 根据磁带库仿真 管理模块的设置获取磁带的容量 ;
④判断磁带容量是否满足数据写入, 如果容量不够则进行出错处理 ;
⑤按磁带格式记录数据 ;
⑥读取已经记录数据的最后一个块号 ;
⑦从下一个块开始记录数据 ;
⑧每次执行写入操作时均在闪存内的磁带头索引部分中记录数据集元数据 ;
⑨记录数据在磁带中写入的数据终点并在闪存内此带头索引部分记录元数据 ;
⑩通知存储访问控制模块写入完成。
而且, 所述设定读取数据偏移量的步骤包括如下处理过程 :
(1) 应用模块向对外接口模块发送 SCSI 读取命令 ;
(2) 对外接口模块设定读取数据偏移量并传送给存储访问控制模块 ;
(3) 存储访问控制模块访问闪存指定数据偏移量的位置 ;
(4) 存储访问控制模块经对外接口模块向应用模块返回设定读取数据偏移量状 态。
而且, 所述以虚拟磁带形式从闪存中读取数据的步骤包括如下处理过程 :
(1) 应用模块经对外接口模块向存储访问控制模块发送读取数据命令 ;
(2) 仿真磁带存储池模块从闪存中的指定数据偏移量位置读取数据 ;
(3) 存储访问控制模块经对外接口模块向应用模块返回读取数据状态。
而且, 所述仿真磁带存储池模块从闪存中的指定数据偏移量位置读取数据的过程 包括如下步骤 :
①判断能否读取磁带的条码, 如果不能读取则进行出错处理 ;
②读取磁带的条码 ;
③判断条码是否匹配, 如果不匹配则进行出错处理 ;
④读取磁带索引表 ;
⑤按磁带格式读取闪存中的数据 ;
⑥判断是否读到所需数据段的最后位置, 如果不是则循环执行④~⑥ ;
⑦通知存储访问控制模块读取数据完成。
而且, 所述基于闪存的磁带仿真方法, 还包括在数据存取前的闪存入库处理方法 和闪存移动前的闪存出库处理方法, 其中 :
闪存入库处理方法包括如下步骤 :
步骤 1 : 应用模块经对外接口模块向磁带库仿真管理模块发送 SCSI 磁带入库准备 命令 ;
步骤 2 : 磁带库仿真管理模块检查入出口状态 ; 步骤 3 : 磁带库仿真管理模块经对外接口模块向应用模块返回入库准备状态 ; 步骤 4 : 插入热插拔闪存 ; 步骤 5 : 应用模块经对外接口模块向存储访问控制模块发送 SCSI 磁带入库命令 ; 步骤 6 : 存储访问控制模块读取磁带条码和磁带数据格式 ; 步骤 7 : 存储访问控制模块经对外接口模块向应用模块返回磁带入库状态 ; 闪存出库处理方法包括如下步骤 : 步骤 1 : 应用模块经对外接口模块向磁带库仿真管理模块发送 SCSI 磁带出库命令; 步骤 2 : 磁带库仿真管理模块准备需要出库的磁带 ;
步骤 3 : 磁带库仿真管理模块解除磁带锁定并弹出热插拔闪存 ;
步骤 4 : 存储访问控制模块经对外接口模块向应用模块返回磁带出库状态。
本发明的优点和积极效果是 :
1、 本磁带仿真方法将闪存仿真成可以离线保存的磁带, 数据通过虚拟磁带装置线 性写入, 写好数据的闪存可以当成磁带随时拔出离线保存, 用于数据归档、 数据交换, 同时, 仿真成磁带的离线闪存中的数据可以在另一个虚拟磁带装置上读出, 可广泛用于远程数据 保护。
2、 本磁带仿真方法将闪存仿真成可以离线保存的磁带, 充分利用磁带是线性记 录、 能离线的固有特性, 在数据写入时, 磁带的每次数据写入都从下一个块开始记录, 也就 是说只有在写满整个闪存才算对闪存操作一次, 有效提高闪存整体使用寿命 ; 数据删除时, 将数据所在的闪存块做一个标记而没有从闪存上真实的把数据删除, 只有整个闪存的数据 写满后才开始从头记录, 避免了大量小文件、 数据库这种频繁小数据量操作时只针对某一 块频繁读写的弊端, 能充分利用整个闪存空间, 提高闪存的使用效率。
3、 本磁带仿真方法将闪存与磁带技术有机结合, 通过将闪存的序列号当成磁带的 Brocode, 并将闪存的容量当成磁带的容量, 并仿真写保护等磁带属性, 使闪存变成磁带的 操作方式, 提高了闪存性能, 拓展了其适用范围。
4、 本磁带仿真方法将闪存仿真成离线保存的磁带用于数据归档, 对于保存使用率 低且需要长期保存的数据, 比使用磁盘存储更加有效。
5、 本发明将闪存仿真成可以离线的磁带并在另一个虚拟磁带装置上读出, 提高了 数据安全性, 方便了用户的使用, 提高了闪存性能, 延长了闪存的使用寿命, 拓展了其适用 范围。 附图说明
图 1 是磁带虚拟装置的结构示意图 ; 图 2 是基于闪存的磁带仿真数据写入处理流程图 ; 图 3 是闪存仿真磁带存储池模块写入数据处理流程图 ; 图 4 是基于闪存的磁带仿真数据读取处理流程图 ; 图 5 是闪存仿真磁带存储池模块读取数据处理流程图。 图 6 是闪存入库处理流程图 ; 图 7 是闪存出库处理流程图。具体实施方式
以下结合附图对本发明实施例做进一步详述。
一种基于闪存的磁带仿真方法, 是在如图 1 所示的虚拟磁带装置上实现的, 该虚 拟磁带装置包括对外接口模块、 磁带库仿真管理模块、 存储访问控制模块及仿真磁带存储 池模块, 对外接口模块一方面与安装在备份服务器中的应用模块通过 NAS、 iSCSI、 FCSCSI 架构连接在一起, 另一方面与磁带库仿真管理模块、 存储访问控制模块相连接, 存储访问控 制模块还分别与仿真磁带存储池模块及磁带库仿真管理模块相连接。 虚拟磁带装置通过与 备份服务器中的应用模块进行交互式工作实现闪存的磁带仿真处理任务。
基于闪存的磁带仿真方法通过虚拟磁带装置将各种闪存仿真成真实磁带, 其将闪 存的序列号当成磁带的 Brocode, 将闪存的容量当成磁带的容量, 并仿真写保护等磁带属 性。 磁带作为一种线性记录方法, 能从下一个块开始记录, 每次数据写入都从下一个块开始 记录, 数据的删除是将数据所在的闪存块做一个标记而没有从闪存上真实的把数据删除, 只有整个闪存的数据写满后才开始从头记录。
一种基于闪存的磁带仿真方法, 包括基于闪存的磁带仿真数据写入处理方法、 基 于闪存的磁带仿真数据读取处理方法、 数据存取前的闪存入库处理方法和闪存移动前的闪 存出库处理方法。
基于闪存的磁带仿真数据写入处理方法, 如图 2 及图 3 所示, 包括如下步骤 :
步骤 1 : 装载磁带的步骤 ;
装载磁带的步骤包括如下处理过程 :
(1) 应用模块经对外接口模块向磁带库仿真管理模块发送 SCSI 装载磁带命令 ;
(2) 磁带库仿真管理模块检查驱动器状态并进行装载磁带处理 ;(3) 磁带库仿真管理模块经对外接口模块向应用模块返回磁带装载状态 ;
磁带库仿真管理模块向应用模块返回的的磁带装载状态包括磁带装载成功、 驱动 器状态异常和磁带装载失败三种情况, 如果驱动器状态异常或磁带装载失败, 则本次写入 处理失败, 需要进行出错处理。
步骤 2 : 设定写入数据偏移量的步骤 ;
设定写入数据偏移量的步骤包括如下处理过程 :
(1) 应用模块向对外接口模块发送 SCSI 写入命令 ;
(2) 对外接口模块设定写入数据偏移量并传送给存储访问控制模块 ;
(3) 存储访问控制模块访问闪存指定数据偏移量的位置 ;
(4) 存储访问控制模块经对外接口模块向应用模块返回设定写入数据偏移量状 态;
步骤 3 : 以虚拟磁带形式向闪存写入数据的步骤 ;
以虚拟磁带形式向闪存写入数据的步骤包括如下处理过程 :
(1) 应用模块经对外接口模块向存储访问控制模块发送写入数据命令 ;
(2) 仿真磁带存储池模块向闪存的指定偏移量位置写入数据 ; (3) 存储访问控制模块经对外接口模块向应用模块返回写入数据状态 ;
其中, 仿真磁带存储池模块向闪存的指定偏移量位置写入数据的处理过程, 如图 5 所示, 包括 :
①仿真磁带存储池模块判断闪存是否格式化, 如果未格式化则将闪存格式化后进 入下一步 ;
②检测能否读取闪存的序列号, 如果不能读取则进行出错处理 ;
③读取闪存的序列号及容量, 将闪存的序列号作为磁带的条码, 根据磁带库仿真 管理模块的设置获取磁带的容量 ;
④判断磁带容量是否满足数据写入, 如果容量不够则进行出错处理 ;
⑤按磁带格式记录数据 ;
⑥读取已经记录数据的最后一个块号 ;
⑦从下一个块开始记录数据 ;
⑧每次执行写入操作时均在闪存内的磁带头索引部分中记录数据集元数据 ;
⑨记录数据在磁带中写入的数据终点并在闪存内此带头索引部分记录元数据 ;
⑩通知存储访问控制模块写入完成。
通过上述步骤即可实现将闪存仿真为磁带的写入数据的功能。
基于闪存的磁带仿真数据读取处理方法, 如图 4 及图 5 所示, 包括如下步骤 :
步骤 1 : 装载磁带的步骤 ;
装载磁带的步骤包括如下处理过程 :
(1) 应用模块经对外接口模块向磁带库仿真管理模块发送 SCSI 装载磁带命令 ;
(2) 磁带库仿真管理模块检查驱动器状态并进行装载磁带处理 ;
(3) 磁带库仿真管理模块经对外接口模块向应用模块返回磁带装载状态 ;
磁带库仿真管理模块向应用模块返回的的磁带装载状态包括磁带装载成功、 驱动 器状态异常和磁带装载失败三种情况, 如果驱动器状态异常或磁带装载失败, 则本次写入
处理失败, 需要进行出错处理。
步骤 2 : 设定读取数据偏移量的步骤 ;
设定读取数据偏移量的步骤包括如下处理过程 :
(1) 应用模块向对外接口模块发送 SCSI 读取命令 ;
(2) 对外接口模块设定读取数据偏移量并传送给存储访问控制模块 ;
(3) 存储访问控制模块访问闪存指定数据偏移量的位置 ;
(4) 存储访问控制模块经对外接口模块向应用模块返回设定读取数据偏移量状 态;
步骤 3 : 以虚拟磁带形式从闪存中读取数据的步骤
以虚拟磁带形式从闪存中读取数据的步骤包括如下处理过程 :
(1) 应用模块经对外接口模块向存储访问控制模块发送读取数据命令 ;
(2) 仿真磁带存储池模块从闪存中的指定数据偏移量位置读取数据 ;
(3) 存储访问控制模块经对外接口模块向应用模块返回读取数据状态。
其中, 仿真磁带存储池模块从闪存中的指定数据偏移量位置读取数据的过程, 如 图 5 所示, 包括 :
①判断能否读取磁带的条码, 如果不能读取则进行出错处理 ;
②读取磁带的条码 ;
③判断条码是否匹配, 如果不匹配则进行出错处理 ;
④读取磁带索引表 ;
⑤按磁带格式读取闪存中的数据 ;
⑥判断是否读到所需数据段的最后位置, 如果不是则循环执行④~⑥ ;
⑦通知存储访问控制模块读取数据完成。
通过上述步骤即可实现从仿真为磁带的闪存中读取数据的功能。
闪存入库处理方法, 如图 6, 包括如下步骤 :
步骤 1 : 应用模块经对外接口模块向磁带库仿真管理模块发送 SCSI 磁带入库准备 命令 ;
步骤 2 : 磁带库仿真管理模块检查入出口状态 ;
步骤 3 : 磁带库仿真管理模块经对外接口模块向应用模块返回入库准备状态 ;
步骤 4 : 插入热插拔闪存 ;
步骤 5 : 应用模块经对外接口模块向存储访问控制模块发送 SCSI 磁带入库命令 ;
步骤 6 : 存储访问控制模块读取磁带条码和磁带数据格式 ;
步骤 7 : 存储访问控制模块经对外接口模块向应用模块返回磁带入库状态。
通过上述步骤即可实现在虚拟磁带装置中安全插入闪存的功能。
闪存出库处理方法, 如图 7 所示, 包括如下步骤 :
步骤 1 : 应用模块经对外接口模块向磁带库仿真管理模块发送 SCSI 磁带出库命 令;
步骤 2 : 磁带库仿真管理模块准备需要出库的磁带 ;
步骤 3 : 磁带库仿真管理模块解除磁带锁定并弹出热插拔闪存 ;
步骤 4 : 存储访问控制模块经对外接口模块向应用模块返回磁带出库状态。通过上述入库及出库处理方法可以实现在虚拟磁带装置中安全拔出闪存的功能。
本发明所述的实施例是说明性的, 而不是限定性的, 因此发明并不限于具体实施 方式中所述的实施例, 凡是由本领域技术人员根据本发明的技术方案得出的其他实施方 式, 同样属于本发明保护的范围。