终于有论坛了!内核热升级相关的内容可以在这里更新和提问了

如何使用内核热升级功能,以及现有问题和解决方法,可以都在这里讨论。

导航
使用方法 (3楼,该论坛暂时好像不支持链接)

1 个赞

cool

使用方法:

官方文档【待补充,因为链接被识别为敏感信息了】
下文的原文链接【待补充,因为链接被识别为敏感信息了】

本文详细说明了openEuler 22.03 LTS环境下通过nvwa备份和恢复nginx的过程

准备工作

  1. 确认安装的系统版本并且关闭selinux

运行以下命令

cat /etc/os-release

输出应该为

NAME="openEuler"
VERSION="22.03 LTS"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 LTS"
ANSI_COLOR="0;31

关闭selinux

sudo setenforce Permissive 

更新selinux配置

vim /etc/selinux/config

修改以下配置项

SELINUX=permissive
  1. 安装nvwa并确认版本

一般情况下的nvwa安装命令

sudo dnf install nvwa -y

确认nvwa的版本

rpm -qi nvwa

确认nvwa的version和Release不低于0.2-2,输出如下

[root@openEuler ~]# rpm -qi nvwa
Name        : nvwa
Version     : 0.2
Release     : 3.oe2203sp1
Architecture: aarch64

运行nvwa

sudo systemctl enable nvwa
sudo systemctl start nvwa
  1. 安装并运行nginx
sudo dnf install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
  1. 修改nginx的临时目录配置
vim /usr/lib/systemd/system/nginx.service

PrivateTmp=true

修改为

PrivateTmp=false

如果这个服务的标准输出和错误输出没有重定向,需要增加两行配置,将输出重定向到某个日志文件中,例如

StandardOutput=file:/root/log1.log
StandardError=file:/root/log2.log

更新systemd配置并且重新运行nginx:

sudo systemctl daemon-reload
sudo service nginx restart
  1. 设置nvwa的配置,要求nvwa去保存和恢复nginx
vim /etc/nvwa/nvwa-restore.yaml

修改为

pids:
services:
  - nginx
restore_net: false
enable_quick_kexec: false
enable_pin_memory: false
enbale_debug_mode: true
  1. 确认nvwa/nginx的运行状态,并开始运行nvwa

确认服务状态

service nvwa status
service nginx status

开始运行nvwa

nvwa update $(uname -r)
  1. 确认nginx的恢复状态
service nginx status
  1. 确认nvwa的恢复状态
service redis status

确保有如下输出:

Dec 28 12:29:51 openEuler systemd[1]: Starting NVWA server...
Dec 28 12:29:52 openEuler nvwa[9465]: time="2022-12-28T12:29:52+08:00" level=debug msg="Wait criu runs finished \n"
Dec 28 12:29:52 openEuler nvwa[9465]: time="2022-12-28T12:29:52+08:00" level=debug msg="0:0 process(es) restore suceessfu>
Dec 28 12:29:52 openEuler systemd[1]: Started NVWA server.
Dec 28 12:29:54 openEuler nvwa[9465]: time="2022-12-28T12:29:54+08:00" level=debug msg="nvwa restore nginx 6449 \n"
Dec 28 12:29:54 openEuler nvwa[9465]: time="2022-12-28T12:29:54+08:00" level=debug msg="Get pid file for nginx - /run/ngi>
Dec 28 12:29:56 openEuler nvwa[9465]: time="2022-12-28T12:29:56+08:00" level=debug msg="Restore service nginx successfull

调试方法:
待补充

你好,已经可以添加链接了。另外,在编辑器直接粘贴链接支持预览(单独一行,不加括号)。
效果如下:

1 个赞

您好,用redis和nginx做了nvwa升级测试,开启了quick kexec,本地用python脚本测量,在虚拟机上中断时间7秒多,而在物理机上需要65秒,而且物理机上经常会dump失败。

想问一下:
1、官方分享的1s的内核切换时间是做了什么优化实现的?可以分享一下吗?
2、官方在物理机上测试内核热升级的耗时大概需要多久?
3、后续官方还会对内核热升级功能进行升级吗,看起来已经很久没有更新了,后续的开发重点是什么呢?

谢谢