LVM简介

LVM简介

     LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制。

 

  二LVM作用:

   LVM是将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。

 

  三LVM术语

  1. 物理卷physical volume (PV)
    典型的物理卷是硬盘分区,但也可以是整个硬盘或已创建的Software RAID 卷。

  2. 物理块physical extent (PE)
    物理卷按大小相等的“块”为单位存储,块的大小与卷组中逻辑卷块的大小相同。

  3. 卷组(volume group (VG)
    卷组是LVM中最高抽象层,是由一个或多个物理卷所组成的存储器池。

  4. 逻辑块logical extent (LE)
    逻辑卷按“块”为单位存储,在一卷组中的所有逻辑卷的块大小是相同的。

  5. 逻辑卷logical volume (LV)
    逻辑卷相当于非LVM系统中的分区,它在卷组上建立,是一个标准的块设备,可以在其上建立文件系统

四安装LVM
首先确定系统中是否安装了lvm工具:
   [root@localhost ~]# rpm -qa|grep lvm

mesa-private-llvm-3.3-0.3.rc3.el6.x86_64

lvm2-libs-2.02.100-8.el6.x86_64

lvm2-2.02.100-8.el6.x86_64
如果命令结果输入类似于上例,那么说明系统已经安装了LVM管理工具;如果命令没有输出则说明没有安装LVM管理工具,则需要从网络下载或者从光盘装LVM rpm工具包。

五创建LVM并管理

  1. 创建分区

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

 

Disk /dev/sdb:107.4 GB, 107374182400 bytes

255 heads, 63sectors/track, 13054 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

Diskidentifier: 0x96023bd2

 

   Device Boot      Start         End      Blocks  Id  System

/dev/sdb1               1         393    3156741   8e  Linux LVM

/dev/sdb2             394         786    3156772+  8e  Linux LVM

/dev/sdb3             787        1179    3156772+  8e  Linux LVM

/dev/sdb4            1180       13054   95385937+   5  Extended

2 初始化物理卷为PV

创建PV,添加几个文件系统

命令:pvcreate /dev/sdb{1,2,3}   ――――   添加文件系统到PV

  pvs,pvdisplay                ――――   查看系统现有PV

[root@localhost ~]#pvcreate /dev/sdb{1,2,3}

  Physical volume "/dev/sdb1"successfully created

  Physical volume "/dev/sdb2"successfully created

  Physical volume "/dev/sdb3"successfully created

[root@localhost ~]#pvs

  PV        VG   Fmt  Attr PSize PFree

  /dev/sdb1       lvm2 a-- 3.01g 3.01g

  /dev/sdb2       lvm2 a-- 3.01g 3.01g

  /dev/sdb3       lvm2 a-- 3.01g 3.01g

 

 

3 创建卷组VG

 [root@localhost ~]# vgcreate myvg /dev/sdb1  创建myvg卷组

  Volume group "myvg" successfullycreated

root@localhost ~]#vgcreate myvg1 /dev/sdb2   创建myvg1卷组

  Volume group "myvg1" successfullycreated

[root@localhost ~]#vgextend myvg /dev/sdb3   增加myvg的容量

  Volume group "myvg" successfullyextended

[root@localhost ~]#vgs

  VG   #PV #LV #SN Attr   VSize  VFree

  myvg   2   0   0 wz--n- 6.02g 6.02g

  myvg1  1   0   0 wz--n- 3.01g 3.01g

  vg0    1   4   0 wz--n- 59.99g 7.99g

4 创建LV

[root@localhost ~]# lvcreate -L 2G -n mylv myvg
  Logical volume "mylv" created
