当前位置: 首页 > news >正文

Linux逻辑卷管理操作指南

Linux逻辑卷管理操作指南

逻辑卷核心组件

LVM 的管理依赖于以下 4 个核心概念,从底层到上层依次为:

组件英文全称作用说明
物理卷(PV)Physical Volume将物理磁盘(如/dev/sda)或分区(如/dev/sda5)初始化为 LVM 的基本存储单元,用于后续整合。
卷组(VG)Volume Group将一个或多个物理卷整合为一个 “存储池”,统一管理物理卷的存储空间。
物理扩展(PE)Physical Extent卷组中最小的存储单元(默认 4MB,可自定义),LV 的大小必须是 PE 的整数倍。
逻辑卷(LV)Logical Volume从 VG 中划分出的 “虚拟分区”,可直接格式化并挂载使用,大小可动态调整(扩容 / 缩容)。

优势

  1. 动态调整大小:LV 的大小可在线(无需卸载)或离线调整,灵活应对存储需求变化。
  2. 整合分散存储:可将多个物理磁盘 / 分区的空间合并为一个 VG,统一分配使用。
  3. 便于管理:通过逻辑卷名(如/dev/vg0/lv0)访问存储,无需关心底层物理设备细节。

逻辑卷的层级结构

文件系统
逻辑卷LV
卷组VG
物理卷PV
分区
硬盘

逻辑卷的制作流程由图从下到上生产

删除时由上到下

一、物理卷(PV)操作

创建物理卷

  • 语法:pvcreate [设备路径1] [设备路径2] ...
  • 实例:将分区sda5sda6初始化为物理卷
    pvcreate /dev/sda5 /dev/sda6
    

查看物理卷信息

  • 语法:pvdisplay [可选:物理卷路径]
  • 实例1:显示所有物理卷信息
    pvdisplay
    
  • 实例2:显示指定物理卷sda5的信息
    pvdisplay /dev/sda5
    

删除物理卷

  • 语法:pvremove 物理卷路径1 物理卷路径2 ...(需确保物理卷未加入任何卷组)

  • 实例:删除物理卷sda5sda6

    pvremove /dev/sda5 /dev/sda6
    

二、卷组(VG)操作

创建卷组

  • 语法:vgcreate [选项] 卷组名 物理卷路径1 物理卷路径2 ...

    • 选项:-s [大小] 指定PE(物理扩展块)大小(默认4M)
  • 实例1:创建卷组vg0,包含sda5sda6(默认PE大小)

    vgcreate vg0 /dev/sda5 /dev/sda6
    
  • 实例2:创建卷组vg0,指定PE大小为8M

    vgcreate vg0 -s 8M /dev/sda5 /dev/sda6
    

查看卷组信息

  • 语法:vgdisplay [可选:卷组名]
  • 实例1:显示所有卷组信息
    vgdisplay
    
  • 实例2:显示指定卷组vg0的信息
    vgdisplay vg0
    

卷组扩容

  • 语法:vgextend 卷组名 新物理卷路径
  • 实例:将新物理卷sda7添加到卷组vg0
    vgextend vg0 /dev/sda7
    

删除卷组

  • 语法:vgremove 卷组名(需确保卷组内无逻辑卷)

  • 实例:删除卷组vg0

    vgremove vg0
    

三、逻辑卷(LV)创建与永久挂载

创建逻辑卷

  • 语法1(按大小创建):lvcreate -L [大小] -n 逻辑卷名 卷组名
  • 语法2(按PE数量创建):lvcreate -l [PE数量] -n 逻辑卷名 卷组名
  • 实例1:在vg0中创建1G大小的逻辑卷lv0
    lvcreate -L 1G -n lv0 vg0
    
  • 实例2:在vg0中创建包含200个PE的逻辑卷lv0(需结合卷组PE大小计算实际容量)
    lvcreate -l 200 -n lv0 vg0
    

查看逻辑卷信息

  • 语法:lvdisplay [可选:逻辑卷路径或卷组名/逻辑卷名]
  • 实例1:显示所有逻辑卷信息
    lvdisplay
    
  • 实例2:显示指定逻辑卷vg0/lv0的信息
    lvdisplay /dev/vg0/lv0
    

逻辑卷扩容

  • 语法:lvextend -L [目标大小或+增量] 逻辑卷路径

  • 实例:将lv0从200MB扩容至500MB

    lvextend -L 500MB /dev/vg0/lv0
    或
    lvextend -L +300MB /dev/vg0/lv0
    

    语法2:lvextend -l [目标的pe数量] 逻辑卷路径

    实例:将逻辑卷lv0扩容至1G

    lvextend -l 250 /dev/vg0/lv0
    

格式化逻辑卷

  • 语法:mkfs.[文件系统类型] 逻辑卷路径
  • 实例1:格式化为xfs文件系统
    mkfs.xfs /dev/vg0/lv0
    
  • 实例2:格式化为ext4文件系统
    mkfs.ext4 /dev/vg0/lv0
    

