Orange的运维学习日记–28.Linux逻辑卷详解

文章目录

  • Orange的运维学习日记--28.Linux逻辑卷详解
    • 为什么使用 LVM
    • 基本概念
    • 创建物理卷
    • 创建卷组
    • 创建逻辑卷
    • 创建文件系统并挂载
    • 清理 LVM 对象
    • 扩展与缩减逻辑卷
      • 扩展 LV
      • 缩减 LV
    • 调整文件系统大小
      • 扩展 XFS 文件系统
      • 扩展 EXT4 文件系统
      • 缩减 EXT4 文件系统
    • 逻辑卷快照
    • 创建 RAID 逻辑卷
      • 创建 RAID0 条带卷
      • 创建 RAID1 镜像卷

为什么使用 LVM

物理分区方式虽然简单,但存在以下不足

  • 分区必须使用连续空间,扩展时经常需要借助额外工具进行挂载区间移动
  • 难以跨多块硬盘创建单一文件系统,受单盘容量限制
  • 单盘故障将导致该分区上所有数据不可用

LVM 提供了一种逻辑抽象层,将多个物理设备合并为一个存储池,实现灵活的动态扩展、缩减、快照及镜像等功能


基本概念

LVM 由三个核心对象组成

  • 物理卷(PV)
    基于磁盘、分区或软件 RAID 设备创建,存储 LVM 元数据
  • 卷组(VG)
    将一个或多个 PV 聚合为一个逻辑存储池,管理员可在池内划分空间
  • 逻辑卷(LV)
    从 VG 中按需切分出的可挂载块设备,类似于传统分区

在这里插入图片描述

LVM 管理流程分为三步

  1. 在物理设备上创建 PV
  2. 将 PV 加入 VG
  3. 从 VG 上创建 LV

在这里插入图片描述


创建物理卷

创建 PV 时,LVM 会在设备开头和结尾写入元数据,建议新加设备、分区或 RAID 设备上执行

# 单个设备创建 PV
pvcreate /dev/sdb# 同时对多个设备创建 PV
pvcreate /dev/sd{c,d}# 查看所有 PV 列表
pvs# 检查单个 PV 详细属性
pvdisplay /dev/sdb

在 PV 详细信息中,你可以看到 PV 大小、可用物理扩展(PE)数量及 UUID 等关键信息


创建卷组

卷组是物理卷的集合,后续逻辑卷会从中分配空间

# 创建名称为 webapp 的 VG,包含 /dev/sdb
vgcreate webapp /dev/sdb# 创建名称为 dbapp 的 VG,包含 /dev/sdc 和 /dev/sdd
vgcreate dbapp /dev/sd{c,d}# 查看所有 VG 列表及其聚合容量
vgs# 查看卷组 dbapp 详细信息
vgdisplay dbapp

在 vgdisplay 输出中,重点关注 VG 大小(VSize)、空闲空间(VFree)和 PE 大小(默认 4MiB,可用 -s 调整)


创建逻辑卷

逻辑卷相当于传统分区,支持跨盘、在线扩容、镜像及快照等高级功能

# webapp VG 中创建 5G 大小的 LV,名称为 webapp01
lvcreate -n webapp01 -L 5G webapp# dbapp VG 中创建 25G 跨盘 LV,名称为 data01
lvcreate -n data01 -L 25G dbapp# 列出所有 LV 及其所属 VG、大小等信息
lvs

逻辑卷有三种常见路径

  • /dev/卷组名/逻辑卷名
  • /dev/mapper/卷组名-逻辑卷名
  • /dev/dm-数字

可通过 ls -l /dev/卷组名/逻辑卷名 查看对应映射


创建文件系统并挂载

在逻辑卷上创建文件系统与普通分区相同,可选 XFS、EXT4 等格式

# 使用 XFS 格式化
mkfs.xfs /dev/webapp/webapp01# 挂载至目标目录
mount /dev/webapp/webapp01 /var/www/html

持久化挂载需在 /etc/fstab 中添加相应条目,保证重启后自动挂载


清理 LVM 对象

删除操作会清除所有数据,请务必确认无用后再执行

# 卸载挂载点
umount /dev/webapp/webapp01# 删除 LV
lvremove /dev/webapp/webapp01 /dev/dbapp/data01# 删除 VG
vgremove webapp dbapp# 删除 PV
pvremove /dev/sd{b..d}

扩展与缩减逻辑卷

扩展 LV

当 VG 空间充足,需要在线为 LV 增加容量时使用

# 在 webapp01 上增加 2G 空间
lvextend -L +2G /dev/webapp/webapp01# 查看最新大小
lvs /dev/webapp/webapp01

缩减 LV

缩减前请确保文件系统先缩减且无活跃写操作,避免数据损坏

# 从 webapp01 上减少 2G 空间
lvreduce -L -2G /dev/webapp/webapp01# 查看最新大小
lvs /dev/webapp/webapp01

调整文件系统大小

扩展 XFS 文件系统

XFS 只支持在线扩展,不支持在线缩减

# 扩展 LV 至 15G
lvextend -L 15G /dev/webapp/webapp01# 挂载点已挂载情况下在线扩容
xfs_growfs /var/www/html# 或者一并扩容 LV 和文件系统
lvextend -rL 20G /dev/webapp/webapp01

扩展 EXT4 文件系统

EXT4 支持在线扩展、离线缩减

# 扩展 LV 至 25G
lvextend -L 25G /dev/webapp/webapp01# 在线扩容文件系统
resize2fs /dev/webapp/webapp01# 或者一并扩容 LV 和文件系统
lvextend -rL 30G /dev/webapp/webapp01

缩减 EXT4 文件系统

缩减需提前卸载,且不能小于当前使用空间

  1. 卸载文件系统
  2. 检查文件系统完整性
  3. 离线缩减文件系统至目标大小
  4. 缩减 LV
  5. 挂载并验证
umount /var/www/html
e2fsck -f /dev/webapp/webapp01
resize2fs /dev/webapp/webapp01 10G
lvreduce -L 10G /dev/webapp/webapp01
mount /dev/webapp/webapp01 /var/www/html

逻辑卷快照

快照基于写时复制机制,记录原 LV 某一时刻数据状态

# 创建容量 10G 快照,名称 webapp01-snap1
lvcreate -s -n webapp01-snap1 -L 10G /dev/webapp/webapp01# 卸载原 LV 并挂载快照
umount /dev/webapp/webapp01
mount /dev/webapp/webapp01-snap1 /mnt/snapshot# 在快照上进行读写测试
echo hello world > /mnt/snapshot/hello.txt
cat /mnt/snapshot/hello.txt

快照可用作临时备份或测试环境,还原后可选择保留或删除


创建 RAID 逻辑卷

创建 RAID0 条带卷

条带卷将数据分散写入多个物理卷,提升并行读写性能,无冗余,任何一块设备故障都会丢失数据

假设存在三个未使用的物理卷 /dev/sdb/dev/sdc/dev/sdd,先将它们加入同一卷组

pvcreate /dev/sdb /dev/sdc /dev/sddvgcreate raidvg /dev/sdb /dev/sdc /dev/sdd

使用三条带创建一个 30G 大小的逻辑卷,指定条带数(-i)和条带大小(-I)

lvcreate -n lv_stripe -L 30G -i3 -I64K raidvg

参数说明

  • -i3:将数据分成 3 条带,分别写入三块物理卷
  • -I64K:每条带大小为 64KB,增大并行度需适配实际 I/O 大小

格式化并挂载

mkfs.xfs /dev/raidvg/lv_stripe
mount /dev/raidvg/lv_stripe /mnt/stripe

查看条带卷分布

lsblk /dev/sd{b..d}
# 三个设备下都会出现同一个 lv_stripe 的映射

创建 RAID1 镜像卷

镜像卷将数据写入两块或多块物理卷,提供数据冗余,任一副本设备损坏后仍可读取

假设存在两个物理卷 /dev/sdb/dev/sdc,先加入卷组

pvcreate /dev/sdb /dev/sdcvgcreate mirrorgroup /dev/sdb /dev/sdc

创建一个带有 1 份镜像的 5G 逻辑卷

lvcreate -n lv_mirror -L 5G -m1 mirrorgroup

