LVM由存储介质、物理卷、逻辑卷组、逻辑卷几个元素组成

 

 

[root@szm ~]# pvcreate --help

  pvcreate: Initialize physical volume(s) for use by LVM

 

pvcreate 

[--norestorefile]

[--restorefile file]

[-d|--debug]

[-f[f]|--force [--force]] ------强制初始化,无需用户确认

[-h|-?|--help] 

[--labelsector sector] 

[-M|--metadatatype 1|2]

[--pvmetadatacopies #copies]

[--metadatasize MetadataSize[bBsSkKmMgGtTpPeE]]

[--dataalignment Alignment[bBsSkKmMgGtTpPeE]]

[--dataalignmentoffset AlignmentOffset[bBsSkKmMgGtTpPeE]]

[--setphysicalvolumesize PhysicalVolumeSize[bBsSkKmMgGtTpPeE]

[-t|--test] 

[-u|--uuid uuid] -----初始化物理卷指定UUID号

[-v|--verbose] 

[-y|--yes]------针对所有的问题Yes

[-Z|--zero {y|n}]

[--version] 

PhysicalVolume [PhysicalVolume...]

 

[root@szm ~]# pvscan --help

  pvscan: List all physical volumes

 

pvscan 

[-a|--activate ay]

[--cache [ DevicePath | --major major --minor minor]...]

[-d|--debug] 

{-e|--exported | -n|--novolumegroup} 

[-h|-?|--help]

[--ignorelockingfailure]

[-P|--partial] 

[-s|--short] ------简短扫描信息

[-u|--uuid] -------显示UUID

[-v|--verbose] 

[--version]

 

[root@szm ~]# pvdisplay --help

  pvdisplay: Display various attributes of physical volume(s)

 

pvdisplay

[-c|--colon]

[-d|--debug]

[-h|--help]

[--ignorelockingfailure]

[-m|--maps]-----显示物理卷的映射关系

[--nosuffix]

[-s|--short]----显示物理卷的简短摘要

[--units hHbBsSkKmMgGtTpPeE]

[-v|--verbose]

[--version]

[PhysicalVolumePath [PhysicalVolumePath...]]

 

pvdisplay --columns|-C----以列为单位显示物理卷信息

[--aligned]

[-a|--all]----显示所有物理卷信息

[-d|--debug]

[-h|--help]

[--ignorelockingfailure]

[--noheadings]

[--nosuffix]

[-o|--options [+]Field[,Field]]

[-O|--sort [+|-]key1[,[+|-]key2[,...]]]

[--separator Separator]

[--unbuffered]

[--units hHbBsSkKmMgGtTpPeE]

[-v|--verbose]

[--version]

[PhysicalVolumePath [PhysicalVolumePath...]]

 

[root@szm ~]# pvs --help

  pvs: Display information about physical volumes

 

pvs

[-a|--all]----显示所有物理卷信息

[--aligned]

[-d|--debug]

[-h|-?|--help] 

[--ignorelockingfailure]

[--nameprefixes]

[--noheadings]

[--nosuffix]

[-o|--options [+]Field[,Field]]

[-O|--sort [+|-]key1[,[+|-]key2[,...]]]

[-P|--partial] 

[--rows]

[--segments]

[--separator Separator]

[--trustcache]

[--unbuffered]

[--units hHbBsSkKmMgGtTpPeE]

[--unquoted]

[-v|--verbose]

[--version]

[PhysicalVolume [PhysicalVolume...]]

[root@szm ~]# pvremove --help
  pvremove: Remove LVM label(s) from physical volume(s)
 
pvremove 
[-d|--debug]
[-f[f]|--force [--force]] -----强制删除,无需用户确认
[-h|-?|--help] 
[-t|--test] 
[-v|--verbose] 
[-y|--yes]-----所有问题Yes
[--version] 
PhysicalVolume [PhysicalVolume...]
 

 

 

 

 

1:准备物理存储设备(创建LVM类型的分区):

 

[root@szm ~]# fdisk -l /dev/sdb

 

Disk /dev/sdb: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x5d886ec2

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1          14      112423+  8e  Linux LVM

/dev/sdb2              15          40      208845   8e  Linux LVM

/dev/sdb3              41        2610    20643525    5  Extended

/dev/sdb5              41          54      112423+  8e  Linux LVM

/dev/sdb6              55          56       16033+  8e  Linux LVM

/dev/sdb7              57          58       16033+  8e  Linux LVM

/dev/sdb8              59          60       16033+  8e  Linux LVM

/dev/sdb9              61          62       16033+  8e  Linux LVM

/dev/sdb10             63          64       16033+  8e  Linux LVM

/dev/sdb11             65          66       16033+  8e  Linux LVM

第二步:将物理块设备初始化为物理卷

 

 

[root@szm ~]# pvcreate /dev/sdb6 /dev/sdb7 /dev/sdb8

WARNING: software RAID md superblock detected on /dev/sdb6. Wipe it? [y/n] y

  Wiping software RAID md superblock on /dev/sdb6.

  Physical volume "/dev/sdb6" successfully created

WARNING: software RAID md superblock detected on /dev/sdb7. Wipe it? [y/n] y

  Wiping software RAID md superblock on /dev/sdb7.

  Physical volume "/dev/sdb7" successfully created

WARNING: software RAID md superblock detected on /dev/sdb8. Wipe it? [y/n] y

  Wiping software RAID md superblock on /dev/sdb8.

  Physical volume "/dev/sdb8" successfully created

[root@szm ~]# pvscan 
  PV /dev/sdb5   VG szmvg           lvm2 [108.00 MiB / 0    free]
  PV /dev/sda2   VG vg_szm          lvm2 [19.51 GiB / 0    free]
  PV /dev/sdb6                      lvm2 [15.66 MiB]
  PV /dev/sdb7                      lvm2 [15.66 MiB]
  PV /dev/sdb8                      lvm2 [15.66 MiB]
  Total: 5 [19.66 GiB] / in use: 2 [19.61 GiB] / in no VG: 3 [46.97 MiB]
 
[root@szm ~]# pvdisplay -s
  Device "/dev/sdb5" has a capacity of 0   
  Device "/dev/sda2" has a capacity of 0   
  Device "/dev/sdb6" has a capacity of 15.66 MiB
  Device "/dev/sdb7" has a capacity of 15.66 MiB
  Device "/dev/sdb8" has a capacity of 15.66 MiB
[root@szm ~]# pvdisplay /dev/sdb6 ---------------详细信息
  "/dev/sdb6" is a new physical volume of "15.66 MiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb6
  VG Name               
  PV Size               15.66 MiB
  Allocatable           NO ------------没有被分配到VG
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               7n2KQw-3qzn-ILC5-1JQU-7DHh-eQ1o-OFOG12
   
 PE是在PV创建组或加入卷组后才会分配PV描述符的
 
第三步:创建逻辑卷组VG
 
[root@szm ~]# vgcreate --help
  vgcreate: Create a volume group
 
vgcreate
[-A|--autobackup {y|n}] 
[--addtag Tag] 
[--alloc AllocationPolicy] 
[-c|--clustered {y|n}] 
[-d|--debug]
[-h|--help]
[-l|--maxlogicalvolumes MaxLogicalVolumes]---设置LV数量,默认255个
[-M|--metadatatype 1|2] 
[--[vg]metadatacopies #copies] 
[-p|--maxphysicalvolumes MaxPhysicalVolumes] ----设置PV数量,默认255个
[-s|--physicalextentsize PhysicalExtentSize[bBsSkKmMgGtTpPeE]] ---设置PE大小,默认为4M
[-t|--test] 
[-v|--verbose]
[--version] 
[ PHYSICAL DEVICE OPTIONS ] 
VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
 
[root@szm ~]# vgscan --help
  vgscan: Search for all volume groups
 
vgscan [--cache]
[-d|--debug]
[-h|--help]
[--ignorelockingfailure]
[--mknodes]
[-P|--partial] 
[-v|--verbose]
[--version]
 
[root@szm ~]# vgdisplay --help  -------- 也可以使用
vgsvgdisplay: Display volume group information
 
vgdisplay 
[-A|--activevolumegroups]-----仅显示激活的卷组
[-c|--colon(冒号分隔显示值) | -s|--short(摘要) | -v|--verbose]
[-d|--debug] 
[-h|--help] 
[--ignorelockingfailure]
[--nosuffix]
[-P|--partial] 
[--units hHbBsSkKmMgGtTpPeE]
[--version]
[VolumeGroupName [VolumeGroupName...]]
 
vgdisplay --columns|-C
[--aligned]------用直线方式排列卷组信息
[-d|--debug] 
[-h|--help] 
[--ignorelockingfailure]
[--noheadings]
[--nosuffix]
[-o|--options [+]Field[,Field]]
[-O|--sort [+|-]key1[,[+|-]key2[,...]]]
[-P|--partial] 
[--separator Separator]
[--unbuffered]
[--units hHbBsSkKmMgGtTpPeE]
[--verbose]
[--version]
[VolumeGroupName [VolumeGroupName...]]
 
 -a-----显示所有卷组信息
 
[root@szm ~]# vgextend --help
  vgextend: Add physical volumes to a volume group
 
vgextend
[-A|--autobackup y|n]
[--restoremissing]
[-d|--debug]
[-f|--force]
[-h|--help]
[-t|--test]
[-v|--verbose]
[--version]
[ PHYSICAL DEVICE OPTIONS ] 
VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
 
[root@szm ~]# vgremove --help
  vgremove: Remove volume group(s)
 
vgremove
[-d|--debug]
[-f|--force]----强制删除卷组
[-h|--help]
[--noudevsync]
[-t|--test]
[-v|--verbose]
[--version]
VolumeGroupName [VolumeGroupName...]
 
[root@szm ~]# vgrename --help
  vgrename: Rename a volume group
 
vgrename
[-A|--autobackup y|n]
[-d|--debug]
[-h|--help]
[-t|--test]
[-v|--verbose]
[--version]
OldVolumeGroupPath NewVolumeGroupPath |
OldVolumeGroupName NewVolumeGroupName
 
[root@szm ~]# vgcreate vg1 /dev/sdb6 /dev/sdb7 /dev/sdb8
  Volume group "vg1" successfully created
 
[root@szm ~]# vgscan 
  Reading all physical volumes.  This may take a while...
  Found volume group "vg1" using metadata type lvm2
  Found volume group "szmvg" using metadata type lvm2
  Found volume group "vg_szm" using metadata type lvm2
 
[root@szm ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree 
  szmvg    1   1   0 wz--n- 108.00m     0 
  vg1      3   0   0 wz--n-  36.00m 36.00m
  vg_szm   1   2   0 wz--n-  19.51g     0
 
[root@szm ~]# vgdisplay vg1
  --- Volume group ---
  VG Name               vg1
  System ID             
  Format                lvm2------------VLM版本
  Metadata Areas        3
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               36.00 MiB
  PE Size               4.00 MiB
  Total PE              9
  Alloc PE / Size       0 / 0   
  Free  PE / Size       9 / 36.00 MiB
  VG UUID               I7Sy7v-L2EG-SPSc-uzhd-ludU-8s4a-EDmROh
   
[root@szm ~]# pvdisplay /dev/sdb6
  --- Physical volume ---
  PV Name               /dev/sdb6
  VG Name               vg1
  PV Size               15.66 MiB / not usable 3.66 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              3
  Free PE               3
  Allocated PE          0
  PV UUID               7n2KQw-3qzn-ILC5-1JQU-7DHh-eQ1o-OFOG12
   
 当物理卷组创建之后,物理卷就会写入PV描述符。
 
[root@szm ~]# pvcreate /dev/sdb9
WARNING: software RAID md superblock detected on /dev/sdb9. Wipe it? [y/n] y
  Wiping software RAID md superblock on /dev/sdb9.
  Physical volume "/dev/sdb9" successfully created
 
[root@szm ~]# vgextend vg1 /dev/sdb9
  Volume group "vg1" successfully extended
 
第四步:实现与管理逻辑卷
 
[root@szm ~]# lvcreate --help
  lvcreate: Create a logical volume
 
lvcreate 
[-A|--autobackup {y|n}]
[-a|--activate [a|e|l]{y|n}]
[--addtag Tag]
[--alloc AllocationPolicy]
[-C|--contiguous {y|n}]
[-d|--debug]
[-h|-?|--help]
[--ignoremonitoring]
[--monitor {y|n}]
[-i|--stripes Stripes [-I|--stripesize StripeSize]]
{-l|--extents LogicalExtentsNumber[%{VG|PVS|FREE}] |------ 指定PE的个数
-L|--size LogicalVolumeSize[bBsSkKmMgGtTpPeE]}-------- 指定因定大小
[-M|--persistent {y|n}] [--major major] [--minor minor]
[-m|--mirrors Mirrors [--nosync] [{--mirrorlog {disk|core|mirrored}|--corelog}]]
[-n|--name LogicalVolumeName]-----指定逻辑卷名称
[--noudevsync]
[-p|--permission {r|rw}]
[-r|--readahead ReadAheadSectors|auto|none]
[-R|--regionsize MirrorLogRegionSize]
[-T|--thin  [-c|--chunksize  ChunkSize]
 [--discards {ignore|nopassdown|passdown}]
 [--poolmetadatasize MetadataSize[bBsSkKmMgG]]]
[--thinpool ThinPoolLogicalVolume{Name|Path}]
[-t|--test]
[--type VolumeType]
[-v|--verbose]
[-Z|--zero {y|n}]
[--version]
VolumeGroupName [PhysicalVolumePath...]
 
lvcreate 
{ {-s|--snapshot} OriginalLogicalVolume[Path] |----创建逻辑卷快照
 [-s|--snapshot] VolumeGroupName[Path] -V|--virtualsize VirtualSize}
 {-T|--thin} VolumeGroupName[Path][/PoolLogicalVolume] 
             -V|--virtualsize VirtualSize}
[-c|--chunksize]
[-A|--autobackup {y|n}]
[--addtag Tag]
[--alloc AllocationPolicy]
[-C|--contiguous {y|n}]
[-d|--debug]
[--discards {ignore|nopassdown|passdown}]
[-h|-?|--help]
[--ignoremonitoring]
[--monitor {y|n}]
[-i|--stripes Stripes [-I|--stripesize StripeSize]]
{-l|--extents LogicalExtentsNumber[%{VG|FREE|ORIGIN}] |
-L|--size LogicalVolumeSize[bBsSkKmMgGtTpPeE]}
[--poolmetadatasize Size[bBsSkKmMgG]]
[-M|--persistent {y|n}] [--major major] [--minor minor]
[-n|--name LogicalVolumeName]
[--noudevsync]
[-p|--permission {r|rw}]
[-r|--readahead ReadAheadSectors|auto|none]
[-t|--test]
[--thinpool ThinPoolLogicalVolume[Path]]
[-v|--verbose]
[--version]
[PhysicalVolumePath...]
 
[root@szm ~]# lvextend --help
  lvextend: Add space to a logical volume
 
lvextend
[-A|--autobackup y|n]
[--alloc AllocationPolicy]
[-d|--debug]
[-f|--force]
[-h|--help]
[-i|--stripes Stripes [-I|--stripesize StripeSize]]
{-l|--extents [+]LogicalExtentsNumber[%{VG|LV|PVS|FREE|ORIGIN}] |---拉升lv参数
-L|--size [+]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}------拉升lv参数
[-m|--mirrors Mirrors]
[--nosync]
[--use-policies]
[-n|--nofsck]
[--noudevsync]
[-r|--resizefs]
[-t|--test]
[--type VolumeType]
[-v|--verbose]
[--version]
LogicalVolume[Path] [ PhysicalVolumePath... ]
 
 

扫描LV:lvscan

查看LV:lvdisplay/lvs

扩展LV:lvextend

缩小LV:lvreduce

删除LV:lvremove

调整LV:lvresize

 
[root@szm ~]# lvreduce --help
  lvreduce: Reduce the size of a logical volume
 
lvreduce
[-A|--autobackup y|n]
[-d|--debug]
[-f|--force]
[-h|--help]
{-l|--extents [-]LogicalExtentsNumber[%{VG|LV|FREE|ORIGIN}] |
-L|--size [-]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}
[-n|--nofsck]
[--noudevsync]
[-r|--resizefs]
[-t|--test]
[-v|--verbose]
[-y|--yes]
[--version]
LogicalVolume[Path]
 
[root@szm ~]# lvremove --help
  lvremove: Remove logical volume(s) from the system
 
lvremove
[-A|--autobackup y|n]
[-d|--debug]
[-f|--force]
[-h|--help]
[--noudevsync]
[-t|--test]
[-v|--verbose]
[--version]
LogicalVolume[Path] [LogicalVolume[Path]...]
 
[root@szm ~]# lvresize --help
  lvresize: Resize a logical volume
 
lvresize
[-A|--autobackup y|n]
[--alloc AllocationPolicy]
[-d|--debug]
[-f|--force]
[-h|--help]
[-i|--stripes Stripes [-I|--stripesize StripeSize]]
{-l|--extents [+|-]LogicalExtentsNumber[%{VG|LV|PVS|FREE|ORIGIN}] |
-L|--size [+|-]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}
[-n|--nofsck]
[--noudevsync]
[-r|--resizefs]-----重新设置LV的容量
[-t|--test]
[--type VolumeType]
[-v|--verbose]
[--version]
LogicalVolume[Path] [ PhysicalVolumePath... ]
 lvresiz命令综合了lvreduce和lvextend
 
生成逻辑卷:
[root@szm ~]# lvcreate -L 10M -n lv01 vg1
  Rounding up size to full physical extent 12.00 MiB
  Logical volume "lv01" created
 
[root@szm ~]# lvscan 
  ACTIVE            '/dev/vg1/lv01' [12.00 MiB] inherit
  ACTIVE            '/dev/szmvg/szmspace' [108.00 MiB] inherit
  ACTIVE            '/dev/vg_szm/lv_root' [17.76 GiB] inherit
  ACTIVE            '/dev/vg_szm/lv_swap' [1.75 GiB] inherit
 
[root@szm ~]# lvs
  LV       VG     Attr      LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
  szmspace szmvg  -wi-a---- 108.00m                                             
  lv01     vg1    -wi-a----  12.00m                                             
  lv_root  vg_szm -wi-ao---  17.76g                                             
  lv_swap  vg_szm -wi-ao---   1.75g    
                                        
[root@szm ~]# lvdisplay /dev/vg1/lv01 
  --- Logical volume ---
  LV Path                /dev/vg1/lv01
  LV Name                lv01
  VG Name                vg1
  LV UUID                rz5p39-N2BZ-Ar91-oBM8-OtHF-WBuZ-wRLqhP
  LV Write Access        read/write
  LV Creation host, time szm, 2013-03-11 23:01:25 +0800
  LV Status              available
  # open                 0
  LV Size                12.00 MiB
  Current LE             3
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3
 
 测试逻辑卷是否可用:
[root@szm ~]# mkfs.ext3 /dev/vg1/lv01
[root@szm ~]# mkdir /mnt/lv01
[root@szm ~]# mount /dev/vg1/lv01 /mnt/lv01/
[root@szm ~]# mount | grep -i lv01
/dev/mapper/vg1-lv01 on /mnt/lv01 type ext3 (rw)
[root@szm ~]# touch /mnt/lv01/test
[root@szm ~]# ll /mnt/lv01/test 
-rw-r--r--. 1 root root 0 Mar 11 23:06 /mnt/lv01/test
 
放大逻辑卷的容量:
 需要配合resize2fs命令更新LV的描述符及文件系统块组的信息实现文件系统弹性调整的目的。且命令支持在线调整功能
 
[root@szm ~]# resize2fs --help
resize2fs 1.41.12 (17-May-2010)
resize2fs: invalid option -- '-'
Usage: resize2fs [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]
 
-S:调整阵列的Stride值
-p:显示调整进度
-f:强制调整文件系统大小
-F:执行调整前先刷新缓存
 
[root@szm ~]# lvextend -L +10M /dev/vg1/lv01 
  Rounding size to boundary between physical extents: 12.00 MiB
  Extending logical volume lv01 to 24.00 MiB
  Logical volume lv01 successfully resized
[root@szm ~]# lvdisplay /dev/vg1/lv01 
  --- Logical volume ---
  LV Path                /dev/vg1/lv01
  LV Name                lv01
  VG Name                vg1
  LV UUID                rz5p39-N2BZ-Ar91-oBM8-OtHF-WBuZ-wRLqhP
  LV Write Access        read/write
  LV Creation host, time szm, 2013-03-11 23:01:25 +0800
  LV Status              available
  # open                 1
  LV Size                24.00 MiB
  Current LE             6
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3
 
    ------------大小没有变:
[root@szm ~]# df -h | grep -i lv01
/dev/mapper/vg1-lv01   12M  1.2M   10M  11% /mnt/lv01
 
[root@szm ~]# resize2fs -p /dev/vg1/lv01 
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg1/lv01 is mounted on /mnt/lv01; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/vg1/lv01 to 24576 (1k) blocks.
The filesystem on /dev/vg1/lv01 is now 24576 blocks long.
 
大小变了
[root@szm ~]# df -h | grep -i lv01
/dev/mapper/vg1-lv01   24M  1.2M   22M   5% /mnt/lv01
 
缩小逻辑卷的容量:
 
1)执行缩小之前,逻辑卷必须先卸载
2)执行文件系统调整命令之前需要检查文件系统的安全性与数据完整性
3)使用resize2fs命令进行文件系统调整之前一定要明确可以缩小的磁盘空间
4)最后才能使用lvreduce命令释放磁盘空间
 
[root@szm ~]# pvscan | grep vg1
  PV /dev/sdb6   VG vg1      lvm2 [12.00 MiB / 0    free]
  PV /dev/sdb7   VG vg1      lvm2 [12.00 MiB / 0    free]
  PV /dev/sdb8   VG vg1      lvm2 [12.00 MiB / 12.00 MiB free]
  PV /dev/sdb9   VG vg1      lvm2 [12.00 MiB / 12.00 MiB free]
 
[root@szm ~]# pvdisplay /dev/sdb8
  --- Physical volume ---
  PV Name               /dev/sdb8
  VG Name               vg1
  PV Size               15.66 MiB / not usable 3.66 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              3
  Free PE               3
  Allocated PE          0
  PV UUID               roewki-K4H5-ogrZ-Kr4o-l0jL-bRfc-3kjvdJ
 
[root@szm ~]# df -h | grep lv01
/dev/mapper/vg1-lv01   24M  1.2M   22M   5% /mnt/lv01
 
[root@szm ~]# e2fsck -f /dev/vg1/lv01 
e2fsck 1.41.12 (17-May-2010)
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/vg1/lv01: 12/4608 files (0.0% non-contiguous), 1726/24576 blocks
 
[root@szm ~]# resize2fs /dev/vg1/lv01 18M
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vg1/lv01 to 18432 (1k) blocks.
The filesystem on /dev/vg1/lv01 is now 18432 blocks long.
 
[root@szm ~]# lvreduce -L 18M /dev/vg1/lv01 
  Rounding size to boundary between physical extents: 20.00 MiB
  WARNING: Reducing active logical volume to 20.00 MiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv01? [y/n]: y
  Reducing logical volume lv01 to 20.00 MiB
  Logical volume lv01 successfully resized
 
[root@szm ~]# mount /dev/vg1/lv01 /mnt/lv01/
[root@szm ~]# df -h /mnt/lv01/
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg1-lv01   18M  1.2M   16M   7% /mnt/lv01
[root@szm ~]# ll /mnt/lv01/
total 14
drwx------. 2 root root 12288 Mar 11 23:05 lost+found
-rw-r--r--. 1 root root    17 Mar 11 23:28 test
 
[root@szm ~]# pvscan | grep -i sdb
  PV /dev/sdb6   VG vg1      lvm2 [12.00 MiB / 0    free]
  PV /dev/sdb7   VG vg1      lvm2 [12.00 MiB / 4.00 MiB free]
  PV /dev/sdb8   VG vg1      lvm2 [12.00 MiB / 12.00 MiB free]
  PV /dev/sdb9   VG vg1      lvm2 [12.00 MiB / 12.00 MiB free]
  PV /dev/sdb5   VG szmvg    lvm2 [108.00 MiB / 0    free]
 
[root@szm ~]# vgreduce vg1 /dev/sdb9
  Removed "/dev/sdb9" from volume group "vg1"
 
[root@szm ~]# pvscan | grep -i sdb
  PV /dev/sdb6   VG vg1             lvm2 [12.00 MiB / 0    free]
  PV /dev/sdb7   VG vg1             lvm2 [12.00 MiB / 4.00 MiB free]
  PV /dev/sdb8   VG vg1             lvm2 [12.00 MiB / 12.00 MiB free]
  PV /dev/sdb5   VG szmvg           lvm2 [108.00 MiB / 0    free]
  PV /dev/sdb9                      lvm2 [15.66 MiB]
 
[root@szm ~]# pvremove /dev/sdb9
  Labels on physical volume "/dev/sdb9" successfully wiped
[root@szm ~]# pvscan | grep -i sdb
  PV /dev/sdb6   VG vg1      lvm2 [12.00 MiB / 0    free]
  PV /dev/sdb7   VG vg1      lvm2 [12.00 MiB / 4.00 MiB free]
  PV /dev/sdb8   VG vg1      lvm2 [12.00 MiB / 12.00 MiB free]
  PV /dev/sdb5   VG szmvg    lvm2 [108.00 MiB / 0    free]
 
 
 pv的移动;
[root@szm ~]# pvmove /dev/sdb7 /dev/sdb8
  /dev/sdb7: Moved: 0.0%
  /dev/sdb7: Moved: 100.0%
[root@szm ~]# pvscan | grep -i sdb
  PV /dev/sdb6   VG vg1      lvm2 [12.00 MiB / 0    free]
  PV /dev/sdb7   VG vg1      lvm2 [12.00 MiB / 12.00 MiB free]
  PV /dev/sdb8   VG vg1      lvm2 [12.00 MiB / 4.00 MiB free]
  PV /dev/sdb5   VG szmvg    lvm2 [108.00 MiB / 0    free]
 
逻辑卷快照管理:
 
 在使用常规工具备份时,无法控制备份的数据都处于同一状态。如:内在相对于硬盘中的数据是不一样的。为了实现数据的完整性传统做法是以只读方式挂载一个分区,再配合其他的处理机制如:对数据表加锁或者关闭引擎等;但是这些措施反面影响可用性;
 
 使用逻辑卷快照可以在无损可用性的情况下完成一致性的备份。请注意,快照只对LVM的分区有效。逻辑卷快照能够把文件系统的改变存储在一个快照分区,而不是对这个分区做镜像,因此在创建快照分区时,可以小于原始分区。如果一个LVM分区的改变量超过了快照的大小,那么快照就会被释放。原始数据变化越快,快照的生命周期就越短。

 [root@szm ~]# lvs | grep vg1

  lv01     vg1    -wi-ao---  20.00m  

 

[root@szm ~]# lvcreate -L +10M -s -n snap-lv01 /dev/vg1/lv01 

  Rounding up size to full physical extent 12.00 MiB

  Logical volume "snap-lv01" created

[root@szm ~]# lvs | grep vg1
  lv01      vg1    owi-aos--  20.00m                                             
  snap-lv01 vg1    swi-a-s--  12.00m      lv01     0.10  

 

 

[root@szm ~]# mkdir /mnt/snap

[root@szm ~]# mount /dev/vg1/lv01 /mnt/snap/

[root@szm ~]# df -h /mnt/snap/

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/vg1-lv01   18M  1.2M   16M   7% /mnt/snap

内容完全相同:

 

 

[root@szm ~]# ls /mnt/snap/

lost+found  test

[root@szm ~]# ls /mnt/lv01/

lost+found  test

[root@szm ~]# dd if=/dev/zero of=/mnt/lv01/snaptestfile.txt bs=1M count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.110309 s, 47.5 MB/s
 
[root@szm ~]# ls /mnt/lv01/
lost+found  snaptestfile.txt  test
 
[root@szm ~]# ls /mnt/snap/ -----------------当原始分区发生改变时,快照也发生了改变
lost+found  snaptestfile.txt  test

 

 

[root@szm ~]# lvs | grep vg1

  lv01      vg1    owi-aos--  20.00m                                             

  snap-lv01 vg1    swi-a-s--  12.00m      lv01    42.58 --------快照分区的使用率为42.58

 

