CN107608699B - 一种基于魔术分区的细粒度软件版本升级方法 - Google Patents
一种基于魔术分区的细粒度软件版本升级方法 Download PDFInfo
- 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
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)创建魔术分区管理核心,完成魔术分区资源统计、变更、申请、回收功能;
查找魔术分区队列,按照最优算法,选择非易失性存储介质的目标分区,将内存中的升级内容写到非易失性存储介质的目标分区;激活非易失性存储介质的目标分区,将原分区挂载到魔术分区队列,更新魔术分区信息表,记录原分区的备份信息。
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)
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)
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 |
-
2017
- 2017-10-17 CN CN201710961787.1A patent/CN107608699B/zh active Active
Patent Citations (3)
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 |