Linux给磁盘扩容(LVM方式)

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)

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及以后

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://xiahunao.cn/news/2980142.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

springboot2集成东方通tongweb嵌入式版

由于最近项目需要国产化信创改造,引入东方通tongweb 联系东方通厂家 ,将依赖导入到maven仓库,并获取嵌入式版license文件修改pom.xml,引入依赖,注意springboot版本,这里以springboot2举例 首先移除springb…

Xinlinx FPGA内的存储器BRAM全解

目录 一、总体概述1.7系列FPGA的BRAM特点2.资源情况 二、BRAM分类1.单端口RAM2.简单双端口RAM3.真双端口RAM 三、BRAM的读写1、Primitives Output Registers读操作注意事项2.三种写数据模式(1)Write_First(2)Read_First&#xff0…

【学习】软件测试自动化,是未来的趋势还是当前的必需

在当今快速迭代的软件开发周期中,速度和质量成为了企业生存的关键。随着DevOps实践的普及和持续集成/持续部署(CI/CD)流程的标准化,软件测试自动化已经从未来的趋势转变为当前的必要性。本文将探讨自动化测试的现状、必要性以及其…

大模型训练及推理【硬件选型指南】及 GPU 通识

我们在做大模型应用部署时(如训练、微调、RAG),往往需要在前期就分析好硬件选型指标,或者我们给客户报方案之前,可能你已经有了一个方案,但是由于实践经验缺乏,不知道在硬件上该如何评估并上报。…

invidia-smi占用显存,无法显示PID

如果是动用了子线程创建进程,比如利用accelerate训练脚本,那么大概率可以通过这种方式解决:nvidia-smi没有进程,但是显存占用_nvidia-smi有的卡是0%-CSDN博客 如果这种方法不可用,请尝试直接查询所有python进程&#x…

react v18 项目初始化

按照以下命令进行傻瓜式操作即可: 全局安装脚手架工具: npm install -g create-react-app创建项目my-react-app: create-react-app my-react-app安装 antd: yarn add antd安装 react-router-dom: yarn add react-router-dom启动项…

[Qt的学习日常]--初识Qt

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、Qt的基本…

鸿蒙(HarmonyOS)性能优化实战-多线程共享内存

概述 在应用开发中,为了避免主线程阻塞,提高应用性能,需要将一些耗时操作放在子线程中执行。此时,子线程就需要访问主线程中的数据。ArkTS采用了基于消息通信的Actor并发模型,具有内存隔离的特性,所以跨线…

4.23日总结(项目总结)

1.项目: 今日项目通过一个在登录界面的一个静态变量,完成了区分老师和学生,能够分开老师和学生,并且不同身份的人进去会有不同的显示,以及登录链接主界面,还有学生和老师的不同的表,其次就是创…

葡萄书--关系图卷积神经网络

异质图和知识图谱 同质图与异质图 同质图指的是图中的节点类型和关系类型都仅有一种 异质图是指图中的节点类型或关系类型多于一种 知识图谱 知识图谱包含实体和实体之间的关系&#xff0c;并以三元组的形式存储&#xff08;<头实体, 关系, 尾实体>&#xff0c;即异…

用Excel做一个功能完备的仓库管理系统

1 基本设计思路 用到的Excel技术&#xff1a;sumif, vlookup, 表格(table)。基本思路&#xff1a;在有基础的商品、仓库等信息的情况下&#xff0c;对商品的每一个操作都有对应的单据&#xff0c;然后再汇总统计。标识&#xff1a;为了在不同的维度统计数量&#xff0c;各单据…

Abaqus2024 安装教程(附免费安装包资源)

鼠标右击软件压缩包&#xff0c;选择“解压到Abaqus2024”。 鼠标右击“此电脑”&#xff0c;选择“属性”。 点击“高级系统设置”。 点击“环境变量”。 点击“新建”。 变量名输入&#xff1a;NOLICENSECHECK 变量值输入&#xff1a;true 然后点击“确定”。 点击“确定”。…

羊大师解析,夏日消暑羊奶来帮忙

羊大师解析&#xff0c;夏日消暑羊奶来帮忙 炎炎夏日&#xff0c;烈日当空&#xff0c;人们总是寻找各种方式来消暑降温。除了常见的冷饮、空调等&#xff0c;其实还有一种天然、健康的饮品可以帮助我们度过酷暑——那就是羊奶。 羊奶作为一种营养丰富的天然饮品&#xff0c;不…

【git】多仓库开发

通常我们习惯了在单个仓库下多分支开发&#xff0c;最近用了多仓库开发&#xff0c;我拿一个开源项目举例&#xff0c;总结一下基本流程。 1.fork项目到自己仓库 2.把自己仓库项目pull到本地 3.在本地新建开发分支 git checkout -b dev 4.修改/添加分支对应的远程仓库 修…

小案例:ToolBar+选项菜单

使用选项菜单&#xff0c;一般是用于做单选&#xff0c;需要重写方法&#xff1a; public boolean onCreateOptionsMenu(Menu menu) 如果想要实现事件监听&#xff0c;则采用基于回调的事件监听机制&#xff0c;可以监听到具体是哪一项被选中。即重写方法&#xff1a; publi…

Kafka学习笔记(二、linux和docker安装及使用demo)

1.安装启动 1.1.下载解压 官网下载地址将下载的tar包上传到服务器一个目录&#xff0c;然后解压$ tar -xzf kafka_2.13-3.7.0.tgz $ cd kafka_2.13-3.7.01.2. 启动环境 需安装Jdk8&#xff0c;Kafka可以使用ZooKeeper或KRaft启动。 ZooKeeper启动 运行如下命令&#xff0c;…

windows系统下python开发工具安装

一. 简介 前一篇文章学习了安装 python解释器&#xff0c;文章如下&#xff1a; windows系统下python解释器安装-CSDN博客 本文来学习如何下载安装 python开发工具 PyCharm。 二. python开发工具 PyCharm下载安装 1. PyCharm官网 PyCharm开发工具 PyCharm为 python代码…

【学习笔记二十四】EWM补货策略和自动补货配置

一、EWM补货策略概述 1.计划补货 ①以联机或批处理模式启动 ②根据最大和最小数量计算补货 ③仅当库存量低于最低数量时才开始 ④四舍五入至最小补货数量的倍数 2.自动补货 ①在WT确认期间启动 ②根据最大和最小数量计算补货 ③只有当库存量低于最低数量时才开始 ④四舍…

OpenWRT磁盘扩容(PVE虚拟机方案)

官方扩容指导文档 PVE给虚拟机磁盘扩容 给虚拟机磁盘扩容&#xff0c;选中OpenWRT的硬盘&#xff0c;随后选择调整大小 输入增量大小&#xff0c;即增加多少磁盘空间给硬盘。这里我选择增加4G 进入OpenWRT控制台界面安装一些linux常用查看磁盘的工具&#xff08;也可以通过网…

linux的一些实用操作

快捷键 强制停止 ctrlc强制停止或退出命令的输入 退出登出 ctrld强制退出用户登录或退出某些程序的专属页面&#xff08;如py&#xff09; ps&#xff1a;不能退出vi/vim 历史命令搜索 history可以查看历史命令&#xff0c;用来复制粘贴 在使用history之后&#xff0c;…