一、LVM介绍

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,通过LVM可以在不停机的情况下调整分区大小,提高了磁盘分区管理的灵活性。

LVM的原理是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。

LVM专业用语

*物理存储介质(PhysicalStorageMedia)

指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元。

*物理卷(Physical Volume,PV)

指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

*卷组(Volume Group,VG)

类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。

*逻辑卷(Logical Volume,LV)

类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。

*物理块(Physical Extent,PE)

每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。

*逻辑块(Logical Extent,LE)

LVM抽象模型

LVM抽象模型

逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

1.使用fdisk 新建分区 修改ID为8e,LVM的分区类型为8e

3.使用 pvcreate 创建 PV 利用该命令将希望添加到卷组的所有分区或者磁盘创建为物理卷。

4.使用 vgcreate 创建 VG 创建卷组。

5.使用 lvcreate 创建 LV 创建逻辑卷

6.格式化LV

7.挂载

示例过程:

1. 查看磁盘情况

# fdisk -l

# lsblk

2.使用fdisk 新建分区 修改ID为8e 并更新

# fdisk /dev/sdb

# partprobe

3.使用 pvcreate 创建 PV (pvscan pvdisplay)

# pvcreate /dev/sdb{5,6,7}

4.使用 vgcreate 创建 VG (vgscan vgdisplay pvscan)

# vgcreate -s 16M testvg /dev/sdb{5,6,7}

5.使用 lvcreate 创建 LV (vgdisplay lsblk lvdisplay)

# lvcreate -l 192 -n testlv testvg

6.格式化LV

# mkfs -t ext4 /dev/testvg/testlv

7.挂载(mkdir df lsblk)

# mount /dev/testvg/testlv /mnt/test

删除LVM的过程

1.先卸载系统上面的 LVM 文件系统 (包括快照与所有 LV)

2.使用 lvremove 移除 LV

3.使用 vgchange -a n VGname 让 VGname 这个 VG 不具有 Active 的标志

4.使用 vgremove 移除 VG

5.使用 pvremove 移除 PV

6.使用 fdisk 修改 ID 回来啊

示例过程:1,2,1,3,4,5,6,1,7

1. 查看分区和磁盘情况

# df -h

# lsblk

2. 卸载LVM 文件系统

# umount /mnt/test

# umount /mnt/test2

3. 使用 lvremove 移除 LV ( lvscan lvdisplay )

# lvremove /dev/testvg/testlv

# lvremove /dev/testvg/test2lv

4.使用 vgchange -a n VGname 让 VGname 这个 VG 不具有 Active 的标志;

# vgchange -a n testvg

5.使用 vgremove 移除 VG:(vgscan vgdisplay)

# vgremove testvg

6.使用 pvremove 移除 PV (注意1 里面的lsblk 查看到的 )

# pvremove /dev/sdb{5,6,7,8}

7.使用 fdisk 修改ID为82

# fdisk /dev/sdb

8.更新

# partprobe

放大 LV 容量的过程

1.用 fdisk 配置新的具有 8e system ID 的 partition

2.利用 pvcreate 建置 PV

3.利用 vgextend 将 PV 加入VG

4.利用 lvresize 将新加入的 PV 内的 PE 加入LV 中

5.透过 resize2fs 将文件系统的容量确实添加!

示例过程

1. 查看磁盘情况

# fdisk -l

# lsblk

2.使用fdisk 新建分区 修改ID为8e 并更新

# fdisk /dev/sdb

# partprobe

3.使用 pvcreate 创建 PV (pvscan pvdisplay)

# pvcreate /dev/sdb8

4.利用 vgextend 将 PV 加入VG (vgdisplay)

# vgextend testvg /dev/sdb8

5.利用 lvresize 将新加入的 PV 内的 PE 加入LV 中(vgdisplay vgdisplay lvdisplay lsblk df )

# lvresize -l +64 /dev/testvg/testlv

6.透过 resize2fs 将文件系统的容量确实添加( df )

# resize2fs /dev/testvg/testlv

缩小LV容量的过程(抽取整块分区)

1.卸载

2.使用resize2f 直接降低LV的容量

示例过程

1.查看PV情况 (df lsblk)

