• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    linux下磁盘管理之利器 lvm使用介绍
    POST TIME:2021-10-20 10:53

    一、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

    上一篇:Linux中zip压缩和unzip解压缩命令详解
    下一篇:linux磁盘格式化与管理知识点总结
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信