Linux给磁盘扩容(LVM方式)

ops/2024/9/19 18:43:05/ 标签: linux, 运维, 服务器, 磁盘扩容, LVM, VG

LVM_0">Linux给磁盘扩容LVM方式)

最近测试性能,在本地打数据时,发现磁盘空间不足,于是想手动给/挂载点添加空间。这里介绍通过LVM方式快速给磁盘扩容

LVM:是一种技术,方便管理磁盘。如果不用LVM,那么就不好在之前的磁盘基础上扩容,比如我一块硬盘20G被写满了之后,我想将这块硬盘扩容到40G,就无法操作。只能新开一个磁盘。对于MySQL这种数据保存在本地磁盘路径/var/mysql/data这种就无法正确扩容。

  • 有人会说我直接新插一个更大的硬盘,然后把数据从旧磁盘复制到新磁盘上,显然这在数据量大的情况下是不合理的。会耗费大量的时间。

1 概念

  1. PV:物理卷,同一磁盘可划分为多个物理卷。
  2. VG:卷组,一个到多个PV可组成一个卷组。
  3. LV:逻辑卷,卷组可划分为多个逻辑卷。
  4. PE:Physical extent物理区域,硬盘可供指派给逻辑卷的最小单位(通常为 4MB)
  • 挂载点:lv与挂载点是1:1的关系。
    在这里插入图片描述

1.1 物理卷 Physical Volume (PV)

可以在上面建立卷组的媒介,可以是硬盘分区,也可以是硬盘本身或者回环文件(loopback file)。物理卷包括一个特殊的 header,其余部分被切割为一块块物理区域(physical extents)

VG__17">1.2 卷组 Volume group (VG): 将一组物理卷收集为一个管理单元

1.3 逻辑卷 Logical volume (LV): 虚拟分区,由物理区域(physical extents)组成

1.4 物理区域 Physical extent (PE): 硬盘可供指派给逻辑卷的最小单位(通常为 4MB)

2 实战

我本地/目录下有50G空间,现在我想扩容到100G。
在这里插入图片描述

2.1 相关基础命令

# 查看挂载点
df -h # 查看逻辑卷( logical volume)
lvdisplay# 查看当前的卷组(volume group),输出结果中的VG Size表示当前卷组总大小
vgdisplay# 查看当前的物理卷组(physical volume)
pvdisplay# 执行fdisk /dev/vdb给vdb磁盘创建分区
fdisk /dev/vdb# 格式化分区
mkfs -t xfs /dev/vdb1 # 一般用于centos7及以上
# mkfs -t ext4 /dev/vdb1 # 一般用于centos6# 创建pv,方便将pv交给vg管理
pvcreate /dev/vdb1# 给centos这个VG扩容
vgextend centos /dev/vdb1# 给LV扩容 
lvextend -l +100%FREE /dev/centos/root# 刷新分区
# resize2fs /dev/centos/root # 适用于centos6
xfs_growfs /dev/centos/root # centos7及以后

LVM_63">2.2 开始给LVM扩容

1. 查看fdisk:fdisk -l
fdisk -l

在这里插入图片描述

可以看到我们当前磁盘的基础信息,以及挂载情况。

# 查询挂载点情况
df -h 

在这里插入图片描述
可以看到我/下可用容量只有50G,现在我需要给它扩容。

2. 查看所有存储设备:fdisk -l |grep ‘/dev’
# 查看当前所有的存储设备
# fdisk -l |grep '/dev'
# 查看当前所有磁盘
fdisk -l |grep '/dev/vd'

在这里插入图片描述
手动给虚拟机或者物理机新增一块磁盘,再执行相同命令:

# 查看当前所有磁盘
fdisk -l |grep '/dev/vd'

在这里插入图片描述

3. 给磁盘创建分区:fdisk /dev/vdb
# 执行fdisk /dev/vdb给vdb磁盘创建分区
fdisk /dev/vdb
## n:新建分区
## l: 选择逻辑分区,如果没有,则首先创建主分区(p),然后再添加逻辑分区(硬盘最多四个分区 P-P-P-P 或 P-P-P-E)

在这里插入图片描述

# 查看是否分区成功
fdisk -l | grep 'dev/vd'

在这里插入图片描述

4. 格式化磁盘:mkfs -t xfs /dev/vdb1

文件系统类型centos6文件系统是ext4,因为设计较早,对于现今动辄上T的海量数据处理,性能较低。 centos7文件系统是xfs,适用于海量数据。

# 格式化分区
mkfs -t xfs /dev/vdb1 # 一般用于centos7及以上
# mkfs -t ext4 /dev/vdb1 # 一般用于centos6

在这里插入图片描述

5. 创建pv:pvcreate /dev/vdb1
# 创建pv,方便将pv交给vg管理
pvcreate /dev/vdb1
# pvscan查看卷组,观察是否创建成功
pvscan |  grep /dev/vdb1

在这里插入图片描述

6. 扩容vg:vgextend centos /dev/vdb1

我现在要给/扩容,所以要知道/属于哪个vg管理

