1 背景
集群(以A、B表示两节点)使用共享盘,其中A节点使用共享盘 /dev/sdb 做LVM扩容操作,且是扩容系统卷组 rhel,所有的容量扩到了root 逻辑卷中。
B节点上面的共享盘 /dev/sdb 同步了此操作,可以看到 2个PV(1个 /dev/sda2,1个 /dev/sdb1,1个[unknown])([unknown]为A节点上的 /dev/sda2 ,同名但 pv_uuid 不一致,所以在B节点上识别不到),2个 rhel 同名卷组(一个有1个PV,另一个有2个PV),4个LV。
其中B节点上 2个PV (/dev/sdb1和[unknown])是同步与 A节点上的共享盘,因为两节点的 vg_uuid 不一致,所以即便卷组名称一致,存在冲突,但也不会合并。
2 存在的风险
对于A节点,因为是 /dev/sdb 是共享盘,如果是虚拟机,则基本不会有什么影响;如果是物理机,共享盘是使用光纤线和存储连接,在系统中识别到,存在一定几率网络波动影响导致系统异常。
对于B节点,使用上没有A节点所存在的风险,但如果B节点重启,则因为两个卷组名称一致,在启动过程中会激活失败,启动失败,需要手动干预激活启动。
3 处理
3.1 A节点移除共享盘(推荐)
此方法需要新增本地盘,大小跟共享盘相当(大于等于),扩至 rhel 卷组,将共享盘中的所有 PE 移至新增的本地盘中,在卷组中移除共享盘,继而移除PV。
优势:一般不需要重启操作系统。如果最后识别一直存在问题,则还是需要重启系统。
vmware workstation 环境新增盘需要关机才能新增盘,vmware vsphere 和物理机可以热添加,然后识别盘。
echo "- - -" > /sys/class/scsi_host/host<h>/scan
(注:测试使用 vmware workstation,新增盘重启后,共享盘盘符变成 /dev/sdc ,新增的本地盘盘符为 /dev/sdb)
3.1.1 新增本地盘并扩至 rhel 卷组
fdisk /dev/sdb
pvcreate /dev/sdb1
vgextend rhel /dev/sdb1
3.1.2 迁移PE数据
pvmove -n root /dev/sdc1 /dev/sdb1
3.1.3 从卷组移除共享盘
vgreduce rhel /dev/sdc1
pvremove /dev/sdc1
3.2 B节点更改卷组名称
方法特点:不涉及数据迁移操作,风险低,但需要重启,需提前计划好停机窗口,并且重启过程中可能关闭失败,需要在虚拟机或物理机控制台强制重启。
3.2.1 更改卷组名称
使用 vgdisplay 查询同步 /dev/sdb1 关联的 rhel 卷组的 vg_uuid,然后使用 vgrename 更改名称。
因为存在两个同名的 rhel ,所以需要使用唯一的 vg_uuid 来识别。
3.2.2 更改启动配置
重新生成启动配置文件至 /boot 目录,可能会失败,此时需要手动更改配置文件。
对于 rhel6 ,启动配置文件路径为 /boot/grub.conf
对于 rhel7 ,启动配置文件路径为 /boot/grub2/grub.cfg
参考:https://access.redhat.com/solutions/1573673
3.2.3 重启
重启过程中可能存在关闭失败的问题,需要强制重启。
重启完成后,不会再出现前面进入 dracut 命令行窗口的紧急模式,卷组名称也已修改。