我有一个全新的 RHEL7.4 服务器安装,我正在尝试从 elrepo 安装 DRBD 9.0。
我的服务器正在运行最新的内核:3.10.0-693.1.1.el7.x86_64
,但 kmod-drbd90 想要安装内核 3.10.0-514.26.2 作为依赖项:
---> Package kmod-drbd90.x86_64 0:9.0.8-1.el7.elrepo will be installed
--> Processing Dependency: kernel(crypto_alloc_ahash) = 0x035deac4 for
package: kmod-drbd90-9.0.8-1.el7.elrepo.x86_64
--> Running transaction check
---> Package kernel.x86_64 0:3.10.0-514.26.2.el7 will be installed
安装旧内核对我来说没什么问题。我只是想知道当旧内核最终被替换时会发生什么。DRBD 会继续工作吗?
如果我也尝试安装 DRBD 8.4,也会遇到同样的情况。
答案1
这是我在使用 DRDB 和其他涉及专用内核模块的产品时有时会遇到的问题。最终,我解决这个问题的办法总是暂停内核包,以防止意外损坏。您的情况将根据相关发行版如何打包内核而有所不同。
总的来说,这是一个依赖解析发挥作用的例子,你应该按照它说的去做。然而,DRDB 偶尔依赖于稍旧的内核,这并没有一定阻止安装较新的内核,并阻止 Grub 自动配置为从这些较新的内核启动。这会导致系统在启动时需要通过 Grub 选择较旧的内核 - 如果您的系统配置为在更新后保留较旧的内核(这是默认设置),则可以轻松做到这一点。尽量避免这种情况。
因此,如果您要在此节点上使用 DRDB,则保留内核包以防止发生这种情况是一种可靠的方法。可以通过编辑/etc/yum.conf
以在 [main] 部分下包含以下行来实现:
exclude=kernel*
这将阻止内核更新,直到您使用 yum 强制更新该软件包,或直到您删除排除指令。这样,您就可以在内核敏感的工作负载中更加谨慎地更新内核。