Linux系统——lvm逻辑卷
Linux系统——lvm逻辑卷
- 一、lvm逻辑卷
- 1、lvm操作流程
- 2、操作指令
- 二、逻辑卷操作
- 1、创建逻辑卷
- 1.1 /dev/cloud/openstack 5G xfs /cloud/openstack
- 1.2 /dev/cloud/docker 10G ext4 /cloud/docker
- 2、逻辑卷扩容
- 2.1 扩容流程
- 2.2 需求一:扩容ext4文件系统的逻辑卷
- 2.3 需求二:扩展xfs文件系统的逻辑卷
- 2.2.4 需求三:扩展逻辑卷(卷组空间不足)
- 3、逻辑卷缩容
- 3.1 缩容流程
- 3.2 需求一:将逻辑卷docker缩减到5G
- 4、删除逻辑卷
一、lvm逻辑卷
Logical Volume Managemant
优势: 在线扩容、缩容
1、lvm操作流程
2、操作指令
- 查看PV
[root@martin-host ~]# pvscan PV /dev/sda2 VG centos lvm2 [19.21 GiB / 0 free]Total: 1 [19.21 GiB] / in use: 1 [19.21 GiB] / in no VG: 0 [0 ]
- 查看VG
[root@martin-host ~]# pvscan PV /dev/sda2 VG centos lvm2 [19.21 GiB / 0 free]Total: 1 [19.21 GiB] / in use: 1 [19.21 GiB] / in no VG: 0 [0 ]
[root@martin-host ~]#
[root@martin-host ~]# vgscan Reading volume groups from cache.Found volume group "centos" using metadata type lvm2
[root@martin-host ~]# vgdisplay centos --- Volume group ---VG Name centosSystem ID Format lvm2Metadata Areas 1Metadata Sequence No 3VG Access read/writeVG Status resizableMAX LV 0Cur LV 2Open LV 2Max PV 0Cur PV 1Act PV 1VG Size 19.21 GiBPE Size 4.00 MiBTotal PE 4919Alloc PE / Size 4919 / 19.21 GiBFree PE / Size 0 / 0 VG UUID Pgh5Zq-mdOk-I64Z-NDPa-XkUb-RpsR-JRzCsk
- 查看lv
[root@martin-host ~]# lvscan ACTIVE '/dev/centos/swap' [1.00 GiB] inheritACTIVE '/dev/centos/root' [18.21 GiB] inherit[root@martin-host ~]# ls -l /dev/centos/root
lrwxrwxrwx 1 root root 7 10月 11 09:02 /dev/centos/root -> ../dm-0[root@martin-host ~]# ls -l /dev/dm-0
brw-rw---- 1 root disk 253, 0 10月 11 09:02 /dev/dm-0
二、逻辑卷操作
1、创建逻辑卷
1.1 /dev/cloud/openstack 5G xfs /cloud/openstack
- 确认裸设备
[root@martin-host ~]# blkid /dev/sde
[root@martin-host ~]# blkid /dev/sdf
- 创建pv物理卷
[root@martin-host ~]# pvcreate /dev/sde /dev/sdfPhysical volume "/dev/sde" successfully created.Physical volume "/dev/sdf" successfully created.
[root@martin-host ~]#
[root@martin-host ~]# pvscan PV /dev/sda2 VG centos lvm2 [19.21 GiB / 0 free]PV /dev/sdf lvm2 [20.00 GiB]PV /dev/sde lvm2 [20.00 GiB]Total: 3 [59.21 GiB] / in use: 1 [19.21 GiB] / in no VG: 2 [40.00 GiB]
- 创建卷组,名称cloud
[root@martin-host ~]# vgcreate cloud /dev/sde /dev/sdfVolume group "cloud" successfully created[root@martin-host ~]# vgdisplay cloud --- Volume group ---VG Name cloudSystem ID Format lvm2Metadata Areas 2Metadata Sequence No 1VG Access read/writeVG Status resizableMAX LV 0Cur LV 0Open LV 0Max PV 0Cur PV 2Act PV 2VG Size 39.99 GiBPE Size 4.00 MiBTotal PE 10238Alloc PE / Size 0 / 0 Free PE / Size 10238 / 39.99 GiBVG UUID 2cyeQa-pxwF-TDQ3-3buR-04Tc-My5z-WINKYY
- 创建逻辑卷,名称为openstack
[root@martin-host ~]# lvcreate -L 5G -n openstack cloudLogical volume "openstack" created.
[root@martin-host ~]#
[root@martin-host ~]# lvscan ACTIVE '/dev/cloud/openstack' [5.00 GiB] inherit
- 挂载使用
[root@martin-host ~]# mkfs -t xfs /dev/cloud/openstack [root@martin-host ~]#
[root@martin-host ~]# mkdir -p /cloud/openstack[root@martin-host ~]# tail -n 1 /etc/fstab
/dev/cloud/openstack /cloud/openstack xfs defaults 0 0
[root@martin-host ~]#
[root@martin-host ~]# mount -a[root@martin-host ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/cloud-openstack xfs 5.0G 33M 5.0G 1% /cloud/openstack[root@martin-host ~]# touch /cloud/openstack/{1..20}
[root@martin-host ~]# ls /cloud/openstack/
1 10 11 12 13 14 15 16 17 18 19 2 20 3 4 5 6 7 8 9
[root@martin-host ~]#
1.2 /dev/cloud/docker 10G ext4 /cloud/docker
[root@martin-host ~]# lvcreate -L 10G -n docker cloudLogical volume "docker" created.[root@martin-host ~]# lvscan ACTIVE '/dev/cloud/openstack' [5.00 GiB] inheritACTIVE '/dev/cloud/docker' [10.00 GiB] inheritACTIVE '/dev/centos/swap' [1.00 GiB] inheritACTIVE '/dev/centos/root' [18.21 GiB] inherit[root@martin-host ~]# df -hT | grep cloud
/dev/mapper/cloud-openstack xfs 5.0G 33M 5.0G 1% /cloud/openstack
/dev/mapper/cloud-docker ext4 9.8G 37M 9.2G 1% /cloud/docker
2、逻辑卷扩容
2.1 扩容流程
1、确认卷组有足够的剩余空间
2、先扩展逻辑卷的物理大小
3、再扩展逻辑卷的文件系统大小
2.2 需求一:扩容ext4文件系统的逻辑卷
[root@martin-host ~]# blkid /dev/cloud/docker
/dev/cloud/docker: UUID="722ade99-6f1d-40a9-8731-2097b6b8e385" TYPE="ext4"
- 查看卷组的剩余空间
[root@martin-host ~]# vgdisplay cloud | grep -i freeFree PE / Size 6398 / 24.99 GiB
- 扩展逻辑卷物理大小
[root@martin-host ~]# lvextend -L 15G /dev/cloud/docker Size of logical volume cloud/docker changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents).Logical volume cloud/docker successfully resized.
[root@martin-host ~]#
[root@martin-host ~]# lvscan ACTIVE '/dev/cloud/openstack' [5.00 GiB] inheritACTIVE '/dev/cloud/docker' [15.00 GiB] inheritACTIVE '/dev/centos/swap' [1.00 GiB] inheritACTIVE '/dev/centos/root' [18.21 GiB] inherit
[root@martin-host ~]#
[root@martin-host ~]# df -hT | grep "docker"
/dev/mapper/cloud-docker ext4 9.8G 37M 9.2G 1% /cloud/docker
- 扩展文件系统大小
// resize2fs:只适用于ext文件系统
[root@martin-host ~]# resize2fs /dev/cloud/docker
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/cloud/docker is mounted on /cloud/docker; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 2
The filesystem on /dev/cloud/docker is now 3932160 blocks long.[root@martin-host ~]#
[root@martin-host ~]# lvscan | grep "docker"ACTIVE '/dev/cloud/docker' [15.00 GiB] inherit[root@martin-host ~]# df -hT | grep "docker"
/dev/mapper/cloud-docker ext4 15G 41M 14G 1% /cloud/docker[root@martin-host ~]# ls /cloud/docker/
file01 file010 file02 file03 file04 file05 file06 file07 file08 file09
2.3 需求二:扩展xfs文件系统的逻辑卷
[root@martin-host ~]# blkid /dev/cloud/openstack
/dev/cloud/openstack: UUID="6ef5d418-8fa7-410f-8447-d01f636a791c" TYPE="xfs"
[root@martin-host ~]#
[root@martin-host ~]# vgdisplay cloud | grep -i freeFree PE / Size 5118 / 19.99 GiB
[root@martin-host ~]#
[root@martin-host ~]# lvextend -L 20G /dev/cloud/openstack Size of logical volume cloud/openstack changed from 5.00 GiB (1280 extents) to 20.00 GiB (5120 extents).Logical volume cloud/openstack successfully resized.
[root@martin-host ~]# // xfs_growfs: 适用于xfs文件系统
[root@martin-host ~]# xfs_growfs /dev/cloud/openstack
meta-data=/dev/mapper/cloud-openstack isize=512 agcount=4, agsize=327680 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=1310720, imaxpct=25= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 1310720 to 5242880
[root@martin-host ~]#
[root@martin-host ~]#
[root@martin-host ~]# lvscan | grep openstackACTIVE '/dev/cloud/openstack' [20.00 GiB] inherit
[root@martin-host ~]#
[root@martin-host ~]# df -hT | grep opensta
/dev/mapper/cloud-openstack xfs 20G 33M 20G 1% /cloud/openstack
[root@martin-host ~]#
[root@martin-host ~]#
[root@martin-host ~]# ls /cloud/openstack/
1 10 11 12 13 14 15 16 17 18 19 2 20 3 4 5 6 7 8 9
2.2.4 需求三:扩展逻辑卷(卷组空间不足)
[root@martin-host ~]# vgdisplay cloud | grep -i freeFree PE / Size 1278 / 4.99 GiB
- 扩容卷组的容量
[root@martin-host ~]# pvcreate /dev/sdgPhysical volume "/dev/sdg" successfully created.[root@martin-host ~]# vgextend cloud /dev/sdg Volume group "cloud" successfully extended[root@martin-host ~]# vgdisplay cloud | grep -i freeFree PE / Size 6397 / <24.99 GiB
- 扩展逻辑卷
[root@martin-host ~]# lvextend -L 20G /dev/cloud/docker
[root@martin-host ~]# resize2fs /dev/cloud/docker
3、逻辑卷缩容
注意:
1、谨慎操作、数据无价
2、xfs文件系统不支持缩减
3.1 缩容流程
1、卸载设备, 不支持在线
2、先缩减文件系统大小
3、再缩减逻辑卷的物理大小
3.2 需求一:将逻辑卷docker缩减到5G
- 将数据备份
[root@martin-host ~]# tar czf /backup/docker.tar.gz /cloud/docker/
tar: 从成员名中删除开头的“/”
[root@martin-host ~]#
- 卸载逻辑卷
[root@martin-host ~]# umount /dev/cloud/docker
[root@martin-host ~]#
[root@martin-host ~]# df -hT | grep "docker"
[root@martin-host ~]#
- 检查文件系统是否有损坏
[root@martin-host ~]# e2fsck -f /dev/cloud/docker
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/cloud/docker: 21/1310720 files (0.0% non-contiguous), 126311/5242880 blocks
- 先缩减文件系统
[root@martin-host ~]# resize2fs /dev/cloud/docker 5G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/cloud/docker to 1310720 (4k) blocks.
The filesystem on /dev/cloud/docker is now 1310720 blocks long.
- 缩减逻辑卷的物理大小
[root@martin-host ~]# lvreduce -L 5G /dev/cloud/docker WARNING: Reducing active logical volume to 5.00 GiB.THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce cloud/docker? [y/n]: ySize of logical volume cloud/docker changed from 20.00 GiB (5120 extents) to 5.00 GiB (1280 extents).Logical volume cloud/docker successfully resized.
- 重新挂载,验证数据
[root@martin-host ~]# mount /dev/cloud/docker /cloud/docker/
[root@martin-host ~]#
[root@martin-host ~]# ls /cloud/docker/
file01 file010 file02 file03 file04 file05 file06 file07 file08 file09 lost+found
[root@martin-host ~]#
[root@martin-host ~]# lvscan ACTIVE '/dev/cloud/openstack' [20.00 GiB] inheritACTIVE '/dev/cloud/docker' [5.00 GiB] inheritACTIVE '/dev/centos/swap' [1.00 GiB] inheritACTIVE '/dev/centos/root' [18.21 GiB] inherit
[root@martin-host ~]#
[root@martin-host ~]# df -hT | grep docker
/dev/mapper/cloud-docker ext4 4.8G 33M 4.6G 1% /cloud/docker
[root@martin-host ~]#
4、删除逻辑卷
- 卸载设备
- 删除fstab文件中的挂载条目
- 删除逻辑卷
[root@martin-host ~]# lvremove /dev/cloud/openstack
Do you really want to remove active logical volume cloud/openstack? [y/n]: yLogical volume "openstack" successfully removed
相关文章:

Linux系统——lvm逻辑卷
Linux系统——lvm逻辑卷 一、lvm逻辑卷1、lvm操作流程2、操作指令 二、逻辑卷操作1、创建逻辑卷1.1 /dev/cloud/openstack 5G xfs /cloud/openstack1.2 /dev/cloud/docker 10G ext4 /cloud/docker 2、逻辑卷扩容2.1 扩容流程2.2 需求一:扩容ext4文件系统的逻辑卷2.3…...

一键快捷回复软件助力客服高效沟通
双十一临近,电商大战一触即发!在这个购物狂欢的热潮中,客服团队的效率至关重要。今天我要和大家分享一个非常实用的快捷回复软件,特别是为电商客服小伙伴们准备的。这款软件能够极大地提高你的工作效率,让你在处理客户…...

初识Linux之指令(二)
一:head指令 head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的 开头至标准输出中,而 tail 想当然尔就是看档案的结尾。 语法:head 【参数】 【文件】 功能&…...
在深度学习中,Epoch、迭代次数、批次大小(Batch Size)和学习速率(Learning Rate)是影响模型训练效果的重要超参数。
1. Epoch 定义:Epoch是指整个训练数据集被完整地用来训练一次。影响:增加Epoch的数量可以使模型更充分地学习数据。然而,过高的Epoch可能导致过拟合,即模型在训练集上表现良好,但在测试集上表现不佳。设置:…...
研究学习的循环递进三段论
在研究学习,编程语言、编译器、计算机科学、类型论、集合论等多门学科及分支后,我貌似隐隐约约地感受到,研究学习的过程分为三个阶段,我称之为研究学习的三段论,其中的段,是阶段的意思。对应了,…...

Linux下如何将代码提交至Gitee
首先在gitee中创建自己的仓库. 下面是已经创建好的仓库 然后复制仓库的链接(点击上图克隆/下载) 接下来打开linux, 1.在命令行输入git clone 链接 2. 输入ll,即可看到linux-course项目仓库 3.cd linux-courses(进入项目仓库) 4.在仓库中可以随意增加文件 例如增加test.c文件…...

【MATLAB源码-第181期】基于matlab的32QAM调制解调系统频偏估计及补偿算法仿真,对比补偿前后的星座图误码率。
操作环境: MATLAB 2022a 1、算法描述 在通信系统中,频率偏移是一种常见的问题,它会导致接收到的信号频率与发送信号的频率不完全匹配,进而影响通信质量。在调制技术中,QPSK(Quadrature Phase Shift Keyi…...
24年856电子线路专业课考场回忆
856考试包含了模电与数电两大部分,24年题型结构为14题选择与14填空,上去大约花了半个小时搞定,唯一记得有几个纠结点:1、开关型稳压电路中开关管怎么接是升压,2、字扩展与位扩展的区别。 接下来就是第三部分的分析计算…...

el-table表格里面有一条横线
表格里面 有一条横线, 出现原因:是自定义了表格头.使用了固定列(fixed),定宽。就很难受。。。 添加样式文件: <style lang"scss" scoped>::v-deep {.el-table__fixed-right {height: 100%…...
QT通过QLocalSocket和QSharedMemory实现进程间通信
文章目录 QLocalSocket和QLocalServer客户端服务端QSharedMemory加载数据到共享内存从共享内存中读取数据进程间通信(Inter-Process Communication, IPC)是指在不同进程之间进行数据交换和消息传递的机制。由于不同进程之间在内存和资源使用上的隔离,IPC 是操作系统提供的一种…...

Python中的数据可视化艺术:用Matplotlib和Seaborn讲故事
Python中的数据可视化艺术:用Matplotlib和Seaborn讲故事 数据可视化不仅仅是图表的绘制,更是通过视觉形式传达复杂信息的一种艺术。使用Python中的两个强大的库——Matplotlib和Seaborn,可以将数据转化为清晰、优美的图表,帮助我…...
python机器学习(手写数字识别)
# 导包 import matplotlib.pyplot as plt import pandas as pd from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier import joblib from collections import Counter # 1. 定义函数 show_digit(idx), 用于查看: 数字图…...

如何针对项目中的技术难点准备面试?——黑马点评为例
最核心的,包装和准备 个人项目,怎么包装?一定要写出代码才可以吗? 你可以在系统A中实现就可以,了解其中实现的细节,怎么跟面试官对线等等,这些话术到位了之后,再把它融入到系统B&a…...

ARP欺骗的多种手法
学习参考: ARP欺骗的各种d玩法-CSDN博客 https://juejin.cn/post/7383702153892954164 一、什么是ARP欺骗 1.什么是ARP? ARP (Address Resolution Protocol) 是一种网络层协议,用于将 IP 地址转换为物理地址(MAC 地址࿰…...

HCIA——one
推荐电影:《模仿游戏》《黑客帝国》《头号玩家》 图灵机每秒五千次计算,当今计算机4080ti算力每秒21万亿次的计算。 OSI七层模型 应用层:人机交互,将抽象语言转换成编码 表示层:将编码转换成二进制 介质访问控制层…...

【vue】⾃定义指令+插槽+商品列表案例
代码获取 07-⾃定义指令插槽商品列表案例 ⼀、⾃定义指令 1. 基本使⽤ 1.1 指令介绍 内置指令:v-model、v-for、v-bind、v-on… 这都是Vue给咱们内置的⼀些指令,可以直接使⽤ ⾃定义指令:同时Vue也⽀持让开发者,⾃⼰注册⼀些…...

多线程——线程的等待通知
目录 前言 一、wait() 方法 1.方法介绍 2.代码示例 3.wait 和 sleep 的区别 二、notify() 方法 1.方法介绍 2.代码示例 三、notifyAll() 方法 1.方法介绍 2.代码示例 结尾 前言 由于线程之间是抢占式执行的,因此线程之间的执行顺序是难以预知的…...

模态与非模态的对话框
本文学习自: 《Qt Creato快速入门》 #include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }1. #include "widget.h" #include "ui_w…...

C语言练习
题目: 1.运用switch选择语句,编写一段C语言,请根据输入的数字,显示相应的星期日,如果数字所对应的星期日并不存在请显示“抱歉,您输入的内容并不存在。” 分析:1.在本题中,要运用到…...

CyberRt实践之Hello Apollo(Apollo 9.0版本)
apollo9.0环境安装参考官方网站 apollo.baidu.com/community/Apollo-Homepage-Document?docBYFxAcGcC4HpYIbgPYBtXIHQCMEEsATAV0wGNkBbWA5UyRFdZWVBEAU0hFgoIH0adPgCY%2BADwCiAVnEAhAILiAnABZxEgOzK1Y%2BQA51M3ROUnJBsbK2WZoyUdkBhcXoAMhlwDFlARnUXZdzE9AGY%2BbFINADYpUhCEFW…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
前端高频面试题2:浏览器/计算机网络
本专栏相关链接 前端高频面试题1:HTML/CSS 前端高频面试题2:浏览器/计算机网络 前端高频面试题3:JavaScript 1.什么是强缓存、协商缓存? 强缓存: 当浏览器请求资源时,首先检查本地缓存是否命中。如果命…...

2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版
1.题目描述 2.思路 当前的元素可以重复使用。 (1)确定回溯算法函数的参数和返回值(一般是void类型) (2)因为是用递归实现的,所以我们要确定终止条件 (3)单层搜索逻辑 二…...