Centos7-LVM逻辑卷管理配置实战
以下是 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 |
删除逻辑卷 |
四、注意事项
- 数据备份:
在缩减逻辑卷或删除操作前,务必备份重要数据。 - 文件系统兼容性:
XFS 文件系统 不支持缩减,仅能扩展。 - 快照卷空间:
快照卷大小需足够存储原卷在快照期间的变化数据。 - RAID 与 LVM:
建议在硬件/软件 RAID 之上配置 LVM 以提高可靠性。
通过以上实战案例,可灵活管理 CentOS 7 的存储资源。建议在测试环境中验证操作后再应用于生产环境。
Centos7-LVM逻辑卷管理配置实战的更多相关文章
- linux的存储管理(RALD) LVM 逻辑卷管理 虚拟阵列
磁盘存储管理 LVM 逻辑卷 虚拟阵列 1.Linux系统中 磁盘使用 存在3个大问题: 1.灵活性 2.安全性 3.性能 2.解决办法RAID独立磁盘冗余阵列 RAID(Redundant Arra ...
- CentOS下LVM逻辑卷管理技术解释
1.LVM逻辑卷管理技术产生的背景 企业日益变化的存储需要使得传统的磁盘分区存储显得不够灵活 2.磁盘分区存储 对于这样的三个物理分区的话,迟早有一天会被数据填满,因为它是死的,无法进行缩放. 假设下 ...
- 『学了就忘』Linux文件系统管理 — 65、LVM逻辑卷管理介绍
目录 1.LVM逻辑卷管理的简介 2.LVM逻辑卷管理的原理 3.总结建立LVM分区的步骤 1.LVM逻辑卷管理的简介 LVM是Logical Volume Manager的简称,中文就是逻辑卷管理. ...
- 18 LVM逻辑卷管理
根据上一节的内容,我们知道md这个内核模块可以用来做软RAID的管理.同时RAID实现了两个功能:1.提高了磁盘的读写能力:2.对于数据进行了冗余备份: 但是,如果是管理员手动误删的数据,则一样无法找 ...
- LVM逻辑卷管理测试——逻辑卷扩展、收缩、快照及删除
一.逻辑卷扩展 [root@lxjtest /]# umount /testLVM/ [root@lxjtest /]# df -h Filesystem Size Used Avail Use% M ...
- LVM逻辑卷管理测试——创建逻辑卷
虚拟机里再添加两块硬盘,如下所示: 启动系统后,我们可以看到新添加的两块硬盘为/dev/sdb和/dev/sdc.每个2GB. [root@lxjtest ~]# fdisk -l Disk /dev ...
- CentOS LVM逻辑卷管理
在CentOS 挂载(U盘NTFS格式,新硬盘,增加交换分区,扩展根分区等)中扩展根分区部分用的就是LVM逻辑卷管理来进行扩展的. 1.为什么会有逻辑卷管理 传统磁盘管理是直接对硬盘分区进行访问,你如 ...
- 【Linux】LVM 逻辑卷管理
LVM - 逻辑卷管理 简介 LVM(Logical Volume Manager), 即逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制. 相关名词 PV(physical volume) ...
- Linux之LVM逻辑卷管理
LVM逻辑卷管理 LVM机制:PV物理卷,VG卷组,LV逻辑卷. --功能-- --物理卷管理-- --卷组管理-- --逻辑卷管理-- create(建立) pvcreate vgcreate lv ...
- CentOS 6.7 配置LVM (逻辑卷管理)
LVM 简介 LVM是逻辑盘卷组管理 (Logical Volume Manager) 的简称. LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性,在一定程度上解决普通磁盘分区带来 ...
随机推荐
- 由 Array.includes 函数引发对引用数据类型的思考
`` 数组的includes方法在日常的编程中比较常用到,其作用就是判断某一数据是否在数组中,通常来说,数组中的数据如果是数字,布尔值,或者字符串的话,都是能够进行判断的 例如: [1,2,3,4]. ...
- 字符型union注入
注入目标和思路:拿到库名---拿到表名---拿到列名---拿到用户名和密码 用 id=1' order by x --+ 来确定表有几列,然后用 id=0' union select x1,x1,x3 ...
- 一文速通Python并行计算:11 Python多进程编程-进程之间的数据安全传输-基于队列和管道
一文速通 Python 并行计算:11 Python 多进程编程-进程之间的数据安全传输-基于队列和管道 摘要: Python 多进程中,Queue 和 Pipe 提供进程间安全通信.Queue 依赖 ...
- Maven中配置maven-compiler-plugin 插件和jdk 17版本
如何修改Maven工程的JDK版本 修改项目中的pom.xml文件,添加maven-compiler-plugin插件3.8.1版本,指定JDK的编译版本为Java 17,简约版配置信息如下: < ...
- Spring注解之@Autowired:按类型自动装配Bean到数组、集合和Map
在Spring Boot项目中,如何把某些接口的多个实现类的Bean注入到Arrays, java.util.Collection 和 java.util.Map类型的变量中,方便应用的时候直接读取? ...
- 如何排查内存飙高-Linux top命令快速入门
Linux系统出现了性能问题,一般我们可以通过 top.iostat.free.vmstat和ifstat等命令来初步定位问题.其中,top命令是Linux下常用的性能分析工具,用于实时监测系统资 ...
- gcc、g++命令
gcc 与 g++ 分别是 gnu 的 c & c++ 编译器 gcc/g++ 在执行编译工作的时候,总共需要4步: 1.预处理,生成 .i 的文件[预处理器cpp] 2.将预处理后的文件转换 ...
- 初识protobuf
protobuf的优点 性能方面 序列化后,数据大小可缩小3倍 序列化速度快 传输速度快 使用方面 使用简单:proto编译器自动进行序列化和反序列化 维护成本低:多平台只需要维护一套对象协议文件,即 ...
- CF650A 题解
Problem 原题链接 Meaning 求曼哈顿距离和欧氏距离相等的坐标组数量. Solution 这道题用枚举复杂度较高,我们考虑探究当两点的曼哈顿距离与欧氏距离相等时,它们横纵坐标的关系. 如下 ...
- Blazor学习之旅(10)多语言+本地化
大家好,我是Edison. 在上一篇我提到了接下来会介绍一下如何在Blazor中实现多语言,这就安排上了. 多语言+本地化的背景 在Web应用开发中,我们可能会有一些需要多语言+本地化的场景,特别在一 ...