With the pvs, vgs and lvs commands, the number of verboses added the more verbose information for example pvs -vvvvv
Directory and Files |
|
Directories and Files | ## Directories /etc/lvm – default lvm directory location /etc/lvm/backup – where the automatic backups go /etc/lvm/cache – persistent filter cache /etc/lvm/archive – where automatic archives go after a volume group change /var/lock/lvm – lock files to prevent metadata corruption # Files |
Tools |
|
diagnostic | lvmdump lvmdump -d <dir> dmsetup [info|ls|status] Note: by default the lvmdump command creates a tar ball |
Physical Volumes |
|
display | pvdisplay -v pvs -v pvs -a pvs –segments (see the disk segments used) pvs attributes are: |
scanning | pvscan -v
Note: scans for disks for non-LVM and LVM disks |
adding | pvcreate /dev/sdb1
## Create physical volume with specific UUID, used to recover volume groups (see miscellaneous section) Common Attributes that you may want to use: -M2 create a LVM2 physical volume |
removing | pvremove /dev/sdb1 |
checking | pvck -v /dev/sdb1
Note: check the consistency of the LVM metadata |
change physical attributes | ## do not allow allocation of extents on this drive, however the partition must be in a vg otherwise you get an error pvchange -x n /dev/sdb1 Common Attributes that you may want to use: –addtag add a tag |
moving | pvmove -v /dev/sdb2 /dev/sdb3
Note: moves any used extents from this volume to another volume, in readiness to remove that volume. However you cannot use this on mirrored volumes, you must convert back to non-mirror using “lvconvert -m 0” |
Volume Groups |
|
display | vgdisplay -v vgs -v vgs -a -o +devices vgs flags: vgs attributes are: |
scanning | vgscan -v |
creating | vgcreate VolData00 /dev/sdb1 /dev/sdb2 /dev/sdb3 vgcreate VolData00 /dev/sdb[123] ## Use 32MB extent size Common Attributes that you may want to use: -l maximum logical volumes |
extending | vgextend VolData00 /dev/sdb3 |
reducing | vgreduce VolData00 /dev/sdb3
vgreduce –removemissing –force VolData00 |
removing | vgremove VolData00
Common Attributes that you may want to use: -f force the removal of any logical volumes |
checking | vgck VolData00
Note: check the consistency of the LVM metadata |
change volume attributes | vgchange -a n VolData00
Common Attributes that you may want to use: -a control availability of volumes within the group |
renaming | vgrename VolData00 Data_Vol_01
note: the volume group must not have any active logical volumes |
converting metadata type | vgconvert -M2 VolData00
Note: vgconvert allows you to convert from one type of metadata format to another for example from LVM1 to LVM2, LVM2 offers bigger capacity, clustering and mirroring |
merging | # the old volumes group will be merged into the new volume group vgmerge New_Vol_Group Old_Vol_Group Note: you must unmount any fielsystems and deactivate the vg that is being merged “vgchange -a n <vg>”, then you can activiate it again afterwards “vgchange -a y <vg>”, then perform a vgscan, dont forget to backup the configuration |
spliting | vgsplit Old_Vol_Group New_Vol_Group [physical volumes] [-n logical volume name] |
importing | vgimport VolData00
Common Attributes that you may want to use: -a import all exported volume groups |
exporting | ## to see if a volume has already been export use “vgs” and look at the third attribute should be a x vgexport VolData00 Common Attributes that you may want to use: -a export all inactive volume groups |
backing up | ## Backup to default location (/etc/lvm/backup) vgcfgbackup VolData00 # Backup to specific location # Backup to specific location all volume groups (notice the %s) Note: the backup is written in plain text and are by default located in /etc/lvm/backup |
restoring | vgcfgrestore -f /var/backup/VolData00_bkup VolData00
Common Attributes that you may want to use: -l list backups of file |
cloning | vgimportclone /dev/sdb1
Note: used to import and rename duplicated volume group |
special files | vgmknodes VolData00
Note: recreates volume group directory and logical volume special files in /dev |
Logical Volumes |
|
display | lvdisplay -v lvdisplay –maps display mirror volumes lvs -v ## lvs commands for mirror volumes ## Stripe size ## use complex command lvs attributes are: |
scanning | lvscan -v lvmdiskscan |
creating | ## plain old volume lvcreate -L 10M VolData00 ## plain old volume but use extents, use 10 4MB extents (if extent size is 4MB) ## plain old volume but with a specific name web01 ## plain old volume but on a specific disk ## a striped volume called lvol1 (note the captial i for the stripe size), can use -l (extents) instead of -L ## Mirrored volume ## Mirrored volume without a mirror log file Common Attributes that you may want to use: -L size of the volume [kKmMgGtT] |
extending | lvextend -L 20M /dev/VolData00/vol01
Common Attributes that you may want to use: -L size of the volume [kKmMgGtT] Note: you can extend a ext2/ext3 filesystem using the “resize2fs” or “fsadm” command fsadm resize /dev/VolData01/data01 The -p option displays bars of progress while extendingthe filesystem |
reducing/resizing | lvreduce -L 5M /dev/VolData00/vol01 lvresize -L 5M /dev/VolData00/vol01 Note: rounding will occur when extending and reducing volumes to the next extent (4MB by default), you can use resize2fs or fsadm to shrink the filesystem fsadm resize /dev/VolData01/data01 [size] |
removing | lvremove /dev/VolData00/vol01 |
adding a mirror to a non-mirrored volume | lvconvert -m1 –mirrorlog core /dev/VolData00/vol01 /dev/sdb2
Note: you can also use the above command to remove a unwanted log |
removing a mirror from a mirrored volume | lvconvert -m0 /dev/VolData00/vol01 /dev/sdb2
Note: the disk in the command is the one you want to remove |
Mirror a volume that has stripes | lvconvert –stripes 3 -m1 –mirrorlog core /dev/VolData00/data01 /dev/sdd1 /dev/sde1 /devsdf1 |
change volume attributes | lvchange -a n /dev/VolData00/vol01
Common Attributes that you may want to use: -a availability |
renaming | lvrename /dev/VolData00/vol_old /dev/VolData00/vol_new |
snapshotting | lvcreate –size 100M –snapshot -name snap /dev/vg01/data01 |
Miscellaneous |
|
Simulating a disk failure | dd if=/dev/zero of=/dev/sdb2 count=10 |
reparing a failed mirror no LVM corruption | ## check volume, persume /dev/sdb2 has failed lvs -a -o +devices # remove the failed disk from the volume (if not already done so) , this will convert volume into a non-mirrored volume ## replace the disk physically, remember to partion it with type 8e ## add new disk to LVM ## add the disk back into volume group ## mirror up the volume |
corrupt LVM metadata without replacing drive | # attempt to bring the volume group online vgchange -a y VolData00 # Restore the LVM configation # attempt to bring the volume grou online # file system check |
corrupt LVM metadata but replacing the faulty disk | # attempt to bring the volume group online but you get UUID conflict errors make note of the UUID number vgchange -a y VolData00 vgchange -a n VolData00 ## sometimes it my only be a logical volume problem ## replace the disk physically, remember to partion it with type 8e # after replacing the faulty drive the disk must have the previuos UUID number or you can get it from /etc/lvm directory # Restore the LVM configation # attempt to bring the volume group online or logical volume # file system check Note: if you have backed the volume group configuration you can obtain the UUID number in the backup file by default located in /etc/lvm/backup or running “pvs -v” |