|
LVM Mirroring - Mirror From Existing Volume |
|
|
|
|
Written by Tom Hirt
|
|
Tuesday, 19 May 2009 10:48 |
|
Page 3 of 3
Mirror From Existing Volume
We are now going to look at how to create a mirror from an existing logical volume (LV.) For this portion of the KB, we will assume you have an LV in use on your system and would like it mirrored.
Note: If you do not have any LV's on your system and need help creating your first LV, see our LVM Configuration KB.
In the following example, we will convert the logical volume DataLV from a linear to mirrored LV. Lets begin!
- Review the output of pvs, vgs and lvs so we know the layout of DataLV and confirm the requirements for the mirror
[root@Linux01 ~]# lvs -a -o +devices
|
| LV |
VG |
Attr |
LSize |
Origin |
Snap% |
Move |
Log |
Copy% |
Convert |
Devices |
| DataLV |
TCPDumpVolGRP |
-wi-ao |
2.5G |
|
|
|
|
|
|
/dev/sdb1(0) |
| LogVol00 |
VolGroup00 |
-wi-ao |
1.00G |
|
|
|
|
|
|
/dev/sda2(126) |
| LogVol01 |
VolGroup00 |
-wi-ao |
1.94G |
|
|
|
|
|
|
/dev/sda2(254) |
| LogVol02 |
VolGroup00 |
-wi-ao |
1.00G |
|
|
|
|
|
|
/dev/sda2(158) |
| LogVol03 |
VolGroup00 |
-wi-ao |
2.00G |
|
|
|
|
|
|
/dev/sda2(190) |
| LogVol04 |
VolGroup00 |
-wi-ao |
3.94G |
|
|
|
|
|
|
/dev/sda2(0) |
| [root@Linux01 ~]# |
|
Note: You will notice that DataLV is 2.5GB in size and resides on /dev/sdb1.
| [root@Linux01 ~]# pvs |
| PV |
VG |
Fmt |
Attr |
PSize |
PFree |
/dev/sda2
|
VolGroup00 |
lvm2 |
a- |
9.88G
|
0 |
| /dev/sdb1 |
TCPDumpVolGRP |
lvm2 |
a- |
3.97G
|
1.47G |
/dev/sdc1
|
TCPDumpVolGRP |
lvm2 |
a- |
3.97G |
3.97G |
/dev/sdd1
|
TCPDumpVolGRP |
lvm2 |
a- |
3.97G |
3.97G |
| [root@Linux01 ~]# |
|
Note: pvs confirms our assumptions showing that some of sdb1 is consumed by DataLV. We are also able to confirm we have the three required PV's necessary for the mirror.
| [root@Linux01 ~]# vgs |
| VG |
#PV |
#LV |
#SN |
Attr |
VSize |
VFree |
| TCPDumpVolGRP |
3 |
1 |
0 |
wz--n- |
11.91G |
9.41G |
| VolGroup00 |
1 |
5 |
0 |
wz--n- |
9.88G |
0 |
| [root@Linux01 ~]# |
|
Note: A free space check on our volume group shows we have enough free space for the 2.5GB mirror required for DataLV
- Convert the logical volume to a mirror
[root@Linux01 Data]# lvconvert -m1 TCPDumpVolGRP/DataLV TCPDumpVolGRP/DataLV: Converted: 12.5% TCPDumpVolGRP/DataLV: Converted: 26.2% TCPDumpVolGRP/DataLV: Converted: 40.0% TCPDumpVolGRP/DataLV: Converted: 53.8% TCPDumpVolGRP/DataLV: Converted: 68.8% TCPDumpVolGRP/DataLV: Converted: 82.5% TCPDumpVolGRP/DataLV: Converted: 96.2% TCPDumpVolGRP/DataLV: Converted: 100.0% Logical volume DataLV converted. [root@Linux01 Data]#
|
Note: The lvconvert command can take a considerable amount of time depending on how big a mirror is to be created. Go grab a beer or read some more articles on TCPDump while you wait, but do not break out of the process.
- Confirm the mirror has been created
[root@Linux01 ~]# lvs -a -o +devices
|
| LV |
VG |
Attr |
LSize |
Log |
Copy% |
Devices |
| DataLV |
TCPDumpVolGRP |
mwi-a- |
2.50G |
DataLV_mlog |
100.00 |
DataLV_mimage_0(0), DataLV_mimage_1(0) |
| [DataLV_mimage_0] |
TCPDumpVolGRP |
iwi-ao |
2.50G |
|
|
/dev/sdb1(0) |
| [DataLV_mimage_1] |
TCPDumpVolGRP |
iwi-ao |
2.50G |
|
|
/dev/sdc1(0) |
| [DataLV_mlog] |
TCPDumpVolGRP |
lwi-ao |
32.00M |
|
|
/dev/sdd1(0) |
| LogVol00 |
VolGroup00 |
-wi-ao |
1.00G |
|
|
/dev/sda2(126) |
| LogVol01 |
VolGroup00 |
-wi-ao |
1.94G |
|
|
/dev/sda2(254) |
| LogVol02 |
VolGroup00 |
-wi-ao |
1.00G |
|
|
/dev/sda2(158) |
| LogVol03 |
VolGroup00 |
-wi-ao |
2.00G |
|
|
/dev/sda2(190) |
| LogVol04 |
VolGroup00 |
-wi-ao |
3.94G |
|
|
/dev/sda2(0) |
| [root@Linux01 ~]# |
|
Note: Some columns were removed from the above output. You will notice DataLV uses /dev/sdb1 and /dev/sdc1. You will also notice the mirror logs for DumpMirror are held on /dev/sdd1
Note: For additional details on the Attr column (LVM display attributes) of the lvs, vgs, and pvs commands, please see our LVM Attributes KB.
Nice work, your logical volume is now fault tolerant!
Add this page to your favorite website
|
|
Last Updated on Tuesday, 02 June 2009 07:57 |