LVM

Linux用户安装Linux操作系统时遇到的一个最常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具(比如PatitionMagic等),但这都只是暂时解决办法,没有根本解决问题。因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。幸运的是Linux提供的逻辑盘卷管理(LVM,LogicalVolumeManager)机制就是一个完美的解决方案

LVM简介

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。
LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

LVM对比于传统硬盘存储的优点

1、 统一管理:整合多个磁盘或分区形成一个资源池
2、 灵活性:可以使用不同磁盘、不同分区来组成一个逻辑卷
3、 可伸缩性:逻辑卷和卷组的容量都可以使用命令来扩展或者缩减,且不会影响破坏原有数据,支持磁盘热插拔。
4、 支持热插拔
5、 支持在线数据移动
6、 设备命名方便
7、 镜像卷:可以很方便的做数据镜像
8、 卷快照:把逻辑卷中的数据快照保存到新的逻辑卷进行备份

添加一块硬盘,模拟添加物理磁盘

关闭搭建好的虚拟机。

添加硬盘

在VMware Workstation软件界面——虚拟机——设置

LVM扩容与缩容 - 图1

添加——硬盘——下一步
LVM扩容与缩容 - 图2

其他的不需要特殊设置只管下一步——指定磁盘容量,自定义磁盘大小——下一步——完成——点击确定——添加硬盘完成。

此时打开centos,进行下一步操作。
LVM扩容与缩容 - 图3

查看虚拟机块设备

lsblk——将以树状列出所有块设备

  1. NAME :这是块设备名。
  2. MAJ:MIN :本栏显示主要和次要设备号。
  3. RM :本栏显示设备是否可移动设备。注意,在本例中设备sdb和sr0的RM值等于1,这说明他们是可移动设备。
  4. SIZE :本栏列出设备的容量大小信息。例如298.1G表明该设备大小为298.1GB,而1K表明该设备大小为1KB。
  5. RO :该项表明设备是否为只读。所有设备的RO值为0,表明他们不是只读的。
  6. TYPE :本栏显示块设备是否是磁盘或磁盘上的一个分区。
  7. MOUNTPOINT :本栏指出设备挂载的挂载点。

LVM扩容与缩容 - 图4
df -h——检查linux服务器的文件系统的磁盘空间占用情况

  1. Filesystem:表示系统文件处于哪个分区,该列显示的是设备名称。
  2. Size :设备的内存大小
  3. Used:用掉磁盘空间大小
  4. Avail:剩余磁盘空间大小
  5. Use%:磁盘使用率
  6. Mounted on:文件系统的挂载点,也就是磁盘挂载的目录位置

LVM扩容与缩容 - 图5

我们的硬盘,在dev文件夹下。当我们搭建起来一台虚拟机时,会自动装载一硬盘sda。我们最好不要在sda中进行操作。sda就如同windows中的C盘,操作不好就会导致系统崩溃。刚刚我们新添加的硬盘,也出现在了dev中,名字是sdb。是的,硬盘的名称排序就是以A-Z的形式。[LVM扩容与缩容 - 图6]

LVM的基本术语

物理卷PV

物理卷在LVM系统中处于最底层,可以理解为,PV就是Linux的物理硬盘。创建了物理卷,这个硬盘就包含了LVM协议,才可以进行后面的操作。

卷组VG

卷组建立在物理卷之上,由一个或多个物理卷组成。卷组创建之后,可以动态的添加物理卷到卷组中。卷组就类似盒子,装载着PV物理卷。

逻辑卷LV

逻辑卷建立在VG卷组之上,可以理解为从VG中拉出一块空间、LV的大小比较自由,可以动态的进行扩容或缩小。

物理区域PE

每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。由于vg是多个PE(块)组成的,而且每个vg块的PE最大数量是65534。默认每个PE的大小是4m。也就是说默认的每个vg最大也就是4m乘65534=256G,因此PE块的大小决定了最终vg的大小。

LVM逻辑卷操作

此操作后,使用xhell进行配置。xshll具体操作可以查看我的文章

fdisk /dev/sdb——fdsik创建分区表 因为新添加的硬盘名称为 sdb 所以就是/dev/sdb

暂时记着这几个命令:

p 查看分区

n 创建分区

w 保存操作

LVM扩容与缩容 - 图7

按照图中的步骤创建两个分区 都为+5G!

LVM扩容与缩容 - 图8

最重要的一步,创建完输入 W 保存
LVM扩容与缩容 - 图9

此时可以通过lsblk查看分区。此时sdb下已经出现两个分期去,并且都为5G。此时的sdb1和sdb2为part

LVM扩容与缩容 - 图10

创建物理卷

小提示:在控制台输入pv,vg,lv时,会显示他包含的所有的命令。大多命令非常好记,就是pv+英语单词。所以英语很重要!有些时候不用百度就知道啥功能了。

LVM扩容与缩容 - 图11

命令格式:pvcreate 分区路径

图中命令是将两个分区都创建为物理卷。

LVM扩容与缩容 - 图12

查看物理卷

指令:pvdisplay / pvs 。pvs简略信息,pvdisplay详细信息,最主要的还是看其是否有显示物理卷和物理卷内存。

LVM扩容与缩容 - 图13 LVM扩容与缩容 - 图14

创建卷组

指令格式:vgcreate -s 16m自定义卷组名称 /dev/sdb1 /dev/sdb2

-s是指定PE的内存大小,PE的大小决定了vg的最大内存。默认为4m,这里设置为16

LVM扩容与缩容 - 图15

vgs/vgdisplay 查看卷组信息

LVM扩容与缩容 - 图16

卷组的扩容

则需要再创建一个分区。还是正常的流量操作

LVM扩容与缩容 - 图17

指令格式:vgextend liaovg 分区路径

会发现,我们并没有创建PV物理卷。其实vgextend 会自动识别,并且为分区创建物理卷,随后添加到卷组中。

LVM扩容与缩容 - 图18

LVM扩容与缩容 - 图19

创建逻辑卷

指令格式:lvcreate -L +5G -n 自定义逻辑卷名称 卷组名称

-L 逻辑卷内存

-n 逻辑卷名称

LVM扩容与缩容 - 图20

格式化逻辑卷

指令格式:mkfs.ext4 逻辑卷路径

ext4是centos5之后的硬盘格式,咱们centos7用ext4就ok了。

LVM扩容与缩容 - 图21

挂载

此时已经制作好了,可以正式使用了。

指令格式:mount 逻辑卷格式 挂载位置

最后用df -h 查看挂载信息

LVM扩容与缩容 - 图22

此时分区就完成了。

逻辑卷扩容

此时可以不用取消挂载就可以扩容的~

LVM扩容与缩容 - 图23

逻辑卷缩减

缩减就需要取消挂载了!!!!

指令格式:umount 路径位置

如果无法卸载,尝试下强制卸载!

LVM扩容与缩容 - 图24

LVM扩容与缩容 - 图25

重新设置逻辑卷的大小

此命令有可能会对文件造成损害的哦~!

LVM扩容与缩容 - 图26