# 查看lv
lvdisplay

在这里插入图片描述

所以我现在要给centos这个VG扩展容量

# 将/dev/vdb1这个pv交给centos这个vg管理
vgextend centos /dev/vdb1
# 查看vg状态
vgdisplay

在这里插入图片描述

7.扩容lv:lvextend -l +100%FREE /dev/centos/root

我们要给/目录扩容,所以需要知道/目录对应的LVPath是什么

# 查看/挂载点对应的信息
df -h 

在这里插入图片描述

# 查看LV虚拟卷信息,可以知道/对应的LVPath为/dev/centos/root
lvdisplay

在这里插入图片描述

下面就是给LV扩容:

# 按固定大小追加(追加10G给/dev/centos/root这个LVPath)
lvextend -L +10G /dev/centos/root# 按百分比追加
lvextend -l +100%FREE /dev/centos/root

以百分比追加为例,我将vg中剩下的所有容量全部分配给/

lvextend -l +100%FREE /dev/centos/root

在这里插入图片描述

# 查看LV是否扩容成功
lvdisplay

在这里插入图片描述
LV Size成功由50G扩容到了100G

8. 刷新分区:xfs_growfs /dev/centos/root

df 命令参看硬盘信息-T选项, 查看文件系统类型centos6文件系统是ext4,因为设计较早,对于现今动辄上T的海量数据处理,性能较低。 centos7文件系统是xfs,适用于海量数据。

# xfs格式的硬盘使用xfs_growfs
# ext4用resize2fs命令,
df -T # 查看文件系统类型(一般centos6是ext4,centos7及以后是xfs)
# resize2fs /dev/centos/root # 适用于centos6
xfs_growfs /dev/centos/root # centos7及以后

在这里插入图片描述

9. 验证df -h

扩容前:
在这里插入图片描述
扩容后:
在这里插入图片描述
注意: 不要卸载扩容的磁盘,可能出现丢失数据或是系统无法启动

因为多个LV对外提供的是一个VG,如果你卸载了其中一个磁盘导致LV失效,部分数据就可能丢失。类比:ES中的Shard

2.3 总结

  1. 新增磁盘
  2. fdisk给磁盘创建分区,fdisk /dev/vdb
  3. mkfs格式化磁盘,mkfs -t xfs /dev/vdb1
  4. pvcreate创建pv,pvcreate /dev/vdb1
  5. vgextend扩容vg,vgextend centos /dev/vdb1,给vg扩容(将/dev/vdb1交给centos这个vg管理)
  6. lvextend扩容lv,lvextend -l +100%FREE /dev/centos/root(将vg剩余的容量全部分配给/dev/centos/root这个lv)
  7. xfs_growfs刷新分区,# resize2fs /dev/centos/root # 适用于centos6
    xfs_growfs /dev/centos/root # centos7及以后
  8. df -h 查看挂载点大小变化,观察是否扩容成功

http://www.ppmy.cn/ops/2816.html

相关文章

OpenHarmony网络协议通信—libevent [GN编译] - 事件通知库

libevent主要是用C语言实现了事件通知的功能 下载安装 直接在OpenHarmony-SIG仓中搜索libevent并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 库代码存放路径:./third_party/libevent 修改添加依赖的编译脚本 在/developtools/bytrace_standard/…

【春秋云镜】CVE-2023-43291 emlog SQL注入

靶场介绍 emlog是一款轻量级博客及CMS建站系统,在emlog pro v.2.1.15及更早版本中的不受信任数据反序列化允许远程攻击者通过cache.php组件执行SQL语句。 不感兴趣的可以直接拉到最后面,直接获取flag 备注:没有通过sql注入获取到flag&…

【C++】:C++关键字,命名空间,输入输出,缺省参数

目录 一,C关键字(C98)二,命名空间2.1 命名冲突2.2 关键字namespace2.2.1 命名空间中可以定义变量/函数/类型2.2.2 命名空间可以嵌套2.2.3 同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。 2.3 命名空间的使用2.3.1 指定…

MindOpt APL向量化建模语法的介绍与应用(2)

前言 在数据科学、工程优化和其他科学计算领域中,向量和矩阵的运算是核心组成部分。MAPL作为一种数学规划语言,为这些领域的专业人员提供了强大的工具,通过向量式和矩阵式变量声明以及丰富的内置数学运算支持,大大简化了数学建模…

MQ概览及Kafka详解

文章目录 概览MQ优点MQ缺点常见MQ对比JMS消息模型点对点模式发布订阅模式 kafka基础架构发布订阅工作流程生产者生产者文件存储生产者分区策略生产者数据可靠性保证生产者数据一致性保证生产者ack机制ExactlyOnce生产者发送消息流程 消费者消费者分区分配策略消费者消费数据问题…

多模态AnyGPT——整合图像、语音和文本多模态大规模语言模型算法原理与实践

概述 大规模语言模型在理解和生成人类语言方面具有非凡的能力,但迄今为止,它们的能力主要局限于文本处理。然而,现实世界是一个多模式的环境,信息通过视觉、听觉和触觉等多种感官进行交换。融入这种多样性是开发下一代系统的主要…