[root@localhost ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
  mylv myvg -wi-a-----  2.00g                                            
  root vg0  -wi-ao---- 20.00g                                            
  swap vg0  -wi-ao----  2.00g                                            
  usr  vg0  -wi-ao---- 10.00g                                            
  var  vg0  -wi-ao---- 20.00g   
           

5 格式化

[root@localhost~]# mkfs -t ext4 /dev/myvg/mylv

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

131072 inodes, 524288 blocks

26214 blocks (5.00%) reserved for the superuser

First data block=0

Maximum filesystem blocks=536870912

16 block groups

32768 blocks per group, 32768 fragments pergroup

8192 inodes per group

Superblock backups stored on blocks:

    32768,98304, 163840, 229376, 294912

 

Writing inode tables: done                            

Creating journal (16384 blocks): done

Writing superblocks and filesystemaccounting information: done

 

This filesystem will be automaticallychecked every 35 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override

6,挂载

[root@localhost ~]#mount /dev/myvg/mylv /tmp/mnt/


扩展逻辑卷

1 先确定扩展的目标大小,并确保对应的卷组中有足够的空闲空间可用

2 扩展物理边界

3 扩展逻辑边界

[root@localhost mnt]# lvextend -L 4G /dev/myvg/mylv

  Extendinglogical volume mylv to 4.00 GiB

  Logicalvolume mylv successfully resized

[root@localhost mnt]# resize2fs /dev/myvg/mylv

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/myvg/mylv is mounted on /tmp/mnt;on-line resizing required

old desc_blocks = 1, new_desc_blocks = 1

Performing an on-line resize of /dev/myvg/mylv to1048576 (4k) blocks.

The filesystem on /dev/myvg/mylv is now 1048576blocks long.

 

[root@localhost mnt]# lvs

  LV   VG  Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

  mylv myvg-wi-ao----  4.00g                                            

  rootvg0  -wi-ao---- 20.00g                                            

  swapvg0  -wi-ao----  2.00g                                            

  usr  vg0 -wi-ao---- 10.00g                                            

  var  vg0 -wi-ao---- 20.00g  

七 缩减逻辑卷

缩减很危险,缩减需谨慎!

缩减需要离线

1 先确定缩减后的目标大小,并确保对应的目标逻辑卷大小中有足够的空间可够容纳原有数据。

2 先制裁文件系统,并强制执行检测

3 缩减逻辑边界

4缩小物理边界

[root@localhostmnt]# fuser -km /tmp/mnt/  如果卸载不掉,用此命令卸载,用后会退出,并从新登陆。

/tmp/mnt/:            2747c

 

Connectionclosed.

[root@localhost~]# umount /tmp/mnt/

[root@localhost~]# e2fsck -f /dev/myvg/mylv   强制检测文件系统

e2fsck1.41.12 (17-May-2010)

Pass1: Checking inodes, blocks, and sizes

Pass2: Checking directory structure

Pass3: Checking directory connectivity

Pass4: Checking reference counts

Pass5: Checking group summary information

/dev/myvg/mylv:11/262144 files (0.0% non-contiguous), 33870/1048576 blocks

 

[root@localhost~]# resize2fs /dev/myvg/mylv 3G    离线缩减为逻辑卷为3G

resize2fs1.41.12 (17-May-2010)

Resizingthe filesystem on /dev/myvg/mylv to 786432 (4k) blocks.

Thefilesystem on /dev/myvg/mylv is now 786432 blocks long.

 

 [root@localhost ~]# lvreduce -L 3G/dev/myvg/mylv   缩减物理边界为3G

  WARNING: Reducing active logical volume to3.00 GiB

  THIS MAY DESTROY YOUR DATA (filesystem etc.)

Doyou really want to reduce mylv? [y/n]: y

  Reducing logical volume mylv to 3.00 GiB

  Logical volume mylv successfully resized

[root@localhost~]# lvs      查看缩减后信息

  LV  VG   Attr       LSize Pool Origin Data%  Move Log Cpy%SyncConvert

  mylv myvg -wi-a-----  3.00g                                            

  root vg0 -wi-ao---- 20.00g                                            

  swap vg0 -wi-ao----  2.00g                                            

  usr vg0  -wi-ao---- 10.00g                                            

  var vg0  -wi-ao---- 20.00g


八,快照卷


快照就是将当时的系统信息记录下来,将来如果有数据更新,则原始数据会被移到快照区,没有更新的部分则由快照区与文件系统共享.

一个例子

lvcreate -L 512M -s -p r -n mysnap /dev/myvol/mylv

-L 512M  制定快照卷的大小

-s 说明创建的快照卷

-p r 创建的快照卷是只读的,

-n mysnap 给快照卷气的名字

/dev/myvol/mylv1 对哪个逻辑卷创建快照卷,此处在卷组myvol下的逻辑卷mylv1创建


创建完可以挂载了

mount -o ro /dev/myvol/mysnap /snap

快照卷和逻辑卷在同一目录下

-o ro 只读方式挂载


创建完成后卸载

unmount /snap

删除快照卷 lvremove /dev/myvol/mysnap



本文出自 “Linux” 博客,转载请与作者联系!

你可能感兴趣的:(linux,LVM管理)