本发明涉及存储软件的磁盘故障模拟测试技术领域,特别涉及一种基于磁盘镜像软件drbd的坏盘模拟方法。
背景技术:
存储系统的数据可靠性要求比较高,需要保护数据的安全性。为了保障数据的安全不丢失,存储系统的主要技术是备份或者通过校验计算的方式来确保数据安全。但是磁盘的硬件故障总是难免发生,当磁盘出现硬件故障后,存储软件需要能有正确的处理方式。为了判断和检验各种硬件故障对应的处理方式是否正确,需要认为制造硬件故障对其进行测试。但在实际测试环境中,目前的技术还无法人为地制造出磁盘在使用的过程中出现各种故障。
磁盘镜像软件drbd(distributedreplicatedblockdevice,分布式复制块设备),是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。在服务器之间的块设备(包括硬盘、分区、逻辑卷)进行镜像。也就是说当某一个应用程序完成写操作后,它提交的数据不仅仅会保存在本地块设备上,drbd也会将这份数据复制一份,通过网络传输到另一个节点的块设备上,这样,两个节点上的块设备上的数据将会保存一致,这就是镜像功能。
drbd具有如下特性:
1)实时性:当某个应用程序完成对数据的修改时,复制功能立即发生。
2)透明性:应用程序的数据存储在镜像块设备上是独立透明的,他们的数据在两个节点上都保存一份,因此,无论哪一台服务器宕机,都不会影响应用程序读取数据的操作,所以说是透明的。
3)同步镜像和异步镜像:同步镜像表示当应用程序提交本地的写操作后,数据后会同步写到两个节点上去;异步镜像表示当应用程序提交写操作后,只有当本地的节点上完成写操作后,另一个节点才可以完成写操作。
基于此,本发明设计了一种基于磁盘镜像软件drbd的坏盘模拟方法。
技术实现要素:
本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于磁盘镜像软件drbd的坏盘模拟方法。
本发明是通过如下技术方案实现的:
一种基于磁盘镜像软件drbd的坏盘模拟方法,其特征在于:增加磁盘故障函数库,当测试人员发送指令制造某种磁盘故障时,通过磁盘镜像软件drbd截取存储软件的bio操作信息,并调用相应的故障函数,直接返回给存储软件磁盘故障,从而实现对磁盘扇区读写故障的模拟。
所述基于磁盘镜像软件drbd的坏盘模拟方法,包括以下步骤:
(1)在存储软件和实际硬盘之间加入磁盘镜像软件drbd,修改磁盘镜像软件drbd,增加磁盘故障函数库;
(2)存储软件发送磁盘读写指令到磁盘镜像软件drbd;
(3)当磁盘镜像软件drbd在未接收到测试人员指令时,存储软件的正常读写,磁盘镜像软件drbd直接透传磁盘读写指令给磁盘,并把磁盘的返回结果透传给存储软件;
(4)当磁盘镜像软件drbd接收到测试人员指令时,截取存储软件下发的指令,调用对应的故障函数,并返回磁盘故障给存储软件,完成模拟磁盘故障的测试。
所述步骤(1)中,修改磁盘镜像软件drbd,删除磁盘镜像软件drbd的镜像功能。
本发明的有益效果是:该基于磁盘镜像软件drbd的坏盘模拟方法,能够在测试环境中认为模拟出磁盘在使用的过程中出现各种故障,为判断和检验各种硬件故障对应的处理方式是否正确提供了可能,进而保障了磁盘的数据安全,避免了磁盘出现硬件故障后处理方式不正确造成的损失。
附图说明
附图1为本发明基于磁盘镜像软件drbd的坏盘模拟方法示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图和实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
该基于磁盘镜像软件drbd的坏盘模拟方法,增加磁盘故障函数库,当测试人员发送指令制造某种磁盘故障时,通过磁盘镜像软件drbd截取存储软件的bio操作信息,并调用相应的故障函数,直接返回给存储软件磁盘故障,从而实现对磁盘扇区读写故障的模拟。
该基于磁盘镜像软件drbd的坏盘模拟方法,包括以下步骤:
(1)在存储软件和实际硬盘之间加入磁盘镜像软件drbd,修改磁盘镜像软件drbd,增加磁盘故障函数库;
(2)存储软件发送磁盘读写指令到磁盘镜像软件drbd;
(3)当磁盘镜像软件drbd在未接收到测试人员指令时,存储软件的正常读写,磁盘镜像软件drbd直接透传磁盘读写指令给磁盘,并把磁盘的返回结果透传给存储软件;
(4)当磁盘镜像软件drbd接收到测试人员指令时,截取存储软件下发的指令,调用对应的故障函数,并返回磁盘故障给存储软件,完成模拟磁盘故障的测试。
所述步骤(1)中,修改磁盘镜像软件drbd,删除磁盘镜像软件drbd的镜像功能。