「探索C语言内存:动态内存管理解析」

🌠先赞后看,不足指正!🌠 🎈这将对我有很大的帮助!🎈 📝所属专栏:C语言知识 📝阿哇旭的主页:Awas-Home page 目录 引言 1. 静态内存 2. 动态内存 2.1 动态内…

vue3项目使用<img :src=““ />动态加载图片

分享一下使用<img :src"" />动态加载图片时遇到的问题以及解决方法。 下面是部分页面代码&#xff0c;这里我使用了<img :src"itemc.headUrl" />来动态加载图片 这时遇到了问题&#xff0c;因为这里的itemc.headUrl是图片的相对路径&#xff…

uniapp解决vconsole无法正常使用

uniapp开发的h5需要使用vconsole真机调试&#xff0c;如果直接在main.js引入&#xff0c;打包后整个项目会页面空白&#xff0c;经实验在单个页面引入可解决&#xff1a; <script module"vconsole" lang"renderjs"> import VConsole from vconsole…

element-plus中的图标和文字水平对齐

<span><el-icon size"14px"><Delete /></el-icon> <span>删除</span> </span>解决方法&#xff1a;加上vertical-align: middle样式就可以了 <span><el-icon size"14px" style"vertical-align: …

【论文笔记 | 异步联邦】Asynchronous Federated Optimization

论文信息 Asynchronous Federated Optimization&#xff0c;OPT2020: 12th Annual Workshop on Optimization for Machine Learning&#xff0c;不属于ccfa introduction 背景&#xff1a;联邦学习有三个关键性质 任务激活不频繁&#xff08;比较难以达成条件&#xff09;&…

Apache中间件漏洞

目录 什么是Apache Apache文件上传&#xff08;CVE-2017-15715&#xff09; Apache后缀解析 什么是Apache Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上&#xff0c;由于其跨平台和安全性被广泛使用&#xff0c;是最…

JVM 性能调优命令(jps,jinfo,jstat,jstack,jmap)

常用命令&#xff1a;jps、jinfo、jstat、jstack、jmap jps jps查看java进程及相关信息 jps -l 输出jar包路径&#xff0c;类全名 jps -m 输出main参数 jps -v 输出JVM参数jps命令示例 显示本机的Java虚拟机进程&#xff1a; # jps 15729 jar 92153 Jps 90267 Jstat显示主类…

深入理解单实例设计模式:构建高效且可靠的应用

在软件工程领域&#xff0c;单实例&#xff08;Singleton&#xff09;设计模式是一种确保类只有一个实例并提供一个全局访问点的设计模式。这个概念在需要控制访问共享资源或者在整个应用中维护一致状态的场景下特别有用。本文将详细探讨单实例模式的实现、应用及其优缺点。 目…

【网站项目】农产品自主供销小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

YOLOv8 测试 5-2:Linux 中 Dockerfile 部署 YOLOv8 项目一键运行,Python 封装 API 接口测试

一、前言 记录时间 [2024-4-15] 系列文章简摘&#xff1a; Docker 学习笔记&#xff08;二&#xff09;&#xff1a;在 Linux 中部署 Docker&#xff08;Centos7 下安装 docker、环境配置&#xff0c;以及镜像简单使用&#xff09; API 接口简单使用&#xff08;二&#xff09;…

网络工程技术课堂笔试

ip-路由信息协议&#xff0c;中小规模的网络&#xff0c;距离矢量路由协议 ipv4 vl v2&#xff0c;只标识主网络 summary--自动江总 坏消息传播的慢&#xff0c;好消息传播的快&#xff0c;网络收敛性差。 ospf--open shortest path first 开放式短路径优先路由协议&…

官宣|Apache Paimon 孵化成功!毕业!

2024年4月16日 - Apache软件基金会(ASF),这个由320多个活跃的开源项目和计划的志愿开发者、管理员和孵化器组成的组织,今天宣布Apache Paimon已从孵化器毕业,成为一个顶级项目(TLP)。 恭喜Paimon&#xff01; 01 流式湖仓解决方案 Paimon 流式湖仓解决方案 Streaming Lakehouse…

前端常用的几种请求方式

本文作者系360奇舞团前端开发工程师 前端数据请求方式主要包括XMLHttpRequest、Fetch、Axios、WebSocket等。这些请求方式各有特点&#xff0c;适用于不同的场景。本文将从综合性能、优缺点、最佳使用场景以及使用方式的角度对这些数据请求方式进行分析。 介绍 XMLHttpRequest&…

[蓝桥杯 2023 省 A] 更小的数(dp基础应用)

来源 洛谷P9232 本题dp思想 dp主要思想是&#xff1a;在同一类问题模型下&#xff0c;依赖于已经解决的简单问题基础上&#xff0c;用很小的代价获得更复杂一点的问题的解决方案。 有的题的DP是在下标上顺序性递推的&#xff0c;类似于dp[i]dp[i-1]something&#xff1b; 然…