我已经从CentOS 6到7重新安装了Linux服务器。该服务器具有3个驱动器-一个系统SSD驱动器(除所有内容外,它托管所有内容/home
)和两个托管的4TB HDD驱动器/home
。一切都使用LVM。两个4TB驱动器已镜像(使用LVM本身中的raid选项),并且它们完全被/ home分区填充。
问题是,尽管可以很好地识别4TB磁盘,并且LVM可以看到该卷没有问题,但是它不会自动激活它。其他所有内容都会自动激活。我可以手动激活它,并且它可以工作。
我在/ home中有旧系统驱动器的映像。那也包含LVM卷。如果我使用安装它kpartx
,则LVM会拾取并激活它们。但是我看不到那些卷和不活跃的卷之间没有区别。
根文件系统也是LVM,并且可以正常激活。
但是,我看到了一个奇特的事情:执行lvchange -aay
告诉我,我需要指定要激活的驱动器。它也不自动执行。如果我指定lvchange -ay lv_home
-可以。
我找不到任何可能导致此行为的原因。
补充:我注意到旧系统(使用init)包含vgchange -aay --sysinit
在其启动脚本中。新版本使用systemd,但vgchange
在其脚本中看不到该调用。但是我也不知道该放在哪里。
增加了2:开始找出systemd。我找到了脚本的位置,并开始了解它们的调用方式。还发现我可以通过看到执行的脚本systemctl -al
。这说明启动后lvmetad
它会调用pvscan
每个已知的udev块设备。但是,此时只有一个注册的udev块设备,这是公认的lvm卷之一。硬盘也在那里,但是使用不同的路径和更长的名称。公认的块设备就像8:3
硬盘一样/device/something/
。我不再在服务器上了,所以我无法精确地编写它(稍后将解决此问题)。
我认为这与udev和设备检测/映射有关。我将在晚上继续学习,然后学习udev。
如果其他所有方法均失败,则我找到了调用的脚本,pvscan
并检查了是否可以修改它以始终扫描所有设备。这可以解决问题,但是看起来很丑陋,因此,我将尝试找出真正的根本原因。
添加3:好吧,我仍然不知道为什么会这样,但是至少我做了一个相当可行的解决方法。pvscan
在启动之后,我又做了一次调用一次的systemd服务lvmetad
。该特定设备的另一个调用仍然存在,我认为实际上udev
是它的调用(这是我找到对其的唯一引用)。为什么其他硬盘驱动器不调用它-我不知道。
lvmetad
是-我没有发现其他任何东西)。