LVM 简介

1、LVM 简介

LVM(Logical Volume Manager)是一个应用于Linux的内核的逻辑卷管理器,是Linux环境下对磁盘进行分区管理的一种机制。先介绍几个有关LVM的名词

  1、PV(物理卷)可以是一个磁盘,一个分区。由PE(物理盘区)组成,多个PV可以组成一个VG(卷组).
  2、VG(卷组)多个物理卷组成的一个组,但是卷组不可以直接使用,需要在上面创LV(逻辑卷)才可以使用。VG上可以创建多个LV。
  3、PE(物理盘区)就像我们之前学习的磁盘的block块,默认是4MB。
  4、LV(逻辑卷) 是建立在卷组之上的一个可用空间。有物理边界和逻辑边界两种边界。

二、相关命令介绍

1、物理卷PV
  pvcreate   创建pv               例:pvcreate /dev/sda1
  pvs        查看pv信息           例:直接在命令行里输入pvs
  pvdisplay  查看pv详细信息       例:pvcreate /dev/sda1
  pvmove     将pv数据移动到其他pv 例:pvmove /dev/sda1 /dev/sda4
  pvremove   将pv删除             例:pvremove /dev/sda1
2、卷组VG
2.1 创建、查看、删除vg
  vgcreate   创建vg               例:vgcreate myvg  /dev/sda{m,n}
  vgs        查看vg信息           例:直接在命令行里输入vgs
  vgdisplay  查看vg详细信息       例:vgdisplay myvg
  vgremove   将vg删除             例:vgremove myvg
2.2 扩展vg
首先准备好一个PV;
然后使用vgextend命令即可完成扩展;
格式: vgextend VG_NAME /PATH/TO/PV
     vgextend myvg /dev/sdb2 扩展myvg卷组,把/dev/sda2加进去
2.3 缩减vg
  1)确定要移除的PV;
  2)将此PV上的数据转移至其它PV;
    pvmove /path/to/pv
  3)从卷组中将此PV移除;
    格式:vgreduce VG_NAME /PATH/TO/PV
    vgreduce myvg /dev/sdb2 缩减myvg卷组,把/dev/sda2去掉
3 逻辑卷LV
3.1 创建、查看、删除lv
  lvcreate   创建lv               例:lvcreate lv1 /dev/myvg
  lvs        查看lv信息           例:直接在命令行里输入lvs
  lvdisplay  查看lv详细信息       例:vgdisplay lv1
  lvremove   将lv 移除            例:lvremove  /dev/myvg/lv1
3.2 扩展lv
 确定扩展多大

 确定当前逻辑卷所在的卷组有足够的空闲空间;
扩展:
 1、物理边界
    lvextend -L [+]SIZE /path/to/lv
 2、逻辑边界
    resize2fs /path/to/device
 3.3  缩减lv
    确定缩减的大小,但前提是至少能容纳原有的所有数据。
缩减:
 1)卸载并强行检测文件系统;
   e2fsck -f
 2)逻辑边界
   resize2fs /path/to/device SIZE
 3)物理边界
   lvreduce -L [-]SIZE /path/to/lv
4、快照卷
 1) 生命周期为整个数据时长;在这段时长内,数据的增长量不能超出快照卷大小;
 2) 快照卷应该是只读的;
3) 跟原卷在同一卷组内;
lvcreate
     -L    指定快照卷的大小
     -s    创建快照卷
     -p r  创建的快照卷为只读访问
格式:
    lvcreate -L SIZE -s -p r -n LV_NAME /path/to/lv

三、lv之示例

1、创建一个分区

[root@stau11 ~]# fdisk -l             //查看分区的情况 
[root@stau11 ~]# fdisk /dev/sda       //进行分区 
    Command (m for help): n        //n为添加一个分区,p查看分区 
  First cylinder (2898-10443, default 2898):    //按【Enter】键决定 
  Using default value 2898                //起始柱面选择默认  值                                                                                                                                                                                               
   Last cylinder or +size or +sizeM or +sizeK (289810443, default 10443): +2G    //    给2G的大小 
 Command (m for help): t      //更改分区类型 
Partition number (1-5): 5      //选着分区 
Hex code (type L to list codes): l      //分区类型列表 
Hex code (type L to list codes):8e     //将新添加的分区标注成lvm 
Command (m for help): p              //查看分区表 
/dev/sda5            2756        2999     1959898+  8e  Linux LVM 
Command (m for help): w            //保存 
[root@localhost ~]# partprobe /dev/sda      //是系统识别分区(代替重启) 
[root@localhost ~]# mkfs.ext3 /dev/sda5    //格式化新添加的分区

2、PV的创建

[root@localhost ~]# pvcreate /dev/sda5            //创建pv 
  Writing physical volume data to disk "/dev/sda5"
  Physical volume "/dev/sda5" successfully created 
