LVM概述
LVM是逻辑卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。
LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。
基本的逻辑卷管理概念:
PV(Physical Volume)- 物理卷
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。
VG(Volumne Group)- 卷组
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
LV(Logical Volume)- 逻辑卷
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组
LVM的管理命令
LVM管理命令主要分为三大类:PV物理卷管理、VG卷组管理、LV逻辑卷管理,对应的命令程序文件分别以”pv”、”vg”、”lv”开头,如下表所示:
功能 PV管理命令 VG管理命令 LV管理命令
scan 扫描 pvscan vgscan lvscan
create 创建 pvcreate vgcreate lvcreate
display 显示 pvdisplay vgdisplay lvdisplay
remove 移除 pvremove vgremove lvremove
extend 扩展
vgextend lvextend
reduce 减少
vgreduce lvreduce
PV物理卷管理
pvscan命令:用于扫描系统所有物理卷,并输出相关信息
pvcreare命令:用于将分区或整个硬盘转换成物理卷
例如:把分区 /dev/sdb1、/dev/sdb2 转换成物理卷
# pvcreate /dev/sdb1 /dev/sdb2
pvdisplay命令:用于显示物理卷的详细信息,需要指定物理卷作为命令参数
# pvdisplay /dev/sdb1
pvremove命令:用于将物理卷还原成普通分区或磁盘,不在属于LVM体系
# pvremove /dev/sdb1
VG卷组管理
vgscan命令:用于扫描系统以建立的LVM卷组及相关信息
vgcreare命令:用于将一个或多个物理卷创建成一个卷组
例如:使用物理卷 /dev/sdb1、/dev/sdb2 创建名为 ysf 的卷组
# vgcreate ysf /dev/sdb1 /dev/sdb2
vgdisplay命令:用于显示各卷组的详细信息,需要指定卷组名作为命令参数
# vgdisplay ysf
pvremove命令:用于删除指定的卷组,需要指定卷组名作为命令参数
# vgremore ysf
vgextend命令:用于扩展卷组的磁盘空间
例如:将物理卷 /dev/sdb3 添加到卷组 ysf 中
# vgextend ysf /dev/sdb3
LV逻辑卷管理
lvscan命令:用于扫描系统中已建立的逻辑卷及相关信息
lvcreare命令:用于从指定的卷组中分割空间,以创建新的逻辑卷
基本格式:lvcreare -L 容量大小 -n 逻辑卷名 卷组名
例如:在卷组 ysf 中建立一个新的逻辑卷,容量为8GB,名称为 yang# lvcreate -L 8G -n yang ysf
lvdisplay命令:用于显示逻辑卷的详细信息,需要指定逻辑卷的设备文件作为命令参数
# pvdisplay /dev/ysf/yang
lvextend命令:用于动态扩展逻辑卷的磁盘空间
基本格式:lvextend -L +容量大小 /dev/ 卷组名 / 逻辑卷名
例如:为 ysf 逻辑卷扩展10GB的磁盘空间,并使用 resize2fs 命令重设大小
lvextend -L +10G /dev/ysf/yang
resize2fs /dev/ysf/yang
lvremove命令:用于删除指定的逻辑卷,需要指定逻辑卷的设备文件作为命令参数
lvremove /dev/ysf/yang
逻辑卷创建之后,使用 mkfs 命令对逻辑卷进行格式化,创建xfs文件系统,并挂载到 /maibox 目录下
# mkfs -t xfs /dev/ysf/yang # mount /dev/ysf/yang /maibox
下面具体开始做实验
首先在VM虚拟机上给Linux添加3块20G的硬盘一共60G
三块20G的硬盘已经添加完成,接下来使用reboot命令重启系统init 6也可以,如果不重启系统系统将无法识别硬盘
使用cd /dev ;ls命令查看了dev目录,确定新添加的三块硬盘已经被识别
别识别之后还没有分区还没有格式化,首先要分区格式化使他们变成物理卷,使用fdisk /dev/sdb进入添加的第一块硬盘的设置模式按n创建一个主分区接着直接一直回车把所以的空间都分配给分区1,最后查看已经生成分区1,20个G
接下来输入t 更改分区的文件类型,LVM的文件类型是8e,输入8e然后w退出
添加的第二块磁盘跟第三块磁盘也是一样的操作
接下来输入fdisk -l查看一下硬盘信息,确认已经设置完成
使用pvcreate /dev/sd{b..d}1命令把刚才已经分配好的三块硬盘成为物理卷
使用pvscan命令查看物理卷情况,确定空闲未被使用的物理卷就是刚才添加的三块硬盘60个G
接下来使用vgcreate vg /dev/sd{b..d}1的命令创建一个名叫“vg”的卷组
使用vgdisplay命令查看一下就看到刚刚创建的卷组vg,每个物理卷由多个PE组成,而基本组成单位PE的大小是4M
接下来使用命令lvcreate -L 25G -n vg1 vg 创建一个逻辑卷,-L 25G的意思是指逻辑卷为25G,而-n vg1是指它的逻辑卷的卷名
现在使用cd /dev; ls命令进入dev目录并查看已经看到vg卷组的设备文件
接下来继续使用lvcreate创建一个容量为15G名字为vg2的逻辑卷
接下来使用lvdisplay查看查看逻辑卷的详细信息,看到刚才的两个逻辑卷都已经创建成功了
顺便使用ls -l /dev/vg命令看看我们的vg1 跟vg2已经创建成功存在于dev目录下的vg里面
如果逻辑卷的容量不够用了怎么办,这边逻辑卷主要有一个弹性收缩的特点如果不想使用可以删除,如果不够使用的话可以随时添加容量。这边使用vextend -L +10G /dev/vg/vg1 给刚刚添加的vg1逻辑卷增加了10G 并使用lvdisplay查看
现在的逻辑卷已经添加完成,接下来必须要去格式化它才能使用。格式化命令mkfs -t xfs /dev/vg/vg1, mkfs -t xfs /dev/vg/vg2
格式化完成之后接下来要做的是创建两个挂载点,并把创建的两个逻辑卷挂载就可以使用了。如果想删除逻辑卷的话直接使用lvremove命令就可以删除指定的逻辑卷,需要指定逻辑卷的设备文件作为命令参数
如果被挂载当中的逻辑卷添加了容量能不能使用呢?答案是可以的我们试一下。使用lvextend -L +2G /dev/vg/vg1给vg1的逻辑卷添加了2G的容量,显示已经从原来的35G增长到了37G
但是现在的系统还是无法识别到刚刚添加的2G,那怎么办呢
增加容量完成够必须使用xfs_growfs ( xfs文件系统扩展命令)给它更新一下
更新完成后再使用df -hT命令查看一下,就能看见容量已经从原来的35G增加成为37G了