2.4. 系统管理


本部分介绍了在 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 之间对系统管理工具和流程所做的更改。

2.4.1. 默认进程最大值(ulimit)

在 Red Hat Enterprise Linux 6 中,非 root 用户对于每个 PAM 会话限制为总计 1024 个进程。在 Red Hat Enterprise Linux 7 中,这个数量被默认增加到每个 PAM 会话限制为总计 4096 个进程。

默认值在 Red Hat Enterprise Linux 7 上的 /etc/security/limits.d/*-nproc.conf 文件中指定(通常为 /etc/security/limits.d/20-nproc.conf )。如果没有此文件,非 root 用户可以拥有的最大进程数是通过编程方式确定的,如 什么中所述决定了 Red Hat Enterprise Linux 上的 nproc(ulimit -u)的默认值?

您可以通过运行 ulimit -u 命令,查找每个 PAM 会话非 root 用户当前可用的进程数。

2.4.2. 配置文件同步

在 Red Hat Enterprise Linux 6 中,export 命令在配置文件中用于导出这些文件中定义的值。未使用 export 命令的变量没有导出,且只用作对应初始化脚本的配置值。这是 /etc/sysconfig/sshd 文件示例:

AUTOCREATE_SERVER_KEYS=YES
export SSH_USE_STRONG_RNG=1
export OPENSSL_DISABLE_AES_NI=1
Copy to Clipboard Toggle word wrap

在 Red Hat Enterprise Linux 6 中,只有 SSH_USE_STRONG_RNGOPENSSL_DISABLE_AES_NISABLE_AES_NI 的值被导出到 ssh 守护进程的环境。变量 AUTOCREATE_SERVER_KEYS 用于告知初始化脚本自动创建 RSA 和 DSA 服务器私钥和公钥。

在 Red Hat Enterprise Linux 7 中,不再需要 export 命令将这些值导出到要配置的服务的环境中。因此,以下示例 /etc/sysconfig/sshd 文件会将所有三个值导出到 ssh 守护进程的环境:

AUTOCREATE_SERVER_KEYS=YES
SSH_USE_STRONG_RNG=1
OPENSSL_DISABLE_AES_NI=1
Copy to Clipboard Toggle word wrap

2.4.3. 新的日志记录框架

Red Hat Enterprise Linux 7 引入了一个新的日志记录守护进程 journald,作为迁移到 systemd 的一部分。journald 捕获所有服务的以下类型信息:

  • syslog 信息
  • 内核信息
  • 初始 RAM 磁盘和早期引导信息
  • 发送到标准输出和标准错误输出的消息

然后,它会将这些消息存储在原生日志文件中:结构化的索引的二进制文件,其中包含有用的元数据,而且可以更快地搜索。

默认情况下,日志文件不会持久存储。记录的数据量取决于可用内存量 ; 当系统内存或 /run/log/journal 目录中空间不足时,会删除最旧的日志文件以继续记录。

在 Red Hat Enterprise Linux 7 中,rsyslogjournald 可以共存。journald 收集的数据转发到 rsyslog,它可以执行进一步处理和存储基于文本的日志文件。默认情况下,rsyslog 只存储着 syslog 消息的典型日志字段,但可以配置为存储所有可用于 journald 的字段。因此,Red Hat Enterprise Linux 7 与依赖 rsyslog 的应用程序和系统配置保持兼容。

有关日志记录子系统的详情,请查看 系统管理员指南

2.4.4. 本地化设置

作为迁移到新 init 系统的一部分,本地化设置已从 /etc/sysconfig/i18n 移到 /etc/locale.conf/etc/vconsole.conf

2.4.5. 主机名定义

在 Red Hat Enterprise Linux 6 中,hostname 变量在 /etc/sysconfig/network 配置文件中定义。在 Red Hat Enterprise Linux 7 中,作为迁移到新 init 系统(systemd)的一部分,主机名 变量在 /etc/hostname 中定义。

2.4.6. Yum 的更新

Red Hat Enterprise Linux 7 包括了 yum 的更新版本,其中包括很多更改和功能增强。这部分列出了可能会影响从 Red Hat Enterprise Linux 6 迁移到 Red Hat Enterprise Linux 7 的 yum 用户的更改。

  • yum groupyum 组 现在是顶层命令,以提高命令行 yum 使用的一致性。例如,在之前使用 yum groupinfo 的位置,您现在可以使用 yum group info
  • yum group list 现在包含其他可选参数来更改其输出。新选项为 语言和 ids
  • /etc/yum.conf 中的 group_command 参数的默认值已从 compat 更改为 对象。在以前的版本中,yum group install 的默认行为是安装软件包组的所有成员,并在以前的升级前升级之前安装的软件包和软件包。新的默认行为是 yum 会跟踪之前安装的组,并区分作为组的一部分安装的软件包和单独安装的软件包。
  • yum-securityyum-presto 插件已集成到 yum 中。
  • yum 现在可以同时下载多个软件包。
  • yum 现在包括对环境组的支持。这可让您作为单一实体安装和删除在环境组中列出的多个软件包组。
  • yum 现在可以将存储库视为一组软件包,允许用户将存储库中的所有软件包视为单个实体,例如,安装或删除该存储库中的所有软件包。这个功能由 repository-packages 子命令提供。
  • yum 现在包含一个 --disableincludes 选项,它允许您禁用配置文件中定义的 include 语句。您可以禁用所有 包含 语句 及所有 值,或者通过提供该存储库标识符来禁用为特定存储库定义的 include 语句。
  • yum 现在包含一个 --assumeno 选项,它假定 yum 提出问题的答案为"no"。这个选项会覆盖 --assumeyes 选项,但仍然会受 alwaysprompt 规定的行为。

有关 yum 的详情,请查看 man page:

$ man yum
Copy to Clipboard Toggle word wrap

2.4.7. RPM Package Manager(RPM)的更新

Red Hat Enterprise Linux 7 提供 RPM Package Manager 的更新版本。这个版本包括对可能会影响迁移行为的很多更改。

  • 现在,冲突检测更为严格且更为正确。因为存在冲突问题,在 Red Hat Enterprise Linux 6 中安装的一些软件包可能无法在 Red Hat Enterprise Linux 7 中安装。
  • 现在,可以使用 alternatives 将与其他版本本身冲突的软件包设置为单例,以便单个软件包的多个版本可以相互一起安装。
  • 如果安装的软件包列出另一个软件包已过时,则不会安装第二个软件包。
  • 过时的规则现在包括所有匹配的软件包,无论其他属性是什么,比如架构。
  • 依赖项计算不再考虑没有安装的文件或被替换的文件,如 --nodocs--noconfig--force 选项。
  • 重建一个崩溃(DB _RUNRECOVER )RPM Package Manager 数据库时,不再需要手动执行 rm -f /var/lib/rpm/_db.
  • 不再支持通过 OpenPGP 3 创建的公钥。
  • 现在,- info 选项会每行输出单独的标签值对,以提高人类可读性。任何依赖前 --info 格式的脚本都需要被重写。
  • 现在,spec 解析程序更为严格且更为准确,因此一些之前被接受的 spec 文件可能无法解析或会出现警告。
  • %license 现在可以用来将 spec 文件中的 %files 部分中的文件标记为许可证,即使指定了 --nodocs
  • 版本比较现在支持 dpkg 风格的波形符(~)运算符以更好地处理预发布软件。例如: foo-2.0~beta1 被视为比 foo-2.0 旧,删除 Release 项处理这些常见上游版本实践的需要。
  • 自动依赖项生成器已重写为可扩展、基于可定制规则的系统,并带有过滤中的内置功能。

这个版本还包括以下改进:

  • 现在,可以从软件包(INSTFILENAMES)中查询安装的文件、指向文件的硬链接的数量(FILENLINKS)、软件包版本控制系统详细信息(VCS)和已格式化的依赖关系字符串快捷键(PROVIDENEVRS )、REQUIRENEVRS、CONFLICTNEVRS、CONFLICTNEVRSOBSOVEVRS
  • 提供了很多新命令,其中包括:

    • rpmkeys
    • rpmdb
    • rpmspec
    • rpmsign
  • RPM Package Manager 现在包含多个新的参数用于脚本,以启用运行时的宏扩展或者运行时查询格式扩展。
  • 现在,预处理和 post-transaction scriptlet 依赖项可以使用 Requires(pretrans)Requires(posttrans) 正确表达。
  • RPM Package Manager 现在包含 OrderWithRequires 标签,允许用户提供额外的排序信息。这个新标签的语法与 Requires 标签相同,但不会生成依赖项。如果同一事务中提到的软件包,则在计算事务顺序时,排序提示被视作 Requires
  • spec 文件中的行继续和宏扩展不再仅限于指定长度。
  • RPM Package Manager 现在允许用户指定上游版本控制存储库信息。
  • RPM Package Manager 现在包含一个 %autosetup 宏,以帮助自动化应用补丁的过程。

2.4.8. ifconfig 的新格式

在 Red Hat Enterprise Linux 7 中,已弃用的 ifconfig 工具的输出格式已改变。解析 ifconfig 输出的脚本可能会受到这些更改的影响,可能需要重写。

红帽建议使用 ip 实用程序及其子命令(ip addr,ip link),而不是已弃用的 ifconfig 工具。

2.4.9. 控制组群更改

内核使用控制组群来对进程进行分组以进行系统资源管理。Red Hat Enterprise Linux 7 对控制组群引进了大量更改。

  • 控制组现在挂载到 /sys/fs/cgroup 而不是 /cgroup
  • 现在默认挂载一些文件系统。
  • systemd 尚不支持从 libcgroup 迁移到 systemd。因此,应该只使用 cgred 服务将进程移到不由 systemd 管理的组。cgconfig.conf 文件应该用于为不是由 systemd 管理的文件系统或文件控制器配置控制组层次结构。

有关这些更改的详情,请查看 资源管理指南

2.4.10. 对 Kernel Crash Collection 的更改(Kdump)

内核崩溃收集工具( kdump )以前使用自定义 mkdumprd 脚本为 kdump 捕获内核生成初始 RAMDisk(initrd)。在 Red Hat Enterprise Linux 7 中,初始 RAMDisk 使用 dracut 生成,使生成初始 RAMDisk 的过程更易于维护。

因此,在 kdump 及其配置文件中进行了以下更改。

  • net 指令不再被支持。用户现在必须明确定义 sshnfs
  • 不再支持 黑名单 选项。相反,用户可以将 rd.driver.blacklist 指定为捕获内核的 /etc/sysconfig/kdump 文件中的参数。
  • 默认的 mount_root_run_init 操作(在转储到预期的目标失败时)已被 dump_to_rootfs 操作替代。这个新操作会挂载根文件系统,而不是挂载真实根文件系统,而是运行初始化脚本,并在 kdump 服务启动时尝试保存 vmcore。这个新操作会挂载 root 文件系统并将 vmcore 保存到其中。
  • 新的指令 dracut_args 允许您在配置 kdump 时指定额外的 dracut 参数。
  • kdump 不再包含 debug_mem_level 选项。这个功能已移至 dracut。用户可以通过在其捕获内核的 /etc/sysconfig/kump 文件中指定 rd.memdebug 作为参数来实现相同的功能。
  • options 指令之前被用来在初始 RAM 文件系统(initramfs)中包含与内核模块相关的参数。Red Hat Enterprise Linux 7 不支持这个方法。用户可以在捕获内核的 /etc/sysconfig/kdump 文件中指定相关参数。
  • link_delaydisk_timeout 参数不再是必需的或支持,因为 dracut 包含 udev,它解决了之前需要这些参数的用例。
  • 在启动 kdump 服务并创建初始 RAMDdisk 镜像前,所有文件系统后端转储目标都必须挂载到崩溃的内核中。您可以将这些目标添加到 /etc/fstab,以便在引导时自动挂载这些目标。
  • 如果您指定路径但没有指定目标,并且您指定的路径中的任何目录都是单独设备的挂载点,则 vmcore 将保存到路径中,而不是与该路径挂载的设备。因此,当您的系统重启以及设备挂载时,vmcore 无法访问,因为该设备已经挂载到其位置的顶部。现在,当您指定路径而不指定目标时,Red Hat Enterprise Linux 7 会警告此问题。

有关 kdump 的详情,请查看 内核管理指南

2.4.11. usermod 行为的更改

在 Red Hat Enterprise Linux 6 中,usermod 命令的 -g 选项没有操作组所有权。从 Red Hat Enterprise Linux 7.0 到 Red Hat Enterprise Linux 7.2,-g 选项修改了 /home 目录树中的文件的组所有权。从 Red Hat Enterprise Linux 7.3 开始,只有主目录用户 ID 与要修改的用户 ID 匹配时,usermod 才会更改用户主目录内的文件的组所有权。

2.4.12. 系统帐户的更改

Red Hat Enterprise Linux 7 发行版本中更改了系统用户的默认 ID 范围,如下所示:

Expand
表 2.4. ID 布局
范围Red Hat Enterprise Linux 6Red Hat Enterprise Linux 7

系统帐户

0-499

0-999

用户帐户

500-60,000

1,000-60,000

因为这个变化,当迁移到 Red Hat Enterprise Linux 7 时,如果有用户的 UID 和 GID 在 500 到 999 之间,则可能会造成问题。可在 /etc/login.defs 文件中手动更改默认的 UID 和 GID 范围。

2.4.13. 对 hwclock 的更改行为

在 Red Hat Enterprise Linux 6 中,用于访问硬件时钟的 hwclock 命令在每次系统关闭或重启时自动运行。该行为与 Red Hat Enterprise Linux 7 进行了改变。现在,当 网络时间协议(NTP)或 Precision Time Protocol (PTP)同步系统时钟时,内核每 11 分钟会自动将硬件时钟同步到系统时钟。

有关配置 NTPPTP 和设置硬件时钟的详情,请查看 系统管理员指南

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat