Converting thin stripe volume to linear

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I've got a LVM thin stripe volume across 2 drives that I'm trying to migrate to a new larger single drive (getting rid of the old drives). Following various information on the subject, it seems the procedure here is to first convert from stripe to mirror, and then from mirror to linear. While attempting this, I seem to have hit an issue on the second part of that process, and am not having much luck resolving it.

So to start, the drives at play are sda (a new larger drive), sdb (one of the older drives being removed), & sdc (the other drive being removed). The VG name is "ssd".
This is what the initial layout looked like:

# lvs -o+lv_layout,stripes -a
  LV                                     VG   Attr       LSize   Pool Origin                        Data%  Meta%  Move Log Cpy%Sync Convert Layout      #Str
  [lvol0_pmspare]                        ssd  ewi-a----- 236.00m                                                                            linear         1
  thin                                   ssd  twi-aotz-- 930.59g                                    92.40  98.76                            thin,pool      1
  [thin_tdata]                           ssd  Twi-ao---- 930.59g                                                                            striped        2
  [thin_tmeta]                           ssd  ewi-ao---- 236.00m                                                                            linear         1
(plus some other LVs which are using the thin pool volume that I've omitted)

I initiated the mirror with:
# lvconvert -m 1 ssd/thin_tdata
  Replaced LV type raid1 with possible type raid5_n.
  Repeat this command to convert to raid1 after an interim conversion has finished.
Are you sure you want to convert striped LV ssd/thin_tdata to raid5_n type? [y/n]: y
  Logical volume ssd/thin_tdata successfully converted.

And this is where I'm stuck. If I follow the instructions there and repeat the command, I get a nasty warning:
# lvconvert -m 1 ssd/thin_tdata

  Using default stripesize 64.00 KiB.
  Converting raid5_n LV ssd/thin_tdata to 2 stripes first.
  WARNING: Removing stripes from active and open logical volume ssd/thin_tdata will shrink it from 930.59 GiB to <465.30 GiB!
  THIS MAY DESTROY (PARTS OF) YOUR DATA!
  Interrupt the conversion and run "lvresize -y -l476464 ssd/thin_tdata" to keep the current size if not done already!
  If that leaves the logical volume larger than 476464 extents due to stripe rounding,
  you may want to grow the content afterwards (filesystem etc.)
  WARNING: to remove freed stripes after the conversion has finished, you have to run "lvconvert --stripes 1 ssd/thin_tdata"
  Can't remove stripes without --force option.
  Reshape request failed on LV ssd/thin_tdata.

If I go with other information I've found online, and skip to `-m 0` here instead of repeating the `-m 1` command, I get:
# lvconvert -m 0 ssd/thin_tdata
  Using default stripesize 64.00 KiB.
  No change in RAID LV ssd/thin_tdata layout, freeing reshape space.
  LV ssd/thin_tdata does not have reshape space allocated.
  Reshape request failed on LV ssd/thin_tdata.

This is what the layout currently looks like:
# lvs -o+lv_layout,stripes,devices -a 
  LV                                     VG   Attr       LSize    Pool Origin                        Data%  Meta%  Move Log Cpy%Sync Convert Layout      #Str Devices                                                             
  [lvol0_pmspare]                        ssd  ewi-a-----  236.00m                                                                            linear         1 /dev/sda(0)                                                         
  thin                                   ssd  twi-aotz--  930.59g                                    92.40  98.76                            thin,pool      1 thin_tdata(0)                                                       
  [thin_tdata]                           ssd  rwi-aor---  930.59g                                                           100.00           raid,raid5     3 thin_tdata_rimage_0(0),thin_tdata_rimage_1(0),thin_tdata_rimage_2(0)
  [thin_tdata_rimage_0]                  ssd  iwi-aor--- <465.30g                                                                            linear         1 /dev/sda(118)                                                       
  [thin_tdata_rimage_1]                  ssd  iwi-aor--- <465.30g                                                                            linear         1 /dev/sdb(0)                                                         
  [thin_tdata_rimage_2]                  ssd  iwi-aor--- <465.30g                                                                            linear         1 /dev/sdc(1)                                                         
  [thin_tdata_rmeta_0]                   ssd  ewi-aor---    4.00m                                                                            linear         1 /dev/sda(119234)                                                    
  [thin_tdata_rmeta_1]                   ssd  ewi-aor---    4.00m                                                                            linear         1 /dev/sdb(119116)                                                    
  [thin_tdata_rmeta_2]                   ssd  ewi-aor---    4.00m                                                                            linear         1 /dev/sdc(0)                                                         
  [thin_tmeta]                           ssd  ewi-ao----  236.00m                                                                            linear         1 /dev/sda(59)                                                        

This is with lvm2-2.03.23-1 on Fedora 40

Any idea how I get past this point? I could just build a completely new logical volume and manually copy the data, but there's around 40 logical volumes on this thin pool, many of which are snapshots, so would be much easier to just convert it if possible.

--
Patrick





[Index of Archives]     [Gluster Users]     [Kernel Development]     [Linux Clusters]     [Device Mapper]     [Security]     [Bugtraq]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]

  Powered by Linux