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 1011 09:02 /dev/centos/root -> ../dm-0[root@martin-host ~]# ls -l /dev/dm-0 
brw-rw---- 1 root disk 253, 0 1011 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

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

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

相关文章

Ubuntu-Ubuntu22.04下Anacodna3的qmake和Qt的qmake冲突问题

Ubuntu22.04下Anacodna3的qmake和Qt的qmake冲突问题 一、问题描述二、原因分析三、解决办法 一、问题描述 Ubuntu22.04下Anacodna3的qmake和Qt的qmake冲突问题 zhyzhy-HP:~/Sources/mpv-examples/libmpv/qt$ make g -c -pipe -g -Wall -Wextra -D_REENTRANT -fPIC -DQT_WIDGET…

TypeScript中 interface接口 type关键字 enum枚举类型

type interface总是傻傻分不清~~~ Type Aliases (type) type 关键字用于为类型定义一个别名。这可以是基本类型、联合类型、元组、数组、函数等。type 定义的类型在编译后的 JavaScript 代码中会被移除&#xff0c;不会留下任何运行时的代码。 //联合类型 type StringOrNumbe…

SQL JOIN的学习

SQL JOIN (w3school.com.cn) 之前跟着老师学数据库的时候学过&#xff0c;最近又比较频繁的在使用。 再复习一下。 Id_P是主键 Id_O是主键 1. SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P Orders.Id_P 2. SEL…

Idea 2023.2.7构建SpringCloud多模块项目

Idea 2023.2.7构建SpringCloud多模块项目 本文介绍如何使用idea 2023.2.7构建基于SpringCloud alibaba微服务项目&#xff0c;基于Nacos注册中心。 环境准备&#xff1a; JDK版本&#xff1a;jdk17 SpringBoot:3.3.4 SpringCloud:2023.0.3 Nacos服务端:2.4.3 1、创建父工程&a…

指针的理解

int arr[3] {10, 20, 30}; int *parr arr; 1. *parr 、 *arr 分别代表什么 指针parr指向数组arr[3]的首元素地址&#xff0c;arr数组名单独使用表示数组首元素地址&#xff0c;即arr>&arr[0]&#xff1b; *parr和*arr是对首元素地址的解引用,代表访问arr[0]的空间…

MongoDB 介绍

一、MongoDB 介绍 MongoDB 是一个开源的、面向文档的数据库管理系统。它采用了灵活的数据模型&#xff0c;以类似 JSON 的文档形式存储数据&#xff0c;具有高可扩展性、高性能和丰富的功能。 主要特点包括&#xff1a; 灵活的数据模型&#xff1a;文档型数据库允许存储不同…

C++面试速通宝典——29

543. 简述#ifdef、#else、#endif和#ifndef的作用 利用#ifdef、#endif将程序功能模块包括进去&#xff0c;以向特定用户提供该功能。 在不需要时用户可轻易将其屏蔽。 #ifdef MATH #include "math.c" #endif 在子程序前加上标记&#xff0c;以便于追踪和调试。 …

react hooks中在setState后输出state为啥没有变化,如何解决

在 React Hooks 中&#xff0c;setState 的概念被 useState 或 useReducer 钩子所替代。与类组件中的 setState 一样&#xff0c;这些钩子也是异步更新状态的。因此&#xff0c;如果你尝试在调用 setState&#xff08;即 setXXX 函数&#xff09;后立即读取状态值&#xff0c;你…

微知-BlueField DPU在lspci中显示Flash Recovery是什么意思?

效果&#xff1a; lspci |grep BlueField10:00.0 Memory controller: Mellanox Technologies MT42822 Family [BlueField-2 SoC Flash Recovery] (rev 01)*原因&#xff1a; 表示此时flash是empty空的&#xff0c;或者在flash中的FW是无法工作的。比如烧录错误。 这里指的一提…

How to list the environment variables in MySQL based on podman

有时候&#xff0c;我们期望系统的、完整的输出mysql中的环境变量&#xff0c;但是只是想看看&#xff0c;不想安装mysql&#xff0c;有没有什么好的办法呢&#xff1f; 其实&#xff0c;答案是有的。我们可以基于docker/podman来完成&#xff0c;这里推荐podman&#xff0c;示…

从不一样的角度体会MATLAB

MATLAB&#xff08;矩阵实验室&#xff09;是一个广泛使用的高性能语言&#xff0c;特别适合用于科学计算、数据分析和图形可视化。它的强大功能和灵活性使得它在工程、金融、科研及教育等领域得到了广泛应用。以下是对MATLAB的一些不同角度的介绍&#xff1a; 1. 编程环境 M…

大数据测试:Charles修改响应数据

上一篇大数据测试&#xff1a;Fiddler修改响应数据-CSDN博客 &#xff0c;有同学反馈有没有Charles的方式修改响应数据&#xff0c;本篇就是Charles修改数据操作步骤&#xff0c;相比较fiddler&#xff0c;Charles相对简单&#xff0c;便捷&#xff0c;我很喜欢 1、背景&…

为什么SSH协议是安全的?

SSH的传输层协议&#xff08;Transport Layer Protocol&#xff09;和用户鉴权协议&#xff08;Authentication Protocol&#xff09;确保数据的传输安全&#xff0c;这里只介绍传输层协议&#xff0c;是SSH协议的基础。 本文针对SSH2协议。 1、客户端连接服务器 服务器默认…

serv00 恢复如初 清理 回到刚注册状态 重生

内容介绍 本期主要介绍如何将serv00恢复到刚刚注册时的初始状态, 不管你是搭建了节点还是建立了个人博客网站, 使用本期介绍的方法, 都可以将已经写入了内容或者混乱的serv00重置到刚刚注册时的状态. 更多内容&#xff1a;https://lzphy.top/ 1 清除PM2进程 列出进程清单 …

Web组态数据联动

1. 通过get/post获取设备列表信息 2. websocket连接mqtt服务器&#xff0c;接收json报文信息 3. 通过Alpine进行数据联动 4. 封装svg对象&#xff0c;更新属性值 index.html <!DOCTYPE html> <html lang"en"> <head> <meta charset&qu…

Wavelet Convolutions for Large Receptive Fields

大感受野的小波卷积 论文链接&#xff1a;https://arxiv.org/abs/2407.05848v2 项目链接&#xff1a;https://github.com/BGU-CS-VIL/WTConv Abstract 近年来&#xff0c;人们一直试图增加卷积神经网络&#xff08;CNN&#xff09;的核大小&#xff0c;以模拟Vision Transfo…

基于深度学习的车辆车型检测识别系统(YOLOV5)

界面图&#xff1a; 项目简介&#xff1a; 网络&#xff1a;深度学习网络 yoloV5 软件&#xff1a;PycharmAnaconda 环境&#xff1a;python3.8 opencv PyQt5 torch1.9 文件&#xff1a;训练集8000张图片 测试集1000张图片 系统包含所有文件夹 环境文件 UI文件 功能&a…

javascript中`Math.ceil` 和 `Math.floor`的区别

Math.ceil 和 Math.floor 都是 JavaScript 中的内置函数&#xff0c;用于对数字进行取整&#xff0c;但它们的行为有所不同&#xff1a; Math.ceil&#xff1a;向上取整。它返回大于或等于一个给定数字的最小整数。例如&#xff0c;Math.ceil(4.2) 返回 5&#xff0c;Math.ceil…

解决php连接本地mysql连接错误的问题

我的服务器启用的nginx&#xff0c;配置了php的连接mysql的配置文件connect.php&#xff1a; <?php$server"localhost";//主机$db_username"root";//你的数据库用户名$db_password"root";//你的数据库密码$dbname "users";$conn…

Zookeeper快速入门:部署服务、基本概念与操作

文章目录 一、部署服务1.下载与安装2.查看并修改配置文件3.启动 二、基本概念与操作1.节点类型特性总结使用场景示例查看节点查看节点数据 2.文件系统层次结构3.watcher 一、部署服务 1.下载与安装 下载&#xff1a; 一定要下载编译后的文件&#xff0c;后缀为bin.tar.gz w…