Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-19868

unable to repair thin pool tmeta volume anymore "no compatible roots found"

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Major Major
    • None
    • rhel-9.4
    • None
    • None
    • Moderate
    • sst_logical_storage
    • ssg_filesystems_storage_and_HA
    • 1
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • x86_64
    • None

      This test scenario that corrupts a portion of the _tmeta volume and then repairs it with lvconvert, is now failing in RHEL9.3 and RHEL9.4. This previously passed in RHEL9.2 and earlier releases. Did something change wrt where data is held on this device such that the dd is corrupting differently now?

      # RHEL9.2
       
      kernel-5.14.0-284.40.1.el9_2    BUILT: Wed Nov  1 03:22:35 PM CET 2023
      lvm2-2.03.17-7.el9    BUILT: Thu Feb 16 03:24:54 PM CET 2023
      lvm2-libs-2.03.17-7.el9    BUILT: Thu Feb 16 03:24:54 PM CET 2023
       
      [root@virt-002 ~]# lvcreate --yes  --thinpool POOL -L 1G --profile thin-performance --zero y --poolmetadatasize 4M snapper_thinp
        Thin pool volume with chunk size 64.00 KiB can address at most <15.88 TiB of data.
        Logical volume "POOL" created.
      [root@virt-002 ~]# lvcreate --yes  --virtualsize 1G -T snapper_thinp/POOL -n origin
        Logical volume "origin" created.
       
      # corrupt a portion of the meta volume
      [root@virt-002 ~]# dd if=/dev/urandom of=/dev/mapper/snapper_thinp-POOL_tmeta count=512 seek=4096 bs=1
      512+0 records in
      512+0 records out
      512 bytes copied, 0.00269735 s, 190 kB/s
       
      [root@virt-002 ~]# vgchange -an snapper_thinp
        0 logical volume(s) in volume group "snapper_thinp" now active
      [root@virt-002 ~]# lvconvert --yes --repair snapper_thinp/POOL /dev/sdb
        WARNING: LV snapper_thinp/POOL_meta0 holds a backup of the unrepaired metadata. Use lvremove when no longer required.
        WARNING: New metadata LV snapper_thinp/POOL_tmeta might use different PVs.  Move it with pvmove if required.
      [root@virt-002 ~]# lvs -a -o +devices
        LV              VG            Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices       
        POOL            snapper_thinp twi---tz--   1.00g                                                     POOL_tdata(0)
        POOL_meta0      snapper_thinp -wi-------   4.00m                                                     /dev/sdf(0)   
        [POOL_tdata]    snapper_thinp Twi-------   1.00g                                                     /dev/sda(1)   
        [POOL_tmeta]    snapper_thinp ewi-------   4.00m                                                     /dev/sda(0)   
        [lvol1_pmspare] snapper_thinp ewi-------   4.00m                                                     /dev/sdb(0)   
        origin          snapper_thinp Vwi---tz--   1.00g POOL                                                              
       
       
      # RHEL9.4
       
      kernel-5.14.0-362.8.1.el9_3    BUILT: Tue Oct  3 02:39:10 PM CEST 2023
      lvm2-2.03.23-1.el9    BUILT: Tue Nov 28 02:15:42 PM CET 2023
      lvm2-libs-2.03.23-1.el9    BUILT: Tue Nov 28 02:15:42 PM CET 2023
       
      [root@virt-125 ~]# lvcreate --yes  --thinpool POOL -L 1G --profile thin-performance --zero y --poolmetadatasize 4M snapper_thinp
        Thin pool volume with chunk size 64.00 KiB can address at most <15.88 TiB of data.
        Logical volume "POOL" created.
      [root@virt-125 ~]# lvcreate --yes  --virtualsize 1G -T snapper_thinp/POOL -n origin
        Logical volume "origin" created.
       
      # corrupt a portion of the meta volume
      [root@virt-125 ~]# dd if=/dev/urandom of=/dev/mapper/snapper_thinp-POOL_tmeta count=512 seek=4096 bs=1
      512+0 records in
      512+0 records out
      512 bytes copied, 0.00266924 s, 192 kB/s
       
      [root@virt-125 ~]# vgchange -an snapper_thinp
        0 logical volume(s) in volume group "snapper_thinp" now active
      [root@virt-125 ~]# lvconvert --yes --repair snapper_thinp/POOL /dev/sdb
      no compatible roots found
        Repair of thin metadata volume of thin pool snapper_thinp/POOL failed (status:64). Manual repair required!
      [root@virt-125 ~]# lvs -a -o +devices
        LV              VG            Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices      
        POOL            snapper_thinp twi---tz-- 1.00g                                                     POOL_tdata(0)
        [POOL_tdata]    snapper_thinp Twi------- 1.00g                                                     /dev/sda(1)  
        [POOL_tmeta]    snapper_thinp ewi------- 4.00m                                                     /dev/sdf(0)  
        [lvol0_pmspare] snapper_thinp ewi------- 4.00m                                                     /dev/sda(0)  
        origin          snapper_thinp Vwi---tz-- 1.00g POOL                                                             
      

            mtsai@redhat.com Ming Hung Tsai
            cmarthal@redhat.com Corey Marthaler
            Ming Hung Tsai Ming Hung Tsai
            Cluster QE Cluster QE
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved: