On Thu, Mar 13, 2025, at 20:05, Zdenek Kabelac wrote: > Dne 14. 03. 25 v 0:14 Patrick Hemmer napsal(a): >> On Thu, Mar 13, 2025, at 14:54, Zdenek Kabelac wrote: >>> Dne 13. 03. 25 v 1:38 Patrick Hemmer napsal(a): >>>> 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. >>> >>> Hi >>> >>> Likely you can convert your nearly full thin-pool with a single thin volume to >>> a linear LV by just taking 'dd' copy of if=/dev/thin of=/dev/linear - using >>> direct io option (and this can be actually faster then raid mirroring). >> >> I assume I need to copy both the tdata and tmeta volumes to their new linear counterparts. Did this, but now I assume I need to do something to get lvm to rescan the new linear thin volume to pick up the logical volumes that are now on it. And also stop LVM from picking them up off the old thin volume. I deactivated the old thin volume, but LVM is still recognizing up all the logical volumes inside it. I could completely delete the old thin volume, but I'd prefer to get the new volume online before doing that. >> > > Hi > > Thin volume is using thin pool that is using data & metadata. > > Thus thin-pool can remain active even when thin LV is already deactivated, > depends on the use case - and you can obviously deactivate also your thin-pool. > > In your case you need to 'forget' copying thin_tdata or thin_tmeta or even > thin-pool ssd/thin itself. > Your 'lvs -a' you've shown unfortunately lists *ONLY* thin-pool (ssd/thin) > but not a single thin LV (with letter 'V' in attributes and using 'ssd/thin' > as Poll volume) > Yes, I mentioned a couple times in the first email that there are many volumes which sit on top of the thin volume, but which I omitted. And that I did not want to copy them manually, because there's a lot of them, and many of them are snapshots. So to recreate the snapshots, I'd have to copy the oldest snapshot to the new thin volume, snapshot it, copy the next oldest, etc down the line. That would be a very time consuming and painful process. Hence why it's not under consideration. Here's the complete output as it stands right now: # lvs -o+lv_layout,stripes,devices -a LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Layout #Str Devices crypt nvme -wi-a----- 270.00g linear 1 /dev/nvme0n1p2(90571) crypt-old nvme -wi-a----- 200.00g striped 2 /dev/nvme0n1p2(36096),/dev/nvme1n1p2(36096) crypt-old nvme -wi-a----- 200.00g striped 2 /dev/nvme0n1p2(69632),/dev/nvme1n1p2(69376) crypt-old nvme -wi-a----- 200.00g striped 2 /dev/nvme0n1p2(72832),/dev/nvme1n1p2(72576) crypt-old nvme -wi-a----- 200.00g striped 2 /dev/nvme0n1p2(77312),/dev/nvme1n1p2(77056) docker nvme -wi-ao---- 15.00g striped 2 /dev/nvme0n1p2(55808),/dev/nvme1n1p2(55296) home-phemmer-luks nvme -wi-ao---- 350.00g striped 2 /dev/nvme0n1p2(4096),/dev/nvme1n1p2(4096) home-phemmer-luks nvme -wi-ao---- 350.00g striped 2 /dev/nvme0n1p2(57728),/dev/nvme1n1p2(57472) home-phemmer-luks nvme -wi-ao---- 350.00g striped 2 /dev/nvme0n1p2(62592),/dev/nvme1n1p2(62336) home-phemmer-luks nvme -wi-ao---- 350.00g striped 2 /dev/nvme0n1p2(68352),/dev/nvme1n1p2(68096) home-phemmer-luks nvme -wi-ao---- 350.00g striped 2 /dev/nvme0n1p2(74752),/dev/nvme1n1p2(74496) home-phemmer-luks nvme -wi-ao---- 350.00g striped 2 /dev/nvme0n1p2(159691),/dev/nvme1n1p2(84096) home-phemmer-luks nvme -wi-ao---- 350.00g striped 2 /dev/nvme0n1p2(166091),/dev/nvme1n1p2(90496) root nvme -wi-ao---- 70.00g striped 2 /dev/nvme0n1p2(0),/dev/nvme1n1p2(0) root nvme -wi-ao---- 70.00g striped 2 /dev/nvme0n1p2(62208),/dev/nvme1n1p2(61952) root nvme -wi-ao---- 70.00g striped 2 /dev/nvme0n1p2(72192),/dev/nvme1n1p2(71936) root nvme -wi-ao---- 70.00g striped 2 /dev/nvme0n1p2(74112),/dev/nvme1n1p2(73856) root nvme -wi-ao---- 70.00g striped 2 /dev/nvme0n1p2(81152),/dev/nvme1n1p2(80896) stmp nvme -wi-ao---- 110.00g striped 2 /dev/nvme0n1p2(54528),/dev/nvme1n1p2(54016) stmp nvme -wi-ao---- 110.00g striped 2 /dev/nvme0n1p2(64512),/dev/nvme1n1p2(64256) stmp nvme -wi-ao---- 110.00g striped 2 /dev/nvme0n1p2(160971),/dev/nvme1n1p2(85376) stmp nvme -wi-ao---- 110.00g striped 2 /dev/nvme0n1p2(167371),/dev/nvme1n1p2(91776) var-log nvme -wi-ao---- 2.00g striped 2 /dev/nvme0n1p2(54016),/dev/nvme1n1p2(57216) lvbkup-nvme-crypt ssd Vwi---tz-- 270.00g thin thin,sparse 0 lvbkup-nvme-crypt-20250226 ssd Vwi---tz-k 270.00g thin lvbkup-nvme-crypt thin,sparse 0 lvbkup-nvme-crypt-20250227 ssd Vwi---tz-k 270.00g thin lvbkup-nvme-crypt thin,sparse 0 lvbkup-nvme-crypt-20250228 ssd Vwi---tz-k 270.00g thin lvbkup-nvme-crypt thin,sparse 0 lvbkup-nvme-crypt-20250301 ssd Vwi---tz-k 270.00g thin lvbkup-nvme-crypt thin,sparse 0 lvbkup-nvme-crypt-20250302 ssd Vwi---tz-k 270.00g thin lvbkup-nvme-crypt thin,sparse 0 lvbkup-nvme-crypt-20250303 ssd Vwi---tz-k 270.00g thin lvbkup-nvme-crypt thin,sparse 0 lvbkup-nvme-crypt-20250304 ssd Vwi---tz-k 270.00g thin lvbkup-nvme-crypt thin,sparse 0 lvbkup-nvme-crypt-20250305 ssd Vwi---tz-k 270.00g thin lvbkup-nvme-crypt thin,sparse 0 lvbkup-nvme-crypt-20250306 ssd Vwi---tz-k 270.00g thin lvbkup-nvme-crypt thin,sparse 0 lvbkup-nvme-crypt-20250307 ssd Vwi---tz-k 270.00g thin lvbkup-nvme-crypt thin,sparse 0 lvbkup-nvme-crypt-20250308 ssd Vwi---tz-k 270.00g thin lvbkup-nvme-crypt thin,sparse 0 lvbkup-nvme-crypt-20250309 ssd Vwi---tz-k 270.00g thin lvbkup-nvme-crypt thin,sparse 0 lvbkup-nvme-crypt-20250310 ssd Vwi---tz-k 270.00g thin lvbkup-nvme-crypt thin,sparse 0 lvbkup-nvme-crypt-20250311 ssd Vwi---tz-k 270.00g thin lvbkup-nvme-crypt thin,sparse 0 lvbkup-nvme-crypt-20250312 ssd Vwi---tz-k 270.00g thin lvbkup-nvme-crypt thin,sparse 0 lvbkup-nvme-crypt-20250313 ssd Vwi---tz-k 270.00g thin lvbkup-nvme-crypt thin,sparse 0 lvbkup-nvme-home-phemmer-luks ssd Vwi---tz-- 350.00g thin thin,sparse 0 lvbkup-nvme-home-phemmer-luks-20250226 ssd Vwi---tz-k 330.00g thin lvbkup-nvme-home-phemmer-luks thin,sparse 0 lvbkup-nvme-home-phemmer-luks-20250227 ssd Vwi---tz-k 330.00g thin lvbkup-nvme-home-phemmer-luks thin,sparse 0 lvbkup-nvme-home-phemmer-luks-20250228 ssd Vwi---tz-k 330.00g thin lvbkup-nvme-home-phemmer-luks thin,sparse 0 lvbkup-nvme-home-phemmer-luks-20250301 ssd Vwi---tz-k 330.00g thin lvbkup-nvme-home-phemmer-luks thin,sparse 0 lvbkup-nvme-home-phemmer-luks-20250302 ssd Vwi---tz-k 330.00g thin lvbkup-nvme-home-phemmer-luks thin,sparse 0 lvbkup-nvme-home-phemmer-luks-20250303 ssd Vwi---tz-k 330.00g thin lvbkup-nvme-home-phemmer-luks thin,sparse 0 lvbkup-nvme-home-phemmer-luks-20250304 ssd Vwi---tz-k 330.00g thin lvbkup-nvme-home-phemmer-luks thin,sparse 0 lvbkup-nvme-home-phemmer-luks-20250305 ssd Vwi---tz-k 330.00g thin lvbkup-nvme-home-phemmer-luks thin,sparse 0 lvbkup-nvme-home-phemmer-luks-20250306 ssd Vwi---tz-k 340.00g thin lvbkup-nvme-home-phemmer-luks thin,sparse 0 lvbkup-nvme-home-phemmer-luks-20250307 ssd Vwi---tz-k 340.00g thin lvbkup-nvme-home-phemmer-luks thin,sparse 0 lvbkup-nvme-home-phemmer-luks-20250308 ssd Vwi---tz-k 340.00g thin lvbkup-nvme-home-phemmer-luks thin,sparse 0 lvbkup-nvme-home-phemmer-luks-20250309 ssd Vwi---tz-k 340.00g thin lvbkup-nvme-home-phemmer-luks thin,sparse 0 lvbkup-nvme-home-phemmer-luks-20250310 ssd Vwi---tz-k 340.00g thin lvbkup-nvme-home-phemmer-luks thin,sparse 0 lvbkup-nvme-home-phemmer-luks-20250311 ssd Vwi---tz-k 340.00g thin lvbkup-nvme-home-phemmer-luks thin,sparse 0 lvbkup-nvme-home-phemmer-luks-20250312 ssd Vwi---tz-k 340.00g thin lvbkup-nvme-home-phemmer-luks thin,sparse 0 lvbkup-nvme-home-phemmer-luks-20250313 ssd Vwi---tz-k 340.00g thin lvbkup-nvme-home-phemmer-luks thin,sparse 0 lvbkup-nvme-root ssd Vwi---tz-- 70.00g thin thin,sparse 0 lvbkup-nvme-root-20250227 ssd Vwi---tz-k 70.00g thin lvbkup-nvme-root thin,sparse 0 lvbkup-nvme-root-20250228 ssd Vwi---tz-k 70.00g thin lvbkup-nvme-root thin,sparse 0 lvbkup-nvme-root-20250301 ssd Vwi---tz-k 70.00g thin lvbkup-nvme-root thin,sparse 0 lvbkup-nvme-root-20250302 ssd Vwi---tz-k 70.00g thin lvbkup-nvme-root thin,sparse 0 lvbkup-nvme-root-20250303 ssd Vwi---tz-k 70.00g thin lvbkup-nvme-root thin,sparse 0 lvbkup-nvme-root-20250304 ssd Vwi---tz-k 70.00g thin lvbkup-nvme-root thin,sparse 0 lvbkup-nvme-root-20250305 ssd Vwi---tz-k 70.00g thin lvbkup-nvme-root thin,sparse 0 lvbkup-nvme-root-20250306 ssd Vwi---tz-k 70.00g thin lvbkup-nvme-root thin,sparse 0 lvbkup-nvme-root-20250307 ssd Vwi---tz-k 70.00g thin lvbkup-nvme-root thin,sparse 0 lvbkup-nvme-root-20250308 ssd Vwi---tz-k 70.00g thin lvbkup-nvme-root thin,sparse 0 lvbkup-nvme-root-20250309 ssd Vwi---tz-k 70.00g thin lvbkup-nvme-root thin,sparse 0 lvbkup-nvme-root-20250310 ssd Vwi---tz-k 70.00g thin lvbkup-nvme-root thin,sparse 0 lvbkup-nvme-root-20250311 ssd Vwi---tz-k 70.00g thin lvbkup-nvme-root thin,sparse 0 lvbkup-nvme-root-20250312 ssd Vwi---tz-k 70.00g thin lvbkup-nvme-root thin,sparse 0 lvbkup-nvme-root-20250313 ssd Vwi---tz-k 70.00g thin lvbkup-nvme-root thin,sparse 0 [lvol0_pmspare] ssd ewi-a----- 236.00m linear 1 /dev/sda(0) thin ssd twi---tz-- 930.59g thin,pool 1 thin_tdata(0) thin2 ssd twi-a-tzF- 930.59g thin,pool 1 thin2_tdata(0) [thin2_tdata] ssd Twi-ao---- 930.59g linear 1 /dev/sda(119235) [thin2_tmeta] ssd ewi-ao---- 236.00m linear 1 /dev/sdb(119117) [thin_tdata] ssd rwi---r--- 930.59g raid,raid5 3 thin_tdata_rimage_0(0),thin_tdata_rimage_1(0),thin_tdata_rimage_2(0) [thin_tdata_rimage_0] ssd Iwi---r--- <465.30g linear 1 /dev/sda(118) [thin_tdata_rimage_1] ssd Iwi---r--- <465.30g linear 1 /dev/sdb(0) [thin_tdata_rimage_2] ssd Iwi---r--- <465.30g linear 1 /dev/sdc(1) [thin_tdata_rmeta_0] ssd ewi---r--- 4.00m linear 1 /dev/sda(119234) [thin_tdata_rmeta_1] ssd ewi---r--- 4.00m linear 1 /dev/sdb(119116) [thin_tdata_rmeta_2] ssd ewi---r--- 4.00m linear 1 /dev/sdc(0) [thin_tmeta] ssd ewi------- 236.00m linear 1 /dev/sda(59) > Once you know which thinLV you want to copy - simply use 'dd' to copy data > from a thinLV to your new storage. > > dd if=/dev/ssd/your_thin_lv of=/dev/new_block_dev bs=1M \ > iflag=direct oflag=direct status=progress... > > Your new blockdev/LV must have at least the size of your thin_lv!!! > (thin-pool has 930.59g but thinLV could be possibly much bigger - so be sure > you know what you are copying and where! > > I'd highly recommend to check at least 'man lvmthin' before you will try to > follow any googled advice. > > Regards > > Zdenek -- Patrick