教程:LVM操作讲解

news2024/11/27 20:37:59

LVM简介

在系统运维过程中,对磁盘扩缩容是常见的操作。如何高效的管理磁盘容量,lvm提供了很好的解决方案。

LVM将磁盘抽象成PV、VG、LV,方便用户进行磁盘管理,简单来讲,是由物理磁盘划分成PV,PV加入到具体的VG,LV从VG中划分指定容量的空间,再经挂载操作、格式化为具体的文件系统后供进程使用。

本文通过样例讲解数据盘扩缩容。

下图描述了lvm组件之间的关系

在这里插入图片描述

文本有惊喜!!!
在这里插入图片描述

样例环境

  • 添加挂载两块容量为5G scsi的硬盘
    在这里插入图片描述
  • 执行lsblk 命令,显示sdbsdc各5g,说明添加成功

在这里插入图片描述

如果是开机情况下挂载的,由于业务需要不方便关机的话,需要执行磁盘扫描命令

在这里插入图片描述
在这里插入图片描述

执行如下命令即可在线扫描磁盘

echo "- - -" > /sys/devices/pci0000:00/0000:00:10.0/host0/scsi_host/host0/scan
lsblk #查看是否扫描出来

执行 echo "- - -" > /sys/class/scsi_host/host0/scan 效果一样的,该路径软链接到了/sys/devices/pci0000:00/0000:00:10.0/host0/scsi_host/host0

[root@gentlewok ~]# ll /sys/class/scsi_host/host0
lrwxrwxrwx. 1 root root 0 Jun  4 09:29 /sys/class/scsi_host/host0 -> ../../devices/pci0000:00/0000:00:10.0/host0/scsi_host/host0

当前lvm信息

  • pvs显示有哪些pv
[root@gentlewok ~]# pvs
  PV         VG Fmt  Attr PSize   PFree
  /dev/sda2  rl lvm2 a--  <19.00g    0 
  • vgs显示有哪些vg
[root@gentlewok ~]# vgs
  VG #PV #LV #SN Attr   VSize   VFree
  rl   1   2   0 wz--n- <19.00g    0 
  • lvs显示有哪些lv
[root@gentlewok ~]# lvs
  LV   VG Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root rl -wi-ao---- <17.00g                                                    
  swap rl -wi-ao----   2.00g      
  • df -h 查看下当前容量
    在这里插入图片描述

磁盘扩容

系统盘扩容

  • pvcreate创建一个pv
[root@gentlewok ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda           8:0    0   20G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   19G  0 part 
  ├─rl-root 253:0    0   17G  0 lvm  /
  └─rl-swap 253:1    0    2G  0 lvm  [SWAP]
sdb           8:16   0    5G  0 disk 
sdc           8:32   0    5G  0 disk 
sr0          11:0    1  1.7G  0 rom  
[root@gentlewok ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.
[root@gentlewok ~]# 

  • 将pv加入到vg
[root@gentlewok ~]# vgs
  VG #PV #LV #SN Attr   VSize   VFree
  rl   1   2   0 wz--n- <19.00g    0 
[root@gentlewok ~]# vgextend rl /dev/sdb
  Volume group "rl" successfully extended
[root@gentlewok ~]# vgs
  VG #PV #LV #SN Attr   VSize  VFree 
  rl   2   2   0 wz--n- 23.99g <5.00g
  • 将vg新加的5g加到 lv 上
[root@gentlewok ~]# lvs
  LV   VG Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root rl -wi-ao---- <17.00g                                                    
  swap rl -wi-ao----   2.00g                                                    
[root@gentlewok ~]# lvextend -l +100%FREE /dev/rl/root
  Size of logical volume rl/root changed from <17.00 GiB (4351 extents) to 21.99 GiB (5630 extents).
  Logical volume rl/root successfully resized.
[root@gentlewok ~]# lvs
  LV   VG Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root rl -wi-ao---- 21.99g                                                    
  swap rl -wi-ao----  2.00g                                                   
  • 扩展文件系统
    先执行df -Th 确定文件系统
# xfs文件系统使用该命令使扩容生效
xfs_growfs /dev/mapper/vg-lv
# ext4文件系统使用该命令使扩容生效
resize2fs /dev/mapper/vg-lv

在这里插入图片描述
在这里插入图片描述

数据盘扩容

创建data目录 mkdir -p /data

在这里插入图片描述

扩容前lvm信息

在这里插入图片描述

创建pv

在这里插入图片描述

创建数据盘vg并将刚创建的pv加入到vg

vgcreate vg pv

在这里插入图片描述
在这里插入图片描述

创建数据盘lv并将刚创建的vg所有容量加入到 lv

lvcreate -l +100%FREE --name lv vg

在这里插入图片描述

挂载到/data 目录下

在这里插入图片描述
设置开机自动挂载

echo "/dev/mapper/vg--data-lv--data     /data xfs     defaults   0 0" >> /etc/fstab

磁盘缩容

对于扩容来讲,操作正确的情况下,业务是无感知的。缩容本身的逻辑比较简单,只是缩容会影响到到应用的数据读取,实际缩容方案需要综合评估。涉及应用层的变更可简单可复杂,本文不讨论。

本文作为技术点讲解假设应用可以停的情况下,该如何操作? 下面为大概步骤

注意:生产环境所有变更应做好备份后操作

  • 停应用,应用数据目录假设为 /data

  • 新挂载磁盘,创建新挂载点 /data-copy

  • 创建新的pv、vg、lv

  • 新的lv挂载到/data-copy

  • 复制迁移的数据到/data-copy ;命令:cp -a xx /data-copy

  • 卸载/data ;命令: umount /data

  • 卸载/data-copy ;命令: umount /data-copy

  • 挂载新lv/data; 命令:mount 新lv /data

  • 起应用

    就这样!
    在这里插入图片描述

    惊喜

    笔者收集了关于lvm的详细文档,下图为文档目录,需要的回复暗号 lvm

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Ubuntu 22.04.4 LTS openresty(Nginx) 通过Lua+Redis 实现动态封禁IP

1 系统环境 testiZbp1g7fmjea77vsqc5hmmZ:~$ cat /etc/os-release PRETTY_NAME"Ubuntu 22.04.4 LTS" NAME"Ubuntu" VERSION_ID"22.04" VERSION"22.04.4 LTS (Jammy Jellyfish)" VERSION_CODENAMEjammy IDubuntu ID_LIKEdebian HOME…

蓝桥杯 经典算法题 实现归并排序

题目&#xff1a; 题解&#xff1a; 不断地将数组不断向下平均分为两部分&#xff0c;直到每个子数组中元素数量为1&#xff0c;这样就可以将相邻两个数组长度为1的数组看作是单调数组合并为一个大的单调数组&#xff0c;如此不断向上合并出最终的单调数组。 #include <bi…

Golang | Leetcode Golang题解之第173题二叉搜索树迭代器

题目&#xff1a; 题解&#xff1a; type BSTIterator struct {stack []*TreeNodecur *TreeNode }func Constructor(root *TreeNode) BSTIterator {return BSTIterator{cur: root} }func (it *BSTIterator) Next() int {for node : it.cur; node ! nil; node node.Left {it…

jemeter基本使用

后端关验签&#xff0c;设置请求头编码和token 配置编码和token

用全志T113做了块多功能卡片电脑,成本只要60块

FunnyPi-T113是一款基于全志T113-S3/D1S处理器的完全开源多功能开发板&#xff0c;设计FunnyPi最初的目的是想借此T113卡片电脑来满足日常学习&#xff0c;并结合T113高效能和低功耗的特点&#xff0c;来满足像语音助手&#xff0c;智能家居屏幕、桌面摆件屏、博客服务器等嵌入…

激励-保健理论和公平理论

激励-保健理论 herzberg的激励-保健理论中&#xff0c;保健因素是context of a job&#xff0c;激励因素是content of a job。 context of a job是受组织控制的因素&#xff0c;比如工作条件&#xff0c;基本工资&#xff0c;公司政策等&#xff0c;个人无法支配。content of…

R语言——绘图与数据可视化

1、练习将25个点的符号绘制出来&#xff0c;然后用rainbow()返回25个颜色&#xff0c;后5个符号形状的背景颜色用蓝色填充&#xff0c;图的标题为"符号图"&#xff0c;x轴标题为符号索引&#xff0c;y轴标题为符号形状。 2、根据员工的销售业绩画饼状图&#xff0c;添…

Vitis Accelerated Libraries 学习笔记--OpenCV 运行测试

目录 1. 简介 2. 实例测试 2.1 实例介绍 2.1 创建工程 3 常见错误 3.1 核心共享库报错 4. 总结 1. 简介 在《Vitis Accelerated Libraries 学习笔记--OpenCV 安装指南-CSDN博客》一文中&#xff0c;我详尽地介绍了 OpenCV 的安装过程。尽管 Vitis Vision 库的实现本身并…

BioCLIP 生物界的图文对比模型

参考&#xff1a; https://imageomics.github.io/bioclip/ CLIP模型引入到生物领域&#xff0c;针对生物分类&#xff1a;界门纲目科属种&#xff0c;进行文本与图像的对比学习训练对其&#xff0c;可以快速对图像进行分类到可能的界门纲目科属种 在线体验&#xff1a; https:…

用户态协议栈04-定时arp-table的实现

之前有写过arp reply的实现&#xff0c;其中有写道&#xff0c;我们的系统内核中会维护一张ARP表&#xff0c;可以通过终端arp -a查看&#xff1a; 其中的dynamic和static是动态arp的类型&#xff0c;之前的udp实验就是添加了一条静态arp达到了发送的目的。在我们需要发送一个数…

「五度易链」企业大数据API接口开放平台上线啦!

“五度易链”企业大数据API接口开放平台现已正式上线&#xff0c;旨在为广大企业、开发者及个人提供标准、安全、高效、便捷的企业数据API接口服务&#xff0c;帮您更轻松地构建应用、扩展功能&#xff0c;并基于用户应用场景提供专属接口定制服务&#xff0c;助力企业提升研发…

12.爬虫---PyMysql安装与使用

12.PyMysql安装与使用 1.安装 PyMySQL2.使用PyMySQL2.1创建数据表2.2连接数据库2.3增加数据2.4修改数据2.5查询数据2.6删除数据2.7关闭连接 3.总结 MySQL 安装可以看这篇文章MySql 安装与使用&#xff08;非常详细&#xff09; 1.安装 PyMySQL PyMySQL是Python中用于连接MySQL…

Redis-数据类型-Hash

文章目录 1、查看redis是否启动2、通过客户端连接redis3、切换到db3数据库4、插入新数据返回15、获取指定哈希&#xff08;hash&#xff09;对象的所有字段&#xff08;field&#xff09;名6、获取存储在指定哈希&#xff08;hash&#xff09;对象中的所有字段&#xff08;fiel…

Redis—Hash数据类型及其常用命令详解

文章目录 Redis概述Hash类型Hash类型常用命令1 HSET&#xff1a;添加或者修改hash类型key的field的值2 HGET &#xff1a;获取一个hash类型key的field的值3 HMSET&#xff1a;批量添加多个hash类型key的field的值4 HMGET&#xff1a;批量获取多个hash类型key的field的值5 HGETA…

数据通信与网络(五)

交换机功能&#xff1a; 地址学习&#xff08;端口/MAC地址映射表&#xff09; 通信过滤&#xff08;基于端口/MAC地址映射表&#xff09; 生成树协议&#xff08;断开环路&#xff09; 隔离冲突域 生成树协议 隔离冲突域 交换机配置模式(用不同级别的命令对交换机进行配置) 普…

VScode安装与汉化

VScode安装与汉化 文章目录 VScode安装与汉化一、软件安装方法一&#xff1a;网站下载方法二&#xff1a;直接用安装包下载 二、汉化方法一&#xff1a;&#xff08;个人感觉繁琐&#xff09;方法二&#xff1a;&#xff08;用这个&#xff09; Tips&#xff1a;禁用自动更新开…

力扣372. 超级次方

Problem: 372. 超级次方 文章目录 题目描述思路复杂度Code 题目描述 思路 1.处理数组指数&#xff1a;如下图可以将其转换为一个递归的操作 2.处理 mod 运算:对于模运算我们有公式&#xff1a; ( a b ) % k ( a % k ) ( b % k ) % k (a \times b) \% k (a \% k) \times (b…

[C++][数据结构][跳表]详细讲解

目录 0.什么是跳表&#xff1f;1.SkipList的优化思路2.SkipList的效率如何保证&#xff1f;3.SkipList实现4.SkipList VS 平衡搜索树 && Hash 0.什么是跳表&#xff1f; SkipList本质上也是一种查找结构&#xff0c;用于解决算法中的查找问题&#xff0c;跟平衡搜索树…

Zookeeper原理

Zookeeper监听原理 监听原理详解 &#xff08;1&#xff09;首先要有一个main()线程 &#xff08;2&#xff09;在main线程中创建Zookeeper客户端&#xff0c;这时就会创建两个线程&#xff0c;一个负责网络连接通信(connet)&#xff0c;一个负责监听(listener) 。 &#xf…

x64汇编fastcall调用约定

x64汇编环境&#xff1a;只需要在x86基础上对项目属性进行设置&#xff0c;将平台设置为所有平台&#xff1b; 以及在将debug改为x64模式即可&#xff1a; 后续写完代码直接生成项目再使用本地调试器进行运行即可。 fastcall调用约定 在x64架构下&#xff0c;fastcall调用约定…