The lvconvert command fails to create LVM mirror
This document (7023879) is provided subject to the disclaimer at the end of this document.
Environment
SUSE Linux Enterprise Server 12 Service Pack 4 (SLES 12 SP4)
SUSE Linux Enterprise Server 12 Service Pack 3 (SLES 12 SP3)
Situation
sudo lvconvert -m1 /dev/vg/vol1 /dev/vdb
Insufficient free space: 1 extents needed, but only 0 available
sudo lvconvert -m1 --type mirror /dev/vg/vol1 /dev/vdb
Insufficient suitable allocatable extents for logical volume : 2559 more required
Unable to allocate extents for mirror(s).
The physical volume (PV) and volume group (VG) configuration follows:
sudo pvdisplay
--- Physical volume ---
PV Name /dev/vda
VG Name vg
PV Size 10.00 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 2559
Free PE 0 <====================================
Allocated PE 2559
PV UUID AOjXRz-FsVF-Mhw2-LHcW-Z2l9-C2U2-jazlAO
--- Physical volume ---
PV Name /dev/vdb
VG Name vg
PV Size 10.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2559
Free PE 2559
Allocated PE 0
PV UUID 7bjW1S-JVW1-8sUc-OISW-NIGq-sbPq-nT6aRB
sudo vgdisplay
--- Volume group ---
VG Name vg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 19.99 GiB
PE Size 4.00 MiB
Total PE 5118
Alloc PE / Size 2559 / 10.00 GiB
Free PE / Size 2559 / 10.00 GiB
VG UUID 2ZwK4Z-uhc7-U0tW-zxZ1-uMgs-0Utb-7Kjfkd
sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
vol1 vg -wi-a----- 10.00g
Resolution
Option 1 - Free up at least one extent on the originating PV (/dev/vda in this case)
Option 2 - Use the legacy mirror segment type
Option 3 - Backup, remove, create a new mirror and restore
Each option is explored below.
NOTE: Before proceeding, please backup all your data.
Option 1 - Free up at least one extent on the originating PV (/dev/vda in this case)
Advantages: Continues to use the new raid1 segment type
Disadvantages: Time consuming. Some filesystems cannot be reduced.
1. Shrink the filesystem
sudo grep vol1 /proc/mounts
/dev/mapper/vg-vol1 /mnt ext4 rw,relatime,data=ordered 0 0
sudo df /mnt
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg-vol1 10186040 23028 9622548 1% /mnt
sudo umount /dev/vg/vol1
sudo e2fsck -f /dev/vg/vol1
e2fsck 1.42.11 (09-Jul-2014)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg/vol1: 11/655360 files (0.0% non-contiguous), 79663/2620416 blocks
sudo resize2fs -M /dev/vg/vol1
resize2fs 1.42.11 (09-Jul-2014)
Resizing the filesystem on /dev/vg/vol1 to 46096 (4k) blocks.
The filesystem on /dev/vg/vol1 is now 46096 blocks long.
sudo mount /dev/vg/vol1 /mnt
sudo df /mnt
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg-vol1 49184 5136 31148 15% /mnt
2. Reduce the LV size by 1 extent, so it can be used for the mirror log
sudo lvreduce -l-1 /dev/vg/vol1
WARNING: Reducing active and open logical volume to 9.99 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vol1? [y/n]: n
Logical volume vol1 NOT reduced
sudo umount /dev/vg/vol1
sudo vgchange -an vg
0 logical volume(s) in volume group "vg" now active
sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
vol1 vg -wi------- 10.00g
sudo lvreduce -l-1 /dev/vg/vol1
Size of logical volume vg/vol1 changed from 10.00 GiB (2559 extents) to 9.99 GiB (2558 extents).
Logical volume vol1 successfully resized
NOTE: There is now one "Free PE" available on /dev/vda.
sudo pvdisplay
--- Physical volume ---
PV Name /dev/vda
VG Name vg
PV Size 10.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2559
Free PE 1 <===================================
Allocated PE 2558
PV UUID AOjXRz-FsVF-Mhw2-LHcW-Z2l9-C2U2-jazlAO
--- Physical volume ---
PV Name /dev/vdb
VG Name vg
PV Size 10.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2559
Free PE 2559
Allocated PE 0
PV UUID 7bjW1S-JVW1-8sUc-OISW-NIGq-sbPq-nT6aRB
3. Convert the LV to a mirrored logical volume
sudo lvconvert -m1 /dev/vg/vol1 /dev/vdb
sudo vgchange -ay vg
1 logical volume(s) in volume group "vg" now active
sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
vol1 vg rwi-a-r--- 9.99g 100.00
4. Resize the filesystem to use all available /dev/vg/vol1 device space
sudo e2fsck -f /dev/vg/vol1
e2fsck 1.42.11 (09-Jul-2014)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg/vol1: 11/16384 files (0.0% non-contiguous), 35084/46096 blocks
sudo resize2fs /dev/vg/vol1
resize2fs 1.42.11 (09-Jul-2014)
Resizing the filesystem on /dev/vg/vol1 to 2619392 (4k) blocks.
The filesystem on /dev/vg/vol1 is now 2619392 blocks long.
sudo mount /dev/vg/vol1 /mnt
sudo df /mnt
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg-vol1 10181944 23028 9618836 1% /mnt
Option 2 - Use the legacy mirror segment type
Advantages: You can immediately mirror your existing LV. The mirror segment type allows you to store the mirror log in memory (core), on a third disk or mirrored on both PVs.
Disadvantages: Raid1 is the default mirror segment type for LVM. You are no longer using the default.
Since the LV uses all the VG space, there is no room on a VG disk for the mirror log. In this example, you can use system memory for the mirror log using the option --corelog, which is the same as --mirrorlog core.
1. Create the mirror using system memory for the mirror log
sudo lvconvert -m1 --type mirror --corelog /dev/vg/vol1 /dev/vdbIf you want a persistent mirror log, you need to add an additional device to the VG to store the mirror log. In this case, /dev/vdc has been added for the mirror log.
vg/vol1: Converted: 25.0%
vg/vol1: Converted: 50.0%
vg/vol1: Converted: 75.0%
vg/vol1: Converted: 100.0%
sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
vol1 vg mwi-a-m--- 10.00g 100.00
1. Add a third PV device for the persistent mirror log
sudo pvs2. Create the mirror using the third PV
PV VG Fmt Attr PSize PFree
/dev/vda vg lvm2 a-- 10.00g 0
/dev/vdb vg lvm2 a-- 10.00g 10.00g
/dev/vdc vg lvm2 a-- 1020.00m 1020.00m
sudo vgs
VG #PV #LV #SN Attr VSize VFree
vg 3 1 0 wz--n- 20.99g 10.99g
sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
vol1 vg -wi-a----- 10.00g
sudo lvconvert -m1 -b --type mirror --mirrorlog disk /dev/vg/vol1 /dev/vdb /dev/vdc
Logical volume vol1 converted.
sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
vol1 vg mwi-a-m--- 10.00g vol1_mlog 100.00
Option 3 - Backup, remove, create a new mirror and restore
Advantages: You can use the default raid1 segment type. You have one extent on each PV that stores the mirror metadata and logs.
Disadvantages: Time consuming
1. Backup /dev/vg/vol1
2. Remove the LV
sudo lvremove /dev/vg/vol13. Create the new mirrored LV that uses all available VG space
Do you really want to remove active logical volume vol1? [y/n]: y
Logical volume "vol1" successfully removed
sudo pvs
PV VG Fmt Attr PSize PFree
/dev/vda vg lvm2 a-- 10.00g 10.00g
/dev/vdb vg lvm2 a-- 10.00g 10.00g
sudo lvcreate -n vol1 -m1 -l+100%FREE vg4. Format /dev/vg/vol1 with the desired filesystem
Logical volume "vol1" created.
sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
vol1 vg rwi-a-r--- 9.99g 100.00
5. Restore backed up files to /dev/vg/vol1
Cause
sudo pvdisplay
--- Physical volume ---
PV Name /dev/vda
VG Name vg
PV Size 10.00 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 2559
Free PE 0 <==================================
Allocated PE 2559
PV UUID AOjXRz-FsVF-Mhw2-LHcW-Z2l9-C2U2-jazlAO
Disclaimer
This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.
- Document ID:7023879
- Creation Date: 14-May-2019
- Modified Date:03-Mar-2020
-
- SUSE Linux Enterprise Server
For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]suse.com