LVM(Logical Volume Manager)逻辑卷管理是Linux磁盘管理中的常用操作, 本文主要描述LVM的基本原理以及对LVM的扩展和缩减的基本操作.

LVM实质是过软件方式将多个物理分区或磁盘组合成为一个容量可变大小的磁盘卷组VG, 再通过对VG中的基本单位PE构成可变大小的逻辑卷LV.

LVM的优点: 通过调整VG中PV的数量来动态调整VG的容量大小, 通过调整LV中PE的数量来动态调整LV的容量大小.

LVM中组成部分:

1. 分区: 磁盘中的可用分区, 分区类型ID应在创建磁盘分区过程中指定为8e

2. PV(Physical Valume)物理卷: LVM中最底层用于构成VG的组成部分

3. VG(Volume Group)卷组: VG就是通过将PV组合起来的逻辑上的大磁盘

4. PE(Physical Extend)物理扩展块: LVM中的最小单元, 在创建VG时进行划分, 创建指定大小的LV实质就是通过一定数量的PE来构建LV

5. LV(Logic Volume)逻辑卷: 从VG中划分出指定数量的PE来构建指定大小的LV

创建LVM的过程如下图所示:

主要步骤:

1. 创建PV: 将特定类型(8e)的可用分区创建为PV

2. 创建VG: 将指定PV构成一个可变大小的卷组VG, 并指定VG中的单位PE大小

# VG创建后会产生1个实际设备文件: /dev/dm-#; 同时产生2个指向该实际设备文件的符号链接文件, 命名方式为: /dev/VG_NAME/LV_NAME 和 /dev/mapper/VG_NAME-LV_NAME

3. 创建LV: 通过已有VG中指定数量的PE来构成可变大小的逻辑卷LV

=============================================================

新建LVM

1在现有磁盘上创建2个8e类型的分区/dev/sda7和/dev/sda8, 大小分别为2G和3G, 如图所示:

2通过pvcreat将新建两个分区创建为PV, 命令如下, 结果如图所示:# pvcreate /dev/sda{7,8}

3使用vgcreat将指定的PV设备创建VG名称为myvg, 命令如下, 结果如图所示:# vgcreate -s 8M myvg /dev/sda7    #选项: -s #Unit: 用于指定VG中的PE块的大小和单位

4在myvg中划分出LV的名称为mylv, 大小为3G, 命令如下, 结果如图所示:# lvcreate -L 3G -n mylv myvg    #选项: -L #Unit: 指定创建LV的大小; -n LV_NAME: 指定创建LV的名称

5对mylv进行ext4格式的文件格式化, 并将其挂在至/tmp/lv目录, 结果如图所示:

至此, 在LVM上创建的文件系统就可以通过/tmp/lv/进行访问

=============================================================

对LV进行扩容

当用户感觉现有的LV分区的磁盘空间较小时, 可以通过LVM对mylv再扩充3G空间

1在现有磁盘上创建1个新的磁盘分区/dev/sda9, 类型为8e, 大小为4G, 结果如图所示:

2将/dev/sda9创建为PV, 并将/dev/sda9添加至现有的myvg中, 该步骤与创建LV中的第2,3步类似, 此处就不赘述, 结果如图所示

3使用lvextend命令对当前mylv进行扩容至大小为6G, 命令如下, 结果如图所示:# lvextend -L +3G /dev/myvg/mylv    #选项: -L [+]#Unit: 指定扩容空间, 使用+时表示#为变量值, 不使用+时表示#为目标值, Unit用于指定单位

4相对mylv的挂载点/tmp/mylv进行查看发现目录大小没有改变, 因为此时文件系统没有变化, 需要使用resize2fs来重新规划文件系统边界, 命令如下, 结果如图所示:# resize2fs /dev/myvg/mylv    #使用resize2fs命令不指定分区调整后的大小时, 会使用全部分区大小

至此, LV扩展已经完成, 通过显示扩容后的文件系统大小为6G

注: 对LV进行扩容时, 不需要卸载文件系统, 在文件系统挂载状态时就能够进行扩容

=============================================================

对LV进行裁剪

如果发现现有LV分区上的文件系统使用率较低, 浪费现有磁盘空间时, 可以对LV进行裁剪已达到缩减LV分区大小的目的.

对mylv进行裁剪, 会保证文件系统内已有的文件的完整性, 为此先向mylv的文件系统内复制了两个目录/bin和/sbin, 如图所示

1先将mylv卸载, 再对mylv的文件系统进行强制磁盘检查, 命令如下,# umount /dev/myvg/mylv

# e2fsck -f /dev/myvg/mylv

2使用resize2fs命令将mylv文件系统的大小缩减至1G大小, 命令如下, 结果如图所示:# resize2fs /dev/myvg/mylv 1G    #指定文件系统更改后的大小为1G

3使用lvreduce命令将mylv分区缩减至1G大小, 缩减空间被重新分配至myvg中, 命令如下, 结果如图所示:# lvreduce -L 1G /dev/myvg/mylv

4如果要将mylv中使用的空间集中到指定物理磁盘分区上, 需要查看现有PV的使用情况, 如下图所示:

发现现在使用的全部是物理磁盘分区/dev/sda7中的空间, /dev/sda8和/dev/sda9中式空白的

5现在需要使用/dev/sda9来作为PV使用, 其他两块磁盘从PV中删除, 就需要使用pvmove来将/dev/sda7中的数据全部转移至/dev/sda9中, 命令如下, 结果如图所示:# pvmove /dev/sda7 /dev/sda9

6再次查看可得/dev/sda7中的所有数据已经转移至/dev/sda9中

7此时使用vgreduce来将指定设备从myvg中取出, 命令如下, 结果如下所示:# vgreduce myvg /dev/sda{7,8}