[root@localhost ~]# pvs                     //查看当前pv的信息 
  PV         VG   Fmt  Attr PSize PFree 
  /dev/sda5       lvm2 a--  1.87G 1.87G 

3、VG的创建

[root@localhost ~]# vgcreate vg0 /dev/sda5    //vg0为当前vg的名 
  Volume group "vg0" successfully created 
[root@localhost ~]# vgs                    //查看vg的信息 
  VG   #PV #LV #SN Attr   VSize VFree 
  vg0    1   0   0 wz--n- 1.87G 1.87G

4、lv的创建

[root@localhost ~]# lvcreate -L 500M -n lv01 vg0 
  Logical volume "lv01" created 
[root@localhost ~]# lvs                    //查看lv的信息 
 LV   VG   Attr   LSize   Origin Snap%  Move Log Copy%  Convert 
  lv01 vg0  -wi-a- 500.00M                                      
You have mail in /var/spool/mail/root 
[root@localhost ~]# mkfs.ext3 /dev/vg0/lv01      //格式化 

lvm的使用

5、lv的增大

[root@localhost ~]# lvextend -L +300M /dev/vg0/lv01  //(原来lv大小500M ,拉伸分区到 800M)  Extending logical volume lv01 to 800.00 MB 
  Logical volume lv01 successfully resized 
[root@localhost ~]# resize2fs /dev/vg0/lv01       //拉伸文件系统 
[root@localhost ~]# lvs 
  LV   VG   Attr   LSize   Origin Snap%  Move Log Copy%  Convert 
  lv01 vg0  -wi-ao 800.00M       //大小变成了800M

6、lv的减小

# umount  /dev/vg0/lv01      //卸载逻辑卷/dev/vg0/lv01 
  # df -h      //查看 
  # e2fsck  -f  /dev/vg0/lv01    //磁盘校验 
  # resize2fs  /dev/vg0/lv01  500M    //回缩文件系统到 500M 
  # lvreduce  -L  500M  /dev/vg0/lv01     //回缩分区到 500M 
     WARNING: Reducing active logical volume to 500.00 MB 
     THIS MAY DESTROY YOUR DATA (filesystem etc.) 
     Do you really want to reduce lv01? [y/n]: y  
  # lvs 
  LV   VG   Attr   LSize   Origin Snap%  Move Log Copy%   Convert 
   lv01 vg0  -wi-a- 500.00M          //此时已变成500M大小 
  # mount  /dev/vg0/lv01   /mnt/lv01    //重新挂载分区 
  # df -h     //查看 
  # ls /mnt/lv01    //查看文件

四、lvm的系统快照

1、挂载lvm

[root@localhost ~] # mount /dev/vg0/lv01 /mnt/lv01    
[root@localhost ~]# cd /mnt/lv01 
[root@localhost lv01]# touch {a,b,c}{a,b,c} 
[root@localhost lv01]# ls 
aa  ab  ac  ba  bb  bc  ca  cb  cc  lost+found  lv.file  restoresymtable 

2、为lvm创建快照

[root@localhost lv01]# lvcreate -L 64M -s -n lv-backup /dev/vg0/lv01 
  Logical volume "lv-backup" created 

3、挂载快照

[root@localhost lv01]# mkdir /mnt/lv-backup 
[root@localhost mnt]# mount -o ro /dev/vg0/lv-backup /mnt/lv-backup/ 

4、备份快照
[root@localhost tmp]# dump -0u -f /tmp/lv-backup.dump /mnt/lv-backup/       //备份 
DUMP: Date of this level 0 dump: Sun Nov 11 14:53:31 2012
DUMP: Dumping /dev/mapper/vg0-lv--backup (/mnt/lv-backup) to /tmp/lv-backup.dump 
5、删除快照

[root@localhost tmp]# umount /mnt/lv-backup/ 
[root@localhost tmp]# lvremove /dev/vg0/lv-backup 
Do you really want to remove active logical volume lv-backup? [y/n]: y 
Logical volume "lv-backup" successfully removed 

6、清空/dev/vg0/lv01下得内容

[root@localhost tmp]# umount /mnt/lv01 
[root@localhost tmp]# mkfs.ext3 /dev/vg0/lv01 
mke2fs 1.39 (29-May-2006) 
Filesystem label= 
OS type: Linux 

7、lvm的关闭

[root@localhost ~]# umount /mnt/lv01 
[root@localhost ~]# lvremove /dev/vg0/lv01  //删除lv 
Do you really want to remove active logical volume lv01? [y/n]: y 
  Logical volume "lv01" successfully removed 
[root@localhost ~]# vgchange -a n vg0     //使vg0不具有active标志 
  0 logical volume(s) in volume group "vg0" now active 
[root@localhost ~]# vgremove vg0       //删除vg 
  Volume group "vg0" successfully removed 
[root@localhost ~]# pvremove /dev/sda5     //删除pv 
  Labels on physical volume "/dev/sda5" successfully wiped 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值