问题

问题

问题

设置

在 Proxmox 服务器上,我创建了一个 LXC 容器:

pct create 101 local:vztmpl/centos-8-default_20201210_amd64.tar.xz --features mknod=1,nesting=1,fuse=1 --ostype centos --storage=CTVM --description "centos glusterfs" --hostname thorgluster --password "password" --onboot 1 --net0 name=eth0,bridge=vmbr0 --unprivileged=0

然后可以使用以下命令将设备挂载/dev/sdd到其中:

lxc-device add -n 101 /dev/sdd

并添加以下几行/etc/pve/lxc/101.conf以便它在重启时挂载(8:48来自lsblk):

lxc.cgroup2.devices.allow = b 8:48 rwm
lxc.mount.entry = /dev/sdd /dev/sdd none bind,optional,create=file

请注意,我需要设备挂载而不是绑定挂载,因为我需要能够在容器内部对驱动器运行 LVM 命令。

实际问题

然而在未来,/dev/sdd可能会/dev/sd[a-z]根据这个帖子。那么我该如何处理这个改名问题呢?

尝试的解决方案

  • 我尝试使用/dev/disk/by-id/ata-ST2000DM008-2FR102_ZFL1FYFF它来代替,/dev/sdd但没有效果。
  • 我考虑在安装之前创建永久设备节点,mknod如下所示这个帖子但我还没有在其他地方看到过这种做法,也不知道像这样使用 mknod 时是否还有其他注意事项。
  • 这个帖子表示设备名称与所插入的端口绑定。这意味着我所要做的就是在磁盘和端口上贴上物理标签。
  • 我看到某处我可以将虚拟硬盘安装到容器中以避免此问题,但我还没有看到有关如何执行此操作的任何文档。(编辑:我可能能够使用循环设备。正在研究这个问题。)
  • 我尝试添加lvm.external=true/etc/pve/lxc/101.conf出​​现错误。

答案1

我的建议是在主机上也使用 LVM。使用要用于虚拟机的磁盘创建一个卷组:

vgcreate VMdisks /dev/sdd /dev/sde

然后创建一个使用所有内容的逻辑卷/dev/sdd

lvcreate -n Centos01SystemDisk -l 100%PVS VMdisks /dev/sdd

然后用作/dev/VMdisks/Centos01SystemDisk您的 VM 磁盘。

您无需关心哪个磁盘是哪个,另外您还拥有 LVM 功能(扩展 LV、创建快照等的能力)。

答案2

我遇到的问题是将其用作/dev/sddfstab 的第二个参数。它应该是dev/sddproxmox 将附加到哪个参数。该行现在看起来像这样

lxc.mount.entry = /dev/disk/by-id/ata-ST2000DM008-2FR102_ZFL1FYFF dev/sdd none bind,optional,create=file

相关内容