# pvdisplay

# pvscan

2.卸载

# umount /mnt/test

3.磁盘检测LV

# e2fsck -f /dev/testvg/testlv

4.使用resize2fs 直接指定降低后的容量

# resize2fs /dev/testvg/testlv 3G

5.重新挂载

# mount /dev/testvg/testlv /mnt/test

6.使用lvresize 降低LV的容量 (pvscan pvdisplay )

#pvdisplay

#lvreszie -l -64 /dev/testvg/testlv

7.将要抽离的PV 的PE转移到 空闲PV中 (pvscan pvdisplay)

# pvmove /dev/sdb5 /dev/sdb8

8.使用vgreduce 将PV移除VG

# vgreduce testvg /dev/sdb5

9.使用pvremove 去除PV

# pvremove /dev/sdb5

10.使用fdisk 修改ID

# fdisk /dev/sdb

先缩小LV1容量,后增大LV2容量的过程(生产环境下的减小/home 增大/root)

1.卸载LV1

2.使用 e2fsck 检测一下LV1

3.使用resize2fs 重新定义LV1的大小

4.重新挂载,检验一下结果

5.使用lvreduce 或lvresize 减小LV1至指定大小

6.使用lvextend 增加LV2的大小

7.重新定义下LV2大小

示例过程

1. 查看磁盘情况

# fdisk -l

# df -h

# lsblk

2.备份LV1的数据(mkdir tar mv )

# mkdir /mnt/backup

# tar -jcv -f /mnt/backup/test.tar.bz2 *

# mv /mnt/test/* /mnt/backup/

3.卸载LV1 ()

# umount /mnt/test

4.使用 e2fsck 检测一下LV1

# e2fsck -f /dev/testvg/testlv

5.使用resize2fs 重新定义LV1的大小

# resize2fs -p /dev/testvg/testlv 2G

6.重新挂载,检验一下结果

# mount /dev/testvg/testlv /mnt/test

# df -h

7.使用lvreduce 或lvresize 减小LV1至指定大小

# lvresize -L 2G /dev/testvg/testlv

# lvreduce -L 2G /dev/testvg/testlv

8.使用lvextend 增加LV2的大小

# lvextend -l +100%FREE /dev/testvg/test2lv

# lvextend -L +1G /dev/testvg/test2lv

9.重新定义下LV2大小

# resize2fs -p /dev/testvg/test2lv

10.检查结果

# df -h

# lsblk

查看下其他的实例过程

# mkdir /backup

# mv /home/* /backup/

# umount /home

# lvremove /dev/centos/home

# lvcreate -L 50G -n home cents

# mkfs -t xfs /dev/centos/home

# mv /backup/* /home/

# lvextend -L +xxxG /dev/centos/root

# xfs_growfs root

# rm -rf /backup

缩小LV是先声明 resize2fs -p 后定义 lvresize -L 的过程

扩大LV是先定义 lvresize -L 后声明 resize2fs -p 的过程

缩下VG是移除空闲的PV的过程

温馨提示

感谢您浏览《linux下LVM学习_逻辑卷管理》

现邀请您关注我们的【5分享】(fivsha)公众号,你将获取更多的IT资源。

如果有疑问也可以在公众号里面回复您遇到的问题或是点击在线帮助联系我们。

