Tips & Tricks for Using LVM
Effectively / Intro to VxVM
Renay Gaye
Hewlett-Packard
[email protected]LVM Concepts
LVM Concepts-Physical Volume
LVM Managed Disk
Each PV is assigned a unique PVID
pvid
pvcreate /dev/rdsk/cntndn
LVM Concepts-Volume Group
One or more physical volumes
pool of physical extents
mkdir /dev/vgname
pvra
vgra
extents
pvid
vgid
pvid
vgid
mknod /dev/vgname/group c 64
0xnn0000
vgcreate vgname /dev/dsk/cntndn ...
Volume Group Map
vgid
pvid
vgid
pvid
map
map
pv 0
pv 1
pv 2
extent size (-s n)
* max extents/pv (-e n)
______________________
max. useable space/disk
~
~
pv 15
pe pe
2 3
~
~
pe pe
0 1
pe
1016
LVM Device Files
/dev
dsk
rdsk
vg01
c0t5d0
c0t5d0
c0t6d0
c0t6d0
group
lvol1
V G device
file
Block LV
device files
lvol2
Block PV
device files
Raw PV
device files
rlvol1
rlvol2
Raw LV
device files
/etc/lvmtab
Non-ascii file
Records volume
group/physical volume
associations
Used by many LVM
commands for sanity
checking
example:
/dev/vg00 (vgid)
/dev/dsk/c0t6d0 (vgid,pvid)
/dev/vg01 (vgid)
/dev/dsk/c1t2d1 (vgid,pvid)
/dev/dsk/c1t2d2 (vgid,pvid)
Volume Group Activation
Done automatically when vg is created
automatically at boot (/etc/lvmrc)
required in order to access any lvols
00
01
pvid
vgid
vgra
pvid
vgid
vgra
vgchange -a y vgname
vgchange -a r vgname
Memory
LVM Concepts-Quorum
More than 1/2 disks in a vg
required to activate the
volume group
Can override:
vg01
vgchange -a y -q n vg01
pvid
vgid
pvid
vgid
Booting without quorum:
ISL> hpux -lq
LVM Concepts-Logical Volume
vgid
pvid
map
vgid
pvid
map
pv 0 01
pv 1
pv 2
lvcreate -L n vgname
lvcreate -L n -C y vgname
lvcreate -l n vgname
~
~
pv 15
lvcreate -L n -n name vgname
01
pe pe pe
2 3 4
01
01
01
~
~
pe pe
0 1
pe
1016
Placing logical volumes
vgid
pvid
map
pv 0 01
01
01
01
01
pv 1 02
02
02
02
02
pv 2
lvcreate -n datalv vgdata
lvextend -L 500
/dev/vgdata/datalv
/dev/dsk/c4t2d0
~
~
pv 15
~
~
map
vgid
pvid
pe pe pe
2 3 4
~
~
pe pe
0 1
02
pe
1016
Multi-pathing solutions
Multipathing Solutions with LVM
LVM pvlinks
active/passive
no additional software required
Auto path
active/active, load balancing
supported for XP and VA arrays
additional cost product
Powerpath
active/active, load balancing
supported for EMC arrays
additional cost product
PV links
pvcreate /dev/rdsk/c5t5d0
pvcreate /dev/rdsk/c5t5d1
pvid
vgid
pvid
vgid
mkdir /dev/vg01
mknod /dev/vg01/group c 64
0x010000
vgcreate vg01
/dev/dsk/c5t5d0 /dev/dsk/c7t5d0
/dev/dsk/c7t5d1 /dev/dsk/c5t5d1
c5t5d0 (p)
c7t5d0 (a)
c7t5d1 (p)
c5t5d1 (a)
PV links-switching the order
Temporary Change
pvchange -s /dev/dsk/c7t5d0
pvid
vgid
pvid
vgid
Permanent Change
vgreduce vg01 /dev/dsk/c5t5d0
vgextend vg01 /dev/dsk/c5t5d0
c5t5d0 (p) (a)
c7t5d0 (a) (p)
c7t5d1 (p)
c5t5d1 (a)
Auto Path-Dynamic load
balancing
Load balancing
functionality
Supports up to 8 paths from a server
to an end device
Provides dynamic load balancing
across all paths to an end device
Choose from 4 load balancing
policies, including no load balancing
Supports the XP and VA disk arrays
Load balancing supported in
clustered environments
Server
Auto Path
HBA HBA HBA HBA HBA HBA HBA HBA
FC FC FC FC FC FC FC FC
Port Port Port Port Port Port Port Port
C HIP Board 1
C HIP Board 2
Array
LDEV
Auto Path driver
Application
A pseudo driver
The Auto Path driver is
layered between the LVM
(Logical Volume
Manager) and the SCSI
device driver
The driver provides the
Command Line Interface
File System
Logical Volum e Manager
Auto Path
Drivers
(SCSI device and FC interface)
FC HBA
FC HBA
Disk Array
Moving Data
Moving Disks
Three Step Process
1. Remove definition of volume group
2. Move disk(s)
3. Add definition ofvolume group
Two com mands
vgexport(1m)
vgimport(1m)
Volume Group Definition
Review
/etc/lvmtab
name of Logical Volumes
/dev/vg01
/dev/vg01
group
/dev/dsk/c0t5d0
64 0x010000
lvol1 64 0x010001
rlvol1 64 0x010001
databaselv 64 0x010002
rdatabaselv 64 0x010002
V GR A + PVRA
-PV ID
- VG ID
PE to LE map
Exporting a Volume Group
Syntax:
vgexport [-p][-v][-m file]VG
-p
Preview actions only
-v
verbose
-m
used to specify a map fileforlogical volume names
Removes volume group definition from the system completely by updating
/etc/lvmtab and kernel memory.
The volume group must first be deactivated with vgchange(1m).
Example:
vgchange -a n /dev/vg01
vgexport -v -m /etc/lvmconf/vg01.map
/dev/vg01
Importing a Volume Group
Syntax:
vgimport [-p][-v][-m file] VG PV [PV...]
-p Preview actions only
-v verbose
-m used to specify a map file for logical volume names
Example:
mkdir /dev/vg01
mknod /dev/vg01/group c 64 0x010000
vgimport -v -m /etc/lvmconf/vg01.map /dev/vg01 /dev/dsk/c0t1d0
vgchange -a y /dev/vg01
vgcfgbackup vg01
Moving LVM Data
Volume group
pvmove
free
free
c0t5d0
c0t4d0
Syntax:
pvmove [-n lv] from_PV [to_PV]
Example:
pvmove -n /dev/vg01/lvol1 /dev/dsk/c0t5d0 /dev/dsk/c0t4d0
Renaming LVM objects
Renaming Logical Volumes
lvol names are not stored in the LVM
maps or in /etc/lvmtab
Simply rename device files and update
/etc/fstab if necessary
Renaming Volume Groups
Volume group name is kept in
/etc/lvmtab and is used as the directory
name to anchor the device files for the
group
Use vgexport and vgimport to rename
volume group
LVM Mirroring
Mirrored Volumes
In a mirrored logical volume ...
Each logical volume consists of one or more Logical Extents(LEs).
Each LE maps to two orthree Physical Extents(PEs) on disk.
The logical volume remains accessible even when one ofthe disksis unavailable.
disk1
disk2
PE0
lvol1
LE0
PE0
PE1
LE1
PE1
PE2
LE2
PE2
PE3
PE3
PE4
lvol2
LE0
PE4
PE5
LE1
PE5
Extending and Reducing
Mirrors
Create a new, mirrored logical volume:
# lvcreate -m 1 -L 16 -n myfs1 vg01
Mirror an existing logicalvolume:
# lvextend -m 1 /dev/vg01/myfs1
Mirror an existing logicalvolume to a specific disk:
# lvextend -m 1 /dev/vg01/myfs1 /dev/dsk/c0t3d0
Add a second mirror:
# lvextend -m 2 /dev/vg01/myfs1
Remove a logicalvolumes mirrors:
# lvreduce -m 0 /dev/vg01/myfs1 /dev/dsk/c0t3d0
Check a mirrored logical volumes status:
# lvdisplay -v /dev/vg01/myfs1
Mirrored I/O Scheduling
Parallel(-d p)
Sequential(-d s)
Read in PV order
Read
Access PV with lowest
outstanding I/Os
Write
Schedule writes
simultaneously to all PVs
Schedule writes in
PV order
MWC/MCR
Writes are recorded in MWC in memory
MCR record written to disk when a write is done to
a logical track group not already recorded
Write IO
M WC
LTG Status
0
After a crash only "dirty" LTGs need be resynced
1
2
LTG5
PVRA
V GR A
Mirror Consistency Recovery Options
Advantage
Disadvantage
Runtime overhead to
write MCR record
M W C/ M CR
-M y
Fastrecovery on
a system crash
NO M W C
-M n -c y
No extra
overhead at
Slow recovery on
a system crash
runtime
3
N O NE
-M n -c n
Application can
do necessary
recovery
No system managed
recovery
LVM Boot Disks
LVM Boot volume structure
LIF Directory
PVRA
BDR A
ISL,HPUX,AUTO,LABEL
Hardware path/device file of disks
in volume group
LIF
boot, root, dump, swap lvols
V GR A
Maintained with the lvlnboot
command
PE
Mirroring the LVM Boot Disk
Initialize disk for LVM. Leave room for BDRA/LIF
pvcreate -B /dev/rdsk/cntndn
Add disk to root VG
vgextend vg00 /dev/rdsk/cntndn
Install boot files in LIF area
mkboot /dev/rdsk/cntndn
Change the auto file on both the primary and alternate boot disk
mkboot -a "hpux -lq" /dev/rdsk/cntndn
Mirror each of the lvols in the root vg
lvextend -m 1 /dev/vg00/lvoln /dev/dsk/cntndn
Add the mirror disk definition to /stand/bootconf
Booting When BDRA is
damaged
Boot system into maintenance mode
ISL> hpux -lm
Activate vg00
vgchange -a y vg00
Use lvlnbootto examine/repair BDRA
lvlnboot -v
lvlnboot -b /dev/vg00/lvol1
lvlnboot -r /dev/vg00/lvol3
lvlnboot -s /dev/vg00/lvol2
lvlnbtoo -d /dev/vg00/lvol2
Reboot the system
reboot
Moving the Boot Disk
Problem: /etc/lvmtab contains the old
device files for the boot disk
Solution: boot into maintenace mode,
export and reimport volume group
Problem: The BDRA and Label files
contain the old device information
Solution: use lvlnboot to fix
Cookbook for moving root disk
Boot from new device. Reply Y to interact with IPL
ISL> hpux -lm
# vgexport -v -m vg00.map vg00
# mkdir /dev/vg00
# mknod /dev/vg00/group c 64 0x000000
# vgimport -v -m vg00.map vg00 /dev/dsk/new_device_file
# vgchange -a y vg00
# vgcfgbackup vg00
# lvlnboot -R
# lvlnboot -v
Recovering Corrupt LVM
Information
Valuable Data?
The variouslvm data structures are crucialtothe continued availability of
logicalvolumes
/etc/lvmtab
Sanity check
vgdisplay -v
Kernel memory
Active
00
V Gs
01 02 03
/dev/vg01
/dev/dsk/c0t5d0
Cross
reference
PVRA/
V GR A
Backing up LVM Structures
vg01
/etc/lvmconf
LV M
Structures
File
System
File
System
vgcfgbackup
vg01.conf
vg00.conf
Done automatically by commands that modify
the configuration
Syntax:
vgcfgbackup [-f file]VG
Recovering LVM Structures
vg01
/etc/lvmconf
LV M
Structures
vgcfgrestore
vg01.conf
vg00.conf
Only restores the LV M structures.Contents of logical
volumes must be restored separately.
Syntax:
vgcfgrestore [-n VG|-f file][-o PV]PV
vgcfgrestore -l -n VG
/etc/lvmtab
LVM Control File
Not asciidata
vg00
/dev/dsk/c0t6d0
/dev/dsk/c0t5d0
/dev/dsk/c0t4d0
vg01
/dev/dsk.....
............
can use strings (1)to read theasciipart
Used primarily at boot up but also used to
sanity check com mands
Can be rebuiltiflost
PV ID
PV ID
PV ID
VG ID
VG ID
VG ID
All VG IDs the same - all disksin same vg
Recover or Repair
/etc/lvmtab
Syntax:
vgscan [-v][-p]
Semi-intelligentlook at every disk to classify it
importsthose that are known to be on this system
recommends the import of "new" disks
rebuilds /etc/lvmtab
Ways to confuse vgscan
redundant group files
"old" LV M structures
LVM Performance Tips
Use PVGs to Offload Busy
Controllers Volume Group vg01
PVG1
System
PVG2
Use Striping to Offload Busy
Drives
1 3 5
7 9 11
1 2 3
4 5 6
100%
Util
60%
Util
52 %
Util
60%
Util
System
System
2 4 6
8 10 12
5%
Util
50%
Util
Volume Group vg01
Without Striping
52 %
Util
50%
Util
Volume Group vg01
With Striping
LVM Distributed Allocation
Logical Volume
LE0
LE1
LE2
LE3
LE4
LE5
LE6
LE7
LE8
LE9
LE10
LE11
Volume Group vg01
LE0
LE4
LE8
LE1
LE5
LE9
LE2
LE6
LE10
LE3
LE7
LE11
PV1
PV2
PV3
PV4
PVG1
lvcreate -l 12 -s g -D y /dev/vg01
Mirroring and Striping
Logical Volume
LE0
LE1
LE2
LE3
LE4
LE5
LE6
LE7
LE8
LE9
LE10
LE11
Volume Group vg01
PVG1
LE0
LE4
LE8
PV1
PVG2
LE0
LE4
LE8
PV1
LE1
LE5
LE9
PV2
LE1
LE5
LE9
PV2
LE2
LE6
LE10
PV3
LE2
LE6
LE10
PV3
lvcreate -l 12 -m 1 -s g -D y /dev/vg01
LE3
LE7
LE11
PV4
LE3
LE7
LE11
PV4
LVM in an MC/ServiceGuard
Environment
MC/ServiceGuard
Configuration
System
A
Primary
Mirror
Volume Group
System
B
Step 1: Configure Volume
Group on First System
System A
Volume Group
Step 2: Import Volume Group
to Second System
System B
System A
Volume Group
VG Export and Import -s Option
vgexport -p -s -m <mapfilename> <vg_name>
create mapfile withoutremoving the VG,
and save the VGID forthe vgimportcommand
vgimport -s -m <mapfilename> <vg_name>
scan for disks that have the same VG ID asinthe mapfile
M ap File
VGID xxxxxxx
1 lvol_name1
2 lvol_name2
3 lvol_name3
System B
System A
vgexport -p -s -m /tmp/map vg01
Vol Grp
vgimport -s -m /tmp/map vg01
LVM Definitions-Both Nodes
Node 1
Node 2
/dev/vg01
/dev/vg01
group 64 0x010000
group 64 0x010000
lvol1 64 0x010001
rlvol1 64 0x010001
lvol1 64 0x010001
rlvol1 64 0x010001
databaselv 64 0x010002
rdatabaselv 64 0x010002
databaselv 64 0x010002
rdatabaselv 64 0x010002
/etc/lvmtab
/dev/vg01
/dev/dsk/c5t5d0
/dev/dsk/c7t5d0
/dev/dsk/c7t5d1
/dev/dsk/c5t5d1
pvid
vgid
pvid
vgid
/etc/lvmtab
/dev/vg01
/dev/dsk/c5t5d0
/dev/dsk/c7t5d0
/dev/dsk/c7t5d1
/dev/dsk/c5t5d1
Cluster Volume Group
vgchange -c y vg01
Node1
Node2
cluster id
cluster id
Volume Group Exclusive Activation
vgchange -a e vg01
Q. Do you
have the
volume group
activated?
A. No I
do not
Node1
cmlvmd
Node2
cmlvmd
cluster id
cluster id
Marking Volume Groups as
M C/ServiceGuard Volume Groups
Marking Volume Group
for MC/ServiceGuard
vgchange -c y VGName
Marking Volume Group
as non-M C/ServiceGuard
vgchange -c n VGName
Standard Volume Group
Activation
vgchange -a y VGName
Exclusive Volume Group
Activation
vgchange -a e VGName
Disk Array Data Replication
Issues
Problem-Duplicate vgid
vgid-12345
c1t3d1
vgid-12345
c1t3d2
vgprim(pvols)
vgid-12345
c2t6d1
vgid-12345
c2t6d2
vgsec(svols)
Disk Array
Solution-vgchgid
vgid-12345
c1t3d1
vgid-12345
c1t3d2
vgprim(pvols)
vgchgid /dev/rdsk/c2t6d1
/dev/rdsk/c2t6d2
mkdir /dev/vgsec
mknod /dev/vgsec/group c 64
0x020000
vgexport -pm mapfile vgprim
vgid-56789
c2t6d1
vgid-56789
c2t6d2
vgsec(svols)
vgimport -m mapfile vgsec
/dev/dsk/c2t6d1
/dev/dsk/c2t6d2
vgchange -a y vgsec
vgcfgbackup vgsec
Disk Array
Problem after a reverse sync
/etc/lvmtab
vgid-56789
c1t3d1
vgid-56789
c1t3d2
vgprim(pvols)
vgid-56789
c2t6d1
vgid-56789
c2t6d2
vgsec(svols)
Disk Array
/dev/vgpriv (vgid:12345)
/dev/dsk/c1t3d1
/dev/dsk/c1t3d2
Solution
export volume group
vgid-56789
c1t3d1
vgid-56789
c1t3d2
reimport volume group
vgprim(pvols)
/etc/lvmtab
vgid-56789
c2t6d1
vgid-56789
c2t6d2
vgsec(svols)
Disk Array
/dev/vgpriv (vgid:56789)
/dev/dsk/c1t3d1
/dev/dsk/c1t3d2
VxVM Concepts
VxVM Intro
Another Volume Manager Supported on HPUX platform
Can co-exist with LVM
Allows flexible disk space management
includes vmsa gui as well as cli
Available from HP beginning with HP-UX 11i.
Available from Veritas for other releases
No rootability until 11i Release 1.5 (11.20)
Lite & Full versions
VxVM Objects - Disks
Physical Disk:
Disk initialized for VxVM
use
Free disk pool
or
private region
Disk Group - dgname
cntndn or
enclosure based
name
dgname
dgname
dgname
dgname01
dgname02
dgname03
VMdisks
VxVM Concepts-Disk Group
Similar to an LVM Volume Group
One or more VMdisks
Pool of space that can then be "partitioned" into volumes
Entire group can be moved between systems using import/deport
dgname
dgname
dgname
dgname01
dgname02
dgname03
VxVM Concepts-Disk Group "activation"
There is no /etc/lvmtab file
hostid in private region is compared to hostid on system
autoimport flag indicates group should be imported at start up
deport removes hostid from private region but leaves disks in
tact
/etc/vx/volboot
host1
host1
host1
mydg01
mydg02
mydg03
host1
VxVM Concepts-Configuration
Database
Describes all objects contained in the disk group
Replicated on multiple disks in the disk group (4 by default)
Config Database
Config Database
Config Database
Config Database
VxVM rootdg
Required for VxVM to run
Does not necessarily contain the root file
system
11i: will not include the root file system
11i 1.5: will include the root file system
future releases will have choice
rootdg cannot be moved between systems
discourage including customer data
VxVM Concepts-Volume
Similar to an LVM logical volume
Analogous to a "partition"
Can contain a file system, a swap area or raw data
Represented by device files:
/dev/dsk/dgname/volname /dev/rdsk/dgname/volname
VxVM Concepts-plex
Data Plex: A copy of the data
Non-mirrored volumes will have one data plex, mirrored volumes
will have multiple data plexes
a plex can span disks
log plex: mirrored and raid5 volumes can have a log plex
vol01
vol01-01
(plex)
vol02
vol02-01
(plex part1)
vol02-01
(plex part2)
vol03
vol03-01
(plex)
vol03-02
(plex)
vol03-03
(log plex)
VxVM Concepts-subdisk
Contiguous space on a single vmdisk
entire subdisk belongs to a single plex
usually created when volume is created
volume
vol01
plex(es)
vol01-01
subdisk(s)
mydg01-01
vol02
vol02-01
vol02-02
mydg02-01
mydg03-01
vol03-01
mydg02-02
mydg03-02
vol03
mydg01
mydg02
mydg03
mydg02-01
mydg03-01
mydg03-02
mydg01-01
mydg02-02
VxVM Objects - Review
Data
vol01 (volume)
vol01-01 (plex)
dgname01-01 sub-disk
vol01-02 (plex)
dgname02-01 sub-disk
sub-disk
dgname01 (vmdisk)
dgname02
dgname03
cntndn (physical disk)
cntndn
cntndn
dgname03-01
Data Plex Layouts
Concatenated
Striped
raid5
Concatenated Plex Examples
Simple volume
Spanned Volume
Mirrored Volume
One plex
One plex
Two plexes
One subdisk
Two subdisks
Two subdisks
Striped Plex Layout
d1 d4 d7 d10
d2 d5 d8 d11
d3 d6 d9 d12
raid5 plex Layout
d1 d4 d7 p4
d2 d5 p3 d10
d3 p2 d8 d11
p1 d6 d9 d12
Mixed volumes
You can combine plex layouts in a single volume
By default the striped plex will be preferred over the concatenated
pplex
You can not mirror raid5 plex layout
mixed volume
d1 d4 d7 d10
d2 d5 d8 d11
d3 d6 d9 d12
plex1
plex1
plex1
plex2
Layered Volumes-Stripe-Mirror
1
Raid 1+0
Mirror-Stripe
1
Raid 0+1 Stripe-Mirror (Layered Volume)
1
1
Mirrored subvolume 1
2
Mirrored subvolume 2
Striped-Volume
Mirrored subvolume 3
Layered Volumes-Concat-pro
Normal Mirror (spanning multiple disks):
8.9 G
1.6G
8.9 G
1.6G
Layered Volume (spanning multiple disks):
1.6G
8.9 G
1.6G
8.9 G
sub-volume
(layout=mirror)
sub-volume
(layout=mirror)
volume with layout=concat
plex
Creating Volumes
vxassist (cli) or vmsa (gui)
you create volume
plex, sub-disks automatically created
bottom up
manually create sub-disk(s)
specify sub-disk(s) to form plex
specify plex(es) to form volume
Dynamic Multi-Pathing
/dev/vx/dsk/userdg/myvol
/dev/vx/rdsk/userdg/myvol
/dev/vx/dmp/c2t3d0
/dev/dsk/c2t3d0 /dev/rdsk/c2t3d0
/dev/vx/rdmp//c2t3d0
dev/dsk/c7t3d0
Controller(SBA) c2xxxx
/dev/rdsk/c7t3d0
Controller(SBA) c7xxxx
Multiple paths
VxVM-LVM Comparisons
LVM
Physical Volume
Physical Volume in a VG
Volume Group
Logical Volume
group of contig. extents
single mirror copy
MWC/MCR
pvra/vgra
extents
VxVM
Physical Disk
VMdisk
Disk Group
Volume
subdisk
plex
dirty region log
private region
public region
Information Sources
H6285S Hands-On with LVM course
H6487S Hands-On with MC/ServiceGuard course
H5875S HP-UX System and Network Admin for Experienced
UNIX System Administrators
U1592AAE Intro to VxVM - HP Education Virtual Classroom
Seminar
www.hp.com/education
Various white papers and cookbooks from the Response Center