使用设备映射的快照功能实现系统掉电保护的方法技术方案

技术编号:28836903 阅读:31 留言:0更新日期:2021-06-11 23:34
本发明专利技术涉及一种使用设备映射的快照功能实现系统掉电保护的方法,包括步骤:S1服务器加电;S2加载显示grub菜单;S3判断本次启动是否需要修改系统配置;S4若需要,则选择常规引导向,正常加载系统,进入系统修改配置并保存配置、重启系统,回到步骤S2;S5若不需要,则执行步骤S6至步骤S9;S6选择掉电保护的引导项;S7调用磁盘映射脚本,对根分区进行快照;S8继续加载系统,使系统正常运行,根分区受到保护;S9在设备异常断电时,解除快照,使系统自动恢复到快照前的状态,并回到步骤S1。本发明专利技术可直接对底层块设备进行快照,对文件系统无影响,能够完整保留文件系统的所有特性,在实现掉电保护同时对上层应用完全透明,且不需要额外采购硬件。

【技术实现步骤摘要】
使用设备映射的快照功能实现系统掉电保护的方法
本专利技术涉及数据安全
,具体涉及一种使用设备映射的快照功能实现系统掉电保护的方法。
技术介绍
Linux服务器在频繁进行写入操作时,如果发生意外断电,可能会对文件系统造成破坏,甚至会损坏硬盘,导致操作系统无法启动。针对此问题,在专业的IDC机房一般会配备冗余电源,但对于车载终端、嵌入式设备、条件简陋的机房等使用场景则没有一个行之有效的解决方案。因此需要一种有效的方案,能够保证系统在意外断电后重要数据不丢失,操作系统可快速重启,恢复作业状态。已有的实现系统掉电保护的方法,通过调用overlay联合挂载脚本实现掉电保护,这种方法存在如下缺陷:第一、overlayfs是基于底层文件系统进行联合挂载出来的一个抽象的文件系统,不能保证支持底层文件系统的全部特性,实际部署时使用overlayfs的程序可能会出现异常。目前已知的缺陷有:1、Renamedirectory如果Overlayfs的某一个目录是单纯来自lowerlayer或是lowerlayer和upperlayer合并的,那默认情况下,用户无法对该目录执行rename系统调用,否则会返回-EXDEV错误。2、Hardlinkbreak该问题源自copy-up机制,当底层目录中某个文件拥有多个硬链接时,若用户对其中一个文件写入了一些数据,那将触发copy-up,由此该文件将拷贝到上层目录,那么和原始文件的hardlink也就断开了,变成了一个单独的文件,用户在mergelayer通过stat和ls命令能够直接看到这个变化。3、Unconstantst_dev&st_ino该问题同样源自copy-up机制,当原来在lowerdir中的文件触发了copy-up以后,那用户在mergelayer见到的将是来自upperdir的新文件,那也就意味着它俩的inode是不同的,虽然inode中很多的attr和xattr是可以copy的,但是st_dev和st_ino这两个字段却具有唯一性,是不可以复制的,所以用户可以通过ls和stat命令看到的该字段将发生变化。4、Filedescriptorchange该问题也同样源自copy-up机制,用户在文件发生copy-up之前以只读方式open文件(这操作不会触发copy-up)得到的文件描述符fd1和copy-up之后open文件得到的文件描述符fd2指向不同的文件,用户通过fd2写入的新数据,将无法从fd1中获取到,只能重新open一个新的fd。该问题目前社区主线内核依然存在,暂未修复。第二、overlayfs的写时复制功能是基于文件的,首次修改一个文件(特别是大文件)时,即使修改的内容很少,也要先复制整个文件,再对复制的文件进行修改,造成较高的I/O损耗。第三、overlayfs于2014年正式合入Linux-3.18主线内核,目前仍在开发当中。低版本的内核需要自行打补丁才能使用,过程繁琐且稳定性有待验证。因此,需要提供一种新的系统掉电保护方法。
技术实现思路
为解决已有技术存在的不足,本专利技术提供了一种使用设备映射的快照功能实现系统掉电保护的方法,包括如下步骤:步骤S1:服务器加电;步骤S2:加载显示grub菜单;步骤S3:判断本次启动是否需要修改系统配置;步骤S4:若需要,则选择常规引导向,正常加载系统,进入系统修改配置并保存配置、重启系统,回到步骤S2;步骤S5:若不需要,则执行步骤S6至步骤S9;步骤S6:选择掉电保护的引导项;步骤S7:调用磁盘映射脚本,对根分区进行快照;步骤S8:继续加载系统,使系统正常运行,根分区受到保护;步骤S9:在设备异常断电时,解除快照,使系统自动恢复到快照前的状态,并回到步骤S1。其中,所述步骤S7包括:步骤S71:通过grub菜单引导项中的内核参数获取根分区;步骤S72:对根分区进行快照,然后把根分区映射得到的分区挂载到/sysroot。其中,通过对系统进行如下的初始处理,以实现上述方法:步骤Sa:编写磁盘映射脚本,以在系统启动时对根分区进行快照;步骤Sb:修改initramfs配置文件,以在系统启示时调用步骤Sa中所编写的磁盘映射脚本;步骤Sc:重新生成initramfs,以集成步骤Sa及步骤Sb中的磁盘映射脚本;步骤Sd:修改系统grub菜单,添加掉电保护引导项,使用步骤Sc中重新生成的initramfs。其中,所述步骤Sa包括:步骤Sa1:通过grub菜单引导项中的内核参数获取根分区;步骤Sa2:对根分区进行快照,然后把根分区映射得到的分区挂载到/sysroot。本专利技术提供的使用设备映射的快照功能实现系统掉电保护的方法,可以直接对底层块设备进行快照,对文件系统无影响,能够完整保留文件系统的所有特性,在实现掉电保护同时对上层应用完全透明,且不需要额外采购硬件。附图说明图1:本专利技术提供的使用设备映射的快照功能实现系统掉电保护的方法的实现流程图。具体实施方式为了对本专利技术的技术方案及有益效果有更进一步的了解,下面结合附图详细说明本专利技术的技术方案及其产生的有益效果。图1为本专利技术提供的使用设备映射的快照功能实现系统掉电保护的方法的实现流程图,如图1所示,本专利技术提供的使用设备映射的快照功能实现系统掉电保护的方法,主要包括如下步骤:步骤S1:服务器加电;步骤S2:加载显示grub菜单;步骤S3:判断本次启动是否需要修改系统配置;步骤S4:若需要,则选择常规引导向,正常加载系统,进入系统修改配置并保存配置、重启系统,回到步骤S2;步骤S5:若不需要,则执行步骤S6至步骤S9;步骤S6:选择掉电保护的引导项;步骤S7:调用磁盘映射脚本,对根分区进行快照;步骤S8:继续加载系统,使系统正常运行,根分区受到保护;步骤S9:在设备异常断电时,解除快照,使系统自动恢复到快照前的状态,并回到步骤S1。因此,本专利技术能够利用设备映射快照功能在实现对根分区只读保护的同时,可以完整保留原有文件系统的所有特性,确保数据不会因异常断电而丢失;对应用层和文件系统完全透明,可确保上层应用正常运行。并且,重启系统后能够自动还原快照,使被保护的分区自动恢复到启动前的状态;相对通过调用overlay联合挂载脚本实现掉电保护,本专利技术基于设备块的写时重定向机制避免了修改大文件时造成较高的I/O损耗。本专利技术实现上述掉电保护过程的系统处理过程如下:1、编写磁盘映射脚本,在系统启动时对根分区进行快照;主要包括:(1)通过gurb菜单引导项中的内核参数获取根分区;(2)对根分区进行快照(需要先卸载),然后把根分区映射得到的分区挂载到/本文档来自技高网
...