8使用pvremove将/dev/sda7和/dev/sda8从PV中删除, 命令如下, 结果如图所示:pvremove /dev/sda{7,8}

9最后将mypv挂载至原挂载点, 如图所示:

可以看到复制的/bin和/sbin两个目录依旧存在, 说明对LV进行裁剪不影响其内部文件系统

至此, LV裁剪已经完成

注: 对LV进行裁剪时时, 需要先将文件系统卸载, 再对文件系统进行强制检查并重新修改文件系统边界, 对LVM中的磁盘分区操作时, 要保证需要移除的物理磁盘分区是空白的, 才能将其对应的PV先移出VG, 再将其本身移出PV

本人水平有限, 如有理解不当的地方, 请大家给予指正, 非常感谢!

linux磁盘管理命令 lv,Linux磁盘管理--LVM原理及基本操作相关推荐

  1. Linux通过df命令查看显示磁盘空间满,但实际未占用问题

    问题产生:让同事查看挂载点 "/"占用100%的原因,查看之后发现是/home/work/下的一个日志文件太大占用导致,然后同事就直接执行了rm命令,结果导致文件删了,但是挂载点占 ...

  2. LInux 项目二命令总结,linux项目管理常用命令小结

    当前位置:我的异常网» 项目管理 » linux项目管理常用命令小结 linux项目管理常用命令小结 www.myexceptions.net  网友分享于:2015-08-26  浏览:13次 li ...

  3. linux中make命令大全,Linux中的命令 make -f 是什么意思

    二.Makefile的文件名 默认的情况下,make命令会在当前目录下按顺序找寻文件名为"GNUmakefile"."makef ile"."Make ...

  4. linux 限制带宽命令,Linux服务器限制网络带宽流量速率(限制应用程序和指定网卡的流量)

    linux 限制带宽命令,Linux服务器限制网络带宽流量速率 一.限制应用程序的网络流量速率 1.trickle介绍 2.如何判断trickle对应用程序是否有效? 3.Linux安装Trickle ...

  5. linux磁盘配置命令行,Linux全攻略--文件和磁盘管理

    Linux常见的文件系统介绍 支持十多种:JFS,ReiserFS,Ext,Ext2,Ext3,ISO9660,XFS,Minx,MSDOS,UMSDOS,VFAT, NTFS,HPFS,NFS,SM ...

  6. linux配额管理命令,【linux命令】linux 磁盘配额管理

    1.概述 限定用户/组在文件系统中的使用空间 2.限定的方式和单位 方式: 1)额限制:用户达到最大配额时,在规定时间可以继续存储 2)硬限制:用户达到最大配额时,就不允许使用 注:如果同时定额限制和 ...

  7. Dell服务器RAID常用管理命令总结 linux

    Dell服务器常用管理命令总结 准备 新版本的 MegaCli-1.01.24-0.i386.rpm 会把程序安装在/opt下,可以自定义安装目录,例如: rpm --relocate /opt/=/ ...

  8. linux进程管理命令kill,Linux进程管理命令-kill | IT运维网

    格式:kill -l [signal] -l:显示当前系统可用信号 -l:显示当前系统可用信号 [root@localhost ~]# kill -l 1) SIGHUP 2) SIGINT 3) S ...

  9. linux 查看磁盘信息命令行,linux命令-查看硬盘信息(磁盘阵列模式下)

    如果服务器有做磁盘阵列,那么运行fdisk -l或者smartctl –all /dev/sda,得不到你要的磁盘信息. [root@localhost /]# fdisk -l WARNING: G ...

最新文章

  1. 基于Python——实现远程下载sftp文件(只下载.zip文件)
  2. jsp+mysql开发论坛程序
  3. LeetCode_617.合并二叉树
  4. delphi7升级delphi2007可以互用马_莱万特 VS 马竞:西甲
  5. CF 295A - Greg and Array 差分數列
  6. vsftpd的简单安装和配置(只有三步)
  7. (2)FPGA面试题竞争与冒险
  8. 【AI面试题】GBDT原理、如何用于分类、常用损失函数
  9. 买iPhone 11的要不再等等?iPhone 12首曝:全系5G,回归经典造型
  10. 如何通过ssh登录linux,如何用SSH登录linux?
  11. 65lbc184应用电路原理_75lbc184应用电路
  12. python 常见的异常类型
  13. 388. Longest Absolute File Path
  14. Android基础入门教程——4.4.2 ContentProvider再探——Ducument Provider
  15. 【一键新机】免root/不刷机/拒绝Xposed 实现 Android改机,全新技术分析。
  16. 西瓜创客_西瓜创客_西瓜创客下载安装_西瓜创客app安卓版下载_好趣手游网
  17. 节奏大师小游戏制作流程
  18. Vue学习杂记(八)——SPA模式和前端路由
  19. 开源机器人库orocos KDL 学习笔记(五):Inverse Kinematric
  20. java项目使用百度云AI完成刷脸登录

热门文章

  1. CVPR2020中关于3D点云分割
  2. 一分钟详解Git使用技巧(一)
  3. 基于DoG的特征检测子(SIFT)_学习笔记
  4. 数字化如何影响药物开发
  5. Nature | 机器学习在药物研发中的应用
  6. 【问题收录】Eclipse the import java.awt cannot be resolve 问题解决
  7. 专业的秘密 | 南方医科大学生物信息学专业
  8. Microbiome:山大杜宗军团队揭示捕食性细菌新类群-慢生单胞菌目细菌独特的生境适应性...
  9. JHM:原生动物对酸性矿山废水侵蚀土壤的生态响应机制
  10. MPB:生态环境中心张丽梅组-​植物微生物组DNA提取扩增及溯源分析(视频)