用于执行操作系统的实时更新的方法和系统的制作方法_4

文档序号:8395743阅读:来源:国知局
据和应用数据。应用状态数据指定了与应用312的执行相关联的执行状态和控制结构。应 用数据指应用312操作以执行其功能的数据。
[0065] 计算设备300进一步地包含实时更新引擎315和核心服务与基础进程列表数据 结构317。实时更新引擎315包含编排和执行操作的逻辑,以促进操作系统314在计算 设备300主控的逻辑分区中的实时更新。核心服务与基础进程的列表数据结构317列出 核心服务和基础进程,当执行操作系统314的实时更新时它们不能被迁移到新逻辑分区 (LPAR2) 340中并且当实时更新操作正在被执行时必须被维持在原LPAR1 310中。
[0066] 应该理解,经在图3中实时更新引擎315被示为原LPAR 310和新LPAR340之外的 独立引擎,实时更新引擎可以事实上跨越LPAR310和340被分割,这样实时更新命令可以在 原LPAR 310中被发起以开始实时更新操作而实时更新的过程连同应用实例342可以被迁 移到新LPAR 340中。实时更新命令可以开始两个附加的进程,一个是留在原LPAR 310上 的基础进程而第二个是从新LPAR 340上的初始化表开始以管理迁移操作的接收端。然而, 为简化图3中的描述,实时更新引擎315被示为原LPAR 310和新LPAR340之外的独立实体 并且为了简化说明今后也将被如此描述。
[0067] 如图3所示,操作系统更新或打补丁 330可以在计算设备300中被接收以对运行 在计算设备300主控的逻辑分区中的操作系统实例314更新/打补丁。如上面提及的,操 作系统更新/打补丁 330可以通过计算设备300从源计算设备拉取,例如,从操作系统供应 商的计算设备被下载以响应计算设备300对更新的轮询。备选地,操作系统更新/打补丁 330可以被推送给计算设备300,比如这样一种情况,实现操作系统的计算设备向操作系统 的供应商登记,供应商推送更新/打补丁给登记的计算设备。操作系统更新/打补丁 330 是用来替代或增强操作系统314的一段代码,并且必须被安装在逻辑分区310中以对作为 操作系统314的一部分被执行的逻辑更新/打补丁。
[0068] 不管操作系统更新/打补丁 330被接收的方式,实时更新引擎315被通知需要对 操作系统的类型更新/打补丁,例如,AIX、Linux等(在同一计算设备300上可以有不同的 操作系统在不同的LPAR中执行),以响应接收到操作系统更新/打补丁 330(之后被简称为 操作系统更新330)。响应于被通知需要对操作系统314更新/打补丁,实时更新引擎315 标识了执行将被更新/打补丁的操作系统类型实例的逻辑分区。实时更新引擎315随后发 起并编排在这些LPAR中以之后描述的方式进行的操作系统实例的实时更新。为了说明的 目的,假定计算设备300目前正主控单个LPAR,例如LPAR1 310,它正在运行操作系统的实 例,该操作系统的实例将被操作系统更新330更新/打补丁。
[0069] 为发起实时更新操作,实时更新引擎315生成根卷组(rootvg) 316的克隆、或拷 贝,包含将被更新/打补丁的操作系统314,在另一个存储位置,比如在一个相同或不同的 硬盘驱动器、闪存、固态存储器等上的另一个位置。产生的rootvg克隆320包含操作系统 内核、用户空间二进制文件(例如,共享库)等,它们使用接收到的操作系统更新330来更 新/打补丁。这产生了用于引导新逻辑分区(LPAR2)340的已更新/打补丁的rootvg克隆 346。更新的根卷组克隆346中的更新的操作系统逻辑在新逻辑分区(LPAR2)340中被执行 以引导LPAR2 340到开始和运行的状态,从而它可以被用来执行用户应用。
[0070] 核心服务与基础进程数据结构317提出了一个列表,定义了不能作为操作系统更 新/打补丁操作的一部分从操作系统314被迁移到操作系统344的服务和进程。操作系统 314的所有其他服务和进程可以被迁移到操作系统344。
[0071] 如上面提及的,不是所有进程可以被迁移到新LPAR2 340的操作系统344,因为在 新LPAR2 340开始及运行之后以及当应用实例312的迁移和在新LPAR2 340中应用实例 312的重新开始正在被执行时,原LPAR1 310必须继续运行。这是因为存储器318中与被 移动的应用实例312进程相关联的应用数据,当应用实例312进程在新LPAR2340上被重新 引导后被异步传输,这样原LPAR1 310必须是工作的,直到存储器318中的所有应用数据被 移动到与新LPAR2 340相关联的存储器348中。因此,存在核心操作系统服务的集合,其将 不会被移动并将继续在原LPAR1 310上运行。因为此集合较小,核心服务与基础进程数据 结构317存储了标识哪些二进制文件应该被当作核心或"基础"进程的列表。操作系统314 的操作系统内核可以保持这个列表数据结构或者它可以如图所示与实时更新引擎315相 关联。操作系统内核和/或实时更新引擎315可以提供一个接口,通过该接口用户可以编 辑该核心服务与基础进程的列表,例如,添加附加的被当作核心或基础进程的服务/进程 从而使它们在操作系统被更新时不会被迁移。
[0072] 作为核心与基础进程数据结构317中列表的一部分,特定核心与基础进程遵循定 义的规则,该规则指定了这些核心及基础进程与可以从原LPAR1 310移动到新LPAR2 340 的进程之间的关系。第一,基础进程将全部作为初始化进程的子进程或其他基础进程的子 进程运行。第二,基础进程的所有子进程也被认为是基础进程。第三,基础进程不与非基础 进程共享资源。
[0073] 不属于列表数据结构317的一部分的服务和进程被认为是可迁移的。新LPAR2 340以最小集合的服务被引导,该最小集合的服务呈现为LPAR2 340上的操作系统的新拷 贝的一部分,它们必须在新LPAR2340上开始运行以使能它引导并接收从原LPAR1 310被移 动的工作负载。引导新LPAR2340所需的服务可以在与操作系统实例314相关联的定制的 初始化表中被指定,并且可以被存储在rootvg 316中,rootvg316被克隆并且被更新以使 能新LPAR2 340的引导。
[0074] -旦LPAR2 340开始并运行,应用实例312被迁移到新LPAR 340以作为应用实例 342。在应用实例312移动到新LPAR340期间存在短暂的暂停时间。该短暂的暂停时间期 间,应用实例312因为应用实例的进程在新LPAR 340上被设置检查点、被迁移、以及被恢复 而没有响应。应用实例342随后将在新LPAR2 340上作为应用实例342从它们之前的状态 继续执行。来自存储器318的应用数据以异步方式被传输到与新LPAR2 340相关联的存储 器348,从而不延长在此期间应用实例无响应的暂停时间段。当所有应用和相关联的资源 被传输到新LPAR2 340之后,原LPAR 310被解激活并且它的资源被释放以便重复使用。新 LPAR2 340采用原LPAR1 310的身份,通过将LPAR2 340的网络连接使用被LPAR1 310使用 的相同主机名和网络地址、例如IP地址来配置,这样网络上来自客户端系统的任何后续联 系将被路由到新LPAR2 340及它的应用实例。
[0075] 因此,从外部进程或用户角度看,没有发生了原LPAR1 310到新LPAR2 340的切换 的指示。因此,应用实例312继续运行在仿佛是同一 LPAR1 310上,而事实上应用实例312 是新LPAR2 340中执行在同一检查点状态并且使用更新前原LPAR1 310中呈现的相同应用 数据的新应用实例342。从用户角度看,除了短暂的暂停期,系统除了更新/打补丁已被应 用之外似乎没有任何改变。这保留了在原LPAR1310上运行的应用实例和工作负载。活动 的应用利用相同的共享二进制文件继续运行,该共享二进制文件先前在原LPAR1 310上使 用。所执行的任何新的二进制文件将使用该新的已更新的共享二进制文件。
[0076] 图4是概括了用于依据说明性实施例的执行操作系统的实时更新的示例操作的 流程图。如图4所示,操作通过接收对将被应用的操作系统的更新开始(步骤410)。实现 将被更新的操作系统的逻辑分区被标识(步骤420),并且执行在该原逻辑分区中的操作系 统的根卷组被克隆(步骤430)。更新被应用于克隆的根卷组以生成更新的克隆的卷组(步 骤440)。更新的克隆的卷组被用来引导新逻辑分区(步骤450)。一旦新逻辑分区被引导, 非核心或基础进程被迁移到新逻辑分区并且运行在原逻辑分区中的应用实例被迁移到新 逻辑分区中(步骤460)。应用实例的应用数据被异步迁移到与新逻辑分区相关联的存储器 中(步骤470)。一旦所有应用实例和应用数据被迁移到新逻辑分区,原逻辑分区被解激活 并且它的资源被释放(步骤480)。操作随后终止。
[0077] 图5是概括了依据说明性实施例、作为实时更新操作的一部分的、用于执行进程 从第一逻辑分区到第二逻辑分区的迁移的示例操作的流程图。如图5所示,操作开始于 LPAR1上不能从LPAR1被迁移到LPAR2的进程的执行的中断(步骤510)。每个进程的文本 段被用来保存进程的状态数据和存储器布局的特定代码覆盖(步骤520)。即,每个执行代 码、或进程有文本段和数据段。文本段包含编译过的代码,即将针对那个程序被执行的指令 流。系统加载器跟踪每个程序的文本段和数据段在存储器中的地址。因此,步骤520用驱动 收集代码(或进程)状态的一段特定代码替代程序原来的代码。在保存的状态数据在第二 LPAR上被恢复后(将在之后针对步骤560被讨论),原程序的原文本段在第二LPAR (LPAR2) 上被恢复从而将程序从存储重新加载到存储器。
[0078] 此外,文件描述符、IPC句柄及进程的其他状态数据被保存以供在新逻辑分区例如 LPAR2上重新创建进程时使用(步骤530)。在新LPAR上,例如LPAR2,所有将被迁移的进程 使用相同的进程标识符(PID)和相同的进程树被重新创建(步骤540)。即,每个进程和其 他进程存在父子关系,而进程树标识了这些关联并被用于在新LPAR上重新创建进程的正 确关系。步骤
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1