以下是 CentOS 7 下 LVM(Logical Volume Manager)逻辑卷管理的实战配置案例,涵盖常见操作场景和详细命令说明:


一、LVM 核心概念

组件 作用
PV(Physical Volume) 物理卷(如 /dev/sdb 硬盘或分区),是 LVM 的底层物理存储单元
VG(Volume Group) 卷组,由多个 PV 组成,作为存储池
LV(Logical Volume) 逻辑卷,从 VG 中划分的逻辑存储单元,可格式化并挂载使用
PE(Physical Extent) 物理扩展块(默认 4MB),是 LVM 的最小存储单元

二、实战案例演示

场景 1:初始创建 LVM 逻辑卷

目标:将新硬盘 /dev/sdb 配置为 LVM 逻辑卷并挂载到 /data

步骤 1:创建物理卷 (PV)
# 查看可用磁盘
lsblk # 创建物理卷
pvcreate /dev/sdb # 查看 PV 信息
pvs
步骤 2:创建卷组 (VG)
# 创建名为 vg_data 的卷组,并指定 PE 大小为 16MB(可选)
vgcreate -s 16M vg_data /dev/sdb # 查看 VG 详细信息
vgs
vgdisplay vg_data
步骤 3:创建逻辑卷 (LV)
# 创建名为 lv_storage 的逻辑卷,分配 50G 空间
lvcreate -L 50G -n lv_storage vg_data # 查看 LV 信息
lvs
步骤 4:格式化并挂载
# 格式化为 ext4 文件系统
mkfs.ext4 /dev/vg_data/lv_storage # 创建挂载点并挂载
mkdir /data
mount /dev/vg_data/lv_storage /data # 设置开机自动挂载
echo "/dev/vg_data/lv_storage /data ext4 defaults 0 0" >> /etc/fstab

场景 2:扩展逻辑卷空间

目标:将现有逻辑卷 /dev/vg_data/lv_storage 从 50G 扩容至 80G。

步骤 1:扩展逻辑卷
# 扩展 LV 大小(+30G)
lvextend -L +30G /dev/vg_data/lv_storage # 调整文件系统大小(ext4 适用)
resize2fs /dev/vg_data/lv_storage # 若使用 xfs 文件系统:
# xfs_growfs /data
验证扩展
df -h /data  # 查看挂载点容量

场景 3:添加新硬盘到现有卷组

目标:将新硬盘 /dev/sdc 添加到 vg_data 卷组并扩展逻辑卷。

步骤 1:扩展卷组
# 创建新物理卷
pvcreate /dev/sdc # 将 PV 加入现有 VG
vgextend vg_data /dev/sdc # 查看 VG 可用空间
vgdisplay vg_data
步骤 2:扩展逻辑卷
# 扩展 LV 占用全部剩余空间
lvextend -l +100%FREE /dev/vg_data/lv_storage # 调整文件系统
resize2fs /dev/vg_data/lv_storage

场景 4:创建 LVM 快照(备份)

目标:为 /dev/vg_data/lv_storage 创建快照用于临时备份。

步骤 1:创建快照卷
# 创建 10G 快照卷(需确保 VG 有足够空间)
lvcreate -L 10G -s -n lv_storage_snap /dev/vg_data/lv_storage
步骤 2:挂载快照
mkdir /mnt/snap
mount /dev/vg_data/lv_storage_snap /mnt/snap
步骤 3:删除快照
umount /mnt/snap
lvremove /dev/vg_data/lv_storage_snap

场景 5:缩减逻辑卷(高危操作!)

目标:将逻辑卷从 80G 缩减至 60G(仅限 ext2/3/4 文件系统)。

步骤 1:卸载文件系统并检查
umount /data
e2fsck -f /dev/vg_data/lv_storage
步骤 2:缩减文件系统
resize2fs /dev/vg_data/lv_storage 60G
步骤 3:缩减逻辑卷
lvreduce -L 60G /dev/vg_data/lv_storage
mount /dev/vg_data/lv_storage /data

三、常用命令速查

命令 功能
pvcreate /dev/sdX 创建物理卷
vgcreate vg_name /dev/sdX 创建卷组
lvcreate -L 20G -n lv_name vg_name 创建逻辑卷
vgextend vg_name /dev/sdY 扩展卷组
lvextend -L +10G /dev/vg_name/lv_name 扩展逻辑卷
lvremove /dev/vg_name/lv_name 删除逻辑卷

四、注意事项

  1. 数据备份

    在缩减逻辑卷或删除操作前,务必备份重要数据。
  2. 文件系统兼容性

    XFS 文件系统 不支持缩减,仅能扩展。
  3. 快照卷空间

    快照卷大小需足够存储原卷在快照期间的变化数据。
  4. RAID 与 LVM

    建议在硬件/软件 RAID 之上配置 LVM 以提高可靠性。

通过以上实战案例,可灵活管理 CentOS 7 的存储资源。建议在测试环境中验证操作后再应用于生产环境。

