我们在几台 ProLiant DL360p Gen8 上运行 Proxmox VE 8.3。每台都通过两个连接连接到 1/2 MSA 2040 存储阵列。对于第一个连接,该阵列可作为 /dev/sdb 访问;对于后备连接,该阵列可作为 /dev/sdc 访问。
我们想将阵列用作 lvm-thin。为此,我在阵列上创建了一个分区,创建了一个物理卷和一个卷组。
sgdisk -N 1 /dev/sdb
pvcreate /dev/sdb1
vgcreate vg-proxmox1-array /dev/sdb1
到目前为止,一切正常。在创建精简池之前,我运行pveupgrade
并重新启动了服务器。重新启动后,运行或 时卷组vg-proxmoxN-array
不再显示。运行或时物理卷也不再显示。但是,当明确命名设备时,PV 和 VG 会显示:vgs
vgscan
pvs
pvscan
root@proxmox1:~# pvscan --devices /dev/sdb1
PV /dev/sdb1 VG vg-proxmox1-array lvm2 [<4.91 TiB / <4.91 TiB free]
Total: 1 [<4.91 TiB] / in use: 1 [<4.91 TiB] / in no VG: 0 [0 ]
根据一些互联网资源,lvm 配置中的过滤器可能是原因 - 但我找不到任何匹配的/dev/sdb
grep -v "#" /etc/lvm/lvm.conf | grep filter
global_filter=["r|/dev/zd.*|","r|/dev/rbd.*|"]
一些资源指向10.1.2。将设备添加到 system.devices 文件,但提到的工具lvmdevices --adddev <device_name>
似乎在 Proxmox VE 8.3 上不可用。
- 我将非常感谢任何关于如何让物理卷在运行时可靠地显示
pvs
以及pvscan
卷组在运行时可靠地显示的提示vgs
。vgscan
- 我可能做错了什么导致他们没有出现?在目前的情况下我能信任硬件吗?
- 从这里开始的最佳方法是什么,将 99% 的 vg-proxmox1-array 用于 lvm-thin 池,将剩余的 1% 用于元数据?
提前谢谢您!
你这是在自找麻烦。不要直接访问这些
sdb
!sdc
这会给系统带来很多麻烦;特别是,当你写入 sdb 时,它不会立即知道 sdc 的内容已经改变,所以它会使用旧的缓存数据。你看到问题了吗?Linux 内核中有一个多路径层,用于处理 SAN 冗余。多路径层还将尝试加载所有路径(默认情况下以循环方式),从而尽可能使用冗余来增加吞吐量。它将匹配并组合这些代表相同底层 SAN 卷的多个设备,为您将其合并为单个虚拟设备,您无需费心告诉它哪些设备代表相同的卷。您应该访问这个设备,对其进行分区(或不分区;对其进行分区几乎没有任何意义),并在其上创建 PV 或将其用于您想要的任何用途 — 文件系统、Oracle ASM 等等。
例如,我的服务器有 16 条到 SAN 的路径,例如,每个卷出现十六次,设备最多有,但我在该系统
/dev/sdfv
上只看到十一个多路径设备。/dev/mapper
您必须安装
multipath-tools
并multipath-tools-boot
配置它,以便它在启动时正确初始化。然后,SAN 导出的卷将默认显示为/dev/mapper/mpathX
(X 是字母),除非您在 中为它们配置了其他名称/etc/multipath.conf
。我更喜欢在 SAN 和 Linux 中使用相同的名称,所以我总是重命名它们:具有给定 WWN 的设备显示为
/dev/mapper/oamdwhdg-01
。你可以检查多路径状态并使用
multipathd
命令控制它,例如multipathd show maps
和multipathd show topology
。好吧,如果你对使用它有更多疑问,请提出,我会尽量涵盖,但请先阅读手册,我不会在这里重写它。此外,您对 LVM 配置的解释不正确。以 开头的过滤器条目
r
是删除,它指定 LVM不应扫描卷的设备。开头隐含着扫描所有设备。在正常情况下,即使使用多路径,您也不需要触碰此过滤器。在此处a|/dev/.*|
阅读更多相关信息。