LVM基本管理
LVM 是什么
LVM 全称 Logical Volume Manager 是一个基于Linux内核开放的逻辑卷管理器,用来管理磁盘等存储设备。
LVM 通过将底层的物理磁盘抽象封装,然后以逻辑卷的形式呈现给上层应用。在传统的磁盘管理机制中,文件系统直接挂载到磁盘分区上,无法跨磁盘创建文件系统。而LVM作为中间层,将文件系统和物理磁盘解耦,使得文件系统无需关注具体的物理磁盘,从而可以跨越物理磁盘的限制。
图1:LVM示意图
LVM 的优缺点
优点:
- 可以动态扩展文件系统的大小;
- 文件系统可以跨硬盘;
缺点:
- 一块物理磁盘的损坏会影响整个卷组;
- 存储性能收到一定影响;
LVM 中的基本概念
Physical Volume 物理卷 (PV)
Unix块设备节点,可用作LVM的存储。例如:一个硬盘,一个MBR或GPT分区,一个环回文件,一个设备映射设备(例如dm-crypt)。它承载一个LVM头。
Volume Group 卷组(VG)
一组PV,用作LV的容器。从VG为LV分配PEs。
Logical Volume 逻辑卷(LV)
“虚拟/逻辑分区”,它存在于VG中,由PEs组成。LVs是类似于物理分区的Unix块设备,例如,它们可以直接用文件系统进行格式化。
Physical Extent 物理区段(PE)
可以分配给LV的PV中最小的连续区段(默认为4MB)。可以将PEs看作PV的一部分,可以分配给任何LV。
常用命令概述
查看显示类命令
pvs,vgs,lvs,pvdisplay,vgdisplay,lvdisplay
这类命令最常用,在做所有操作之前,都要先通过这类命令查看现状,这类命令直接执行即可,一般不需要加参数。s是查看简单信息,display是查看详细信息。
创建扩展类命令
安装操作系统时如果选择使用LVM分区的话,会有创建好的PV、VG、LV,常用的操作就是创建PV,加入现有VG,然后创建新的LV或者扩展现有LV。
# pvcreate /dev/sdb1 创建PV;其中/dev/sdb1可以是分区也可以是磁盘 # vgcreate data-vg /dev/sdb1 # vgextend centos-vg /dev/sdb1 # lvcreate -L 100G -n data_lv centos-vg # lvextend -L 100G /dev/centos-vg/home_lv |
缩减命令很少使用,项目上尽量避免。需要注意的是,xfs格式不能进行缩减操作。
基本操作
图2:基本操作流程图
需要注意的点:
1.如果是新建分区来创建PV,那么在创建完分区后需要重读分区表来让系统识别到新创建的分区。具体命令如下:
# partprobe |
2.扩展LV时的-L参数后面指定的参数表示扩展到,如果想实现增加多少的效果,需要在数字前加符号“+”。
3./etc/fstab是操作系统启动时的关键文件,该文件的编辑一定要谨慎,必须保证正确性,出错会导致操作系统无法正常启动。
基本操作示例:
对新增加的磁盘分区(当然也可以不分区,将整个硬盘创建PV) # fdisk /dev/sdc 将分区sdc1创建PV 查看创建的PV信息 将新创建的PV加入到现有的VG centos-vg中 查看VG信息 扩展现有LV,增加100G容量 扩展文件系统 创建新LV 格式化LV 挂载到文件系统 查看挂载情况 配置/etc/fstab |
swap分区的调整
调整 swap lv 大小为 32G # swapoff /dev/mapper/centos-swap # lvresize -L 32G /dev/mapper/centos-swap # mkswap /dev/mapper/centos-swap # swapon /dev/mapper/centos-swap # free -g |