CN112948170A - 使用设备映射的快照功能实现系统掉电保护的方法 - Google Patents
使用设备映射的快照功能实现系统掉电保护的方法 Download PDFInfo
- Publication number
- CN112948170A CN112948170A CN201911259481.7A CN201911259481A CN112948170A CN 112948170 A CN112948170 A CN 112948170A CN 201911259481 A CN201911259481 A CN 201911259481A CN 112948170 A CN112948170 A CN 112948170A
- Authority
- CN
- China
- Prior art keywords
- snapshot
- mapping
- root partition
- down protection
- partition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013507 mapping Methods 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000005192 partition Methods 0.000 claims abstract description 35
- 238000013515 script Methods 0.000 claims abstract description 15
- 230000008569 process Effects 0.000 claims description 9
- 230000004048 modification Effects 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 3
- 230000001172 regenerating effect Effects 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 101100190462 Caenorhabditis elegans pid-1 gene Proteins 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种使用设备映射的快照功能实现系统掉电保护的方法,包括步骤:S1服务器加电;S2加载显示grub菜单;S3判断本次启动是否需要修改系统配置;S4若需要,则选择常规引导向,正常加载系统,进入系统修改配置并保存配置、重启系统,回到步骤S2;S5若不需要,则执行步骤S6至步骤S9;S6选择掉电保护的引导项;S7调用磁盘映射脚本,对根分区进行快照;S8继续加载系统,使系统正常运行,根分区受到保护;S9在设备异常断电时,解除快照,使系统自动恢复到快照前的状态,并回到步骤S1。本发明可直接对底层块设备进行快照,对文件系统无影响,能够完整保留文件系统的所有特性,在实现掉电保护同时对上层应用完全透明,且不需要额外采购硬件。
Description
技术领域
本发明涉及数据安全技术领域,具体涉及一种使用设备映射的快照功能实现系统掉电保护的方法。
背景技术
Linux服务器在频繁进行写入操作时,如果发生意外断电,可能会对文件系统造成破坏,甚至会损坏硬盘,导致操作系统无法启动。针对此问题,在专业的IDC机房一般会配备冗余电源,但对于车载终端、嵌入式设备、条件简陋的机房等使用场景则没有一个行之有效的解决方案。
因此需要一种有效的方案,能够保证系统在意外断电后重要数据不丢失,操作系统可快速重启,恢复作业状态。
已有的实现系统掉电保护的方法,通过调用overlay联合挂载脚本实现掉电保护,这种方法存在如下缺陷:
第一、overlayfs是基于底层文件系统进行联合挂载出来的一个抽象的文件系统,不能保证支持底层文件系统的全部特性,实际部署时使用overlayfs的程序可能会出现异常。
目前已知的缺陷有:
1、Rename directory
如果Overlayfs的某一个目录是单纯来自lower layer或是lower layer和upperlayer合并的,那默认情况下,用户无法对该目录执行rename系统调用,否则会返回-EXDEV错误。
2、Hard link break
该问题源自copy-up机制,当底层目录中某个文件拥有多个硬链接时,若用户对其中一个文件写入了一些数据,那将触发copy-up,由此该文件将拷贝到上层目录,那么和原始文件的hard link也就断开了,变成了一个单独的文件,用户在merge layer通过stat和ls命令能够直接看到这个变化。
3、Unconstant st_dev&st_ino
该问题同样源自copy-up机制,当原来在lower dir中的文件触发了copy-up以后,那用户在merge layer见到的将是来自upper dir的新文件,那也就意味着它俩的inode是不同的,虽然inode中很多的attr和xattr是可以copy的,但是st_dev和st_ino这两个字段却具有唯一性,是不可以复制的,所以用户可以通过ls和stat命令看到的该字段将发生变化。
4、File descriptor change
该问题也同样源自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)对根分区进行快照(需要先卸载),然后把根分区映射得到的分区挂载到/sysroot;
2、修改initramfs配置文件,在系统启动时(swith root之前)调用上述磁盘映射脚本;
[Service]
Environment=DRACUT_SYSTEMD=1
Environment=NEWROOT=/sysroot
Type=oneshot
ExecStartPre=-/bin/linuxrc.sh
ExecStart=-/bin/dracut-pre-pivot
StandardInput=null
StandardOutput=syslog
StandardError=syslog+console
KillMode=process
RemainAfterExit=yes
3、重新生成initramfs集成上述步骤中的磁盘映射脚本;
dracut-f-I/usr/bin/linuxrc.sh-I/usr/sbin/dmsetup-I/usr/sbin/blockdev\
-I"/usr/lib/udev/rules.d/10-dm.rules/lib/udev/rules.d/10-dm.rules\
/lib/udev/rules.d/13-dm-disk.rules\
/usr/lib/udev/rules.d/95-dm-notify.rules"\
/boot/initramfs-4.4.13-200.nd7.3.x86_64.img.pdp2
4、修改系统grub引导菜单,添加掉电保护引导项,使用前面创建的initramfs;
menuentry'NeoKylin Desktop 7.0(x86)'--class neokylin--class gnu-linux--class gnu--class os--unrestricted{
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
linux16/boot/vmlinuz-4.4.13-200.nd7.3.x86_64root=/dev/sda1ro rhgbquiet loglevel=0LANG=zh_CN.UTF-8
initrd16/boot/4.4.13-200.nd7.3.x86_64.img.pdp2}。
本发明中,所谓的“掉电保护”,是指操作系统在异常断电时,对存储设备及文件系统的保护措施。
本发明中,所谓的“设备映射”,是指操作系统内核提供的卷管理框架,支持快照、逻辑卷、条带卷等功能。
本发明中,所谓的“Overlayfs”,是一种堆叠文件系统,它依赖并建立在其它的文件系统之上。
本发明中,所谓的“grub”,是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。
本发明中,所谓的“initramfs”,是指,在操作系统内核中,都包含一个压缩过的cpio格式的打包文件。当内核启动时,会从这个打包文件中导出文件到内核的rootfs文件系统,然后内核检查rootfs中是否包含有init文件,如果有则执行它,作为PID为1的第一个进程。这个init进程负责启动系统后续的工作,包括定位、挂载“真正的”根文件系统设备(如果有的话)。
如果内核没有在rootfs中找到init文件,则内核会按以前版本的方式定位、挂载根分区,然后执行/sbin/init程序完成系统的后续初始化工作。这个压缩过的cpio格式的打包文件就是init ramfs。
本发明中,所谓的“sysroot”,是指上述“initramfs”文件当中的一个特定目录,该目录是操作系统在启动时加载完“initramfs”后用来挂载最终的操作系统根分区的挂载点。
虽然本发明已利用上述较佳实施例进行说明,然其并非用以限定本发明的保护范围,任何本领域技术人员在不脱离本发明的精神和范围之内,相对上述实施例进行各种变动与修改仍属本发明所保护的范围,因此本发明的保护范围以权利要求书所界定的为准。
Claims (4)
1.一种使用设备映射的快照功能实现系统掉电保护的方法,其特征在于,包括如下步骤:
步骤S1:服务器加电;
步骤S2:加载显示grub菜单;
步骤S3:判断本次启动是否需要修改系统配置;
步骤S4:若需要,则选择常规引导向,正常加载系统,进入系统修改配置并保存配置、重启系统,回到步骤S2;
步骤S5:若不需要,则执行步骤S6至步骤S9;
步骤S6:选择掉电保护的引导项;
步骤S7:调用磁盘映射脚本,对根分区进行快照;
步骤S8:继续加载系统,使系统正常运行,根分区受到保护;
步骤S9:在设备异常断电时,解除快照,使系统自动恢复到快照前的状态,并回到步骤S1。
2.如权利要求1所述的使用设备映射的快照功能实现系统掉电保护的方法,其特征在于,所述步骤S7包括:
步骤S71:通过grub菜单引导项中的内核参数获取根分区;
步骤S72:对根分区进行快照,然后把根分区映射得到的分区挂载到/sysroot。
3.如权利要求1所述的使用设备映射的快照功能实现系统掉电保护的方法,其特征在于,通过对系统进行如下的初始处理,以实现上述方法:
步骤Sa:编写磁盘映射脚本,以在系统启动时对根分区进行快照;
步骤Sb:修改initramfs配置文件,以在系统启示时调用步骤Sa中所编写的磁盘映射脚本;
步骤Sc:重新生成initramfs,以集成步骤Sa及步骤Sb中的磁盘映射脚本;
步骤Sd:修改系统grub菜单,添加掉电保护引导项,使用步骤Sc中重新生成的initramfs。
4.如权利要求3所述的使用设备映射的快照功能实现系统掉电保护的方法,其特征在于,所述步骤Sa包括:
步骤Sa1:通过grub菜单引导项中的内核参数获取根分区;
步骤Sa2:对根分区进行快照,然后把根分区映射得到的分区挂载到/sysroot。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911259481.7A CN112948170B (zh) | 2019-12-10 | 2019-12-10 | 使用设备映射的快照功能实现系统掉电保护的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911259481.7A CN112948170B (zh) | 2019-12-10 | 2019-12-10 | 使用设备映射的快照功能实现系统掉电保护的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112948170A true CN112948170A (zh) | 2021-06-11 |
CN112948170B CN112948170B (zh) | 2024-04-09 |
Family
ID=76225607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911259481.7A Active CN112948170B (zh) | 2019-12-10 | 2019-12-10 | 使用设备映射的快照功能实现系统掉电保护的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948170B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114265628A (zh) * | 2021-12-22 | 2022-04-01 | 曙光信息产业股份有限公司 | 操作系统的部署方法、装置、电子设备、存储介质及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017049828A1 (zh) * | 2015-09-25 | 2017-03-30 | 中兴通讯股份有限公司 | 基于Linux的数据处理方法、装置和系统 |
CN106776128A (zh) * | 2016-11-29 | 2017-05-31 | 邦彦技术股份有限公司 | 一种保障Linux操作系统正常启动的方法 |
CN107590272A (zh) * | 2017-09-26 | 2018-01-16 | 天津麒麟信息技术有限公司 | 一种基于Overlay文件系统的操作系统快照实现方法 |
CN109062576A (zh) * | 2018-07-18 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种通过initramfs修复文件系统的方法及装置 |
CN110221940A (zh) * | 2019-06-12 | 2019-09-10 | 湖南麒麟信安科技有限公司 | 基于堆叠文件系统的掉电恢复方法、系统及介质 |
-
2019
- 2019-12-10 CN CN201911259481.7A patent/CN112948170B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017049828A1 (zh) * | 2015-09-25 | 2017-03-30 | 中兴通讯股份有限公司 | 基于Linux的数据处理方法、装置和系统 |
CN106776128A (zh) * | 2016-11-29 | 2017-05-31 | 邦彦技术股份有限公司 | 一种保障Linux操作系统正常启动的方法 |
CN107590272A (zh) * | 2017-09-26 | 2018-01-16 | 天津麒麟信息技术有限公司 | 一种基于Overlay文件系统的操作系统快照实现方法 |
CN109062576A (zh) * | 2018-07-18 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种通过initramfs修复文件系统的方法及装置 |
CN110221940A (zh) * | 2019-06-12 | 2019-09-10 | 湖南麒麟信安科技有限公司 | 基于堆叠文件系统的掉电恢复方法、系统及介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114265628A (zh) * | 2021-12-22 | 2022-04-01 | 曙光信息产业股份有限公司 | 操作系统的部署方法、装置、电子设备、存储介质及系统 |
CN114265628B (zh) * | 2021-12-22 | 2024-05-28 | 曙光信息产业股份有限公司 | 操作系统的部署方法、装置、电子设备、存储介质及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112948170B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6820214B1 (en) | Automated system recovery via backup and restoration of system state | |
US6851073B1 (en) | Extensible system recovery architecture | |
US10606800B1 (en) | Policy-based layered filesystem management | |
US9311313B2 (en) | System and method for converting a physical disk to a virtual disk | |
US7334157B1 (en) | Restore of data to a computer system having different hardware | |
US20150378849A1 (en) | Method and device for backing up, restoring a virtual machine | |
US8666938B1 (en) | Installed application cloning and failover to virtual server | |
JP4932781B2 (ja) | 目標の媒体上に縮小オペレーティングシステムイメージを作成する方法、システム及びプログラム | |
US7953948B1 (en) | System and method for data protection on a storage medium | |
US8930315B2 (en) | Using a data protection server to backup and restore data on virtual servers | |
EP2765508B1 (en) | Installation method and installation device for application software | |
US8386428B2 (en) | Method and system for fast generation of file system snapshot bitmap in virtual environment | |
EP1915680B1 (en) | Archiving data in a virtual application environment | |
US8886995B1 (en) | Fault tolerant state machine for configuring software in a digital computer | |
US7496783B1 (en) | Merging cluster nodes during a restore | |
US10146630B1 (en) | Block changes framework for delta file incremental backup | |
US8788801B2 (en) | Backup and recovery of systems by restoring a backup boot configuration data (BCD) with installation files from an operating system install disk | |
CN111258666A (zh) | 计算机文件的读取方法、装置、计算机系统及存储介质 | |
US20150106334A1 (en) | Systems and methods for backing up a live virtual machine | |
US9128973B1 (en) | Method and system for tracking re-sizing and re-creation of volumes using modification time | |
US20130091101A1 (en) | Systems and methods for network assisted file system check | |
CN110209525A (zh) | 操作系统还原方法及装置 | |
CN112948170B (zh) | 使用设备映射的快照功能实现系统掉电保护的方法 | |
CN111338652B (zh) | 一种操作系统镜像制作方法、装置和设备及介质 | |
CN106933604B (zh) | 一种系统升级方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |