RHEL6中LVM逻辑卷管理

1、LVM 基本术语
 
物理卷(physical volume):物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。
 
卷组(Volume Group):卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。  
逻辑卷(logical volume):  逻辑卷建立在卷组之上,卷中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。 
 
 PE(physical extent):每一个物理卷被划分为称为PE的的基本单元,具有唯一编号的PE是可以 被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
 
 LE(logical exent):逻辑卷也被划分为称为LE的可被寻址的基本单位。在同一个卷组中,LE和PE 的大小是相同的,并且一一对应 。
 
如下图可以看到本机装系统时使用的LVM:
 
RHEL6中LVM逻辑卷管理RHEL6中LVM逻辑卷管理
 
2、创建和管理LVM
[root@test ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
 
三块硬盘/dev/sdb、/dev/sdc 、/dev/sdd都为20G
 
sdb、sdc创建物理分区10G,分区类型为8e
fdisk   /dev/sdb---sdb1
fdisk  /dev/sdc--sdc1
partprobe       /dev/sdb  #使用工具partprobe让kernel读取分区信息。或者使用partx  /dev/sdb
partprobe       /dev/sdc
 
更改分区类型用t,用L列出可用的分区类型。
 
 
2.1 创建PV
[root@test ~]# pvcreate /dev/sdb1
  dev_is_mpath: failed to get device for 8:17
  Physical volume "/dev/sdb1" successfully created
[root@test ~]# pvcreate /dev/sdc1
  dev_is_mpath: failed to get device for 8:33
  Physical volume "/dev/sdc1" successfully created
 
查看物理卷:pvs和pvdisplay
RHEL6中LVM逻辑卷管理RHEL6中LVM逻辑卷管理
 
使用pvremove /dev/sdb1 删除物理卷。
 
  
2.2创建VG,VG名称为vdata
[root@test ~]# vgcreate vdata /dev/sdb1 /dev/sdc1
  Volume group "vdata" successfully created
 
查看vg:
RHEL6中LVM逻辑卷管理RHEL6中LVM逻辑卷管理
 
 
可以看到默认PE大小为4M。可以更改vdata卷组的PE为16M:
[root@test ~]# vgchange -s 16M vdata
  Volume group "vdata" successfully changed
 
RHEL6中LVM逻辑卷管理RHEL6中LVM逻辑卷管理
 
                
2.3 创建两个LV
[root@test ~]# lvcreate -L 2G -n data1 vdata     
  Logical volume "data1" created
[root@test ~]# lvcreate -l 20 -n data2 vdata   
  Logical volume "data2" created
 
lvcreate参数解释:
  -l    LEs :指定LV的逻辑块数
  -L  size:指定LV的大小,其后可以用K,M,G表示KB,MB,GB
  -s   创建一个已存在LV的snapshop卷
  -n  name:为LV指定名称
 
查看LV详细信息:lvs和lvdisplay
RHEL6中LVM逻辑卷管理RHEL6中LVM逻辑卷管理
RHEL6中LVM逻辑卷管理RHEL6中LVM逻辑卷管理
 
 
 
2.4LV 格式化及挂载
[root@test ~]# mkfs.ext4 /dev/vdata/data1
[root@test ~]# mkfs.ext4 /dev/vdata/data2
[root@test ~]# mount /dev/vdata/data1 /mnt/data1   
[root@test ~]# mount /dev/vdata/data2 /mnt/data2
                
 blkid    [查看所属的文件系统的UUID]
 vim /etc/fstab  写入挂载表中,保证永久生效。请用UUID挂载
RHEL6中LVM逻辑卷管理RHEL6中LVM逻辑卷管理
 
RHEL6中LVM逻辑卷管理RHEL6中LVM逻辑卷管理
 
2.5 删除LVM
  删除逻辑卷  lvremove   <lvname>
  删除卷组     vgremove  <vgname>
  删除物理卷 pvremove  <pvname>
   
 
 
3、LVM逻辑卷扩充和缩减
3.1LVM逻辑卷扩充:
添加PV到VG中------扩大LV容量----扩大文件系统并挂载
 
(1)在新的物理分区上新建物理卷加入卷组
在/dev/sdd上新建分区/dev/sdd1,分区大小为10G。然后新建物理分区,加入卷组。
RHEL6中LVM逻辑卷管理RHEL6中LVM逻辑卷管理
                 
创建物理卷:
[root@test ~]# pvcreate /dev/sdd1
  Physical volume "/dev/sdd1" successfully created
 
(2)将新的物理卷加入已知的卷组
[root@test ~]# vgextend vdata /dev/sdd1
  Volume group "vdata" successfully extended
 
 将物理卷从卷组中移除vgreduce
    #vgreduce   vdata /dev/sdd1
          
(3)  扩充逻辑卷
有两种方式:一种直接指定扩充后总的容量;一种指定要增加的容量:
扩充之前LV的大小:
RHEL6中LVM逻辑卷管理RHEL6中LVM逻辑卷管理
 
将逻辑卷data1扩充2G:
  [root@test ~]# lvextend -L 4G /dev/vdata/data1       //#指定扩容后的容量
  Extending logical volume data1 to 4.00 GiB
  Logical volume data1 successfully resized
                   
可以看到data1逻辑卷已经变成4G:
RHEL6中LVM逻辑卷管理RHEL6中LVM逻辑卷管理
 
 
将逻辑卷data2扩充1G:    
[root@test ~]# lvextend -L +1G /dev/vdata/data2       //#指定要增加的容量
  Extending logical volume data2 to 1.31 GiB
  Logical volume data2 successfully resized            
RHEL6中LVM逻辑卷管理RHEL6中LVM逻辑卷管理
 
            
(4)执行重设大小,对于当前正在使用的lvdata有效。
在将逻辑卷data1扩充了2G之后,在系统里面总的可以使用的空间仍然是2G,没有变成4G。
所以要重设文件系统。
重设之前:
RHEL6中LVM逻辑卷管理RHEL6中LVM逻辑卷管理
 
              
重设之后:
[root@test ~]# resize2fs  /dev/vdata/data1
[root@test ~]# resize2fs  /dev/vdata/data2
RHEL6中LVM逻辑卷管理RHEL6中LVM逻辑卷管理
 
逻辑卷扩充成功。
               
         
3.2 LVM逻辑卷缩减:
缩小LV缩小文件系统----缩小LV容量----移除VG中的PV      
 
缩减逻辑卷data2
(1)卸载文件系统
[root@test ~]# umount /dev/vdata/data2
               
(2)检查文件系统fsck                
[root@test ~]# e2fsck -f /dev/vdata/data2       //强制检查文件系统
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/vdata/data2: 11/344064 files (0.0% non-contiguous), 54400/1376256 blocks
 
(3) 指定缩小后的文件系统的容量
 [root@test ~]# resize2fs -p /dev/vdata/data2  1G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vdata/data2 to 1048576 (1k) blocks.
Begin pass 3 (max = 168)
Scanning inode table          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/vdata/data2 is now 1048576 blocks long.
 
(4)缩减逻辑卷使用lvreduce命令,不能缩减至比它包含的文件系统还小
[root@test ~]# lvreduce -L 1G /dev/vdata/data2
  WARNING: Reducing active logical volume to 1.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce data2? [y/n]: y
  Reducing logical volume data2 to 1.00 GiB
  Logical volume data2 successfully resized
     
如下图,缩减成功:    
RHEL6中LVM逻辑卷管理RHEL6中LVM逻辑卷管理
 
 
 
 4、创建快照
在已有的逻辑卷上创建快照:
[root@test ~]# lvcreate -l 50 -s -n data_bak /dev/vdata/data1 【在data1逻辑卷上创建快照】
  Logical volume "data_bak" created
RHEL6中LVM逻辑卷管理RHEL6中LVM逻辑卷管理
                                         
 
快照的删除:
[root@test ~]# lvremove /dev/vdata/data_bak
Do you really want to remove active logical volume data_bak? [y/n]: y
  Logical volume "data_bak" successfully removed
 
             
 
 
上一篇:深入解析CSS样式层叠权重值


下一篇:windows上如何创建类似 liunx 下 crontab定时任务