参数说明

  • -m1:每个数据块有一份镜像,共两份副本
  • 若要两份镜像(总 3 份),可指定 -m2

格式化并挂载

mkfs.ext4 /dev/mirrorgroup/lv_mirror
mount /dev/mirrorgroup/lv_mirror /mnt/mirror

检查镜像状态

lvs -o +devices mirrorgroup/lv_mirror
# 可见两个物理设备各自映射相同 LV
卷```bash
lvcreate -n lv_mirror -L 5G -m1 mirrorgroup

参数说明

  • -m1:每个数据块有一份镜像,共两份副本
  • 若要两份镜像(总 3 份),可指定 -m2

格式化并挂载

mkfs.ext4 /dev/mirrorgroup/lv_mirror
mount /dev/mirrorgroup/lv_mirror /mnt/mirror

检查镜像状态

lvs -o +devices mirrorgroup/lv_mirror
# 可见两个物理设备各自映射相同 LV

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/92010.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/92010.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/92010.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI大模型学习三十三、HeyGem.ai 服务端(ubuntu)docker 安装 /客户端(win)分离部署

一、说明服务端安装官方安装客户端在windows 上安装解决分离问题利用samba实现共享,我是在局域网访问,安装道理可以在非局域网访问重新弄了一块显卡,所以驱动也重新装下二、环境准备(base) mucunax58:~$ lsb_release -a No LSB modules are …

AI在安全方面的十个应用场景

人工智能(AI)正在重塑安全领域的“游戏规则”,把“被动防御”变成“主动狩猎”。综合当前主流实践与最新案例,可将其应用归纳为以下十大场景:威胁检测与狩猎利用机器学习/深度学习模型对网络流量、终端行为和云端日志进…

Android --- Bug调查经验记录

文章目录1.布局中Pag不显示的问题2.数据库降级问题3.RecycleView 列表滑动卡顿1.布局中Pag不显示的问题 在调查一个pag不显示的问题,整体逻辑没有问题,但是就是不显示 pag不显示的根本原因大概有文件找不到,一个是路径问题,一个是…

【C语言】深度剖析指针(三):回调机制、通用排序与数组指针逻辑

文章目录一、回调函数:通过函数指针实现灵活调用1.1 什么是回调函数?1.2 回调函数的实际应用:简化计算器代码二、qsort函数2.1 qsort函数的参数说明2.2 使用qsort排序整型数据2.3 使用qsort排序结构体数据示例:学生信息排序2.4 qs…

sql调优总结

sql调优 线上发现部分sql查询时间过长。使用explain观察是否命中表的索引。未命中索引,使用 TABLE add index 语句添加索引。 除此之外,单个字段命中联合索引的情况也会导致查询变慢 针对多个字段的查询可添加联合索引。 总结如下慢sql的原因&#xff1a…

如何在nuxt项目中使用axios进行网络请求?

在 Nuxt 项目中使用 Axios 进行网络请求有两种常用方式:一是直接安装 Axios 并全局配置,二是使用 Nuxt 官方推荐的 nuxtjs/axios 模块(更便捷)。以下是详细步骤: 方法一:使用官方推荐的 nuxtjs/axios 模块&…

Unity 实现手机端和电脑项目在局域网内通信

电脑端启动后自动广播自身存在,手机端启动后监听广播并发现服务器。发现后自动建立 UDP 连接,双方可互发消息。内置心跳检测,网络中断时会自动检测并提示断开using UnityEngine; using System.Net; using System.Net.Sockets; using System.T…

C++_389_定义一个禁用了赋值操作、具有线程同步资源保护的结构体,作为一些回调函数的参数,方便获取响应操作的结果等信息

/* 回调参数。注意:此结构体禁用了赋值,会编译报错 */struct API_CALLBACK_T{public:API_CALLBACK_T(){eRet = e_fail;bWait = true;

uniapp基础 (一)

目录 UniApp 是什么?有什么优势 跨平台高效开发 Vue.js 技术生态 插件生态丰富 渐进式开发支持 UniApp 跨平台兼容的实现原理 编译时转 运行时适配层 条件编译 性能优化策略 1.预编译模 2.原生组件混合渲 3.分包加载 UniApp 的生命周期钩子有哪些&#x…

【图像算法 - 10】进阶入门:改进 YOLO11 安全帽检测的关键参数与场景适配

一、项目背景与需求 视频全文介绍 【图像算法 - 10】进阶入门:改进 YOLO11 安全帽检测的关键参数与场景适配今天我们使用深度学习来训练一个安全帽检测系统,基于YOLO11的安全帽检测系统。我们使用了两万张图片的数据集训练了这次的基于YOLO11的安全帽检…

【C 学习】04.1-类型转换浮点数

“知道做不到就是不知道”一、类型转换1.自动类型转换:当运算符(常见、-、*、/、%)两边出现不一致的类型时,编译器会自动转换成较大的(范围更大)类型。从小到大:char-short-int-long-long long;…

基于反事实对比学习的鲁棒图像表征|文献速递-医学影像算法文献分享

Title题目Robust image representations with counterfactual contrastive learning基于反事实对比学习的鲁棒图像表征01文献速递介绍医学影像中的对比学习已成为利用未标记数据的有效策略。这种自监督学习方法已被证明能显著提升模型跨领域偏移的泛化能力,并减少训…

机器学习(5):朴素贝叶斯分类算法

贝叶斯的核心思想就是,谁的概率高就归为哪一类。贝叶斯推论P(A):先验概率。即在B事件发生之前,我们对A事件概率的一个判断。P(A|B):后验概率。即在B事件发生之后,我们对A事件概率的重新评估。P(B|A)/P(B):可能性函数。…

Docker 容器内进行 frp 内网穿透

开始之前需要有一台可以进行公网访问的服务器 下载安装 frp 这个直接到 github 官网就可以下载了 点击Releases 就可以查看到可以下载的源,根据自己电脑的型号进行选择就好了。 linux服务器上下载 如果是在linux的服务器上的话可以直接通过wget进行下载 例如&a…

复制网页文字到Word、WPS文字?选中后直接拖放

要把网页、PDF或其他应用中的文字内容复制到Word、WPS文字、记事本等,不一定要先复制、再粘贴,也可以选中文字后直接拖动到目标位置即可。多次操作,可以把窗口并排再拖动。如果你经常需要在不同应用之间引用文字,不妨试一试。操作…

Starrocks中的 Query Profile以及explain analyze及trace命令中的区别

背景 本文基于Starrocks 3.5.5 现有公司因为业务的不同,可能会更加关系单个SQL 的RT,因为如果一个SQL的RT比较大的话,影响的就是这个业务,从而影响收入,所以对于这方面我们就比较关心, 而最近在基于Starro…

网络 —— 笔记本(主机)、主机虚拟机(Windows、Ubuntu)、手机(笔记本热点),三者进行相互ping通

背景介绍最近在笔记本电脑上的虚拟机(Ubuntu、Windows Server搭配)上部署了"WD"开源手游服务器(旧版本),手机连接上了笔记本电脑开启的WIFI热点,同时手机上安装了"WD"手游客户端。于是首先得保证网络相互畅通才能玩游戏,…

裸露土堆识别准确率↑32%:陌讯多模态融合算法在生态监测的实战解析

原创声明本文为原创技术解析文章,涉及技术参数及架构描述均参考《陌讯技术白皮书》,禁止任何形式的转载与抄袭。一、行业痛点:裸露土堆识别的现实挑战在生态环境保护、建筑工地监管等场景中,裸露土堆的精准识别是遏制扬尘污染、防…

网站从HTTP升级到HTTPS网址方法

将网站从HTTP升级到HTTPS涉及几个关键步骤,以确保安全连接以及用户和搜索引擎的平稳过渡。获取并安装SSL/TLS证书:1、从CA机构授权提供商Gworg获取SSL/TLS证书。选项包括域名验证(DV)、组织验证(OV)和扩展验证(EV)证书,验证严格度各不相同&am…

WaitForSingleObject 函数参数影响及信号处理分析

一、第二个参数(超时时间)的影响 DWORD result WaitForSingleObject(hHandle, 1000);中的第二个参数1000表示等待超时时间为1000毫秒(1秒),其核心影响如下: 1. 函数行为控制 立即返回:若对象已…