Linux磁盘设备LVM介绍和常用场景说明

news/发布时间2024/9/20 9:06:16

Linux常见的物理设备数据备份和负载均衡模式

  • 1. LVM技术说明
  • 2. 相关概念
  • 3. 常用命令
    • 3.1 安装lvm命令
    • 3.2 创建分区
    • 3.3 格式化成LVM
    • 3.4 其他格式化
  • 4. 常用场景
    • 4.1 创建LVM并挂载
    • 4.2 LVM扩容
      • 4.2.1 xfs扩容
      • 4.2.2 ext4扩容
    • 4.2 缩减逻辑卷lv
    • 4.3 缩减vg:(迁移到闲置设备)
    • 4.4 LVM快照创建
    • 4.5 删除设备
  • 5. 参考文档

LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系 统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的 文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。


1. LVM技术说明

Linux的LVM(Logical Volume Manager)是一种磁盘管理工具,可以用来对Linux系统中的磁盘进行灵活的管理和分区。

LVM可以将多个物理硬盘或分区组合在一起形成一个逻辑卷组(Volume Group),然后再从逻辑卷组中创建逻辑卷(Logical Volumes)。逻辑卷可以被格式化为文件系统,并且可以像普通分区一样挂载到文件系统树中的任意位置。

LVM的主要优点有:

  • 可以动态地扩展和缩小逻辑卷的大小,而无需重新分区或格式化磁盘。
  • 可以将不同的物理硬盘或分区组合在一起,形成一个大的逻辑卷组,从而充分利用磁盘空间。
  • 可以对逻辑卷进行快照备份,以便在数据损坏或删除时进行恢复。
  • 可以通过移动数据块的方式进行数据迁移,从而实现数据的高可用性和负载均衡。

2. 相关概念

  • PV(Physical Volume):物理空间的意思,其实就是指一个分区(如/dev/sdb1 )或者是一个盘(如/dev/sdb)
  • VG(Volume Group):相当于一个Pool,由多个PV组成的pool
  • LV(Logical Volume):用来建立一个文件系统的空间,这个空间来源于VG,大小随意,可以扩展。(比如/dev/mapper/rhel-root这个目录其实是一个文件系统挂载点,这个点就是承载在一个LV上,这个文件系统的大小就是这个LV的大小。 )

在这里插入图片描述

在这里插入图片描述

3. 常用命令

3.1 安装lvm命令

yum install lvm2  -y

常用的命令如下

PV:Physical(物理卷)     pvcreate、pvs 、pvdisplay 、pvremove、pvmove、pvscanVG:Volume Group(卷组)     vgcreate、vgs、vgdisplay、vgremove、vgrename、vgreduce、vgextent LV:logical Volume(逻辑卷)      lvs、lvdisplay、lvremove、lvextend、lvresize、lvscan、lvrename

3.2 创建分区

[root@node1 ~]# fdisk  /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): p          Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x39094458   Device Boot      Start         End      Blocks   Id  SystemCommand (m for help): n       Command action   e   extended   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1305, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): +3G Command (m for help): n
Command action e   extended p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (394-1305, default 394): 
Using default value 394Last cylinder, +cylinders or +size{K,M,G} (394-1305, default 1305): +5G
Command (m for help): pDisk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x39094458Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         393     3156741   83  Linux
/dev/sdb2             394        1047     5253255   83  LinuxCommand (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

3.3 格式化成LVM

[root@node1 ~]# fdisk  /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').Command (m for help): p   
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x39094458
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         393     3156741   83  Linux
/dev/sdb2             394        1047     5253255   83  Linux
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): tPartition number (1-4): 2
Hex code (type L to list codes): 8e
Changed system type of partition 2 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x39094458
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         393     3156741   8e  Linux LVM
/dev/sdb2             394        1047     5253255   8e  Linux LVM
Command (m for help): wThe partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

在这里插入图片描述

3.4 其他格式化

# 格式化成xfsmkfs.xfs -n ftype=1 /dev/vdb -f
# 格式化成ext4
mkfs.ext4 /dev/vdb

4. 常用场景

4.1 创建LVM并挂载

[root@localhost ~]# pvcreate /dev/vdb1            ##创建物理卷
[root@localhost ~]# vgcreate -s 8M vg0 /dev/vdb1  ##创建物理卷组vg0,PE为8M
[root@localhost ~]# lvcreate -L 300M -n lv0 vg0   ##在卷组vg0上创建名为lv0,大小为300M的逻辑卷[root@localhost ~]# mkfs.xfs -n ftype=1 /dev/vg0/lv0 -f         ##格式化逻辑卷并改系统格式为xfs
[root@localhost ~]# mkfs.ext4 /dev/vg0/lv0         ##格式化逻辑卷并改系统格式为ext4
[root@localhost ~]# mount /dev/vg0/lv0 /mnt       ##挂载【linux下的文件系统需要被挂载后才能使用】
[root@localhost ~]# df -h

4.2 LVM扩容

4.2.1 xfs扩容

分为2种情况

  1. 情况1: vg足够扩展
[root@localhost ~]# lvextend -L 500M /dev/vg0/lv0      ##扩展逻辑卷空间到500M
[root@localhost ~]# xfs_growfs /dev/vg0/lv0            ##扩展文件系统
  1. 情况2:vg不够拉伸,得先扩大设备再扩大系统

先申请设备并扩容,确保vg足够

[root@localhost ~]# pvcreate /dev/vdb2        ##创建物理卷/dev/vdb2 
[root@localhost ~]# vgextend vg0 /dev/vdb2    ##将新的物理卷vdb2添加到现有的卷组vg0 

扩展逻辑卷

[root@localhost ~]# lvextend -L 1500M /dev/vg0/lv0     ##增加逻辑卷空间到1500M 
[root@localhost ~]# xfs_growfs /dev/vg0/lv0			   ## 扩容xfs文件系统

4.2.2 ext4扩容

分为2种情况

  1. 情况1: vg足够扩展
[root@localhost ~]# lvextend -L 500M /dev/vg0/lv0      ##扩展逻辑卷空间到500M
[root@localhost ~]# xfs_growfs /dev/vg0/lv0            ##扩展文件系统
  1. 情况2:vg不够拉伸,得先扩大设备再扩大系统

先申请设备并扩容,确保vg足够

[root@localhost ~]# pvcreate /dev/vdb2        ##创建物理卷/dev/vdb2 
[root@localhost ~]# vgextend vg0 /dev/vdb2    ##将新的物理卷vdb2添加到现有的卷组vg0 

扩展逻辑卷

[root@localhost ~]# lvextend -L 1500M /dev/vg0/lv0     ##增加逻辑卷空间到1500M 
[root@localhost ~]# resize2fs /dev/vg0/lv0     	## 扩容ext4文件系统

4.2 缩减逻辑卷lv

[root@localhost ~]# umount /mnt                     ##先卸载
[root@localhost ~]# e2fsck -f /dev/vg0/lv0          ##扫描逻辑卷上的空余空间
[root@localhost ~]# resize2fs /dev/vg0/lv0 1000M    ##设备文件减少到1000M
[root@localhost ~]# lvreduce -L 1000M /dev/vg0/lv0  ##将逻辑卷减少到1000M
[root@localhost ~]# mount /dev/vg0/lv0 /mnt         ##挂载

4.3 缩减vg:(迁移到闲置设备)

[root@localhost ~]# pvmove /dev/vdb1 /dev/vdb2  ##将vdb1的空间数据转移到vdb2/dev/vdb1: Moved: 88.0%/dev/vdb1: Moved: 100.0%                      ##转移数据成功
[root@localhost ~]# vgreduce vg0 /dev/vdb1      ##将/dev/vdb1分区从vg0卷组中移除Removed "/dev/vdb1" from volume group "vg0"
[root@localhost ~]# pvremove /dev/vdb1          ##把/dev/vdb1分区从系统中删除Labels on physical volume "/dev/vdb1" successfully wiped

注意:将vdb1的空间数据转移到vdb2时,要确保vdb2的足够的空间能将vdb1的数据转移,否则需要先将vdb1缩减。

4.4 LVM快照创建

[root@localhost ~]# touch /mnt/file{1..5}
[root@localhost ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0  ##建立一个50M的快照
[root@localhost ~]# mount /dev/vg0/lv0backup /mnt                 ##挂载快照
[root@localhost ~]# cd /mnt
[root@localhost mnt]# ls
[root@localhost mnt]# rm -fr *                                   ##删除所有文件
[root@localhost mnt]# cd
[root@localhost ~]# umount /mnt
[root@localhost ~]# lvremove /dev/vg0/lv0backup                   ##删除快照
[root@localhost ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0  ##重建快照
[root@localhost ~]# mount /dev/vg0/lv0backup /mnt                 ##挂载快照
[root@localhost ~]# ls /mnt                                ##又可以看到之前建立的文件

结论: LVM的快照可以将某一时刻的信息记录到快照区中,因此,可以利用这一特点对数据做完全备份。

4.5 删除设备

[root@localhost ~]# umount /mnt  ##卸载
[root@localhost ~]# df
[root@localhost ~]# lvremove /dev/vg0/lv0backup    ##删除快照
[root@localhost ~]# lvremove /dev/vg0/lv0         ##删除逻辑卷
[root@localhost ~]# vgremove vg0                  ##删除物理卷组
[root@localhost ~]# pvremove /dev/vdb{1..2}       ##删除物理卷

5. 参考文档

暂无

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

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

相关文章

手机通用便签APP哪个比较好用?

手机通用便签APP哪个比较好用?随着现代科技的不断发展,手机的更新换代频率是比较快的,基本两三年就会换新手机。其中Android和iOS系统为手机主要使用系统,有些用户在使用一个系统腻了后,通常想更换另一个系统的品牌手机…

TCP/UDP模型:2024/2/29

作业1&#xff1a;TCP模型 服务器端&#xff1a; #include <myhead.h> #define SER_IP "192.168.199.129" #define SER_PORT 8899int main(int argc, const char *argv[]) {//1.创建用于连接的套接字文件int sfdsocket(AF_INET,SOCK_STREAM,0);if(sfd-1){per…

内网搭建mysql8.0并搭建主从复制详细教程!!!

一、安装mysql 1.1 mysql下载链接&#xff1a; https://downloads.mysql.com/archives/community/ 1.2 解压包并创建相应的数据目录 tar -xvf mysql-8.2.0-linux-glibc2.28-x86_64.tar.xz -C /usr/local cd /usr/local/ mv mysql-8.2.0-linux-glibc2.28-x86_64/ mysql mkdir…

06|Mysql内部组件结构

1. 连接器 客户端要向mysql发起通信都必须先跟Server端建立通信连接&#xff0c;而建立连接的工作就是由连接器完成的 mysql -h host[数据库地址] -u root[用户] -p root[密码] -P 3306连接步骤: 1、如果用户名或密码不对&#xff0c;你就会收到一个"Access denied for us…

学习阶段单片机买esp32还是stm32?

学习阶段单片机买esp32还是stm32? 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「stm32的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xf…

爱心商城|爱心商城系统|基于Springboot的爱心商城系统设计与实现(源码+数据库+文档)

爱心商城系统目录 目录 基于Springboot的爱心商城系统设计与实现 一、前言 二、系统功能设计 三、系统功能设计 1、商品管理 2、捐赠管理 3、公告管理 4、公告类型管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#x…

SpringBoot+Vue全栈开发-刘老师教编程(b站)(二)

创建SpringBoot项目 1.配置maven 出现bug java: 无法访问org.springframework.boot.SpringApplication 错误的类文件: /D:/maven/repository/org/springframework/boot/spring-boot/3.0.0/spring-boot-3.0.0.jar!/org/springframework/boot/SpringApplication.class 类…

【力扣hot100】刷题笔记Day15

前言 今天要刷的是图论&#xff0c;还没学过&#xff0c;先看看《代码随想录》这部分的基础 深搜DFS理论基础 深搜三部曲 确认递归函数、参数确认终止条件处理目前搜索节点出发的路径 代码框架 void dfs(参数) {if (终止条件) {存放结果;return;}for (选择&#xff1a;本节点…

面试经典150题——最长连续序列

"The only limit to our realization of tomorrow will be our doubts of today." - Franklin D. Roosevelt ​ 1. 题目描述 2. 题目分析与解析 2.1 思路一 题目要求我们使用时间复杂度为O(n)的解决方案&#xff0c;那么肯定就不能排序了。因为排序算法不可能达到…

Java-nio

一、NIO三大组件 NIO的三大组件分别是Channel&#xff0c;Buffer与Selector Java NIO系统的核心在于&#xff1a;通道(Channel)和缓冲区(Buffer)。通道表示打开到 IO 设备(例如&#xff1a;文件、套接字)的连接。若需要使用 NIO 系统&#xff0c;需要获取用于连接 IO 设备的通…

打造去中心化透明储蓄罐:Solidity智能合约的又一实践

一、案例背景 传统的储蓄罐通常是由个人或家庭使用&#xff0c;用于存放硬币或小额纸币。然而&#xff0c;这样的储蓄罐缺乏透明性&#xff0c;用户无法实时了解储蓄情况&#xff0c;也无法确保资金的安全性。 通过Solidity智能合约&#xff0c;我们可以构建一个去中心化…

金三银四,自动化测试面试题精选【美团二面】

面试一般分为技术面和hr面&#xff0c;形式的话很少有群面&#xff0c;少部分企业可能会有一个交叉面&#xff0c;不过总的来说&#xff0c;技术面基本就是考察你的专业技术水平的&#xff0c;hr面的话主要是看这个人的综合素质以及家庭情况符不符合公司要求&#xff0c;一般来…

sawForceDimensionSDK安装,sigma7+ros

force dimension的sdk中没有关于ros&#xff0c;借助开源的sawForceDimensionSDK实现对于数据的封装和可视化&#xff0c;方便后续使用 链接&#xff1a; GitHub - jhu-saw/sawForceDimensionSDK 具体步骤&#xff1a; 安装qt和ros&#xff0c;官网下载Force Dimension SDK …

整合swagger,并通过Knife4j美化界面

如果是前后端分离的项目&#xff0c;需要前端的参与&#xff0c;所以一个好看的接口文档非常的重要 1、引入依赖 美化插件其中自带swagger的依赖了&#xff0c;所以不需要再单独导入swagger的坐标了 <dependency><groupId>com.github.xiaoymin</groupId>&…

免费音频剪辑

在数字时代&#xff0c;音频剪辑已成为许多职业和爱好者不可或缺的技能。无论是制作播客、教育视频、还是进行广告宣传&#xff0c;高质量的音频剪辑都能为作品增色不少。今天&#xff0c;我要为大家强烈安利一款免费且功能强大的音频剪辑工具&#xff0c;它绝对是你办公桌上不…

CDH6.3.1离线安装

一、从官方文档整体认识CDH 官方文档地址如下&#xff1a; CDH Overview | 6.3.x | Cloudera Documentation CDH是Apache Hadoop和相关项目中最完整、测试最全面、最受欢迎的发行版。CDH提供Hadoop的核心元素、可扩展存储和分布式计算&#xff0c;以及基于Web的用户界面和重…

【LeetCode】一周中的第几天+ 一年中的第几天

2023-12-30 文章目录 一周中的第几天方法一&#xff1a;模拟思路步骤 方法二&#xff1a;调用库函数方法三&#xff1a;调用库函数 [1154. 一年中的第几天](https://leetcode.cn/problems/day-of-the-year/)方法一&#xff1a;直接计算思路&#xff1a; 方法二&#xff1a;调用…

【Qt】Sqlite数据库加密

1. 加密方式 对数据库文件加密。既不会暴露表结构&#xff0c;也不会暴露数据细节。 2. 加密工具&#xff08;QtCipherSqlitePlugin&#xff09; 用于密码 SQLite 的 Qt 插件&#xff0c;它基于 SQLite 源和 wxWidget 中的 wxSQLite3插件github地址&#xff1a;https://gith…

2024.2.27每日一题

之前是出去旅游了没发&#xff0c;现在开学了&#xff0c;继续每日一题&#xff0c;继续卷&#xff0c;一上来就是困难题&#x1f613;&#xff0c;直接cv大法。 LeetCode 统计树中的合法路径数目 2867. 统计树中的合法路径数目 - 力扣&#xff08;LeetCode&#xff09; 题目…

爬取某牙视频

爬取页面链接&#xff1a;游戏视频_游戏攻略_虎牙视频 爬取步骤&#xff1a;点进去一个视频播放&#xff0c;查看media看有没有视频&#xff0c;发现没有。在xhr中发现有许多ts文件&#xff0c;但这种不是很长的视频一般都有直接的播放链接&#xff0c;所以目标还是找直接的链…
推荐文章