CN107608699B - 一种基于魔术分区的细粒度软件版本升级方法 - Google Patents

一种基于魔术分区的细粒度软件版本升级方法 Download PDF

Info

Publication number
CN107608699B
CN107608699B CN201710961787.1A CN201710961787A CN107608699B CN 107608699 B CN107608699 B CN 107608699B CN 201710961787 A CN201710961787 A CN 201710961787A CN 107608699 B CN107608699 B CN 107608699B
Authority
CN
China
Prior art keywords
upgrading
partition
magic
fine
content
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.)
Active
Application number
CN201710961787.1A
Other languages
English (en)
Other versions
CN107608699A (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.)
Anhui Wantong Post And Telecommunications Co ltd
Original Assignee
Anhui Wantong Post And Telecommunications 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 Anhui Wantong Post And Telecommunications Co ltd filed Critical Anhui Wantong Post And Telecommunications Co ltd
Priority to CN201710961787.1A priority Critical patent/CN107608699B/zh
Publication of CN107608699A publication Critical patent/CN107608699A/zh
Application granted granted Critical
Publication of CN107608699B publication Critical patent/CN107608699B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及软件技术领域,具体涉及一种基于魔术分区的细粒度软件版本升级方法。该种基于魔术分区的细粒度软件版本升级方法采用魔术分区技术,建立单独的分区,不具体指定该分区的用途和所存储的内容,根据产品的用途和细粒度化升级内容的重要程度,动态调整该分区用途和写入内容,实现对系统核心内容的备份。该种基于魔术分区的细粒度软件版本升级方法,采用边解压边运行的方式,能够极大减少运行时所用内存,在升级时采用细粒度化的方式,针对性的升级版本中具体内容,能够实现版本升级内容各部分的可配置化,实现各部分内容的独立升级,解决一次性升级所需要的大量内存和非易失性存储介质的问题。

Description

