[步骤] 系统升级 (从 openSUSE Leap 15.3 升级到 openSUSE Leap 15.4)

步骤一:显示现在的系统版本

# cat /etc/*release*
NAME="openSUSE Leap"
VERSION="15.3"
ID="opensuse-leap"
ID_LIKE="suse opensuse"
VERSION_ID="15.3"
PRETTY_NAME="openSUSE Leap 15.3"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:15.3"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"

(注意:确保显示的系统版本是 openSUSE Leap 15.3)

步骤二:准备升级

2.1 确认已使用的软件库

# zypper ls -d
#  | Alias                     | Name                               | Enabled | GPG Check | Refresh | Priority | Type   | URI
---+---------------------------+------------------------------------+---------+-----------+---------+----------+--------+---------------------------------------------------------------------------------------------
1  | repo-non-oss              | Non-OSS Repository                                           | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/distribution/leap/15.3/repo/non-oss/
2  | repo-oss                  | Main Repository                                              | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/distribution/leap/15.3/repo/oss/
3  | repo-update               | Main Update Repository                                       | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/update/leap/15.3/oss/
4  | repo-update-non-oss       | Update Repository (Non-Oss)                                  | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/update/leap/15.3/non-oss/
5  | repo-backports-update     | Update repository of openSUSE Backports                      | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/update/leap/15.3/backports/
6  | repo-sle-update           | Update repository with updates from SUSE Linux Enterprise 15 | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/update/leap/15.3/sle/


补充:
1) 确保以上软件库已处于 Enabled 状态
2) 手动启动这些软件库的命令如下

# zypper ar -fcg http://download.opensuse.org/distribution/leap/${releasever}/repo/non-oss/ Non-OSS Repository
# zypper ar -fcg http://download.opensuse.org/distribution/leap/${releasever}/repo/oss/ Main Repository
# zypper ar -fcg http://download.opensuse.org/update/leap/${releasever}/oss/ Main Update Repository
# zypper ar -fcg http://download.opensuse.org/update/leap/${releasever}/non-oss/ Update Repository (Non-Oss)
# zypper ar -fcg http://download.opensuse.org/update/leap/${releasever}/backports/ Update repository of openSUSE Backports
# zypper ar -fcg http://download.opensuse.org/update/leap/${releasever}/sle/ Update repository with updates from SUSE Linux Enterprise 15

2.2 刷新已使用的软件库

# zypper ref

(注意:确保刷新成功,否则请检查网络)

2.3 将所有 openSUSE Leap 15.3 软件包更新到最新版本

# zypper -n update

2.4 用 releasever 变量替换所有版本号

# sed -i 's/15.3/${releasever}/g' /etc/zypp/repos.d/*.repo

步骤三:升级系统

3.1 将版本号设置为 15.4 并刷新

# zypper --releasever=15.4 refresh

3.2 提前下载并安装 openSUSE Leap 15.4 所需的软件包

# zypper --releasever=15.4 dup --download-in-advance

3.3 升级系统

# zypper --releasever=15.4 dup

3.4 重启系统

# reboot

步骤四:后续检查

4.1 显示升级后的系统版本

# cat /etc/*release*
NAME="openSUSE Leap"
VERSION="15.4"
ID="opensuse-leap"
ID_LIKE="suse opensuse"
VERSION_ID="15.4"
PRETTY_NAME="openSUSE Leap 15.4"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:15.4"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"

4.2 显示升级后已使用的软件库

# zypper ls -d
#  | Alias                     | Name                                                         | Enabled | GPG Check | Refresh | Priority | Type   | URI
---+---------------------------+------------------------------------+---------+-----------+---------+----------+--------+---------------------------------------------------------------------------------------------
1  | repo-non-oss              | Non-OSS Repository                                           | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/distribution/leap/15.4/repo/non-oss/
2  | repo-oss                  | Main Repository                                              | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/distribution/leap/15.4/repo/oss/
3  | repo-update               | Main Update Repository                                       | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/update/leap/15.4/oss/
4  | repo-update-non-oss       | Update Repository (Non-Oss)                                  | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/update/leap/15.4/non-oss/
5  | repo-backports-update     | Update repository of openSUSE Backports                      | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/update/leap/15.4/backports/
6  | repo-sle-update           | Update repository with updates from SUSE Linux Enterprise 15 | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/update/leap/15.4/sle/

[步骤] RHEL 系统的注册 (注册到 Red Hat 官网)

正文:

步骤一:清除旧有的注册信息