linux lvm 8e下继续划分分区,linux下LVM学习_逻辑卷管理相关推荐

  1. linux系统中的分区与挂载,以及使用LVM逻辑卷管理器管理物理卷,卷组,逻辑卷知识点总结

    物理设备的命名规则 在Linux系统中一切都是文件,硬件设备也不例外.既然是文件,就必须有文件名称.系统内核中的udev设备管理器会自动把硬件名称规范起来,目的是让用户通过设备文件的名字可以猜出设备大 ...

  2. xenserver 虚拟机扩容lvm磁盘分区的方法_从零开始学Linux运维|35.LVM(逻辑卷管理)的创建...

    简单来说 LVM是建立在硬盘和分区之上的一个逻辑层,提高磁盘分区管理的灵活性 如果没有使用LVM,我们直接访问文件系统读取硬盘内容 使用了LVM我们是通过逻辑卷的东西来读取硬盘内容 使用LVM增加一个 ...

  3. linux虚拟磁盘管理pe大小6,Linux下磁盘的高级管理——LVM逻辑卷管理

    文章目录 逻辑卷是什么 逻辑卷的原理 逻辑卷的优点 lv的管理 lv的建立 xfs格式下lvm的拉伸 ext4下lvm的拉伸和缩减 lvm快照 lvm快照的原理和作用 快照的建立 lvm的删除 逻辑卷 ...

  4. Linux下的LVM逻辑卷管理

    ################# ####lvm逻辑卷#### ################# ##LVM逻辑卷的简述 Linux LVM是linux逻辑卷管理(Logical Volume M ...

  5. 浅谈Linux磁盘存储管理续【逻辑卷管理(LVM)】

    一.LVM的基本概念 在对磁盘进行分区大小规划时,有时往往不能确定这个分区要使用的总空间大小,而用fdisk对磁盘分区后,每个分区的大小已经固定了,如果分区设置的过大,就白白浪费了磁盘空间,而分区设置 ...

  6. Linux常用命令(八)LVM逻辑卷管理

    Linux常用命令(八)LVM逻辑卷管理 一.LVM概述     LVM是Linux系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下 ...

  7. 学习OpenStack之 (4): Linux 磁盘、分区、挂载、逻辑卷管理 (Logical Volume Manager)

    0. 背景: inux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间.普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻 ...

  8. linux逻辑卷管理(LVM )

    逻辑卷管理的技术可理解为,将单个或多个物理磁盘分区(PV物理卷)组成逻辑卷组(VG),再把卷组分成多个逻辑卷(LV),主要特点是,在不影响原来数据情况下可简易的扩充磁盘的大小(缩小硬盘空间可能会导至数 ...

  9. Linux系统之LVM(逻辑卷管理)

    LVM相关知识 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制. LVM是建立在磁盘和分区之上的一个逻辑层,来提高磁盘分区 ...

最新文章

  1. iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
  2. 传统方法的点云分割以及PCL中分割模块
  3. 成功解决fp = builtins.open(filename, quot;rbquot;) OSError: [Errno 22] Invalid argument: 'F:\\File_Pyt
  4. Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理
  5. small用于不连续数组_Excel公式技巧19: 在方形区域内填充不重复的随机整数
  6. Spring Mvc中使用Task实现定时任务,以及遇到的一个问题
  7. Java NIO学习笔记 三 散点/收集 和频道转换
  8. 移动电商营销吸睛法宝----图标、标签
  9. 再谈Bellman-Ford
  10. 思科CEO自爆:G20虚拟会议用的我家技术
  11. KDD China技术峰会回顾:大牛云集,教你如何基于大数据 手握人工智能未来
  12. 同济大学 线性代数 第六版 pdf_线性代数同济第六版第五章课后习题答案!
  13. Unity 贴图自动匹配材质工具 贴图自动添加到材质球工具 材质球匹配贴图工具 Substance Painter制作的贴图自动匹配材质球工具
  14. 腾讯云服务器linux系统有图形界面,腾讯云服务器如何搭建Ubuntu可视化界面?
  15. 2022为什么一定要学网络安全?
  16. win10下OpenJtag驱动安装
  17. .lnk文件 和一种较新的.lnk病毒及解决方法
  18. 程序员参加年会,CTO 要求技术部门穿成这样
  19. iscsi没有可用于使用快速连接登陆的目标_【解密】5G商用在即 OPPO快速网络切换方法;高管宣布华为河图商标注册成功;小米折叠屏专利曝光 类似于摩托罗拉Razr...
  20. 设计模式原则——SOLID

热门文章

  1. JMockit简单使用(二)
  2. iWatch报错: Authorizationsession time out
  3. 新东方托福词汇(List 26 ~ List 30)
  4. mac 浏览器解决跨域问题
  5. Bia布刷题日记 2022/2/16
  6. 针对寝室11:30熄灯合理性的调查
  7. npm安装报no such file or directory原因和解决方法
  8. 企业闪存应用八年回顾
  9. Java小白修炼手册--锻体期--第二阶段:Java SE 核心API
  10. 在 ionic 项目中使用(迁移) capacitor