一种基于魔术分区的细粒度软件版本升级方法
技术领域
本发明涉及软件技术领域,具体涉及一种基于魔术分区的细粒度软件版本升级方法。
背景技术
软件版本升级活动是软件生命周期中维护阶段的主要活动之一。版本升级方法的优劣,直接关系到整个产品的售后品质,产品的稳定性,以及产品功能的扩充。在嵌入式设备和通讯领域,因为作为存储介质的内存芯片和非易失性存储介质的ROM、FlASH、硬盘等芯片的成本往往占整个设备成本的很大比重,这些存储芯片与设备软件的运行、软件版本的升级活动密切相关。一种良好的版本升级方法能充分整合设备的存储资源,使用尽量少的存储资源达到升级目标,从而实现采用小颗粒存储芯片的设计方案,达到控制成本的目标。
现阶段发布的软件版本,通常是由很多可执行文件、配置文件等相关信息文件压缩后作为一个文件对外呈现。软件版本所包含的可执行程序在正式执行前,往往需由对应的解压缩程序,完全解压到指定的存储介质后,方能执行。在当前内存芯片单bit价格远高于非易失性存储芯片的情况下,通常采用的是全部解压到非易失性存储芯片上,然后执行时再调入内存芯片。在此种运行模式下,版本的升级往往采用先将整个待升级文件全部下载拷贝到非易失性存储介质上,然后通过激活的方法,完成升级。
现有的升级方案建立在对版本运行前的全解压缩和待升级版本全下载、全拷贝的基础上,对存储资源的容量要求很高,无法满足现阶段产品对成本控制的要求。同时由于是对升级版本的全下载和拷贝,对网络质量要求高、版本升级时间长,升级过程中的高时延极大降低了产品的体验度,高网络质量要求,也限制了产品的应用环境,增加了升级失败的风险,降低了产品的整体稳定性。
发明内容
为了解决上述背景中提到的问题,本发明目的在于提供一种基于魔术分区的细粒度软件版本升级方法。
为实现上述目的,本发明提供如下技术方案:
一种基于魔术分区的细粒度软件版本升级方法,包括配置活动和升级活动。
所述基于魔术分区的细粒度软件版本升级方法的配置活动包括软件版本升级内容配置、软件版本执行方式的配置、产品非易失性存储介质分区配置。
所述基于魔术分区的细粒度软件版本升级方法的升级活动包括细粒度升级内容下载流程、升级内容写入非易失性存储介质流程、版本激活流程、魔术分区信息更新流程。
所述基于魔术分区的细粒度软件版本升级方法的主要实施流程包括以下步骤:
1)采用边解压边执行的方式运行软件版本;
2)细粒度化软件版本,提供细粒度化升级内容;
3)根据前述细粒度化内容配置产品非易失性存储介质分区;
4)根据待备份细粒度化分区数量,配置产品非易失性存储介质魔术分区数量;
5)创建版本升级服务守候线程,响应升级配置请求和升级服务请求;
6)创建魔术分区管理核心,完成魔术分区资源统计、变更、申请、回收功能。
所述基于魔术分区的细粒度软件版本升级方法包括以下步骤:
1)根据产品的特性,依据产品的启动时序、软件库的依赖关系、业务耦合性,将需要升级的内容细粒度化;
2)根据细粒度化的升级内容,在非易失性存储介质进行相应分区,实现按升级内容细粒度化分区;
3)根据升级内容的重要性,确定魔术分区数量,划分魔术分区队列,魔术分区不同于普通固定分区,其存储内存可根据需求动态变化,其用途也可根据产品用途进行变化;
4)系统运行采用边解压版本边运行的方式;
5)启动系统升级守候程序,配置系统升级信息,设置各个细粒度化升级内容的服务器信息,待升级内容文件名等信息;
6)系统接收到升级指令后,对指定的细粒度化升级内容,根据配置信息,查找对应服务器,下载相应升级内容到内存;
7)查找魔术分区队列,按照最优算法,选择非易失性存储介质的目标分区,将内存中的升级内容写到非易失性存储介质的目标分区;
8)激活非易失性存储介质的目标分区,将原分区挂载到魔术分区队列,更新魔术分区信息表,记录原分区的备份信息。
在本发明所提供的基于魔术分区的细粒度软件版本升级方法中,版本的运行方式由原来的整体解压然后迁移至内存运行,优化为边解压边运行。版本升级由原来的整体一次性下载写入优化为根据不同需求细粒度化升级某部分内容,同时建立与之相匹配的分区信息,实现最小化升级需求。同时采用魔术分区技术,建立单独的分区,不具体指定该分区的用途和所存储的内容,根据产品的用途和细粒度化升级内容的重要程度,动态调整该分区用途和写入内容,实现对系统核心内容的备份。
与现有技术相比较,本发明提供的基于魔术分区的细粒度软件版本升级方法,采用边解压边运行的方式,能够极大减少运行时所用内存。同时,在升级时采用细粒度化的方式,针对性的升级版本中具体内容,能够实现版本升级内容各部分的可配置化,实现各部分内容的独立升级,解决一次性升级所需要的大量内存和非易失性存储介质的问题。魔术分区技术的使用,既能解决边解压边运行导致的不能升级正在运行的分区问题,又能实现一个魔术分区升级备份多个分区的功能。
附图说明
图1是本发明中软件版本细粒度化和非易失性存储介质分区示意图;
图2是本发明中基于魔术分区的细粒度软件版本升级方法的流程图。
具体实施方式
下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明中基于魔术分区的细粒度软件版本升级方法包括配置活动和升级活动两大部分:
1)配置活动包括:软件版本升级内容配置、软件版本执行方式的配置、产品非易失性存储介质分区配置;
2)升级活动包括:细粒度升级内容下载流程、升级内容写入非易失性存储介质流程、版本激活流程、魔术分区信息更新流程。
主要实施流程包括:
1)采用边解压边执行的方式运行软件版本;
2)细粒度化软件版本,提供细粒度化升级内容;
3)根据前述细粒度化内容配置产品非易失性存储介质分区;
4)根据待备份细粒度化分区数量,配置产品非易失性存储介质魔术分区数量;
5)创建版本升级服务守候线程,响应升级配置请求和升级服务请求;
6)创建魔术分区管理核心,完成魔术分区资源统计、变更、申请、回收功能。
下面结合本发明的一个实例进行描述:
1)版本配置阶段:配置使用边解压边执行的高压缩比文件系统squashfs,配置软件运行方式为边解压边执行;
2)根据产品启动流程和业务耦合性,将软件版本细粒度化为:boot、kernel、base-app、server-app升级包;
3)产品非易性存储介质上根据软件版本细粒度化信息和魔术分区数量配置如下分区:boot、kernel、base-app、server-app,bak;
4)软件版本采用边解压边执行的方式启动运行,开启升级服务守候线程:update-server;
5)update-server守候线程接收到各版本细粒度升级配置信息,存储配置信息;
6)update-server守候线程接收到升级指令:update base-app,根据升级配置信息,到指定服务器下载升级内容到内存文件系统/tmp目录下;
7)查找魔术分区信息表,确定可用分区:bak,将/tmp下升级内容写入魔术分区:bak;
8)激活bak为base-app,更新魔术分区信息:base-app入魔术分区队列,供下次其他分区活动使用,登记当前备份内容为:base-app。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

Claims (1)