1.1 清除所有的旧有注册信息

# subscription-manager remove --all

1.2 取消注册

# subscription-manager unregister

1.3 清楚所有的就有数据

# subscription-manager clean

1.4 确保所有 satellite 客户端安装包已经删除

# yum remove katello-ca-consumer-*

步骤二:确保 RHEL 系统的注册网站指向 Red Hat 官网

# vim /etc/rhsm/rhsm.conf

确保部分内容如下:

......
hostname = subscription.rhsm.redhat.com
......
baseurl = https://cdn.redhat.com
......

步骤三:注册 RHEL 系统到 Red Hat 官网

3.1 非交互式

# subscription-manager register --username <username> --password <password> --auto-attach

(注意:如果完成了本文的 2.1 就不用再执行 本文的 2.2 了)

3.2 交互式注册 RHEL 系统到 Red Hat 官网

3.2.1 交互式注册 RHEL 系统到 Red Hat 官网
# subscription-manager register
3.2.2 在 Red Hat 官网上将相关订阅 (license) 分配给系统

登录 Red Hat 官网 –> Red Hat Customer Portal –> subscriptions –> systems –> <system name> –> 添加订阅

(注意:如果是使用的 Simple Content Access 模式的话,则无需这一步)

3.2.3 刷新订阅
# subscription-manager refresh
3.2.4 查看注册状态
3.2.4.1 查看订阅的消费情况
# subscription-manager list --consumed
3.2.4.2 查看注册状态
# subscription-manager status

参考文献:

https://access.redhat.com/solutions/253273

[步骤] Linux page_owner 排查工具的使用 (记录内存的使用情况)

正文:

步骤一:查看 page_owner 是否开启

1.1 通过 dmesg 命令查看 page_owner 是否开启

# dmesg | grep page_owner
[    1.149165] page_owner is disabled

(补充:当显示此类信息时则 page_owner 没有开启)

1.2 通过 /sys/kernel/debug/ 目录查看 page_ownerr 是否开启

# ls -l /sys/kernel/debug/page_owner
ls: cannot access /sys/kernel/debug/page_owner: No such file or directory.

(补充:当 /sys/kernel/debug/page_owner 文件不存在时则 page_owner 没有开启)

步骤二:开启 page_owner

2.1 开启 page_owner

# grubby --args="page_owner=on" --update-kernel=0

(注意:开启 page_owner 会额外占用一定量的内存)

2.2 重启系统

# reboot

2.3 确认 page_owner 已经开启

2.3.1 通过 dmesg 命令确认 page_owner 是否开启
# dmesg | grep page_owner
[    0.000000] Command line: BOOT_IMAGE=(hd0,gpt2)/vmlinuz-4.18.0-425.19.2.el8_7.x86_64 root=/dev/mapper/rootvg-rootlv ro ipv6.disable=1 audit=1 audit_backlog_limit=8192 crashkernel=auto resume=/dev/mapper/rootvg-swaplv rd.lvm.lv=rootvg/rootlv rd.lvm.lv=rootvg/swaplv rhgb quiet rd.shell=0 page_owner=on
[    0.000000] Kernel command line: BOOT_IMAGE=(hd0,gpt2)/vmlinuz-4.18.0-425.19.2.el8_7.x86_64 root=/dev/mapper/rootvg-rootlv ro ipv6.disable=1 audit=1 audit_backlog_limit=8192 crashkernel=auto resume=/dev/mapper/rootvg-swaplv rd.lvm.lv=rootvg/rootlv rd.lvm.lv=rootvg/swaplv rhgb quiet rd.shell=0 page_owner=o

(补充:当显示此类信息时则 page_owner 已经开启)

2.3.2 通过 /sys/kernel/debug/ 目录确认 page_ownerr 是否开启
# ls -l /sys/kernel/debug/page_owner
-r--------. 1 root root 0 Apr 13 14:36 /sys/kernel/debug/page_owner

(补充:当 /sys/kernel/debug/page_owner 文件存在时则 page_owner 已经开启)

步骤三:分析 page_owner 产生的记录

3.1 导出 page_owner 产生的记录

# cat /sys/kernel/debug/page_owner > page_owner_full.txt

(补充:这里以将 page_owner 产生的记录导出到名为 page_owner_full.txt 文件为例)


注意:
1) 此命令会产生体积很巨大的文件
2) 此命令会持续执行直到手动取消
3) 可以通过同时按下 “ctrl” 键和 “C” 键或者使用 kill 命令取消
4) 如果内存变化较快则可以让此命令多执行一会,反之则可以少执行一会

3.2 解析 page_owner 产生的记录

# page_owner_sort page_owner_full.txt sorted_page_owner.txt
loaded 42903
sorting ....
culling

(补充:这里以分析名为 page_owner_full.txt 的文件并将分析结果导入到 sorted_page_owner.txt 文件为例)

3.3 查看 page_owner 产生的记录

# less sorted_page_owner.txt
1 times:
Page allocated via order 0, mask 0x0(), pid 1, tgid 1 (swapper/0), ts 48952109 ns, free_ts 0 ns
PFN 4096 type Unmovable Block 8 type Unmovable Flags 0xfffffc0000100(slab|node=0|zone=1|lastcpupid=0x1fffff)
 register_early_stack+0x28/0x60
 init_page_owner+0x30/0x2d0
 kernel_init_freeable+0x13c/0x232
 kernel_init+0xa/0x108

1 times:
Page allocated via order 0, mask 0x0(), pid 1, tgid 1 (swapper/0), ts 48952566 ns, free_ts 0 ns
PFN 4097 type Unmovable Block 8 type Unmovable Flags 0xfffffc0000100(slab|node=0|zone=1|lastcpupid=0x1fffff)
 register_early_stack+0x28/0x60
 init_page_owner+0x30/0x2d0
 kernel_init_freeable+0x13c/0x232
 kernel_init+0xa/0x108
......

(补充:这里以查看名为 sorted_page_owner.txt 文件里的分析结果为例)

步骤四:关闭 page_owner

4.1 开启 page_owner

# grubby --remove-args="page_owner=on" --update-kernel=0

(注意:关闭 page_owner 会额外释放一定量的内存)

4.2 重启系统

# reboot

4.3 确认 page_owner 已关闭

4.3.1 通过 dmesg 命令确认 page_owner 是否关闭
# dmesg | grep page_owner
[    2.022585] page_owner is disabled

(补充:当显示此类信息时则 page_owner 没有开启)

4.3.2 通过 /sys/kernel/debug/ 目录确认 page_ownerr 是否关闭
# ls -l /sys/kernel/debug/page_owner
ls: cannot access '/sys/kernel/debug/page_owner': No such file or directory

(补充:当 /sys/kernel/debug/page_owner 文件不存在时则 page_owner 没有开启)

参考文献:

https://access.redhat.com/solutions/5609521

[步骤] Wake On Lan (WOL) 功能的开启 ( Rocky Linux & RHEL 版)

步骤一:在 BIOS 开启 Wake On Lan (WOL) 功能

(步骤略)

步骤二:在系统开启 Wake On Lan (WOL) 功能

2.1 确保 net-tools 已经安装

# yum install net-tools

2.2 查看网卡的 Wake On Lan (WOL) 功能状态

2.2.1 Wake On Lan (WOL) 功能状态列表

1) p, Wake on PHY activity
2) u, Wake on unicast messages
3) m, Wake on multicast messages
4) b, Wake on broadcast messages
5) a, Wake on ARP
6) g, Wake on MagicPacket™
7) s, Enable SecureOn™ password for MagicPacket™
8) d, Disable (wake on nothing). This option clears all previous options

2.2.2 查看网卡的 Wake On Lan (WOL) 功能状态
# ethtool enp16s0
Settings for enp16s0:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	Supported pause frame use: Symmetric
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	Advertised pause frame use: Symmetric
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Full
	Auto-negotiation: on
	Port: Twisted Pair
	PHYAD: 1
	Transceiver: internal
	MDI-X: off (auto)
	Supports Wake-on: pumbg
	Wake-on: g
        Current message level: 0x00000007 (7)
                               drv probe link
	Link detected: yes


补充:
1) 这里以使用 enp16s0 网卡开启 Wake On Lan (WOL) 功能为例
2) 这里的 Wake On Lan (WOL) 功能状态是 g

2.3 临时开启 Wake On Lan (WOL) 功能

# ethtool -s enp16s0 wol p

(补充:这里以给 enp16s0 网卡开启 Wake On Lan (WOL) 功能为例)

2.4 永久开启 Wake On Lan (WOL) 功能

# vi /etc/sysconfig/network-scripts/ifcfg-enp16s0

添加以下内容:

......
ETHTOOL_OPTS="-s ${DEVICE} wol p"

(补充:这里以给 enp16s0 网卡开启 Wake On Lan (WOL) 功能为例)