Linux--管理LVM逻辑卷 --原理+命令双结合(LVM的概述与建立,LVM的管理命令,LVM的应用步骤,磁盘配额的详解)
前言
- LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制
- 每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精评估LVM和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。因为如果估 计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。
- 虽然有很多动态调整磁盘的工具可以使用,例如Partition Magic等等,但是它并不能完全解决问题,因为某个分区可能会再次被耗尽;另外一个方面这需要 重新引导系统才能实现,对于很多关键的服务器,停机是不可接受的,而且对于添加新硬盘,希望一个能跨越多个硬盘驱动器的文件系统时,分区调整程序就不能解 决问题。
- 因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。幸运的是Linux提供的逻辑盘卷管理(LVM,Logical Volume Manager)机制就是一个完美的解决方案。
一:LVM概述
- 在安装CentOS 系统的过程中选择自动分区时,就会默认采用LVM分区方案。不需要再进行手动配置
- 动态调整磁盘容量,从而提高磁盘管理的灵活性
- 需要注意的是,“/boot”分区用于存放引导文件,不能基于LVM创建,必须独立出来
- 图形化管理界面:system-config
1.1:PV(Physical Volume,物理卷)
- 物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。
- 创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(Physical Extent,PE),从而构成物理卷。
- 物理卷一般直接使用设备文件名称,如/dev/sdb1 , /dev/sdb1, /dev/sdd等。
- 对于转换成物理卷的普通分区,建议先使用fdisk工具将分区类型的ID标记号改为“8e”(8e表示LVM逻辑卷),若是整块硬盘,可以将所有磁盘空间划分为一个主分区后再做相对应调整
1.2:VG(Volume Group,卷组)
- 卷组:由一个或多个物理卷组成一个整体
- 在卷组中可以动态的添加或移除物理卷
- 许多个物理卷可以分别组成不同的卷组,卷组的名称由用户自定义
1.3:LV(Logical Volume,逻辑卷)
- 逻辑卷建立在卷组之上,与物理卷没有直接关系
- 对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷
- 使用mkfs等工具在逻辑卷上创建文件系统以后,就可以挂载到Linux系统中的目录下使用
1.4:建立LVM分区管理机制的过程
二:管理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 |
- 几个主要命令的格式
pvcreate 设备名1 [设备名2 ... ...]
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名
2.1:PV物理卷管理
2.1.1:pvcreate命令
- pvcreate用于将分区或整个硬盘转换为物理卷,主要是添加LVM属性并划分PE存储单元
- 该命令需要使用硬盘或分区的设备文件作为参数
例如
[root@localhost ~]# pvcreate /dev/sdd1
Physical volume "/dev/sdd1" successfully created.
2.1.2:pvscan命令
- pvscan命令用于扫描系统中的所有物理卷,并输出相关信息。
例如
[root@localhost ~]# pvscan
PV /dev/sdd1 lvm2 [5.00 GiB]
Total: 3 [44.99 GiB] / in use: 2 [39.99 GiB] / in no VG: 1 [5.00 GiB]
2.1.3:pvdisplay命令
- pvdisplay命令用于显示物理卷的详细信息
- 需要使用指定的物理卷作为命令参数,默认时将显示所有物理卷信息
例如
[root@localhost ~]# pvdisplay /dev/sdd1
"/dev/sdd1" is a new physical volume of "5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdd1
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID bNDg18-PxbF-0GCW-365f-RnO0-OHJ0-n5RzJE
2.1.4:pvremove命令
- pvremove命令用于将物理卷还原成普通分区或磁盘,不再用于LVM体系
- 被移除的物理卷将无法被pvscan命令识别
例如
[root@localhost ~]# pvremove /dev/sd[b-c]1
Labels on physical volume "/dev/sdb1" successfully wiped.
Labels on physical volume "/dev/sdc1" successfully wiped.
[root@localhost ~]# pvscan
No matching physical volumes found
2.2:VG卷组管理
2.2.1:vgcreate命令
- vgcreate命令用于将一个或多个物理卷创建为一个卷组
- 第一个命令参数用于设置新卷组的名称。然后依次指定需要加入到该卷组的物理卷作为参数
vgcreate命令基本格式
root@localhost ~]# vgcreate 卷组名称 物理卷
例如
[root@localhost ~]# vgscan 123 /dev/sdb1 /dev/sdd1
Command does not accept argument: 123.
2.2.2:vgscan命令
- vgscan命令用于扫描系统中已建立的LVM卷组及相关信息
例如
[ro