<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>超融合 on HiDa</title><link>https://www.0niu.cn/tags/%E8%B6%85%E8%9E%8D%E5%90%88/</link><description>Recent content in 超融合 on HiDa</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Sat, 18 Jan 2025 08:25:00 +0800</lastBuildDate><atom:link href="https://www.0niu.cn/tags/%E8%B6%85%E8%9E%8D%E5%90%88/index.xml" rel="self" type="application/rss+xml"/><item><title>RHEL 9 LVM system.devices 问题导致虚拟机无法启动</title><link>https://www.0niu.cn/posts/rhel9-lvm-system.devices%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3/</link><pubDate>Sat, 18 Jan 2025 08:25:00 +0800</pubDate><guid>https://www.0niu.cn/posts/rhel9-lvm-system.devices%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3/</guid><description>&lt;h2 id="问题描述">问题描述&lt;/h2>
&lt;p>在深信服超融合虚拟机中，如果运行 RedHat Linux 9 系列及以上操作系统，使用第三方备份软件进行无代理备份后恢复系统，或者跨集群迁移虚拟机，大概率出现系统无法正常启动的问题。&lt;/p>
&lt;h2 id="原因分析">原因分析&lt;/h2>
&lt;p>从 RHEL 9 开始，默认启用了 LVM 设备文件功能。&lt;code>system.devices&lt;/code> 文件控制 LVM 设备的可见性和可用性，如果物理卷（PV）不在该文件中，LVM 将不会使用它。&lt;/p>
&lt;p>当系统通过备份恢复或跨集群迁移后，物理卷的 ID 会发生变更，导致原有的 &lt;code>system.devices&lt;/code> 文件无法正确识别设备，从而无法加载逻辑卷组。&lt;/p>
&lt;p>官方文档参考：&lt;a href="https://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/9/html/configuring_and_managing_logical_volumes/limiting-lvm-device-visibility-and-usage_configuring-and-managing-logical-volumes#the-lvm-devices-file_limiting-lvm-device-visibility-and-usage">LVM 设备文件配置&lt;/a>&lt;/p>
&lt;h2 id="解决方法">解决方法&lt;/h2>
&lt;h3 id="步骤-1进入救援模式">步骤 1：进入救援模式&lt;/h3>
&lt;p>使用安装光盘或 ISO 启动系统，选择进入救援模式，选择选项 &lt;strong>3&lt;/strong> 进入 SHELL。&lt;/p>
&lt;h3 id="步骤-2切换到系统根目录">步骤 2：切换到系统根目录&lt;/h3>
&lt;p>在 SHELL 中按 &lt;strong>1&lt;/strong> 继续挂载系统，然后执行：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>chroot /mnt/sysroot
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="步骤-3删除-systemdevices-文件">步骤 3：删除 system.devices 文件&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>rm -f /etc/lvm/devices/system.devices
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="步骤-4重启系统">步骤 4：重启系统&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>exit
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>reboot
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="步骤-5重新创建-systemdevices-文件">步骤 5：重新创建 system.devices 文件&lt;/h3>
&lt;p>系统正常启动后，执行以下命令重新生成 &lt;code>system.devices&lt;/code> 文件：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>vgimportdevices -a
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="验证">验证&lt;/h2>
&lt;p>通过对比 &lt;code>system.devices&lt;/code> 文件的前后变化，可以看到 &lt;code>IDNAME&lt;/code> 字段已经更新：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-diff" data-lang="diff">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">--- system.devices
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&lt;/span>&lt;span style="color:#a6e22e">+++ system.devices.bak
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">&lt;/span>&lt;span style="color:#75715e">2,3c2,3
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>&lt;span style="color:#f92672">&amp;lt; # Created by LVM command vgimportdevices pid 167429 at Fri Jan 17 13:34:50 2025
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt; # HASH=3025863125
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&lt;/span>&lt;span style="font-weight:bold">---
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="font-weight:bold">&lt;/span>&lt;span style="color:#a6e22e">&amp;gt; # Created by LVM command vgs pid 131552 at Wed Dec 11 22:03:44 2024
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">&amp;gt; # HASH=364014683
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">&lt;/span>&lt;span style="color:#75715e">5,6c5,6
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>&lt;span style="color:#f92672">&amp;lt; VERSION=1.1.1
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt; IDTYPE=sys_serial IDNAME=1624319849518-0 DEVNAME=/dev/vda3 PVID=W4s53DYkIKMtYj6TdOxizXKwzrqVfx4L PART=3
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&lt;/span>&lt;span style="font-weight:bold">---
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="font-weight:bold">&lt;/span>&lt;span style="color:#a6e22e">&amp;gt; VERSION=1.1.5
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">&amp;gt; IDTYPE=sys_serial IDNAME=7894377599278-0 DEVNAME=/dev/vda3 PVID=W4s53DYkIKMtYj6TdOxizXKwzrqVfx4L PART=3
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>可以看到 &lt;code>IDNAME&lt;/code> 从 &lt;code>7894377599278-0&lt;/code> 变更为 &lt;code>1624319849518-0&lt;/code>，这正是导致系统无法识别设备的原因。&lt;/p>
&lt;h2 id="预防措施">预防措施&lt;/h2>
&lt;p>对于频繁需要备份恢复或迁移的 RHEL 9 系统，可以考虑以下预防措施：&lt;/p>
&lt;ol>
&lt;li>在系统中禁用 LVM 设备文件功能（根据实际需求评估风险）&lt;/li>
&lt;li>在备份前执行 &lt;code>vgexportdevices&lt;/code> 导出设备文件&lt;/li>
&lt;li>恢复或迁移后务必检查并重建 &lt;code>system.devices&lt;/code> 文件&lt;/li>
&lt;/ol>
&lt;h2 id="参考资料">参考资料&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/9/html/configuring_and_managing_logical_volumes/limiting-lvm-device-visibility-and-usage_configuring-and-managing-logical-volumes">Red Hat LVM 设备文件文档&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://portal.nutanix.com/kb/13157">Nutanix 知识库 KB-13157&lt;/a>&lt;/li>
&lt;/ul></description><content>&lt;h2 id="问题描述">问题描述&lt;/h2>
&lt;p>在深信服超融合虚拟机中，如果运行 RedHat Linux 9 系列及以上操作系统，使用第三方备份软件进行无代理备份后恢复系统，或者跨集群迁移虚拟机，大概率出现系统无法正常启动的问题。&lt;/p>
&lt;h2 id="原因分析">原因分析&lt;/h2>
&lt;p>从 RHEL 9 开始，默认启用了 LVM 设备文件功能。&lt;code>system.devices&lt;/code> 文件控制 LVM 设备的可见性和可用性，如果物理卷（PV）不在该文件中，LVM 将不会使用它。&lt;/p>
&lt;p>当系统通过备份恢复或跨集群迁移后，物理卷的 ID 会发生变更，导致原有的 &lt;code>system.devices&lt;/code> 文件无法正确识别设备，从而无法加载逻辑卷组。&lt;/p>
&lt;p>官方文档参考：&lt;a href="https://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/9/html/configuring_and_managing_logical_volumes/limiting-lvm-device-visibility-and-usage_configuring-and-managing-logical-volumes#the-lvm-devices-file_limiting-lvm-device-visibility-and-usage">LVM 设备文件配置&lt;/a>&lt;/p>
&lt;h2 id="解决方法">解决方法&lt;/h2>
&lt;h3 id="步骤-1进入救援模式">步骤 1：进入救援模式&lt;/h3>
&lt;p>使用安装光盘或 ISO 启动系统，选择进入救援模式，选择选项 &lt;strong>3&lt;/strong> 进入 SHELL。&lt;/p>
&lt;h3 id="步骤-2切换到系统根目录">步骤 2：切换到系统根目录&lt;/h3>
&lt;p>在 SHELL 中按 &lt;strong>1&lt;/strong> 继续挂载系统，然后执行：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>chroot /mnt/sysroot
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="步骤-3删除-systemdevices-文件">步骤 3：删除 system.devices 文件&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>rm -f /etc/lvm/devices/system.devices
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="步骤-4重启系统">步骤 4：重启系统&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>exit
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>reboot
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="步骤-5重新创建-systemdevices-文件">步骤 5：重新创建 system.devices 文件&lt;/h3>
&lt;p>系统正常启动后，执行以下命令重新生成 &lt;code>system.devices&lt;/code> 文件：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>vgimportdevices -a
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="验证">验证&lt;/h2>
&lt;p>通过对比 &lt;code>system.devices&lt;/code> 文件的前后变化，可以看到 &lt;code>IDNAME&lt;/code> 字段已经更新：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-diff" data-lang="diff">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">--- system.devices
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&lt;/span>&lt;span style="color:#a6e22e">+++ system.devices.bak
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">&lt;/span>&lt;span style="color:#75715e">2,3c2,3
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>&lt;span style="color:#f92672">&amp;lt; # Created by LVM command vgimportdevices pid 167429 at Fri Jan 17 13:34:50 2025
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt; # HASH=3025863125
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&lt;/span>&lt;span style="font-weight:bold">---
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="font-weight:bold">&lt;/span>&lt;span style="color:#a6e22e">&amp;gt; # Created by LVM command vgs pid 131552 at Wed Dec 11 22:03:44 2024
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">&amp;gt; # HASH=364014683
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">&lt;/span>&lt;span style="color:#75715e">5,6c5,6
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">&lt;/span>&lt;span style="color:#f92672">&amp;lt; VERSION=1.1.1
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&amp;lt; IDTYPE=sys_serial IDNAME=1624319849518-0 DEVNAME=/dev/vda3 PVID=W4s53DYkIKMtYj6TdOxizXKwzrqVfx4L PART=3
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f92672">&lt;/span>&lt;span style="font-weight:bold">---
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="font-weight:bold">&lt;/span>&lt;span style="color:#a6e22e">&amp;gt; VERSION=1.1.5
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">&amp;gt; IDTYPE=sys_serial IDNAME=7894377599278-0 DEVNAME=/dev/vda3 PVID=W4s53DYkIKMtYj6TdOxizXKwzrqVfx4L PART=3
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>可以看到 &lt;code>IDNAME&lt;/code> 从 &lt;code>7894377599278-0&lt;/code> 变更为 &lt;code>1624319849518-0&lt;/code>，这正是导致系统无法识别设备的原因。&lt;/p>
&lt;h2 id="预防措施">预防措施&lt;/h2>
&lt;p>对于频繁需要备份恢复或迁移的 RHEL 9 系统，可以考虑以下预防措施：&lt;/p>
&lt;ol>
&lt;li>在系统中禁用 LVM 设备文件功能（根据实际需求评估风险）&lt;/li>
&lt;li>在备份前执行 &lt;code>vgexportdevices&lt;/code> 导出设备文件&lt;/li>
&lt;li>恢复或迁移后务必检查并重建 &lt;code>system.devices&lt;/code> 文件&lt;/li>
&lt;/ol>
&lt;h2 id="参考资料">参考资料&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/9/html/configuring_and_managing_logical_volumes/limiting-lvm-device-visibility-and-usage_configuring-and-managing-logical-volumes">Red Hat LVM 设备文件文档&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://portal.nutanix.com/kb/13157">Nutanix 知识库 KB-13157&lt;/a>&lt;/li>
&lt;/ul></content></item></channel></rss>