[root@szm ~]# lvdisplay /dev/vg1/snap-lv01 

  --- Logical volume ---

  LV Path                /dev/vg1/snap-lv01

  LV Name                snap-lv01

  VG Name                vg1

  LV UUID                G1CQWH-lyt1-PJEd-LucP-qafN-tRnz-dFjObX

  LV Write Access        read/write

  LV Creation host, time szm, 2013-03-12 09:01:44 +0800

  LV snapshot status     active destination for lv01

  LV Status              available

  # open                 0

  LV Size                20.00 MiB

  Current LE             5

  COW-table size         12.00 MiB

  COW-table LE           3

  Allocated to snapshot  42.58%-------分配大小

  Snapshot chunk size    4.00 KiB

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:4

 删除逻辑卷:

1)卸载要删除的LVM文件系统(包括快照分区)并删除/etc/fstab内的相应挂载记录;

2)使用lvremove删除逻辑卷(LV),如果LV上建有快照分区就得先删除快照分区;

3)使用vgremove删除不包含任何VL分区的卷组VG;

4)使用pvremove删除物理卷PV,最后更改硬盘分区表;

第一步=================================

[root@szm ~]# mount | grep -i vg1

/dev/mapper/vg1-lv01 on /mnt/lv01 type ext3 (rw)

/dev/mapper/vg1-lv01 on /mnt/snap type ext3 (rw)

[root@szm ~]# umount /mnt/lv01/

[root@szm ~]# umount /mnt/snap/

第二步==================================
 
[root@szm ~]# lvremove /dev/vg1/snap-lv01 
Do you really want to remove active logical volume snap-lv01? [y/n]: y
  Logical volume "snap-lv01" successfully removed
   
[root@szm ~]# lvremove /dev/vg1/lv01 
Do you really want to remove active logical volume lv01? [y/n]: y
  Logical volume "lv01" successfully removed
 
第三步===================================
 
[root@szm ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree 
  szmvg    1   1   0 wz--n- 108.00m     0 
  vg1      3   0   0 wz--n-  36.00m 36.00m
  vg_szm   1   2   0 wz--n-  19.51g     0 
 
[root@szm ~]# vgremove vg1
  Volume group "vg1" successfully removed
 
第四步====================================
[root@szm ~]# pvs
  PV         VG     Fmt  Attr PSize   PFree 
  /dev/sda2  vg_szm lvm2 a--   19.51g     0 
  /dev/sdb5  szmvg  lvm2 a--  108.00m     0 
  /dev/sdb6         lvm2 a--   15.66m 15.66m
  /dev/sdb7         lvm2 a--   15.66m 15.66m
  /dev/sdb8         lvm2 a--   15.66m 15.66m
 
[root@szm ~]# pvremove /dev/sdb8
  Labels on physical volume "/dev/sdb8" successfully wiped