Centos7-LVM逻辑卷管理配置实战的更多相关文章

  1. linux的存储管理(RALD) LVM 逻辑卷管理 虚拟阵列

    磁盘存储管理 LVM 逻辑卷 虚拟阵列 1.Linux系统中 磁盘使用 存在3个大问题: 1.灵活性 2.安全性 3.性能 2.解决办法RAID独立磁盘冗余阵列 RAID(Redundant Arra ...

  2. CentOS下LVM逻辑卷管理技术解释

    1.LVM逻辑卷管理技术产生的背景 企业日益变化的存储需要使得传统的磁盘分区存储显得不够灵活 2.磁盘分区存储 对于这样的三个物理分区的话,迟早有一天会被数据填满,因为它是死的,无法进行缩放. 假设下 ...

  3. 『学了就忘』Linux文件系统管理 — 65、LVM逻辑卷管理介绍

    目录 1.LVM逻辑卷管理的简介 2.LVM逻辑卷管理的原理 3.总结建立LVM分区的步骤 1.LVM逻辑卷管理的简介 LVM是Logical Volume Manager的简称,中文就是逻辑卷管理. ...

  4. 18 LVM逻辑卷管理

    根据上一节的内容,我们知道md这个内核模块可以用来做软RAID的管理.同时RAID实现了两个功能:1.提高了磁盘的读写能力:2.对于数据进行了冗余备份: 但是,如果是管理员手动误删的数据,则一样无法找 ...

  5. LVM逻辑卷管理测试——逻辑卷扩展、收缩、快照及删除

    一.逻辑卷扩展 [root@lxjtest /]# umount /testLVM/ [root@lxjtest /]# df -h Filesystem Size Used Avail Use% M ...

  6. LVM逻辑卷管理测试——创建逻辑卷

    虚拟机里再添加两块硬盘,如下所示: 启动系统后,我们可以看到新添加的两块硬盘为/dev/sdb和/dev/sdc.每个2GB. [root@lxjtest ~]# fdisk -l Disk /dev ...

  7. CentOS LVM逻辑卷管理

    在CentOS 挂载(U盘NTFS格式,新硬盘,增加交换分区,扩展根分区等)中扩展根分区部分用的就是LVM逻辑卷管理来进行扩展的. 1.为什么会有逻辑卷管理 传统磁盘管理是直接对硬盘分区进行访问,你如 ...

  8. 【Linux】LVM 逻辑卷管理

    LVM - 逻辑卷管理 简介 LVM(Logical Volume Manager), 即逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制. 相关名词 PV(physical volume) ...

  9. Linux之LVM逻辑卷管理

    LVM逻辑卷管理 LVM机制:PV物理卷,VG卷组,LV逻辑卷. --功能-- --物理卷管理-- --卷组管理-- --逻辑卷管理-- create(建立) pvcreate vgcreate lv ...

  10. CentOS 6.7 配置LVM (逻辑卷管理)

    LVM 简介 LVM是逻辑盘卷组管理 (Logical Volume Manager) 的简称. LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性,在一定程度上解决普通磁盘分区带来 ...

随机推荐

  1. AD 侦查-LLMNR 毒化

    本文通过 Google 翻译 AD Recon – LLMNR Poisoning with Responder 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充. 导航 ...

  2. 基于CARLA/ROS的多传感器融合感知系统实战教程(附完整代码)

    引言:为什么需要多传感器融合? 在自动驾驶系统中,单一传感器存在固有缺陷: 摄像头:易受光照影响,缺乏深度信息: 激光雷达(LiDAR):成本高,纹理信息缺失: 毫米波雷达:分辨率低,角度精度差. 本 ...

  3. 网络编程:UDP网路编程

    参考:盛延敏:网络编程实战 一.UDP和TCP的不同 UDP 是一种"数据报"协议,而 TCP 是一种面向连接的"数据流"协议. TCP 是一个面向连接的协议, ...

  4. WPF中Resx文件中添加Byte[]

    参考:https://learn.microsoft.com/zh-tw/dotnet/api/system.resources.resxresourcewriter.generate?view=wi ...

  5. centos安装certbot

    一步一步来,官网的教程: yum install snapd systemctl enable --now snapd.socket ln -s /var/lib/snapd/snap /snap s ...

  6. 一文速通Python并行计算:11 Python多进程编程-进程之间的数据安全传输-基于队列和管道

    一文速通 Python 并行计算:11 Python 多进程编程-进程之间的数据安全传输-基于队列和管道 摘要: Python 多进程中,Queue 和 Pipe 提供进程间安全通信.Queue 依赖 ...

  7. git命令--拉取代码和切换分支

      git一般有很多分支,我们clone到本地的代码都是master分支,那么如何切换到其它分支呢?本文介绍主要操作流程和命令,包括拉取仓库代码.查看分支和切换分支,至于如何提交代码,需要的童鞋自己查 ...

  8. luffy

    Luffy 本项目使用Vue+Vite+Django+DRF+Elementui-Plus编写 项目需求介绍 # 线上销售课程的 -商城 -知识付费类 # 需求 -首页功能 -轮播图接口 -推荐课程接 ...

  9. ET框架服务端--升级3.1

    新版ET5.0支持.net core升级到3.1 1.git下载ET5.0  https://github.com/egametang/ET/tree/Branch_V5.0 2.本地安装 .net ...

  10. C# 添加一个具有自定义命名空间和相同类名的静态类:Console

    using CLRConsole = System.Console; namespace ExtensionMethodsDemo { public static class Console { pu ...