7.2. 安装和配置 kdump Red Hat Enterprise Linux 7

您所在的位置:网站首页 vmcore文件路径 7.2. 安装和配置 kdump Red Hat Enterprise Linux 7

7.2. 安装和配置 kdump Red Hat Enterprise Linux 7

2024-02-04 02:13| 来源: 网络整理| 查看: 265

7.2.1. 安装 kdump

许多情况下,在新的 Red Hat Enterprise Linux 7 安装中默认安装并激活 kdump 服务。在使用图形或文本界面执行交互式安装时,Anaconda 安装程序为 kdump 配置提供了一个屏幕。安装程序屏幕名为 Kdump,可在主 安装概述 屏幕中访问,且只允许有限的配置 - 您只能选择是否启用了 kdump 以及保留多少内存。有关 kdump 的内存要求的信息请参考 第 7.8.1 节 “kdump 的内存要求”。安装程序中的 Kdump 配置屏幕记录在 Red Hat Enterprise Linux 7 安装指南中。

注意

在之前的 Red Hat Enterprise Linux 版本中,kdump 配置 在安装 完成后自动执行的 Firstboot 实用程序中可用,该系统第一次重启。从 Red Hat Enterprise Linux 7.1 开始,kdump 配置已移至安装程序。

有些安装选项(如自定义 Kickstart 安装)在默认情况下不必安装或启用 kdump。如果您的系统中是这种情况,且您想要额外安装 kdump,请在 shell 提示符后以 root 用户身份执行以下命令:

# yum install kexec-tools

假设您的系统有一个有效的订阅或包含用于您的系统构架的 kexec-tools 软件包的自定义软件仓库,以上命令可保证 kdump 的安装和其他所有必要的软件包的安全。

注意

如果您不知道系统中是否安装了 kdump,您可以使用 rpm 进行检查:

$ rpm -q kexec-tools

此外,如果使用上述命令,也可以使用图形配置工具,但默认情况下不会安装。要安装这个工具,如 第 7.2.3 节 “在图形用户界面中配置 kdump” 所述,以 root 用户身份 运行以下命令:

# yum install system-config-kdump

有关如何使用 Yum 软件包管理器在 Red Hat Enterprise Linux 7 中安装新软件包的更多信息,请参阅 Red Hat Enterprise Linux 7 系统管理员指南。

重要

从 Red Hat Enterprise Linux 7.4 开始,kdump 支持 Intel IOMMU 驱动程序 。从 7.3 或更早版本运行内核时,建议禁用 Intel IOMMU 支持。

7.2.2. 在命令行中配置 kdump7.2.2.1. 配置内存用量

在系统引导过程中,为 kdump 内核保留的内存始终保留,这意味着在系统的引导装载程序配置中指定了内存量。

要指定 kdump 内核保留的内存,将 crashkernel= 选项设置为所需的值。例如:要保留 128 MB 内存,请使用:

crashkernel=128M

有关如何使用 GRUB2 引导装载程序在 AMD64 和 Intel 64 系统以及 IBM Power Systems 服务器以及使用 zipl 在 IBM Z 中更改 crashkernel= 选项的详情请参考 第 3.1.1 节 “设置内核命令行参数”。

crashkernel= 选项可以通过多种方式定义。自动值启用根据系统中的内存总量自动配置 保留内存。第 7.8.1 节 “kdump 的内存要求”较大的内存系统(达到操作系统的既定限制)根据 crashkernel=auto 选项的架构进行计算。

将 auto 值替换为特定内存量来更改此行为。

crashkernel= 选项对于较小的内存系统特别有用。例如:要保留 128 MB 内存,请使用:

crashkernel=128M

您还可以根据安装的内存总量,将保留内存量设置为变量。变量内存保留的语法为 crashkernel=: ,:。例如:

crashkernel=512M-2G:64M,2G-:128M

如果系统内存总量为 512 MB 或高于 2 GB,则上述示例保留 64 MB 内存。如果内存总量超过 2 GB,则为 kdump 保留 128 MB。

有些系统需要使用特定的固定偏移保留内存。如果设置了偏移,则保留内存从此偏移开始。要偏移保留的内存,请使用以下语法:

crashkernel=128M@16M

上面的例子意味着 kdump 从 16 MB 开始保留 128 MB 内存(物理地址 0x01000000)。如果偏移参数设为 0 或完全省略,kdump 会自动偏移保留内存。如上所述,在设置变量内存保留时也可以使用此语法;在本例中,偏移始终被最后指定(例如 crashkernel=512M-2G:64M,2G-:128M@16M)。

7.2.2.2. 配置 kdump 目标

当捕获内核崩溃时,核心转储可以作为文件存储在本地文件系统中,直接写入设备,或使用 NFS (网络文件系统)或 SSH (Secure Shell)协议通过网络发送。目前只能设置这些选项中的一个。默认选项是将 vmcore 文件存储在本地文件系统的 /var/crash 目录中。

要将 vmcore 文件存储在本地文件系统的 /var/crash/ 目录中,编辑 /etc/kdump.conf 文件并指定路径:

path /var/crash

选项 路径 /var/crash 代表 kdump 保存 vmcore 文件的文件系统路径。

注意 当您在 /etc/kdump.conf 文件中指定转储目标时,路径相对于 指定的转储目标。 当您没有在 /etc/kdump.conf 文件中指定转储目标时,该路径代表根目录 的绝对路径。

根据当前系统中挂载的内容,会自动执行转储目标和调整的转储路径。

例 7.1. kdump 目标配置

grep -v ^# etc/kdump.conf | grep -v ^$ ext4 /dev/mapper/vg00-varcrashvol path /var/crash core_collector makedumpfile -c --message-level 1 -d 31

此处指定转储目标(ext4 /dev/mapper/vg00-varcrashvol),因此 path 选项也会设置为 /var/crash,因此 kdump 会将 vmcore 文件保存在 /var/crash /var/crash 目录中。

要更改转储位置,以 root 用户身份打开文本编辑器中的 /etc/kdump.conf 配置文件并编辑选项,如下所述。

要更改保存内核转储的本地目录,请从 #path /var/crash 行的开头删除 hash 符号("#"),并使用所需的目录路径替换值。

path /usr/local/cores重要

在 Red Hat Enterprise Linux 7 中,当 kdump systemd 服务启动 - 否则服务失败时,使用 path 指令定义为 kdump 目标的目录必须存在。此行为与早期版本的 Red Hat Enterprise Linux 不同,如果启动服务时不存在 目录,则会自动创建该目录。

另外,如果您要将文件写入不同的分区,请按照以 #ext4 开头的行之一执行相同的步骤。您可以在此处使用设备名称( #ext4 /dev/vg/lv_kdump 行)、文件系统标签( #ext4 LABEL=/boot 行)或 UUID( #ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937 行)。将文件系统类型以及设备名称、标签或者 UUID 更改为所需值。

注意 指定 UUID 值的正确语法是 UUID="correct-uuid"' 和 UUID=correct-uuid。

例如:

ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937重要

建议使用 LABEL= 或 UUID= 指定存储设备。无法保证 /dev/sda3 等磁盘设备名称在重启后保持一致。有关持久磁盘设备命名的详情,请查看 Red Hat Enterprise Linux 7 存储管理指南。

重要

在 s390x 硬件中转储到 DASD 时,在继续前在 /etc/dasd.conf 中正确指定转储设备非常重要。

要将转储直接写入设备,请从 #raw /dev/vg/lv_kdump 行的开头删除哈希符号("#"),并使用所需的设备名称替换该值。例如:

raw /dev/sdb1

要使用 NFS 协议将转储保存到远程机器中,请从 #nfs my.server.com:/export/tmp 行的开头删除 hash 符号("#"),并使用有效的主机名和目录路径替换该值。例如:

nfs penguin.example.com:/export/cores

要使用 SSH 协议将转储保存到远程机器中,请从 #ssh [email protected] 行的开头删除 hash 符号("#"),并将该值替换为有效的用户名和密码。要在配置中包含 SSH 密钥,请从 #sshkey /root/.ssh/kdump_id_rsa 行的开头删除哈希符号,并将值改为您要转储的服务器上的密钥位置。例如:

ssh [email protected] sshkey /root/.ssh/mykey

有关如何配置 SSH 服务器和设置基于密钥的身份验证的详情,请参考 Red Hat Enterprise Linux 7 系统管理员指南。

有关当前支持的和不受支持的目标的完整列表,请参阅 表 7.3 “支持的 kdump 目标”。

7.2.2.3. 配置内核收集器

要减少 vmcore 转储文件的大小,kdump 允许您 指定一个外部应用程序( 内核收集器)来压缩数据,并选择性地排除所有不相关的信息。目前,唯一完全支持的核心收集器是 makedumpfile。

要启用核心收集器,以 root 用户身份打开文本编辑器中的 /etc/kdump.conf 配置文件,请从 #core_collector makedumpfile -l --message-level 1 -d 31 行的开头删除 hash 符号("#")。

要启用转储文件压缩,请添加 -l 参数。例如:

core_collector makedumpfile -l

要从转储中删除某些页面,请添加 -d value 参数,其中 值是您要省略的页面值总和,如 表 7.4 “支持的过滤级别” 所述。例如:要删除零和可用页面,请使用:

core_collector makedumpfile -d 17 -c

有关可用选项的完整列表,请参阅 makedumpfile(8)手册页。

7.2.2.4. 配置默认操作

默认情况下,kdump 使用 kexec 系统调用在没有重启的情况下引导至第二个内核( 捕获内核),然后捕获崩溃内核的内存( 崩溃转储 或 vmcore)并将其保存到文件中。成功保存后,kdump 重启机器。

但是,当 kdump 无法在 第 7.2.2.2 节 “配置 kdump 目标” 中指定的目标位置创建内核转储时,kdump 会在不保存 vmcore 的情况下重启系统。要更改此行为,以 root 用户身份打开文本编辑器中的 /etc/kdump.conf 配置文件,从 #default shell 行的开头删除 hash 符号("#"),并将值替换为所需的操作,如 表 7.5 “支持的默认操作” 所述。

例如:

default reboot7.2.2.5. 启用服务

要在引导时启动 kdump 守护进程,以 root 用户身份在 shell 提示符后输入以下内容:

systemctl enable kdump.service

这为 multi-user.target 启用服务。同样,按 systemctl disable kdump 可 禁用 kdump。要在当前会话中启动该服务,以 root 用户身份运行以下命令:

systemctl start kdump.service重要

在 Red Hat Enterprise Linux 7 中,kdump systemd 服务启动时,定义为 kdump 目标的目录必须存在 - 否则服务失败。此行为与早期版本的 Red Hat Enterprise Linux 不同,如果启动服务时不存在 目录,则会自动创建该目录。

有关 systemd 和配置服务的更多信息,请参阅 Red Hat Enterprise Linux 7 系统管理员指南。

7.2.3. 在图形用户界面中配置 kdump

要启动 内核转储配置 实用程序,请 从面板选择Activities Other Kernel crash dumps,或者在 shell 提示符下键入 system-config-kdump。因此,会出现一个窗口,如 图 7.1 “基本设置” 所示。

工具允许您配置 kdump,并在引导时启用或禁用启动该服务。完成后,单击 Apply 以保存更改。除非您已通过身份验证,否则请输入超级用户密码。实用程序向您发出一个提醒,您需要重新引导系统才能应用您对配置所做的任何更改。

重要

在在强制模式中运行的 SELinux 的 IBM Z 或 PowerPC 系统中,启动内核转储配置程序前必须启用 kdumpgui_run_bootloader 布尔值。这个布尔值允许 system-config-kdump 在 bootloader_t SELinux 域中运行引导装载程序。要永久启用该布尔值,请以 root 用户身份运行以下命令:

# setsebool -P kdumpgui_run_bootloader 1重要

在 s390x 硬件中转储到 DASD 时,在继续前在 /etc/dasd.conf 中正确指定转储设备非常重要。

7.2.3.1. 配置内存用量

Basic Settings 标签页可让您配置为 kdump 内核保留的内存量。为此,可选择" 手动设置 "单选按钮,然后单击 新建 kdump Memory 字段旁边的向上和向下箭头按钮,以增加或减少要保留的内存量。请注意,Usable Memory 字段会相应地更改,显示可供系统使用的剩余内存。有关 kdump 内存要求的详情,请查看 第 7.1.2 节 “内存要求”。

图 7.1. 基本设置

基本设置7.2.3.2. 配置 kdump 目标

Target Settings 选项卡允许您指定 vmcore 转储的目标位置。转储可以作为文件存储在本地文件系统中,直接写入设备,或者使用 NFS (网络文件系统)或 SSH (Secure Shell)协议通过网络发送。

图 7.2. 目标设置

目标设置

要将转储保存到本地文件系统,请选择 本地文件系统 单选按钮。另外,您还可以使用 Path 字段选择 分区 下拉列表和目标目录不同的分区来自定义设置。

重要

在 Red Hat Enterprise Linux 7 中,kdump systemd 服务启动时,定义为 kdump 目标的目录必须存在 - 否则服务失败。此行为与早期版本的 Red Hat Enterprise Linux 不同,如果启动服务时不存在 目录,则会自动创建该目录。

要将转储直接写入设备,请选择 Raw 设备 单选按钮,然后从其旁边的下拉菜单中选择所需的目标设备。

要通过网络连接将转储发送到远程计算机,请选择 网络 单选按钮。要使用 NFS 协议,请选择 NFS 单选按钮,并填写 服务器名称和 目录路径 字段。要使用 SSH 协议,请选择 SSH 单选按钮,再将 Server name、Path to directory 和 User name 字段分别填入远程服务器地址、目标目录和有效用户名。

有关如何配置 SSH 服务器和设置基于密钥的身份验证的详情,请参考 Red Hat Enterprise Linux 7 系统管理员指南。有关当前支持的目标的完整列表,请参阅 表 7.3 “支持的 kdump 目标”。

7.2.3.3. 配置内核收集器

Filtering Settings 选项卡允许您选择 vmcore 转储的过滤级别。

图 7.3. 过滤设置

过滤设置

要排除 零页面、缓存页面、缓存页面、 缓存、用户数据 或从转储中 可用页面,请选中相应标签旁边的复选框。

7.2.3.4. 配置默认操作

要在 kdump 无法创建内核转储时选择要执行的操作,如果转储失败,请从操作 中选择一个适当的选项。可用选项有:

转储到 rootfs 并重启会尝试在本地保存内核,然后重新启动系统 重启重启系统的默认操作 启动 Shell 以显示具有相互活跃 shell 提示符的用户 停止系统 poweroff 关闭系统

图 7.4. 过滤设置

专家设置

要自定义传递给 makedumpfile 内核收集器的选项,编辑 Core 收集器 文本字段;如需更多信息,请参阅 第 7.2.2.3 节 “配置内核收集器”。

7.2.3.5. 启用服务

要在引导时启动 kdump 服务,点工具栏上的 启用 按钮,然后点击 Apply 按钮。这为 multi-user.target 启用并激活服务。单击"禁用 "按钮,然后单击"应用 "按钮以立即禁用该服务。

重要

在 Red Hat Enterprise Linux 7 中,kdump systemd 服务启动时,定义为 kdump 目标的目录必须存在 - 否则服务失败。此行为与早期版本的 Red Hat Enterprise Linux 不同,如果启动服务时不存在 目录,则会自动创建该目录。

有关 systemd 目标和配置服务的更多信息,请参阅 Red Hat Enterprise Linux 7 系统管理员指南。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3