尝试拆分 LVM2 RAID 1 镜像时无法确定同步状态错误

尝试拆分 LVM2 RAID 1 镜像时无法确定同步状态错误

有关上下文,请参阅我的回答: 将逻辑卷从一个卷组移动到另一个卷组

我尝试真正使用这个食谱。请参阅文字记录 https://gist.github.com/anonymous/1611380eafd0c738ef0f8ad09e0f0ab0

看来我对此测试还不够。当尝试将此应用到我的系统时,我收到以下错误

root@orwell:/tmp# lvconvert --type raid1 --mirrors 1 /dev/newdebian/debian_boot /dev/md2
  Logical volume newdebian/debian_boot successfully converted.

root@orwell:/tmp# lvconvert --splitmirrors 1 --name debian_boot_copy /dev/newdebian/debian_boot

  Unable to determine sync status of newdebian/debian_boot.
  Unable to split newdebian/debian_boot while it is not in-sync.

我在网上没有找到任何有关此问题的信息,但我也认为我不太可能是世界上第一个遇到此问题的人。请注意,本例中的两个卷组位于不同的 md RAID 设备上。这是当前布局的样子。

然后我把debianVG合并到newdebianVG里了。

这是一个尴尬的处境 -debian在这个问题得到解决之前,我可能无法使用 VG 上的常规安装。

root@orwell:/tmp# lvs -a -o name,copy_percent,devices newdebian
  LV                     Cpy%Sync Devices                                        
  acl                             /dev/md1(80472)                                
  boot                            /dev/md2(35761)                                
  data                            /dev/md1(95835)                                
  debian_boot                     debian_boot_rimage_0(0),debian_boot_rimage_1(0)
  [debian_boot_rimage_0]          /dev/md1(0)                                    
  [debian_boot_rimage_1]          /dev/md2(36000)                                
  [debian_boot_rmeta_0]           /dev/md1(117666)                               
  [debian_boot_rmeta_1]           /dev/md2(35999)                                
  debian_home                     /dev/md1(12158)                                
  debian_root                     /dev/md1(238)                                  
  home                            /dev/md2(11920)                                
  postgres                        /dev/md1(105563)                               
  root                            /dev/md2(0)                                    
  swap                            /dev/md1(35999)                                
  swap                            /dev/md1(113243)                               
  vboxshare                       /dev/md1(117410)                               
  video                           /dev/md1(42072)                                
  video                           /dev/md1(83035)                                
  windows                         /dev/md1(36952)                                
  windows                         /dev/md1(80475)                                
  windows                         /dev/md1(114338)                               
  windows10                       /dev/md1(100955)                               
  windows10                       /dev/md1(115618)  

目前,我已经转换回线性

 root@orwell:/tmp# lvconvert --type linear /dev/newdebian/debian_boot
  Unable to determine sync status of newdebian/debian_boot.
  Logical volume newdebian/debian_boot successfully converted.

但当然,我想知道问题出在哪里。

答案1

以下看起来 LV 处于非活动状态:

root@orwell:/tmp# lvconvert --splitmirrors 1 --name debian_boot_copy /dev/newdebian/debian_boot

  Unable to determine sync status of newdebian/debian_boot.
  Unable to split newdebian/debian_boot while it is not in-sync.

我检查了 2.02.172,这正是我在 LV 不活动时得到的结果。

仅当 RAID 同步时才允许分割支路。当设备不活动时,LVM 无法确定设备是否同步。

首先,在尝试劈腿之前,您必须激活该设备:

lvchange -ay newdebian/debian_boot

然后等待同步 - LVM 中没有轮询命令来执行此操作,您必须等待一段时间并自行检查,或者编写一个脚本。

注意:使用dmsetup status输出可能更安全,因为对于 LVM 版本 2.02.171 和较旧的版本,可能会由于舍入而报告 100%,而设备未完全同步。

只有这样才能成功运行上面的lvconvert --splitmirrors操作。

相关内容