AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1166269
Accepted
Nikita Kipriyanov
Nikita Kipriyanov
Asked: 2024-10-07 20:42:57 +0800 CST2024-10-07 20:42:57 +0800 CST 2024-10-07 20:42:57 +0800 CST

PVE:LVM 使用错误的后端设备(多路径设备的非多路径组件)进行初始化

  • 772
此悬赏已结束。回答此问题的人员有资格获得+100声誉悬赏。悬赏宽限期将在5 小时后结束。Nikita Kipriyanov希望引起更多人对此问题的关注:
理想情况下,我希望既能解释使用多路径 LVM 的问题,又能解决我面临的特定问题。我准备做一些实验,但不会做太多。

我有一台运行 Proxmox VE 8.2(基于 Debian 12)的服务器,已完全更新,使用多路径 SAN。我们在那里分配了一个空间,十个设备,每个设备 2T,每个设备被看到 16 次(路径数),并映射到 10 个多路径虚拟设备并收集到一个 LVM 组中,其中雕刻了一个逻辑卷。这部分没有问题。

它被“即时”初始化并正常运行,直到主机重新启动。之后我注意到,每当lvs在系统 shell 中运行任何与 LVM 相关的命令( 等)时,它都会发出以下形式的警告:

WARNING: Device mismatch detected for <LV> which is accessing <list of devices like
 /dev/sdak, /dev/sdaz, /dev/sdbn, ...> instead of <list of the devices
 like /dev/mapper/oamdwhdg-01, /dev/mapper/oamdwhdg-02, ...>

这些/dev/mapper/oamdwhdg-XX实际上是多路径设备,它们之所以这样命名是出于以下操作原因/etc/multipath.conf:

multipaths {
...
    multipath {
        wwid 36...
        alias oamdwhdg-04
    }
...
}

即无论出于何种原因,LV 都是使用后端设备映射的,而不是使用多路径虚拟设备。

因此我更新了过滤器/etc/lvm/lvm.conf,现在如下所示:

global_filter=[ "a|/dev/sda3|", "a|/dev/mapper/oamdwhdg|", "r|.*|" ]

(我更新了它,而不是添加的,它global_filter=["r|/dev/zd.*|","r|/dev/rbd.*|"]之前是有评论的added by pve-manager to avoid scanning ZFS zvols and Ceph rbds。我相信我的过滤器比这个严格得多。)

/dev/sda3是安装 PVE 的本地磁盘,它包含pve不依赖于 SAN 的 VG,因此它是唯一/dev/sd...不使用多路径且被列入白名单的磁盘。

我使用这个过滤器测试了它vgscan,它显示可以找到两个组。

然后我执行update-initramfs并重新启动。在启动过程中,服务器无法进入紧急 shell。但是,当我到达Ctrl+D那里时,它几乎正常启动:可以看到多路径 VG,但未激活(好像vgchange -an oamdwhdg尚未运行)。但是,我使用上述命令手动完全正常地激活了它,并且它运行正常。


我怀疑这是因为 initramfs 中多路径在 LVM 之前未正确初始化,因此它尝试使用 /dev/sdXX 设备设置映射。但我不明白为什么添加过滤器后它无法进入紧急 shell。

这里有两个(非常相关的)问题:为什么要使用紧急 shell,也就是出了什么问题以及如何使其按预期工作?

debian
  • 1 1 个回答
  • 85 Views

1 个回答

  • Voted
  1. Best Answer
    Nikita Kipriyanov
    2024-10-16T14:50:01+08:002024-10-16T14:50:01+08:00

    事实证明这是一个非常愚蠢的问题。我不需要自定义过滤器。我需要将正确的多路径纳入 initramfs,但multipath-tools仅凭这一点是不够的。

    为此,multipath-tools-boot基于 Debian 的系统有一个单独的软件包。它使 /etc 中的 dm-multipath 模块和配置出现在 initramfs 中。

    我删除了所有自定义更改lvm.conf并运行:

    apt install multipath-tools-boot
    

    重新启动,瞧,一切都恢复到正确状态。

    /etc/multipath/wwids重要提示:在对多路径配置进行任何更改或添加设备或进行任何更改后/etc/multipath.conf,需要重建 initramfs 以包含更新的版本:

    update-initramfs -uk all
    
    • 0

相关问题

  • 关闭 FTP

  • 如何在同一台电脑上从 putty 连接 debian vmware

  • debian- 文件到包的映射

  • Debian Ubuntu 网络管理器错误 [关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve