创建LVM的过程(逻辑参考图):

  1. 在物理设备上创建物理分区,每个物理分区称为一个PE
  2. 使用fdisk工具创建物理分区卷标(修改为8e),形成PV(Physical Volume 物理卷)
  3. 使用vgcreate 将多个PV添加到一个VG(Volume Group 卷组)中,此时VG成为一个大磁盘
  4. 在VG大磁盘上划分LV(Logical Volume 逻辑卷),将逻辑卷格式化后即可挂载使用



    CentOS6.5创建LVM逻辑图

LVM命令结构


更具体的请参考man手册



功能



PV管理命令



VG管理命令



LV管理命令



Scan扫描



pvscan/pvs



vgscan/vgs



lvscan/lvs



Create建立



pvcreate



vgcreate



lvcreate



display显示



pvdisplay



vgdisplay



lvdisplay



Extend扩展



pvremove



vgremove



lvremove



Reduce减少


 


vgreduce



lvreduce


1、创建PV


[root@i-it ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdc
[root@i-it ~]# pvcreate /dev/sd[bc]
  Physical volume "/dev/sdb" successfully created
  Physical volume "/dev/sdc" successfully created


2、查看PV信息


[root@i-it ~]# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               vg_#####
  PV Size               119.51 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              30594
  Free PE               0
  Allocated PE          30594
  PV UUID               MgIEVe-DS6Q-uGyJ-UJfm-FCc2-cCmK-UOM3c3

  "/dev/sdb" is a new physical volume of "120.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb
  VG Name               
  PV Size               120.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               rDSSFs-FO1J-jhU4-pfM6-trMy-F0N2-oS3Hh5

  "/dev/sdc" is a new physical volume of "120.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc
  VG Name               
  PV Size               120.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               qpe8m5-EeFn-Kluh-ry0S-eBqP-6A3g-BbpyND


2、创建VG


[root@i-it ~]# vgcreate i-it -s 32M /dev/sd[bc]
  Volume group "i-it" successfully created
  ##-s 在创建时指定PE块的大小,默认是4M。 
##查看系统上VG的状态##
[root@i-it ~]# vgdisplay 
  --- Volume group ---
  VG Name               i-it
  System ID             
  Format                lvm2
  Metadata Areas        2
  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                2
  Act PV                2
  VG Size               239.94 GiB
  PE Size               32.00 MiB
  Total PE              7678
  Alloc PE / Size       0 / 0   
  Free  PE / Size       7678 / 239.94 GiB
  VG UUID               iVPm5w-N0ji-cY5O-gM6r-lmlH-n3UJ-VqPhzl

  --- Volume group ---
  VG Name               vg_####
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               119.51 GiB    ##VG总大小 
  PE Size               4.00 MiB       ##默认的PE块大小是4M 
  Total PE              30594           ##总PE块数 
  Alloc PE / Size       30594 / 119.51 GiB   ##可用的PE数目及磁盘大小 
  Free  PE / Size       0 / 0   ##已经使用的PE块数目
  VG UUID               XoiW3x-9erh-8ZXR-5Syk-1szb-qWW5-ZW5Jdc


3、在VG中划出LV


[root@i-it ~]# lvcreate -L 512M -n i-it-data i-it
  Logical volume "i-it-data" created
## -L指定LV大小 
## -n 指定lv卷名称

[root@i-it ~]# lvcreate -l 25 -n i-it-data1 i-it
  Logical volume "i-it-data1" created
## -l 指定LV大小占用多少个PE块;上面大小为:25*32M=800M 

##查看建立的LV##
[root@i-it ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/i-it/i-it-data
  LV Name                i-it-data
  VG Name                i-it
  LV UUID                R3d6wY-VY38-kT2J-P14F-Olkt-3Rib-VwIMXd
  LV Write Access        read/write
  LV Creation host, time i-it.com, 2014-04-11 04:49:20 +0800
  LV Status              available
  # open                 0
  LV Size                512.00 MiB
  Current LE             16
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3

  --- Logical volume ---
  LV Path                /dev/i-it/i-it-data1
  LV Name                i-it-data1
  VG Name                i-it
  LV UUID                8PW9RN-tPkk-FPeV-3iXd-2q36-sfjy-daKX49
  LV Write Access        read/write
  LV Creation host, time i-it.com, 2014-04-11 04:50:58 +0800
  LV Status              available
  # open                 0
  LV Size                800.00 MiB
  Current LE             25
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:4
##省略...


4、格式化LV卷,挂在使用


[root@i-it ~]#  mkfs -t ext4 -b 2048 -L DATA /dev/i-it/i-it-data
mke2fs 1.41.12 (17-May-2010)
Filesystem label=DATA
OS type: Linux
......省略

挂载分区,拷贝一些测试文件进去
[root@i-it ~]# mount /dev/i-it/i-it-data /mnt/
[root@i-it ~]# df -h
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/vg_itchenyi09-lv_root   50G  2.6G   45G   6% /
tmpfs                              495M  224K  495M   1% /dev/shm
/dev/sda1                          485M   35M  426M   8% /boot
/dev/mapper/vg_itchenyi09-lv_home   67G  181M   63G   1% /home
/dev/sr1                           4.2G  4.2G     0 100% /media/CentOS_6.5_Final
/dev/mapper/i--it-i--it--data      504M   20M  460M   4% /mnt

[root@i-it ~]# cp -rpf /tmp/* /mnt/


5、扩大LV卷I-IT-DATA的容量
逻辑扩展:


[root@i-it ~]# lvextend -L +500M /dev/i-it/i-it-data
  Rounding size to boundary between physical extents: 512.00 MiB
  Extending logical volume i-it-data to 1.00 GiB
  Logical volume i-it-data successfully resized
##-L 5G  :指定扩展到5G,当前卷不可大于改值,系统会找最近的柱面进行匹配;    
##-L +500M :值在原有大小的基础上扩大500M; 
##-l [+]50 类似上面,但是以Pe块为单位进行扩展; 
###################################################
[root@i-it ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/i-it/i-it-data
  LV Name                i-it-data
  VG Name                i-it
  LV UUID                R3d6wY-VY38-kT2J-P14F-Olkt-3Rib-VwIMXd
  LV Write Access        read/write
  LV Creation host, time i-it.com, 2014-04-11 04:49:20 +0800
  LV Status              available
  # open                 1
  LV Size                1.00 GiB
  Current LE             32
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3


物理扩展:


###resize2fs调整已建立的ext2/3/4档案系统的大小。###
[root@i-it ~]# resize2fs -p /dev/i-it/i-it-data
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/i-it/i-it-data is mounted on /mnt; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/i-it/i-it-data to 524288 (2k) blocks.
The filesystem on /dev/i-it/i-it-data is now 524288 blocks long.

查看当前挂载的文件系统,以及动态扩展后的文件状态
[root@i-it ~]# df -h
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/vg_itchenyi09-lv_root   50G  2.6G   45G   6% /
tmpfs                              495M  224K  495M   1% /dev/shm
/dev/sda1                          485M   35M  426M   8% /boot
/dev/mapper/vg_itchenyi09-lv_home   67G  181M   63G   1% /home
/dev/sr1                           4.2G  4.2G     0 100% /media/CentOS_6.5_Final
/dev/mapper/i--it-i--it--data     1008M   21M  937M   3% /mnt
[root@i-it ~]# ls /mnt/
keyring-2qN2je  orbit-gdm   pulse-FAl8E3Q5BSD6  pulse-tt3Bxg2U6j8Y
lost+found      orbit-root  pulse-GxZ9645yOvNO  yum.log


6、缩减LV容量


缩减容量是一件危险的操作;缩减必须在离线状态下执行;并且必须先强制检查文件系统错误,防止缩减过程损坏数据

[root@i-it ~]# e2fsck -f /dev/i-it/i-it-data
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
DATA: 50/98304 files (0.0% non-contiguous), 22651/786432 blocks
缩减物理卷的大小
[root@i-it ~]# resize2fs /dev/i-it/i-it-data 512M
resize2fs 1.41.12 (17-May-2010) ##vsphere中的测试机,勿重视一些小的细节###
Resizing the filesystem on /dev/i-it/i-it-data to 262144 (2k) blocks.
The filesystem on /dev/i-it/i-it-data is now 262144 blocks long.
缩减逻辑大小
[root@i-it ~]# lvreduce -L 512M /dev/i-it/i-it-data
  WARNING: Reducing active logical volume to 512.00 MiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce i-it-data? [y/n]: y
  Reducing logical volume i-it-data to 512.00 MiB
  Logical volume i-it-data successfully resized
查看状态、重新挂载:
[root@i-it ~]# lvdisplay
--- Logical volume ---
LV Path /dev/i-it/i-it-data
LV Name i-it-data
VG Name i-it
LV UUID R3d6wY-VY38-kT2J-P14F-Olkt-3Rib-VwIMXd
LV Write Access read/write
LV Creation host, time i-it.com, 2014-04-11 04:49:20 +0800
LV Status available
# open 0
LV Size 512.00 MiB
Current LE 16
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:3

--- Logical volume ---
LV Path /dev/i-it/i-it-data1
LV Name i-it-data1
VG Name i-it
LV UUID 8PW9RN-tPkk-FPeV-3iXd-2q36-sfjy-daKX49
LV Write Access read/write
LV Creation host, time i-it.com, 2014-04-11 04:50:58 +0800
LV Status available
# open 0
LV Size 800.00 MiB
Current LE 25
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:4
##省略...

#重新挂载到/mnt#
[root@i-it ~]# mount /dev/i-it/i-it-data /mnt/
[root@i-it ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_itchenyi09-lv_root 50G 2.6G 45G 6% /
tmpfs 495M 224K 495M 1% /dev/shm
/dev/sda1 485M 35M 426M 8% /boot
/dev/mapper/vg_itchenyi09-lv_home 67G 181M 63G 1% /home
/dev/sr1 4.2G 4.2G 0 100% /media/CentOS_6.5_Final
/dev/mapper/i--it-i--it--data 504M 20M 460M 4% /mnt
#文件完好#
[root@i-it ~]# ls /mnt/
keyring-2qN2je orbit-gdm pulse-FAl8E3Q5BSD6 pulse-tt3Bxg2U6j8Y
lost+found orbit-root pulse-GxZ9645yOvNO yum.log


7、 扩展VG,向VG中添加一个PV:


[root@i-it ~]# pvcreate /dev/sdd 
  Physical volume "/dev/sdd" successfully created
[root@i-it ~]# vgextend i-it /dev/sdd
  Volume group "i-it" successfully extended
  --- Physical volume ---
  PV Name               /dev/sdd
  VG Name               i-it
  PV Size               120.00 GiB / not usable 32.00 MiB
  Allocatable           yes 
  PE Size               32.00 MiB
  Total PE              3839
  Free PE               3839
  Allocated PE          0
  PV UUID               BrHLqC-IqR7-GNH6-SZHb-Zdt9-TvX2-ci2puN


8、缩减VG,取出VG中的某个PV:


移除某个PV时,需要先转移该PV上数据到其他PV,然后再将该PV删除


移出指定PV中的数据:


[root@i-it ~]# pvmove /dev/sdd
  No data to move for i-it
##如果sdc2上面有数据,则会花一段时间移动,并且显示警告信息,再次确认后才会执行
##如上,提示该分区中没有数据;
移除PV:
[root@i-it ~]# vgreduce i-it /dev/sdd
  Removed "/dev/sdd" from volume group "i-it"
##若发现LVM中磁盘工作不太正常,怀疑是某一块磁盘工作由问题后就可以用该方法移出问题磁盘上的数据,然后删掉问题盘##

LVM快照


描述:


在一个非常繁忙的服务器上,备份大量的数据时,需要停掉大量的服务,否则备份下来的数据极容易出现不一致状态,而使备份根本不能起效;这时快照就起作用了



逻辑卷快照实质是访问原始数据的另外一个路径而已;快照保存的是做快照那一刻的数据状态;做快照以后,任何对原始数据的修改,会在修改前拷贝一份到快照区域,所以通过快照查看到的数据永远是生成快照那一刻的数据状态;但是对于快照大小有限制,做快照前需要估算在一定时间内数据修改量大小,如果在创建快照期间数据修改量大于快照大小了,数据会溢出照成快照失效崩溃
快照不是永久的。如果你卸下LVM或重启,它们就丢失了,需要重新创建。



创建快照:


[root@i-it ~]# lvcreate -L 500M -p r -s -n datasnap /dev/i-it/i-it-data
  Rounding up size to full physical extent 512.00 MiB
  Logical volume "datasnap" created
## -L –l 设置大小 
## -p  :permission,设置生成快照的读写权限,默认为RW;r为只读 
##-s 指定lvcreate生成的是一个快照 
##-n 指定快照名称 

挂载快照到指定位置:
[root@i-it ~]# mount /dev/i-it/datasnap /bak/
mount: block device /dev/mapper/i--it-datasnap is write-protected, mounting read-only

此时可以操作快照中的文件,在处理完毕后需要及时删除快照
[root@i-it ~]# ls /mnt/
keyring-2qN2je  orbit-gdm   pulse-FAl8E3Q5BSD6  pulse-tt3Bxg2U6j8Y
lost+found      orbit-root  pulse-GxZ9645yOvNO  yum.log