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
创建VG;其中data-vg是要创建的VG,/dev/sdb1是要加入该VG的PV

# vgextend centos-vg /dev/sdb1
扩展VG;其中centos-vg是要扩展的VG,/dev/sdb1是要加入该VG的PV

# lvcreate -L 100G -n data_lv centos-vg
创建LV;其中100G为LV大小,data_lv为LV名称,centos-vg为LV所在VG

# lvextend -L 100G /dev/centos-vg/home_lv
扩展LV;其中100G表示扩展到100G,也可以通过+100G表示增加100G,/dev/centos-vg/home_lv为需要扩展的LV,此时不能也不需要指定VG,只能在原VG上进行扩展,如果VG剩余空间不足,应首先扩展VG

 

缩减命令很少使用,项目上尽量避免。需要注意的是,xfs格式不能进行缩减操作

 

基本操作

 

图2:基本操作流程图

 需要注意的点:

1.如果是新建分区来创建PV,那么在创建完分区后需要重读分区表来让系统识别到新创建的分区。具体命令如下:

# partprobe

 2.扩展LV时的-L参数后面指定的参数表示扩展到,如果想实现增加多少的效果,需要在数字前加符号“+”

 3./etc/fstab是操作系统启动时的关键文件,该文件的编辑一定要谨慎,必须保证正确性,出错会导致操作系统无法正常启动。

 

基本操作示例:

对新增加的磁盘分区(当然也可以不分区,将整个硬盘创建PV)
# fdisk /dev/sdc

将分区sdc1创建PV
# pvcreate /dev/sdc1

查看创建的PV信息
# pvs

将新创建的PV加入到现有的VG centos-vg中
# vgextend centos-vg /dev/sdc1

查看VG信息
# vgs
此时剩余空间应该已经增加了PV提供的大小

扩展现有LV,增加100G容量
# lvextend -L +100G /dev/centos-vg/home_lv

扩展文件系统
xfs_growfs 针对xfs格式,只支持增大
resize2fs 针对ext2/ext3/ext4格式,增大减小都可以
# xfs_growfs /dev/centos-vg/home_lv

创建新LV
# lvcreate -L 100G -n data_lv centos-vg

格式化LV
# mkfs.xfs /dev/centos-vg/data_lv
# mkfs.ext4 /dev/centos-vg/data_lv
根据需要将LV格式化成指定的格式

挂载到文件系统
# mount /dev/centos-vg/data_lv /data/

查看挂载情况
# df -h

配置/etc/fstab
# vi /etc/fstab
/dev/centos-vg/data_lv /data        xfs     defaults        0 0
配置完成后,可以将新增加的挂载点卸载,然后使用mount -a通过该配置文件进行全部挂载,以检验新增加配置的正确性

 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

版权声明:本文为rayso原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/rayso/p/12167587.html