安装与部署

本章介绍如何安装和部署NVWA。 - 安装与部署 - 软硬件要求 - 硬件要求 - 软件要求 - 环境准备 - 安装NVWA - 部署NVWA - 配置介绍 - 使能NVWA

软硬件要求

硬件要求

  • 当前仅支持arm64架构

软件要求

  • 操作系统:openEuler 21.03

环境准备

  • 安装openEuler系统,安装方法参考 《openEuler 21.03 安装指南》

  • 安装NVWA需要使用root权限

安装NVWA

本章介绍NVWA的安装方法

安装NVWA的操作步骤如下:

  1. 挂载openEuler的iso文件

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

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

    配置内容如下所示:

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

    1. # rpm --import /mnt/RPM-GPG-KEY-openEuler
  4. 安装NVWA

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

    1. # rpm -qa | grep nvwa
    2. nvwa-xxx

部署NVWA

本章介绍NVWA的配置部署:

配置介绍

NVWA的配置文件位于/etc/nvwa,配置文件包括: - nvwa-restore.yaml

  1. 该配置文件用于指导NVWA在内核热升级过程中如何保存和恢复现场,具体配置如下:
  2. + pids
  3. pids用于指明nvwa热升级过程中需要保留和恢复的进程,此处的进程通过进程号(pid)进行标识,需要注意的是,nvwa管理的进程在nvwa服务启动后,会被自动恢复。
  4. + services
  5. services用于指明nvwa热升级过程中需要保留和恢复的服务。与pids的区别在于,NVWA可以直接保存和恢复进程的状态,对于服务,NVWA则需要依赖systemd进行相关操作。此处的服务名称,应该使用systemd中使用的服务名称。需要注意的是,对于nvwa管理的服务,是否要在nvwa启动时自动恢复,取决于systemd中有没有使能该服务,且当前支持的服务类型只有notifyoneshot
  6. + restore_net
  7. restore_net用于指明是否需要NVWA保存和恢复网络配置,如果网络配置有误,有可能导致恢复后网络不可用,默认关闭。
  8. + enable_quick_kexec
  9. enable_quick_kexec用于指明是否需要使能quick kexec特性,quick kexecnvwa社区推出的,加速内核重启过程的一个特性。使用该特性,需要在cmdline中,加入"quickkexec=128M"128指分配给quick kexec特性的内存大小,该内存将用于在升级过程中加载kernelinitramfs,因此大小需要大于升级过程中涉及到的kernelinitramfs大小之和。该特性默认关闭。
  10. + enable_pin_memory
  11. enable_pin_memory用于指明是否需要使能pin memory特性,pin memorynvwa社区推出的,加速进程保存恢复过程的一个特性。使用该特性,需要在cmdline中,加入"max_pin_pid_num=10 redirect_space_size=2M pinmemory=200M@0x640000000"
  12. 其中,max_pin_pid_num代表支持pin memory恢复的最大进程数目,redirect_space_size代表pin memory过程中重定向物理页所需要的预留内存空间,建议配置为pin memory总预留内存的1/100pinmemory指明这段内存的起点和大小。从0x640000000开始的200M空间,是pin memory使用的全部内存空间,这段空间不应该被其他程序使用。
  • nvwa-restore.yaml的配置示例

    1. pids:
    2. - 14109
    3. services:
    4. - redis
    5. restore_net: false
    6. enable_quick_kexec: true
    7. enable_pin_memory: true
  • nvwa-server.yaml

    该文件包含了NVWA运行过程中,需要使用到的配置信息,具体如下:

    • criu_dir

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

    • criu_exe

      用于指明NVWA使用的criu可执行文件路径,除非是对criu进行调测,一般不建议修改。

    • kexec_exe

      用于指明NVWA使用的kexec可执行文件路径,除非是对kexec进行调测,一般不建议修改。

    • systemd_etc

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

    • log_dir

      存放NVWA产生的log信息,log模块当前未启用。NVWA日志信息的查看,参考其他章节<<使用方法>>

  • nvwa-server.yaml的配置示例

    1. criu_dir: /var/nvwa/running/
    2. criu_exe: /usr/sbin/criu
    3. kexec_exe: /usr/sbin/kexec
    4. systemd_etc: /etc/systemd/system/
    5. log_dir: /etc/nvwa/log/

使能NVWA

NVWA的运行依赖配置文件,配置文件修改后应该重新运行NVWA程序。

安装成功后,可以通过systemd的相关命令来操作NVWA

  • 使能nvwa

    systemctl enable nvwa

  • 启动nvwa

    systemctl start nvwa

  • 查看nvwa日志

    service nvwa status

  • 更多用法参考systemd用法