侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

linux下磁盘管理之利器 lvm使用介绍

linux  /  管理员 发布于 7年前   307

一、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/sda52756 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磁盘格式化与管理知识点总结
    下一条:
    Linux中zip压缩和unzip解压缩命令详解
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在Linux系统中使用Iptables实现流量转发功能流程步骤(0个评论)
    • vim学习笔记-入门级需要了解的一些快捷键(0个评论)
    • 在centos7系统中实现分区并格式化挂载一块硬盘到/data目录流程步骤(0个评论)
    • 在Linux系统种查看某一个进程所占用的内存命令(0个评论)
    • Linux中grep命令中的10种高级用法浅析(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-11
    • 2017-07
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-03
    • 2022-04
    • 2022-08
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-06
    • 2023-07
    • 2023-10
    • 2023-12
    • 2024-01
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客