1.一种基于魔术分区的细粒度软件版本升级方法,其特征在于,包括配置活动和升级活动;
配置活动包括软件版本升级内容配置、软件版本执行方式的配置、产品非易失性存储介质分区配置;
升级活动包括细粒度升级内容下载流程、升级内容写入非易失性存储介质流程、版本激活流程、魔术分区信息更新流程;
升级方法,包括以下步骤:
1)采用边解压边执行的方式运行软件版本;
2)细粒度化软件版本,提供细粒度化升级内容;
根据产品的特性,依据产品的启动时序、软件库的依赖关系、业务耦合性,将需要升级的内容细粒度化;
3)根据前述细粒度化升级内容,配置产品非易失性存储介质分区;
根据细粒度化的升级内容,在非易失性存储介质进行相应分区,实现按升级内容细粒度化分区;
4)根据待备份细粒度化分区数量,配置产品非易失性存储介质魔术分区数量;
根据升级内容的重要性,确定魔术分区数量,划分魔术分区队列,魔术分区不同于普通固定分区,其存储内存根据需求动态变化,其用途根据产品用途进行变化;
5)创建版本升级服务守候线程,响应升级配置请求和升级服务请求;
启动系统升级守候程序,配置系统升级信息,设置各个细粒度化升级内容的服务器信息,待升级内容文件名信息;系统接收到升级指令后,对指定的细粒度化升级内容,根据配置信息,查找对应服务器,下载相应升级内容到内存;
6)创建魔术分区管理核心,完成魔术分区资源统计、变更、申请、回收功能;
查找魔术分区队列,按照最优算法,选择非易失性存储介质的目标分区,将内存中的升级内容写到非易失性存储介质的目标分区;激活非易失性存储介质的目标分区,将原分区挂载到魔术分区队列,更新魔术分区信息表,记录原分区的备份信息。
CN201710961787.1A 2017-10-17 2017-10-17 一种基于魔术分区的细粒度软件版本升级方法 Active CN107608699B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710961787.1A CN107608699B (zh) 2017-10-17 2017-10-17 一种基于魔术分区的细粒度软件版本升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710961787.1A CN107608699B (zh) 2017-10-17 2017-10-17 一种基于魔术分区的细粒度软件版本升级方法

Publications (2)

Publication Number Publication Date
CN107608699A CN107608699A (zh) 2018-01-19
CN107608699B true CN107608699B (zh) 2020-09-08

Family

ID=61078544

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710961787.1A Active CN107608699B (zh) 2017-10-17 2017-10-17 一种基于魔术分区的细粒度软件版本升级方法

Country Status (1)

Country Link
CN (1) CN107608699B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101711026A (zh) * 2009-12-11 2010-05-19 中兴通讯股份有限公司 一种移动终端间软件版本的升级方法及升级系统
CN102945179A (zh) * 2012-11-28 2013-02-27 青岛海信宽带多媒体技术有限公司 基于mtd分区的软件升级方法和装置
CN104298532A (zh) * 2014-11-04 2015-01-21 上海斐讯数据通信技术有限公司 一种软件升级方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9830141B2 (en) * 2013-12-23 2017-11-28 Google Llc Providing a software update to computing devices on the same network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101711026A (zh) * 2009-12-11 2010-05-19 中兴通讯股份有限公司 一种移动终端间软件版本的升级方法及升级系统
CN102945179A (zh) * 2012-11-28 2013-02-27 青岛海信宽带多媒体技术有限公司 基于mtd分区的软件升级方法和装置
CN104298532A (zh) * 2014-11-04 2015-01-21 上海斐讯数据通信技术有限公司 一种软件升级方法及系统

Also Published As

Publication number Publication date
CN107608699A (zh) 2018-01-19

Similar Documents

Publication Publication Date Title
US9971618B2 (en) System and method to reconfigure a virtual machine image suitable for cloud deployment
US11392403B2 (en) Individualizing virtual hardware configurations of deployed desktop virtual machines using custom resource templates
US8498997B2 (en) Server image migration
US10423572B2 (en) Performing live updates to file system volumes
US8914785B2 (en) Providing virtual appliance system firmware images
US8752039B1 (en) Dynamic upgrade of operating system in a network device
US20110173604A1 (en) Firmware updating system, firmware delivering server, firmware embedded device, and program
WO2019062703A1 (zh) 升级方法、嵌入式系统
US10795688B2 (en) System and method for performing an image-based update
US20130151835A1 (en) Deployment of a Software Image on Multiple Targets with Streaming Technique
CN104918114A (zh) 一种操作系统升级方法及装置
US8806477B2 (en) Space efficient software package management
US20140109089A1 (en) System to rebuild difference virtual hard disk for updating operation system and method thereof
CN109710297B (zh) 一种设备整体或分模块进行升级和回退方法
CN110780889A (zh) 一种云手机数据克隆方法及云手机数据还原方法
WO2016074460A1 (zh) 一种数据处理方法及装置
CN107608699B (zh) 一种基于魔术分区的细粒度软件版本升级方法
CN106933604B (zh) 一种系统升级方法及装置
US11461131B2 (en) Hosting virtual machines on a secondary storage system
CN110795113B (zh) 一种Redis集群服务的安装方法、服务器和介质
JP2018195046A (ja) プログラム更新装置、プログラム更新方法、プログラム更新プログラム及びプログラム更新システム
CN104503811A (zh) 基于单存储区的通信设备升级方法及系统
US10210004B2 (en) Method of providing at least one data carrier for a computer system and computer system including service processor independently operable from a main processor of the computer system
WO2024114029A1 (zh) 一种操作系统的升级方法及电子设备
TWI448967B (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