永久挂载配置

  • 语法:编辑/etc/fstab,添加行:[逻辑卷路径] [挂载点] [文件系统类型] defaults 0 0
  • 实例:将vg0/lv0挂载到/disk(ext4格式)
    # 编辑配置文件
    vim /etc/fstab
    # 添加以下内容
    /dev/vg0/lv0  /disk  ext4  defaults  0  0
    

生效挂载配置

  • 语法:mount -a
  • 实例:使/etc/fstab中的配置立即生效
    mount -a
    

删除逻辑卷

  • 语法:lvremove 逻辑卷路径(需先卸载)

  • 实例:删除vg0/lv0(需先执行umount /disk

    lvremove /dev/vg0/lv0
    

四、逻辑卷在线扩容(无需卸载)

  1. xfs文件系统扩容

    • 步骤1:扩容逻辑卷
      lvextend -L 2G /dev/vg0/lv0
      # 或按增量扩容(增加1G)
      lvextend -L +1G /dev/vg0/lv0
      
    • 步骤2:同步文件系统大小
      • 语法:xfs_growfs [挂载点]
      • 实例:同步/disk挂载点的xfs文件系统
        xfs_growfs /disk
        
  2. ext4文件系统扩容

    • 步骤1:扩容逻辑卷(同xfs)
      lvextend -L 2G /dev/vg0/lv0
      
    • 步骤2:同步文件系统大小
      • 语法:resize2fs 逻辑卷路径
      • 实例:同步vg0/lv0的ext4文件系统
        resize2fs /dev/vg0/lv0
        

五、逻辑卷离线缩小(仅ext4支持,xfs不支持)

  1. 卸载逻辑卷

    • 语法:umount [挂载点]
    • 实例:卸载/disk挂载点
      umount /disk
      
  2. 检查文件系统完整性

    • 语法:e2fsck -f 逻辑卷路径
    • 实例:检查vg0/lv0的ext4文件系统
      e2fsck -f /dev/vg0/lv0
      
 
3. **缩小文件系统**  - 语法:`resize2fs 逻辑卷路径 [目标大小]`  - 实例:将`vg0/lv0`的文件系统缩小至500M  ```bashresize2fs /dev/vg0/lv0 500M
  1. 缩小逻辑卷

    • 语法:lvreduce -L [目标大小] 逻辑卷路径
    • 实例:将vg0/lv0的逻辑卷大小调整为500M(需与文件系统大小一致)
      lvreduce -L 500M /dev/vg0/lv0
      
  2. 重新挂载

    • 语法:mount -a
    • 实例:按/etc/fstab配置重新挂载
      mount -a
      

http://www.dtcms.com/a/316602.html

相关文章:

  • Arxiv-Daily
  • AUTOSAR进阶图解==>AUTOSAR_RS_ECUResourceTemplate
  • 【前端】使用jQuery播放图片,类似播放幻灯片一样
  • Redis面试精讲 Day 11:Redis主从复制原理与实践
  • RAG向量检索增强生成
  • MediaPipe框架解析(五):c++ face_mesh解析
  • TDengine 中 TDgpt 的模型评估工具
  • 基于WOA鲸鱼优化的VMD-GRU时间序列预测算法matlab仿真
  • 代码随想录day57图论7
  • (ZipList入门笔记一)ZipList的节点介绍
  • 【RH124 问答题】第 6 章 管理本地用户和组
  • ⭐CVPR2025 MatAnyone:稳定且精细的视频抠图新框架
  • LLM开发——语言模型会根据你的提问方式来改变答案
  • Android与Flutter混合开发:页面跳转与通信完整指南
  • 深入剖析 RAG 检索系统中的召回方式:BM25、向量召回、混合策略全解析
  • Go语言 string
  • stm32项目(21)——基于STM32和MPU6050的体感机械臂开发
  • 跨尺度目标漏检率↓82.4%!陌讯多尺度融合算法在占道经营识别的实战优化
  • 结构化开发方法详解:软件工程的奠基性范式
  • 机器学习——贝叶斯
  • Android 之 Kotlin中的协程(Dispatchers.IO)
  • Android UI 组件系列(十一):RecyclerView 多类型布局与数据刷新实战
  • ara::log::LogStream::WithTag的概念和使用案例
  • 鸿蒙开发--web组件
  • Java技术栈/面试题合集(5)-SpringBoot篇
  • SpringBoot3.x入门到精通系列:4.1 整合 MongoDB 详解
  • 《四种姿势用Java玩转AI大模型:从原生HTTP到LangChain4j》
  • Ubuntu24.04环境下非DOCKER方式安装Mysql5.7
  • 今日行情明日机会——20250805
  • 呼叫中心系统录音管理功能的应用