【技术保护点】
1.一种使用设备映射的快照功能实现系统掉电保护的方法,其特征在于,包括如下步骤:/n步骤S1:服务器加电;/n步骤S2:加载显示grub菜单;/n步骤S3:判断本次启动是否需要修改系统配置;/n步骤S4:若需要,则选择常规引导向,正常加载系统,进入系统修改配置并保存配置、重启系统,回到步骤S2;/n步骤S5:若不需要,则执行步骤S6至步骤S9;/n步骤S6:选择掉电保护的引导项;/n步骤S7:调用磁盘映射脚本,对根分区进行快照;/n步骤S8:继续加载系统,使系统正常运行,根分区受到保护;/n步骤S9:在设备异常断电时,解除快照,使系统自动恢复到快照前的状态,并回到步骤S1。/n

【技术特征摘要】
1.一种使用设备映射的快照功能实现系统掉电保护的方法,其特征在于,包括如下步骤:
步骤S1:服务器加电;
步骤S2:加载显示grub菜单;
步骤S3:判断本次启动是否需要修改系统配置;
步骤S4:若需要,则选择常规引导向,正常加载系统,进入系统修改配置并保存配置、重启系统,回到步骤S2;
步骤S5:若不需要,则执行步骤S6至步骤S9;
步骤S6:选择掉电保护的引导项;
步骤S7:调用磁盘映射脚本,对根分区进行快照;
步骤S8:继续加载系统,使系统正常运行,根分区受到保护;
步骤S9:在设备异常断电时,解除快照,使系统自动恢复到快照前的状态,并回到步骤S1。


2.如权利要求1所述的使用设备映射的快照功能实现系统掉电保护的方法,其特征在于,所述步骤S7包括:
步骤S71:通过grub菜单引导项中的内核参数获取根分区;
步骤S72:对根分区进行快...

【专利技术属性】
技术研发人员:李雪
申请(专利权)人:中标软件有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1