CN116048644A - 一种系统迁移方法、装置和可读存储介质 - Google Patents

一种系统迁移方法、装置和可读存储介质 Download PDF

Info

Publication number
CN116048644A
CN116048644A CN202310324621.4A CN202310324621A CN116048644A CN 116048644 A CN116048644 A CN 116048644A CN 202310324621 A CN202310324621 A CN 202310324621A CN 116048644 A CN116048644 A CN 116048644A
Authority
CN
China
Prior art keywords
migration
operating system
directory
layer directory
verification
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
Application number
CN202310324621.4A
Other languages
English (en)
Other versions
CN116048644B (zh
Inventor
请求不公布姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nfs China Software Co ltd
Original Assignee
Nfs China Software Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nfs China Software Co ltd filed Critical Nfs China Software Co ltd
Priority to CN202310324621.4A priority Critical patent/CN116048644B/zh
Publication of CN116048644A publication Critical patent/CN116048644A/zh
Application granted granted Critical
Publication of CN116048644B publication Critical patent/CN116048644B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供了一种系统迁移方法、装置和可读存储介质。所述方法包括:构建堆叠文件系统,所述堆叠文件系统包括下层目录、上层目录和合并层目录,所述第一操作系统所在的磁盘分区挂载在所述堆叠文件系统的下层目录,所述上层目录初始为空目录;在所述合并层目录中进行模拟迁移验证,所述模拟迁移验证用于在所述合并层目录中执行系统迁移操作;所述系统迁移操作用于从所述第一操作系统迁移至第二操作系统;若所述模拟迁移验证成功,则在所述第一操作系统中执行所述系统迁移操作。本申请可以保证系统迁移的安全性,提高模拟迁移验证的效率,以及降低硬件成本。

Description

一种系统迁移方法、装置和可读存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种系统迁移方法、装置和可读存储介质。
背景技术
利旧硬件的系统迁移是指,在原有服务器硬件上对原操作系统进行迁移,无需新增服务器硬件设备,迁移完成后得到的新操作系统可以支持原有的硬件,整个过程是在原有服务器硬件上将原操作系统替换为新操作系统。
为避免因系统迁移失败导致操作系统无法正常启动的情况发生,通常在进行系统迁移之前可以利用其他存储设备对原操作系统进行备份。如果出现迁移失败的情况,则可以使用备份数据恢复原操作系统,然后再重新执行系统迁移操作。重复该过程,直至系统迁移成功。
然而,对操作系统进行备份和还原需要耗费较长的时间,且该过程的步骤较为复杂,一旦该过程中备份数据遭到破坏,将导致原操作系统无法还原或者还原后不能正常启动等问题发生。
发明内容
本申请实施例提供一种系统迁移方法、装置和可读存储介质,可以保证系统迁移的安全性,提高模拟迁移验证的效率,以及降低硬件成本。
第一方面,本申请实施例公开了一种系统迁移方法,应用于电子设备,所述电子设备安装有第一操作系统,所述方法包括:
构建堆叠文件系统,所述堆叠文件系统包括下层目录、上层目录和合并层目录,所述第一操作系统所在的磁盘分区挂载在所述堆叠文件系统的下层目录,所述上层目录初始为空目录;
在所述合并层目录中进行模拟迁移验证,所述模拟迁移验证用于在所述合并层目录中执行系统迁移操作;所述系统迁移操作用于从所述第一操作系统迁移至第二操作系统;
若所述模拟迁移验证成功,则在所述第一操作系统中执行所述系统迁移操作。
第二方面,本申请实施例公开了一种系统迁移装置,应用于电子设备,所述电子设备安装有第一操作系统,所述装置包括:
堆叠构建模块,用于构建堆叠文件系统,所述堆叠文件系统包括下层目录、上层目录和合并层目录,所述第一操作系统所在的磁盘分区挂载在所述堆叠文件系统的下层目录,所述上层目录初始为空目录;
模拟验证模块,用于在所述合并层目录中进行模拟迁移验证,所述模拟迁移验证用于在所述合并层目录中执行系统迁移操作;所述系统迁移操作用于从所述第一操作系统迁移至第二操作系统;
系统迁移模块,用于若所述模拟迁移验证成功,则在所述第一操作系统中执行所述系统迁移操作。
第三方面,本申请实施例公开了一种用于系统迁移的装置,包括有存储器,以及一个以上程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序,所述一个以上程序包含用于进行如前述一个或多个所述的系统迁移方法的指令。
第四方面,本申请实施例公开了一种可读存储介质,其上存储有指令,当所述指令由装置的一个或多个处理器执行时,使得装置执行如前述一个或多个所述的系统迁移方法。
本申请实施例包括以下优点:
本申请实施例提供的系统迁移方法,在进行系统迁移之前,先在本机上进行模拟迁移验证,如果模拟迁移验证成功,则可以在本机上正式进行系统迁移。本申请实施例利用堆叠文件系统(OverlayFS)进行模拟迁移验证,模拟迁移验证过程中产生的数据操作均在堆叠文件系统的合并层目录中执行,不会破坏原有的操作系统(第一操作系统),可以保证电子设备中原有的操作系统(第一操作系统)不会发生更改,即使模拟迁移验证失败,也可以通过取消所述堆叠文件系统,快速恢复至所述第一操作系统,不会影响电子设备原有的操作系统的正常运行,可以保证系统迁移的安全性。此外,由于堆叠文件系统的实现是零拷贝的,通过挂载操作即可实现,速度非常快,相对于利用其他存储设备对原操作系统进行备份的方式进行模拟迁移验证,可以极大提高模拟迁移验证的效率。再者,本申请实施例利用堆叠文件系统进行模拟迁移验证,可以在本机上进行,不需要利用其他存储设备,可以降低硬件成本。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的一种系统迁移方法实施例的步骤流程图;
图2是本申请的一种构建堆叠文件系统的流程示意图;
图3是本申请的一种模拟迁移验证的流程示意图;
图4是本申请的一种系统迁移装置实施例的结构框图;
图5是本申请的一种用于系统迁移的装置800的框图;
图6是本申请的一些实施例中服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
参照图1,示出了本申请的一种系统迁移方法实施例的步骤流程图,所述方法应用于电子设备,所述电子设备安装有第一操作系统,所述方法可以包括如下步骤:
步骤101、构建堆叠文件系统,所述堆叠文件系统包括下层目录、上层目录和合并层目录,所述第一操作系统所在的磁盘分区挂载在所述堆叠文件系统的下层目录,所述上层目录初始为空目录;
步骤102、在所述合并层目录中进行模拟迁移验证,所述模拟迁移验证用于在所述合并层目录中执行系统迁移操作;所述系统迁移操作用于从所述第一操作系统迁移至第二操作系统;
步骤103、若所述模拟迁移验证成功,则在所述第一操作系统中执行所述系统迁移操作。
本申请实施例的系统迁移方法可应用于安装有第一操作系统的电子设备。所述电子设备包括但不限于如下任意一种:服务器、智能手机、录音笔、平板电脑、电子书阅读器、MP3(动态影像专家压缩标准音频层面3,Moving Picture Experts Group Audio LayerIII)播放器、MP4(动态影像专家压缩标准音频层面4,Moving Picture Experts GroupAudio Layer IV)播放器、膝上型便携计算机、车载电脑、台式计算机、机顶盒、智能电视机、可穿戴设备等。
所述电子设备安装的第一操作系统可以为Linux操作系统,本申请实施例对所述Linux操作系统的类型不做限制,例如,所述Linux操作系统可以包括但不限于Debian、Ubuntu(乌班图)、CentOS(Community Enterprise Operating System,社区企业操作系统)、UOS(统信桌面操作系统)、麒麟操作系统、方德操作系统等中的任意一种。
在本申请实施例中,系统迁移是指将电子设备中原有的操作系统(第一操作系统)转换为另一种操作系统(第二操作系统)的过程。第一操作系统和第二操作系统为不同的操作系统。本申请实施例对所述第一操作系统和所述第二操作系统的类型和版本不做限制。示例性地,所述第一操作系统可以为CentOS8.5,所述第二操作系统可以为NFS4.0。
本申请实施例提供的系统迁移方法,在进行系统迁移之前,先在本机上进行模拟迁移验证,如果模拟迁移验证成功,则可以在本机上正式进行系统迁移。本申请实施例利用堆叠文件系统(OverlayFS)进行模拟迁移验证,模拟迁移验证过程中产生的数据操作均在堆叠文件系统的合并层目录中执行,不会破坏原有的操作系统(第一操作系统)。如果模拟迁移验证成功,可以在本机上正式进行系统迁移。如果模拟迁移验证失败,可以取消所述堆叠文件系统,恢复至所述第一操作系统。
堆叠文件系统(OverlayFS)是一个面向Linux的文件系统服务,其实现一个面向其他文件系统的联合挂载。OverlayFS的核心概念是堆叠,把多个文件夹按照次序堆叠起来。OverlayFS依赖并建立在其它的文件系统(例如ext4fs和xfs等等)之上,并不直接参与磁盘空间结构的划分,仅仅将原来底层文件系统中不同的目录进行“合并”,然后向用户呈现。
OverlayFS通过lower目录(下层目录)、upper目录(上层目录)、以及work目录这三个目录实现。其中,lower目录可以有多个;work目录为工作基础目录,挂载后内容会被清空且在使用过程中其内容对用户不可见;联合挂载完成后给用户呈现的统一视图称为merged目录(合并层目录)。
本申请实施例将所述第一操作系统所在的磁盘分区挂载在所述堆叠文件系统的下层目录,所述上层目录初始为空目录。在堆叠文件系统中,下层目录是只读的,上层目录是可读写的。因此,本申请实施例在合并层目录中进行模拟迁移验证,也即,在合并层目录中执行系统迁移操作,从第一操作系统迁移至第二操作系统。
由于下层目录是只读的,因此在合并层目录中执行系统迁移操作的过程中,对下层目录中的数据需要进行的增加、修改、删除等操作,都是通过拷贝至所述上层目录中进行的,并通过合并层目录展示操作的结果。下层目录中的数据不会被更改,不会破坏第一操作系统。
在本申请的一种可选实施例中,所述方法还可以包括:若所述模拟迁移验证失败,则取消所述堆叠文件系统,恢复至所述第一操作系统。
本申请实施例在模拟迁移验证过程中,可以保证电子设备中原有的操作系统(第一操作系统)不会发生更改,即使模拟迁移验证失败,也可以通过取消所述堆叠文件系统,快速恢复至所述第一操作系统,不会影响电子设备原有的操作系统的正常运行,可以保证系统迁移的安全性。此外,由于堆叠文件系统的实现是零拷贝的,只需要执行 mount(挂载)操作即可实现,速度非常快,相对于利用其他存储设备对原操作系统进行备份的方式进行模拟迁移验证,可以极大提高模拟迁移验证的效率。再者,本申请实施例利用堆叠文件系统进行模拟迁移验证,可以在本机上进行,不需要利用其他存储设备,可以降低硬件成本。
在本申请的一种可选实施例中,所述方法还可以包括:
步骤S11、在所述第一操作系统中运行目标程序,并新建目标启动项;所述目标程序用于释放目标内核、所述目标内核相匹配的第一镜像、以及第二镜像;所述目标内核内置有堆叠文件系统的驱动程序,所述第一镜像用于启动根文件系统,所述第二镜像包含堆叠程序,所述堆叠程序用于构建堆叠文件系统;
步骤S12、重新启动后进入所述目标启动项,通过所述目标启动项加载所述第一镜像和所述目标内核,所述目标内核通过所述第一镜像挂载所述第二镜像;
步骤S13、运行所述第二镜像中的所述堆叠程序。
本申请实施例在所述第一操作系统中运行目标程序,所述目标程序用于在所述第一操作系统中构建堆叠文件系统,并利用构建的堆叠文件系统进行操作系统的模拟迁移验证。
首先在所述第一操作系统中安装所述目标程序。例如,可以通过预设的安装命令安装所述目标程序。假设目标程序的名称为“nfs-safe-migrator”,则可以通过如下安装命令安装该目标程序:“yum install -y nfs-safe-migrator”。
在所述第一操作系统中安装并运行所述目标程序之后,所述目标程序会自动释放目标内核、所述目标内核相匹配的第一镜像、以及第二镜像。
所述目标内核内置有堆叠文件系统的驱动,示例性地,所述目标内核可以为内置有OverlayFS驱动程序的vmlinuz内核。
所述第一镜像可以是一个压缩的cpio格式的文件系统,其中包含用于初始化和引导操作系统的文件。所述第一镜像用于启动rootfs(根文件系统)。示例性地,所述第一镜像为initrd(Linux初始RAM磁盘)。initrd是Linux系统中的一个临时根文件系统,通常被用作系统引导过程中的根文件系统。在Linux系统引导时,initrd会被加载到内存中,然后作为根文件系统挂载。initrd包含了必要的工具和驱动程序,以及用于挂载真正的根文件系统(即第二镜像的文件系统)所需的文件系统驱动程序。通过initrd可以挂载真正的根文件系统。此外,使用initrd,可以将这些必要的工具和驱动程序打包到一个文件中,从而可以减小根文件系统的大小,同时也可以加快系统的启动速度,并且不会影响第一操作系统。
所述第二镜像包含堆叠程序,所述堆叠程序用于构建堆叠文件系统。示例性地,所述第二镜像的文件系统为squashfs。squashfs是一种只读压缩文件系统,它可以将多个文件和目录打包成一个只读的文件系统。与传统的文件系统不同,squashfs可以将文件和目录压缩成只读的块,并将这些块存储在一个压缩文件中。由于squashfs是只读的,因此它可以保证文件系统的完整性和安全性,同时也可以减小文件系统的大小。
需要说明的是,所述第一镜像(如initrd)与所述目标内核(如vmlinuz)相匹配。initrd和vmlinuz是Linux系统中的重要文件,在系统引导过程中起着重要作用。initrd中包含了必要的工具和驱动程序,以及用于挂载真正的根文件系统所需的文件系统驱动程序。vmlinuz是Linux内核的可执行文件,它包含了操作系统的核心代码和驱动程序。initrd和vmlinuz相匹配,才能保证系统正常启动。在系统引导过程中,目标内核(vmlinuz)会被加载到内存中,然后启动目标内核(vmlinuz)。目标内核会识别并加载第一镜像(initrd),将其挂载为根文件系统,initrd可用来挂载真正的根文件系统。如果initrd中的工具和驱动程序与vmlinuz不匹配,可能会导致系统无法正常启动,出现各种错误和异常。此外,正确匹配initrd和vmlinuz还可以提高系统的性能和稳定性。如果二者的工具和驱动程序的版本不一致,可能会出现不兼容的情况,导致系统崩溃或者无法正常工作。
在所述第一操作系统中运行所述目标程序之后,所述目标程序新建目标启动项。示例性地,所述目标程序可以利用grub2工具包生成新的grub启动项,作为目标启动项,所述目标启动项用于加载所述第一镜像和所述目标内核。新建目标启动项之后重新启动系统,可以进入所述目标启动项,通过所述目标启动项加载所述第一镜像和所述目标内核(vmlinuz),所述目标内核通过所述第一镜像挂载所述第二镜像,从而进入squashfs的文件系统中,该文件系统中包含用于构建堆叠文件系统的堆叠程序。由于目标内核vmlinuz内置有堆叠文件系统的驱动程序,因此可以保证该堆叠程序的正常运行。通过运行该堆叠程序可以执行步骤101中构建堆叠文件系统的操作。
进一步地,所述方法还可以包括:在所述第一操作系统中运行所述目标程序之后,通过所述目标程序将所述第一操作系统的分区配置文件拷贝至预置目录中。示例性地,所述预置目录可以为所述目标程序安装目录下的某个指定目录。所述分区配置文件为fstab文件,fstab文件为标准的操作系统磁盘信息记录的配置文件,其中记录有第一操作系统的硬盘分区信息。堆叠程序可以通过读取该预置目录下的分区配置文件,获取所述第一操作系统的分区信息,进而可以根据所述第一操作系统的分区信息构建堆叠文件系统。
在本申请的一种可选实施例中,所述构建堆叠文件系统,可以包括:
步骤S21、通过读取所述第一操作系统的分区配置文件,获取所述第一操作系统的分区信息;
步骤S22、创建下层目录,通过挂载命令将所述第一操作系统所在的磁盘分区挂载在所述下层目录;
步骤S23、创建上层目录和合并层目录,通过挂载命令将所述下层目录和所述上层目录挂载至所述合并层目录;
步骤S24、通过切换当前系统的根文件系统将当前系统引导至所述合并层目录。
堆叠程序启动后可以读取所述第一操作系统的分区配置文件,从而获取所述第一操作系统的分区信息。根据所述第一操作系统的分区信息可以构建堆叠文件系统。具体地,首先,堆叠程序创建下层目录,通过挂载命令将所述第一操作系统所在的磁盘分区挂载在所述下层目录,并设置下层目录为只读目录。然后,堆叠程序创建上层目录和合并层目录,通过挂载命令将所述下层目录和所述上层目录挂载至所述合并层目录,合并层目录即为堆叠后的文件系统。最后,通过切换当前系统的根文件系统将当前系统引导至所述合并层目录,进入堆叠后的文件系统。
参照图2,示出了本申请实施例一种构建堆叠文件系统的流程示意图,包括如下步骤:
步骤201、运行堆叠程序。
步骤202、创建目录A。
步骤203、读取第一操作系统的分区配置文件。
堆叠程序启动后,创建一个空的目录A,堆叠程序通过读取所述第一操作系统的分区配置文件fstab,可以获取所述第一操作系统的分区信息,从而可以获取所述第一操作系统所在的磁盘分区的信息。
步骤204、将第一操作系统所在的磁盘分区挂载至目录A。
堆叠程序通过挂载命令将所述第一操作系统所在的磁盘分区挂载在目录A,目录A即为下层目录,设置目录A为只读目录。
步骤205、创建目录B。
步骤206、创建目录C。
步骤207、将目录A和目录B挂载至目录C。
堆叠程序创建空的目录B和目录C,由于目标内核vmlinuz中内置有OverlayFS的驱动程序,可支持构建堆叠文件系统的功能,因此,堆叠程序可以通过挂载命令将目录A和目录B进行堆叠,挂载至目录C。其中,目录B为上层目录,目录C为合并层目录,目录C为堆叠后的根文件系统。
步骤208、进入目录C。
最后通过切换当前系统的根文件系统将当前系统引导至所述合并层目录(目录C),从而可以在合并层目录(目录C)中进行模拟迁移验证。
本申请实施例使用OverlayFS堆叠文件系统进行模拟迁移验证,并且将底层目录设置为只读目录,模拟迁移验证过程中对数据的增加、修改、删除操作在上层目录中执行,由合并层目录呈现堆叠后的结果,由此可以保护原有的文件系统(底层目录)的数据不会被修改。
进一步地,所述方法还可以包括:在所述第一操作系统中,安装预置的系统迁移程序,所述系统迁移程序用于执行所述系统迁移操作,将所述电子设备从所述第一操作系统迁移至第二操作系统。
本申请实施例可以在合并层目录(如目录C)中运行所述系统迁移程序,通过所述系统迁移程序执行系统迁移操作。操作系统是由大量的软件包构成,操作系统迁移的过程即是将原来的操作系统(第一操作系统)替换成新的操作系统(第二操作系统),该过程实际上是将第一操作系统包含的软件包替换为第二操作系统包含的软件包的过程。所述系统迁移程序,可以通过更新软件包或替换软件包的方式,将第一操作系统原地迁移至第二操作系统。
对于某个软件包(如vim软件包),将第一操作系统中的该软件包(如记为vim1)替换为第二操作系统中对应的软件包(如记为vim2),是在第一操作系统中卸载该软件包(vim1),并安装第二操作系统中对应软件包(vim2)的过程。
本申请实施例在合并层目录中进行模拟迁移验证,也即,在合并层目录中模拟将第一操作系统中的软件包替换为第二操作系统中的软件包的过程。卸载软件包实际上是删除安装该软件包所释放的文件清单的过程,安装软件包实际上是释放文件的过程。本申请实施例将第一操作系统中的软件包称为第一软件包,将第二操作系统中的软件包称为第二软件包,本申请实施例在合并层目录中模拟将第一操作系统中的第一软件包替换为第二操作系统中的第二软件包的过程,包括在合并层目录中模拟卸载第一操作系统中的第一软件包以及在合并层目录中模拟安装第二操作系统中对应的第二软件包的过程。
进一步地,在合并层目录中模拟卸载第一操作系统中的第一软件包的过程可以包括:在所述合并层目录中读取第一操作系统中所述第一软件包释放的第一文件清单(实际上是读取映射的下层目录的第一软件包释放的第一文件清单),执行卸载所述第一文件清单的操作,以从所述合并层目录中移除所述第一操作系统中的第一文件清单。此时会在上层目录中产生一个特殊的文件标记,使得所述第一文件清单对所述合并层目录不可见,而对所述下层目录可见,也即,合并层目录无法看到第一文件清单,而下层目录可以看到第一文件清单,由此实现在合并层目录中模拟卸载第一操作系统中第一软件包的过程。
在合并层目录中模拟安装第二操作系统中对应的第二软件包(第二软件包与第一软件包相对应)的过程可以包括:将第二操作系统中对应的第二软件包的第二文件清单释放到合并层目录;该过程实际上是将第二文件清单释放到上层目录,此时也会产生一个特殊的文件标记,使得所述第二文件清单对所述合并层目录可见,而对所述下层目录不可见,也即,合并层目录可以看到第二文件清单,而下层目录无法看到第二文件清单。下层目录和上层目录堆叠后得到合并层目录,合并层目录中看到的是替换后的第二文件清单。替换其他软件包的过程相类似,在该过程中,并不会对第一操作系统中的文件进行修改。
一个示例中,假设将第一操作系统记为系统x,将第二操作系统记为系统y,需要从系统x迁移至系统y。本申请实施例在将系统x迁移至系统y之前,在系统x中构建堆叠文件系统,该堆叠文件系统包括下层目录(如目录A)、上层目录(如目录B)和合并层目录(如目录C),系统x所在的磁盘分区挂载在下层目录。本申请实施例在合并层目录中模拟将系统x迁移至系统y的过程。将系统x迁移至系统y的过程实际上是将系统x包含的软件包替换为系统y包含的软件包的过程。
例如,将系统x中的vim软件包(如记为vim1)替换为系统y中的vim软件包(如记为vim2),是在系统x中卸载vim1软件包,再安装系统y中的vim2软件包的过程。
在目录C中模拟卸载系统x中的vim1的过程如下:在目录C中读取系统x的vim1所释放的文件清单(实际上是读取映射的目录A的vim1文件清单),执行卸载vim1文件清单的操作,以从目录C中移除系统x的vim1文件清单,此时会在目录B中产生一个特殊的文件标记,使得目录C无法看到vim1文件清单,而目录A可以看到vim1文件清单,由此实现在目录C中模拟卸载系统x中的vim1软件包的过程。
在目录C中模拟安装系统y中的vim2的过程如下:释放系统y的vim2文件清单到目录C,实际上是将系统y的vim2文件清单释放到目录B,此时也会产生一个特殊的文件标记,使得目录C可以看到vim2文件清单,而目录A无法看到vim2文件清单,目录B和目录A堆叠后得到目录C,目录C中可以看到的是替换后的vim2文件清单。
由此,实现将系统x中的vim1替换为系统y中的vim2,替换其他软件包的过程相类似,将系统x中的所有软件包替换为系统y中对应的软件包,即完成从系统x迁移至系统y的过程。
在本申请的一种可选实施例中,所述方法还可以包括:
步骤S31、识别所述第一操作系统的版本信息;
步骤S32、从预置服务器中获取与所述版本信息相匹配的仓库配置文件,所述仓库配置文件中记录有迁移至所述第二操作系统所需的目标迁移仓库的地址信息;所述目标迁移仓库中包括迁移至所述第二操作系统中所有的软件包;
步骤S33、根据所述仓库配置文件获取所述目标迁移仓库。
在所述第一操作系统中运行所述目标程序之后,所述目标程序识别所述第一操作系统的版本信息,并将所述第一操作系统的版本信息发送至预置服务器,以及接收预置服务器返回的与所述版本信息相匹配的仓库配置文件。所述仓库配置文件中记录有目标迁移仓库的地址信息;所述目标迁移仓库中包括迁移至所述第二操作系统中所有的软件包。
所述预置服务器中存储有针对不同版本的操作系统适配的仓库配置文件。仓库配置文件为yum源配置文件,作用是提供目标迁移仓库的地址信息。目标迁移仓库是一个软件包集合,里面存放的是第二操作系统的软件包。根据仓库配置文件中的地址信息可以获取目标迁移仓库中的软件包。在系统迁移程序运行过程中,系统迁移程序可以从该仓库配置文件中读取目标迁移仓库的地址信息,进而可以从根据该地址信息处获取第二操作系统的软件包,用来替换第一操作系统的软件包,实现系统迁移的目的。
预置服务器接收到第一操作系统的版本信息之后,将其存储的仓库配置文件与该版本信息进行比对,查找与该版本信息相匹配的仓库配置文件。例如,第一操作系统的版本信息为Centos7,则相匹配的仓库配置文件为C7-N.repo;又如,第一操作系统的版本信息为Centos8,则相匹配的仓库配置文件为C8-N.repo。当然,上述列举的只是本申请的一种示例,本申请实施例对第一操作系统的版本信息以及相匹配的仓库配置文件不做限制,例如可以根据第一操作系统的主版本及发行版本来确定相匹配的仓库配置文件。
在本申请的一种可选实施例中,所述在所述合并层目录中进行模拟迁移验证,可以包括:
步骤S41、在所述合并层目录的根文件系统中运行系统迁移程序;所述系统迁移程序用于执行所述系统迁移操作,并生成迁移结果日志;所述迁移结果日志中记录有所述系统迁移程序的执行结果;
步骤S42、重新启动并查询所述迁移结果日志,若所述系统迁移程序的执行结果为迁移成功,则确定所述模拟迁移验证成功。
本申请实施例在构建堆叠文件系统之后,在所述合并层目录的根文件系统中运行系统迁移程序,完成第一操作系统向第二操作系统迁移的操作,并生成迁移结果日志。所述迁移结果日志中记录有所述系统迁移程序的执行结果。
系统迁移程序执行完毕后,重新启动系统。系统启动后,查询所述迁移结果日志,若所述系统迁移程序的执行结果为迁移成功,则可以确定所述模拟迁移验证成功。
进一步地,在具体实施中,还可以设置模拟迁移验证的次数,如果预设次数的模拟迁移验证均成功,才可以正式执行系统迁移操作,以保证正式系统迁移的成功率。
在本申请的一种可选实施例中,所述方法还可以包括:
步骤S51、若所述系统迁移程序的执行结果为迁移失败,则重新启动并进入迁移后的合并层目录;
步骤S52、在所述迁移后的合并层目录中定位迁移问题,并对所述迁移问题进行修复;
步骤S53、若所述迁移问题修复成功,则确定所述模拟迁移验证成功;否则,确定所述模拟迁移验证失败。
系统迁移程序执行完毕后,重新启动系统。系统启动后,查询所述迁移结果日志,若所述系统迁移程序的执行结果为迁移失败,则重新启动系统,并在系统启动后进入迁移后的合并层目录。
在所述迁移后的合并层目录中定位迁移问题,并对所述迁移问题进行修复。所述迁移问题包括但不限于:在系统迁移过程中替换了不能替换的软件包或者替换的软件包错误等。
所述迁移问题修复成功是指,在修复迁移问题之后再次执行模拟迁移验证,如果系统迁移程序的执行结果为迁移成功,说明迁移问题修复成功。此时可以确定模拟迁移验证成功。在修复迁移问题之后再次执行模拟迁移验证,如果系统迁移程序的执行结果为迁移失败,说明迁移问题无法修复,则可以确定模拟迁移验证失败。
在本申请的一种可选实施例中,所述方法还可以包括:若所述迁移问题修复成功,则对所述第二操作系统中所述迁移问题修复成功的软件包进行同步更新。由此,在利用更新后的第二操作系统的软件包进行正式的系统迁移时,可以避免出现模拟迁移验证中出现的迁移问题,可以保证正式系统迁移的成功率。
如果模拟迁移验证成功,重新启动系统后可以进入迁移后的新的操作系统(第二操作系统)中。如果模拟迁移验证失败,可以取消所述堆叠文件系统,恢复至所述第一操作系统。具体地,可以将合并层目录(如目录C)取消堆叠,还原文件系统目录A 和目录B,进入到目录A完成系统回滚。
参照图3,示出了本申请实施例一种模拟迁移验证的流程示意图,包括如下步骤:
步骤301、进入目录C。
假设需要将电子设备中的第一操作系统迁移至第二操作系统。
在第一操作系统中已安装系统迁移程序和目标程序,目标程序在第一操作系统中构建堆叠文件系统,下层目录为目录A,上层目录为目录B,合并层目录为目录C,第一操作系统所在的磁盘分区挂载在目录A。
构建堆叠文件系统后,启动堆叠后的文件系统,进入目录C的根文件系统。
步骤302、运行系统迁移程序。
在目录C的根文件系统中运行系统迁移程序,并生成迁移结果日志。所述系统迁移程序用于执行系统迁移操作,从第一操作系统迁移至第二操作系统。所述迁移结果日志中记录有所述系统迁移程序的执行结果,如迁移成功或迁移失败。
步骤303、执行系统迁移。
所述系统迁移程序执行系统迁移操作完成之后,重新启动系统,并读取迁移结果日志,获取所述系统迁移程序的执行结果。如果所述系统迁移程序的执行结果为迁移成功,则执行步骤304;如果所述系统迁移程序的执行结果为迁移失败,则执行步骤305。
步骤304、重启进入新系统。
如果所述系统迁移程序的执行结果为迁移成功,重新启动系统后进入迁移后的目录C,也即进入迁移后的新系统(第二操作系统)。
步骤305、重启进入迁移后的目录C。
如果所述系统迁移程序的执行结果为迁移失败,重新启动系统后进入迁移后的目录C,此时进入的是迁移失败后的目录C。
步骤306、修复迁移问题。
在迁移后的目录C中定位迁移问题,并对所述迁移问题进行修复。修复迁移问题后重新执行模拟迁移验证,如果本次系统迁移程序的执行结果为迁移成功,则执行步骤307;如果本次系统迁移程序的执行结果为迁移失败,则执行步骤308。
步骤307、重启进入新系统。
在修复迁移问题后,如果迁移成功,重新启动系统后进入迁移后的目录C,也即进入迁移后的新系统(第二操作系统)。
步骤308、取消堆叠。
在修复迁移问题后,如果仍迁移失败,说明迁移问题无法修复,则取消堆叠文件系统。
步骤309、还原目录A。
将合并层目录(如目录C)取消堆叠,还原文件系统目录A 和目录B,进入到目录A完成系统回滚。目录B中记录有迁移失败的数据。
步骤310、重启进入迁移前的系统(第一操作系统)。
综上,本申请实施例提供的系统迁移方法,在进行系统迁移之前,先在本机上进行模拟迁移验证,如果模拟迁移验证成功,则可以在本机上正式进行系统迁移。本申请实施例利用堆叠文件系统(OverlayFS)进行模拟迁移验证,模拟迁移验证过程中产生的数据操作均在堆叠文件系统的合并层目录中执行,不会破坏原有的操作系统(第一操作系统),可以保证电子设备中原有的操作系统(第一操作系统)不会发生更改,即使模拟迁移验证失败,也可以通过取消所述堆叠文件系统,快速恢复至所述第一操作系统,不会影响电子设备原有的操作系统的正常运行,可以保证系统迁移的安全性。此外,由于堆叠文件系统的实现是零拷贝的,通过挂载操作即可实现,速度非常快,相对于利用其他存储设备对原操作系统进行备份的方式进行模拟迁移验证,可以极大提高模拟迁移验证的效率。再者,本申请实施例利用堆叠文件系统进行模拟迁移验证,可以在本机上进行,不需要利用其他存储设备,可以降低硬件成本。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图4,示出了本申请的一种系统迁移装置实施例的结构框图,所述装置应用于电子设备,所述电子设备安装有第一操作系统,所述装置包括:
堆叠构建模块401,用于构建堆叠文件系统,所述堆叠文件系统包括下层目录、上层目录和合并层目录,所述第一操作系统所在的磁盘分区挂载在所述堆叠文件系统的下层目录,所述上层目录初始为空目录;
模拟验证模块402,用于在所述合并层目录中进行模拟迁移验证,所述模拟迁移验证用于在所述合并层目录中执行系统迁移操作;所述系统迁移操作用于从所述第一操作系统迁移至第二操作系统;
系统迁移模块403,用于若所述模拟迁移验证成功,则在所述第一操作系统中执行所述系统迁移操作。
可选地,所述装置还包括:
系统恢复模块,用于若所述模拟迁移验证失败,则取消所述堆叠文件系统,恢复至所述第一操作系统。
可选地,所述模拟验证模块,包括:
程序运行子模块,用于在所述合并层目录的根文件系统中运行系统迁移程序;所述系统迁移程序用于执行所述系统迁移操作,并生成迁移结果日志;所述迁移结果日志中记录有所述系统迁移程序的执行结果;
第一确定子模块,用于重新启动并查询所述迁移结果日志,若所述系统迁移程序的执行结果为迁移成功,则确定所述模拟迁移验证成功。
可选地,所述装置还包括:
第一重启模块,用于若所述系统迁移程序的执行结果为迁移失败,则重新启动并进入迁移后的合并层目录;
问题修复模块,用于在所述迁移后的合并层目录中定位迁移问题,并对所述迁移问题进行修复;
结果确定模块,用于若所述迁移问题修复成功,则确定所述模拟迁移验证成功;否则,确定所述模拟迁移验证失败。
可选地,所述装置还包括:
软件更新模块,用于若所述迁移问题修复成功,则对所述第二操作系统中所述迁移问题修复成功的软件包进行同步更新。
可选地,所述装置还包括:
目标程序运行模块,用于在所述第一操作系统中运行目标程序,并新建目标启动项;所述目标程序用于释放目标内核、所述目标内核相匹配的第一镜像、以及第二镜像;所述目标内核内置有堆叠文件系统的驱动程序,所述第一镜像用于启动根文件系统,所述第二镜像包含堆叠程序,所述堆叠程序用于构建堆叠文件系统;
系统加载模块,用于重新启动后进入所述目标启动项,通过所述目标启动项加载所述第一镜像和所述目标内核,所述目标内核通过所述第一镜像挂载所述第二镜像;
堆叠程序运行模块,用于运行所述第二镜像中的所述堆叠程序。
可选地,所述堆叠构建模块,包括:
分区信息获取子模块,用于通过读取所述第一操作系统的分区配置文件,获取所述第一操作系统的分区信息;
第一目录创建子模块,用于创建下层目录,通过挂载命令将所述第一操作系统所在的磁盘分区挂载在所述下层目录;
第二目录创建子模块,用于创建上层目录和合并层目录,通过挂载命令将所述下层目录和所述上层目录挂载至所述合并层目录;
目录进入子模块,用于通过切换当前系统的根文件系统将当前系统引导至所述合并层目录。
可选地,所述装置还包括:
版本获取模块,用于识别所述第一操作系统的版本信息;
配置文件获取模块,用于从预置服务器中获取与所述版本信息相匹配的仓库配置文件,所述仓库配置文件中记录有迁移至所述第二操作系统所需的目标迁移仓库的地址信息;所述目标迁移仓库中包括迁移至所述第二操作系统中所有的软件包;
仓库获取模块,用于根据所述仓库配置文件获取所述目标迁移仓库。
本申请实施例提供的系统迁移装置,在进行系统迁移之前,先在本机上进行模拟迁移验证,如果模拟迁移验证成功,则可以在本机上正式进行系统迁移。本申请实施例利用堆叠文件系统(OverlayFS)进行模拟迁移验证,模拟迁移验证过程中产生的数据操作均在堆叠文件系统的合并层目录中执行,不会破坏原有的操作系统(第一操作系统),可以保证电子设备中原有的操作系统(第一操作系统)不会发生更改,即使模拟迁移验证失败,也可以通过取消所述堆叠文件系统,快速恢复至所述第一操作系统,不会影响电子设备原有的操作系统的正常运行,可以保证系统迁移的安全性。此外,由于堆叠文件系统的实现是零拷贝的,通过挂载操作即可实现,速度非常快,相对于利用其他存储设备对原操作系统进行备份的方式进行模拟迁移验证,可以极大提高模拟迁移验证的效率。再者,本申请实施例利用堆叠文件系统进行模拟迁移验证,可以在本机上进行,不需要利用其他存储设备,可以降低硬件成本。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例提供了一种用于系统迁移的装置,包括有存储器,以及一个以上的程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序包含用于进行上述一个或多个实施例中所述的系统迁移方法。
图5是根据一示例性实施例示出的一种用于系统迁移的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/ O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音信息处理模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/ O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以搜索装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频信息处理(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图6是本申请的一些实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行图1所示的系统迁移方法。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行前文图1所对应实施例中系统迁移方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图1所对应实施例中系统迁移方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
以上对本申请所提供的一种系统迁移方法、一种系统迁移装置和可读存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (11)

1.一种系统迁移方法,其特征在于,应用于电子设备,所述电子设备安装有第一操作系统,所述方法包括:
构建堆叠文件系统,所述堆叠文件系统包括下层目录、上层目录和合并层目录,所述第一操作系统所在的磁盘分区挂载在所述堆叠文件系统的下层目录,所述上层目录初始为空目录;
在所述合并层目录中进行模拟迁移验证,所述模拟迁移验证用于在所述合并层目录中执行系统迁移操作;所述系统迁移操作用于从所述第一操作系统迁移至第二操作系统;
若所述模拟迁移验证成功,则在所述第一操作系统中执行所述系统迁移操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述模拟迁移验证失败,则取消所述堆叠文件系统,恢复至所述第一操作系统。
3.根据权利要求1所述的方法,其特征在于,所述在所述合并层目录中进行模拟迁移验证,包括:
在所述合并层目录的根文件系统中运行系统迁移程序;所述系统迁移程序用于执行所述系统迁移操作,并生成迁移结果日志;所述迁移结果日志中记录有所述系统迁移程序的执行结果;
重新启动并查询所述迁移结果日志,若所述系统迁移程序的执行结果为迁移成功,则确定所述模拟迁移验证成功。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述系统迁移程序的执行结果为迁移失败,则重新启动并进入迁移后的合并层目录;
在所述迁移后的合并层目录中定位迁移问题,并对所述迁移问题进行修复;
若所述迁移问题修复成功,则确定所述模拟迁移验证成功;否则,确定所述模拟迁移验证失败。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述迁移问题修复成功,则对所述第二操作系统中所述迁移问题修复成功的软件包进行同步更新。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一操作系统中运行目标程序,并新建目标启动项;所述目标程序用于释放目标内核、所述目标内核相匹配的第一镜像、以及第二镜像;所述目标内核内置有堆叠文件系统的驱动程序,所述第一镜像用于启动根文件系统,所述第二镜像包含堆叠程序,所述堆叠程序用于构建堆叠文件系统;
重新启动后进入所述目标启动项,通过所述目标启动项加载所述第一镜像和所述目标内核,所述目标内核通过所述第一镜像挂载所述第二镜像;
运行所述第二镜像中的所述堆叠程序。
7.根据权利要求1所述的方法,其特征在于,所述构建堆叠文件系统,包括:
通过读取所述第一操作系统的分区配置文件,获取所述第一操作系统的分区信息;
创建下层目录,通过挂载命令将所述第一操作系统所在的磁盘分区挂载在所述下层目录;
创建上层目录和合并层目录,通过挂载命令将所述下层目录和所述上层目录挂载至所述合并层目录;
通过切换当前系统的根文件系统将当前系统引导至所述合并层目录。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
识别所述第一操作系统的版本信息;
从预置服务器中获取与所述版本信息相匹配的仓库配置文件,所述仓库配置文件中记录有迁移至所述第二操作系统所需的目标迁移仓库的地址信息;所述目标迁移仓库中包括迁移至所述第二操作系统中所有的软件包;
根据所述仓库配置文件获取所述目标迁移仓库。
9.一种系统迁移装置,其特征在于,应用于电子设备,所述电子设备安装有第一操作系统,所述装置包括:
堆叠构建模块,用于构建堆叠文件系统,所述堆叠文件系统包括下层目录、上层目录和合并层目录,所述第一操作系统所在的磁盘分区挂载在所述堆叠文件系统的下层目录,所述上层目录初始为空目录;
模拟验证模块,用于在所述合并层目录中进行模拟迁移验证,所述模拟迁移验证用于在所述合并层目录中执行系统迁移操作;所述系统迁移操作用于从所述第一操作系统迁移至第二操作系统;
系统迁移模块,用于若所述模拟迁移验证成功,则在所述第一操作系统中执行所述系统迁移操作。
10.一种用于系统迁移的装置,其特征在于,包括有存储器,以及一个以上程序,其中一个以上程序存储于存储器中,且经配置以由一个以上处理器执行所述一个以上程序,所述一个以上程序包含用于进行如权利要求1至8任一所述的系统迁移方法的指令。
11.一种可读存储介质,其上存储有指令,当所述指令由装置的一个或多个处理器执行时,使得装置执行如权利要求1至8任一所述的系统迁移方法。
CN202310324621.4A 2023-03-30 2023-03-30 一种系统迁移方法、装置和可读存储介质 Active CN116048644B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310324621.4A CN116048644B (zh) 2023-03-30 2023-03-30 一种系统迁移方法、装置和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310324621.4A CN116048644B (zh) 2023-03-30 2023-03-30 一种系统迁移方法、装置和可读存储介质

Publications (2)

Publication Number Publication Date
CN116048644A true CN116048644A (zh) 2023-05-02
CN116048644B CN116048644B (zh) 2023-06-16

Family

ID=86118499

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310324621.4A Active CN116048644B (zh) 2023-03-30 2023-03-30 一种系统迁移方法、装置和可读存储介质

Country Status (1)

Country Link
CN (1) CN116048644B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116383090A (zh) * 2023-05-29 2023-07-04 麒麟软件有限公司 一种用于麒麟系统迁移工具的自动化测试方法及平台
CN117555876A (zh) * 2024-01-11 2024-02-13 麒麟软件有限公司 一种基于虚拟文件系统的操作系统迁移评估方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026587A1 (en) * 2004-07-28 2006-02-02 Lemarroy Luis A Systems and methods for operating system migration
US20060064474A1 (en) * 2004-09-23 2006-03-23 Feinleib David A System and method for automated migration from Linux to Windows
US20150319222A1 (en) * 2014-04-30 2015-11-05 Vmware, Inc. Operating system migration while preserving applications, data, and settings
CN109213504A (zh) * 2018-08-17 2019-01-15 烽火通信科技股份有限公司 一种堆叠式文件系统及其加载方法和升级方法
CN110221940A (zh) * 2019-06-12 2019-09-10 湖南麒麟信安科技有限公司 基于堆叠文件系统的掉电恢复方法、系统及介质
CN112463191A (zh) * 2020-11-26 2021-03-09 北京沃东天骏信息技术有限公司 一种文件更新方法及装置、设备、存储介质
WO2021143845A1 (zh) * 2020-01-16 2021-07-22 深圳市万普拉斯科技有限公司 扩展系统分区的方法、装置、存储介质和计算机设备
CN114003258A (zh) * 2021-10-29 2022-02-01 武汉深之度科技有限公司 一种软件升级方法、计算设备及可读存储介质
CN114127685A (zh) * 2019-07-04 2022-03-01 三星电子株式会社 电子设备及其控制方法
CN115617488A (zh) * 2022-11-07 2023-01-17 统信软件技术有限公司 操作系统迁移方法、装置、计算设备及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026587A1 (en) * 2004-07-28 2006-02-02 Lemarroy Luis A Systems and methods for operating system migration
US20060064474A1 (en) * 2004-09-23 2006-03-23 Feinleib David A System and method for automated migration from Linux to Windows
US20150319222A1 (en) * 2014-04-30 2015-11-05 Vmware, Inc. Operating system migration while preserving applications, data, and settings
CN109213504A (zh) * 2018-08-17 2019-01-15 烽火通信科技股份有限公司 一种堆叠式文件系统及其加载方法和升级方法
CN110221940A (zh) * 2019-06-12 2019-09-10 湖南麒麟信安科技有限公司 基于堆叠文件系统的掉电恢复方法、系统及介质
CN114127685A (zh) * 2019-07-04 2022-03-01 三星电子株式会社 电子设备及其控制方法
WO2021143845A1 (zh) * 2020-01-16 2021-07-22 深圳市万普拉斯科技有限公司 扩展系统分区的方法、装置、存储介质和计算机设备
CN112463191A (zh) * 2020-11-26 2021-03-09 北京沃东天骏信息技术有限公司 一种文件更新方法及装置、设备、存储介质
CN114003258A (zh) * 2021-10-29 2022-02-01 武汉深之度科技有限公司 一种软件升级方法、计算设备及可读存储介质
CN115617488A (zh) * 2022-11-07 2023-01-17 统信软件技术有限公司 操作系统迁移方法、装置、计算设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116383090A (zh) * 2023-05-29 2023-07-04 麒麟软件有限公司 一种用于麒麟系统迁移工具的自动化测试方法及平台
CN116383090B (zh) * 2023-05-29 2023-08-22 麒麟软件有限公司 一种用于麒麟系统迁移工具的自动化测试方法及平台
CN117555876A (zh) * 2024-01-11 2024-02-13 麒麟软件有限公司 一种基于虚拟文件系统的操作系统迁移评估方法及装置

Also Published As

Publication number Publication date
CN116048644B (zh) 2023-06-16

Similar Documents

Publication Publication Date Title
CN116048644B (zh) 一种系统迁移方法、装置和可读存储介质
US10067835B2 (en) System reset
WO2019019643A1 (zh) 应用程序热更新方法、装置、终端和存储介质
CN108241550B (zh) 一种操作系统备份还原方法
CN110209735B (zh) 数据库备份方法、数据库备份装置、计算设备和存储介质
KR20120041384A (ko) 모바일 디바이스의 펌웨어 업데이트 방법 및 장치
EP3769224B1 (en) Configurable recovery states
WO2022111097A1 (zh) 一种文件更新方法及装置、设备、存储介质
EP3025255A1 (en) Virtual synchronization with on-demand data delivery
CN110162429B (zh) 系统修复方法、服务器及存储介质
US11301338B2 (en) Recovery on virtual machines with existing snapshots
CN110209525B (zh) 操作系统还原方法及装置
CN110795278B (zh) 用于提供文件级恢复的系统和方法
CN105867962A (zh) 系统升级的方法和装置
CN115202686A (zh) 虚拟化系统的升级方法、装置、电子设备及存储介质
CN114780019A (zh) 电子设备的管理方法、装置、电子设备及存储介质
CN111338751B (zh) 同ceph集群中数据跨pool迁移方法及装置
CN111782236A (zh) 系统软件升级方法、装置、存储介质及一体机设备
CN116700768B (zh) 一种应用的处理方法及相关装置
CN109634782B (zh) 一种系统健壮性的检测方法、装置、存储介质及终端
US20190339901A1 (en) Free space pass-through
CN111290882B (zh) 数据文件备份方法、数据文件备份装置及电子设备
CN108259613B (zh) 容灾数据的在线同步装置、方法及计算机可读存储介质
CN112596954A (zh) 数据备份及重建方法、装置、设备及存储介质
CN110197067B (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