From 4abe8cf01f5753518cb7e088ce89c1f7d6ed340a Mon Sep 17 00:00:00 2001 From: repent Date: Fri, 18 Apr 2025 03:16:12 +0000 Subject: [PATCH] =?UTF-8?q?=E5=91=BD=E4=BB=A4=E6=84=8F=E6=80=9D=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0=E4=B8=8D=E5=87=86=E7=A1=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: repent --- ...05\344\270\216\351\203\250\347\275\262.md" | 132 +++++++----------- 1 file changed, 52 insertions(+), 80 deletions(-) diff --git "a/docs/zh/docs/KernelLiveUpgrade/\345\256\211\350\243\205\344\270\216\351\203\250\347\275\262.md" "b/docs/zh/docs/KernelLiveUpgrade/\345\256\211\350\243\205\344\270\216\351\203\250\347\275\262.md" index f420e5c32..873d4cc7f 100644 --- "a/docs/zh/docs/KernelLiveUpgrade/\345\256\211\350\243\205\344\270\216\351\203\250\347\275\262.md" +++ "b/docs/zh/docs/KernelLiveUpgrade/\345\256\211\350\243\205\344\270\216\351\203\250\347\275\262.md" @@ -1,4 +1,5 @@ # 安装与部署 + 本章介绍如何安装和部署内核热升级工具。 @@ -16,39 +17,28 @@ ## 软硬件要求 ### 硬件要求 - -- 当前仅支持arm64架构 +- 当前仅支持arm64架构 ### 软件要求 - -- 操作系统:openEuler 24.03 +- 操作系统:openEuler 24.03 ## 环境准备 - -- 安装openEuler系统,安装方法参考 《[安装指南](../Installation/installation.md)》 - -- 安装内核热升级工具需要使用root权限 +- 安装openEuler系统,安装方法参考《[安装指南](../Installation/installation.md)》 +- 安装内核热升级工具需要使用root权限 ## 安装内核热升级工具 - -本章介绍内核热升级工具的安装方法 - -安装内核热升级工具的操作步骤如下: +本章介绍内核热升级工具的安装方法: 1. 挂载openEuler的iso文件 - ```shell # mount openEuler-{version}-everything-aarch64-dvd.iso /mnt ``` 2. 配置本地yum源 - ```shell # vim /etc/yum.repos.d/local.repo ``` - 配置内容如下所示: - ```shell [local] name=local @@ -58,60 +48,47 @@ ``` 3. 将RPM数字签名的GPG公钥导入系统 - ```shell # rpm --import /mnt/RPM-GPG-KEY-openEuler ``` - 4. 安装内核热升级工具 - ```shell # yum install nvwa -y ``` -5. 验证是否安装成功。命令和回显如下表示安装成功 - +5. 验证是否安装成功。命令和回显如下表示安装成功: ```shell # rpm -qa | grep nvwa nvwa-xxx ``` ## 部署内核热升级工具 - 本章介绍内核热升级工具的配置部署: ### 配置介绍 +内核热升级工具的配置文件位于`/etc/nvwa`,配置文件包括: -内核热升级工具的配置文件位于/etc/nvwa,配置文件包括: -- nvwa-restore.yaml - - 该配置文件用于指导内核热升级工具在内核热升级过程中如何保存和恢复现场,具体配置如下: +**nvwa-restore.yaml** +该配置文件用于指导内核热升级工具在内核热升级过程中如何保存和恢复现场,具体配置如下: - + pids +- **pids** + 用于指明nvwa热升级过程中需要保留和恢复的进程(通过进程号标识)。nvwa管理的进程在服务启动后会被自动恢复。 - pids用于指明nvwa热升级过程中需要保留和恢复的进程,此处的进程通过进程号(pid)进行标识,需要注意的是,nvwa管理的进程在nvwa服务启动后,会被自动恢复。 - - + services - - services用于指明nvwa热升级过程中需要保留和恢复的服务。与pids的区别在于,内核热升级工具可以直接保存和恢复进程的状态,对于服务,内核热升级工具则需要依赖systemd进行相关操作。此处的服务名称,应该使用systemd中使用的服务名称。需要注意的是,对于nvwa管理的服务,是否要在nvwa启动时自动恢复,取决于systemd中有没有使能该服务,且当前支持的服务类型只有notify和oneshot。 - - + restore_net +- **services** + 用于指明需要保留和恢复的服务(使用systemd服务名称)。服务恢复依赖systemd,支持notify和oneshot类型。 - restore_net用于指明是否需要内核热升级工具保存和恢复网络配置,如果网络配置有误,有可能导致恢复后网络不可用,默认关闭。 - - + enable_quick_kexec +- **restore_net** + 用于指明是否需要保存和恢复网络配置(默认关闭)。 - enable_quick_kexec用于指明是否需要使能quick kexec特性,quick kexec是nvwa社区推出的,加速内核重启过程的一个特性。使用该特性,需要在cmdline中,加入"quickkexec=128M"。128指分配给quick kexec特性的内存大小,该内存将用于在升级过程中加载kernel和initramfs,因此大小需要大于升级过程中涉及到的kernel,initramfs大小之和。该特性默认关闭。 - - + enable_pin_memory +- **enable_quick_kexec** + 用于使能quick kexec特性(需在cmdline添加`quickkexec=128M`)。 - enable_pin_memory用于指明是否需要使能pin memory特性,pin memory是nvwa社区推出的,加速进程保存恢复过程的一个特性。pin_memory特性暂不支持多进程应用备份恢复,使用该特性,需要在cmdline中,加入"max_pin_pid_num=10 redirect_space_size=2M pinmemory=200M@0x640000000"。 +- **enable_pin_memory** + 用于使能pin memory特性(需在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的配置示例 -``` +**配置示例**: +```yaml pids: - 14109 services: @@ -121,33 +98,26 @@ enable_quick_kexec: true enable_pin_memory: true ``` -- nvwa-server.yaml - - 该文件包含了内核热升级工具运行过程中,需要使用到的配置信息,具体如下: - - + criu_dir +**nvwa-server.yaml** +该文件包含工具运行所需的配置信息: - 用于指明内核热升级工具在保存现场过程中,存储产生的信息文件夹路径。需要注意的是,这些信息可能会占用较大的磁盘空间。 +- **criu_dir** + 用于存储现场保存过程中产生的信息(可能占用较大磁盘空间)。 - + criu_exe +- **criu_exe** + 用于指定criu可执行文件路径(一般不建议修改)。 - 用于指明内核热升级工具使用的criu可执行文件路径,除非是对criu进行调测,一般不建议修改。 - - + kexec_exe +- **kexec_exe** + 用于指定kexec可执行文件路径(一般不建议修改)。 - 用于指明内核热升级工具使用的kexec可执行文件路径,除非是对kexec进行调测,一般不建议修改。 - - + systemd_etc +- **systemd_etc** + 用于指定systemd配置覆盖路径(一般不需要修改)。 - 用于指明覆盖systemd配置过程中,使用到的文件夹路径。该路径由systemd决定,一般不需要修改。 - - + log_dir +- **log_dir** + 存放工具产生的日志信息(当前日志模块未启用)。 - 存放内核热升级工具产生的log信息,log模块当前未启用。内核热升级工具日志信息的查看,参考其他章节<<使用方法>> - -- nvwa-server.yaml的配置示例 - -``` +**配置示例**: +```yaml criu_dir: /var/nvwa/running/ criu_exe: /usr/sbin/criu kexec_exe: /usr/sbin/kexec @@ -156,21 +126,23 @@ log_dir: /etc/nvwa/log/ ``` ## 使能内核热升级工具 +内核热升级工具的运行依赖配置文件,配置文件修改后应重新运行工具程序。安装成功后,可通过systemd命令操作: -内核热升级工具的运行依赖配置文件,配置文件修改后应该重新运行内核热升级工具程序。 +- **使能nvwa** + ```shell + systemctl enable nvwa + ``` -安装成功后,可以通过systemd的相关命令来操作内核热升级工具 +- **启动nvwa** + ```shell + systemctl start nvwa + ``` -+ 使能nvwa - - systemctl enable nvwa +- **查看nvwa日志** + ```shell + service nvwa status + ``` -+ 启动nvwa - - systemctl start nvwa - -+ 查看nvwa日志 - - service nvwa status - -+ 更多用法参考systemd用法 +- 更多用法参考systemd用法 +``` +``` \ No newline at end of file -- Gitee