长期支持版本

    社区创新版本

      安装与部署

      本章介绍如何安装和部署内核热升级工具。

      软硬件要求

      硬件要求

      • 当前仅支持arm64架构

      软件要求

      • 操作系统:openEuler 21.09

      环境准备

      安装内核热升级工具

      本章介绍内核热升级工具的安装方法。

      安装内核热升级工具的操作步骤如下:

      1. 挂载openEuler的iso文件。

        # mount openEuler-21.09-aarch64-dvd.iso /mnt
        
      2. 配置本地yum源。

        # vim /etc/yum.repos.d/local.repo
        

        配置内容如下所示:

        [local]
        name=local
        baseurl=file:///mnt
        gpgcheck=1
        enabled=1
        
      3. 将RPM数字签名的GPG公钥导入系统。

        # rpm --import /mnt/RPM-GPG-KEY-openEuler
        
      4. 安装内核热升级工具。

        # yum install nvwa -y
        
      5. 验证是否安装成功,命令和回显如下,则表示安装成功。

        # rpm -qa | grep nvwa
        nvwa-xxx
        

      部署内核热升级工具

      本章介绍内核热升级工具的配置部署:

      配置介绍

      内核热升级工具的配置文件位于/etc/nvwa,配置文件包括:

      • nvwa-restore.yaml

        该配置文件用于指导内核热升级工具在内核热升级过程中如何保存和恢复现场,具体配置如下:

        • pids

          pids用于指明nvwa热升级过程中需要保留和恢复的进程,此处的进程通过进程号(pid)进行标识,需要注意的是,nvwa管理的进程在nvwa服务启动后,会被自动恢复。

        • services

          services用于指明nvwa热升级过程中需要保留和恢复的服务。与pids的区别在于,内核热升级工具可以直接保存和恢复进程的状态,对于服务,内核热升级工具则需要依赖systemd进行相关操作。此处的服务名称,应该使用systemd中使用的服务名称。需要注意的是,对于nvwa管理的服务,是否要在nvwa启动时自动恢复,取决于systemd中有没有使能该服务,且当前支持的服务类型只有notify和oneshot。

        • restore_net

          restore_net用于指明是否需要内核热升级工具保存和恢复网络配置,如果网络配置有误,有可能导致恢复后网络不可用,默认关闭。

        • enable_quick_kexec

          enable_quick_kexec用于指明是否需要使能quick kexec特性,quick kexec是nvwa社区推出的,加速内核重启过程的一个特性。使用该特性,需要在cmdline中,加入"quickkexec=128M"。128指分配给quick kexec特性的内存大小,该内存将用于在升级过程中加载kernel和initramfs,因此大小需要大于升级过程中涉及到的kernel,initramfs大小之和。该特性默认关闭。

        • enable_pin_memory

          enable_pin_memory用于指明是否需要使能pin memory特性,pin memory是nvwa社区推出的,加速进程保存恢复过程的一个特性。使用该特性,需要在cmdline中,加入"max_pin_pid_num=10 redirect_space_size=2M pinmemory=200M@0x640000000"。

          其中,max_pin_pid_num代表支持pin memory恢复的最大进程数目,redirect_space_size代表pin memory过程中重定向物理页所需要的预留内存空间,建议配置为pin memory总预留内存的1/100,pinmemory指明这段内存的起点和大小。从0x640000000开始的200M空间,是pin memory使用的全部内存空间,这段空间不应该被其他程序使用。

      • nvwa-restore.yaml的配置示例

        pids:
          - 14109
        services:
          - redis
        restore_net: false
        enable_quick_kexec: true
        enable_pin_memory: true
        
      • nvwa-server.yaml

        该文件包含了内核热升级工具运行过程中,需要使用到的配置信息,具体如下:

        • criu_dir

          用于指明内核热升级工具在保存现场过程中,存储产生的信息文件夹路径。需要注意的是,这些信息可能会占用较大的磁盘空间。

        • criu_exe

          用于指明内核热升级工具使用的criu可执行文件路径,除非是对criu进行调测,一般不建议修改。

        • kexec_exe

          用于指明内核热升级工具使用的kexec可执行文件路径,除非是对kexec进行调测,一般不建议修改。

        • systemd_etc

          用于指明覆盖systemd配置过程中,使用到的文件夹路径。该路径由systemd决定,一般不需要修改。

        • log_dir

          存放内核热升级工具产生的log信息,log模块当前未启用。内核热升级工具日志信息的查看,参考使用方法-产生的日志信息

      • nvwa-server.yaml的配置示例

        criu_dir: /var/nvwa/running/
        criu_exe: /usr/sbin/criu
        kexec_exe: /usr/sbin/kexec
        systemd_etc: /etc/systemd/system/
        log_dir: /etc/nvwa/log/
        

      使能内核热升级工具

      内核热升级工具的运行依赖配置文件,配置文件修改后应该重新运行内核热升级工具程序。

      安装成功后,可以通过systemd的相关命令来操作内核热升级工具。

      • 使能nvwa。

          systemctl enable nvwa
        
      • 启动nvwa。

          systemctl start nvwa
        
      • 查看nvwa服务状态及相关信息。

          systemctl status nvwa
        
      • 更多用法参考systemd用法。

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份