LVM核心概念

news2024/10/6 4:07:34

1. LVM简介

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。

优点:

  • 可以灵活分配和管理磁盘空间

  • 可以对分区进行动态的扩容

  • 可以增加新的磁盘到lvm中

2. LVM核心概念

LVM概念图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • PV(Physical Volume)物理卷 磁盘分区后(还未格式化为文件系统)使用 pvcreate 命令可以将硬盘分区创建为 pv,此分区的 systemID 为8e,即为 LVM 格式的系统标识符。
  • VG(Volume Group)卷组 将多个 PV 组合起来,使用 vgcreate 命令创建成卷组。卷组包含了多个 PV,相当于重新整合了多个分区后得到的硬盘。虽然 VG 整合了多个 PV,但是创建 VG 时会将所有空间根据指定 PE 大小划分为多个 PE,在 LVM 模式下的存储都是以 PE 为单元,类似于文件系统的 Block。
  • PE(Physical Extend)物理存储单元 PE 是 VG 中的存储单元。实际存储的数据都是在 PE 存储。
  • LV(Logical Volume)逻辑卷 如果说VG是整合分区为硬盘,那么 LV 就是把这个硬盘重新的分区,只不过该分区是通过 VG 来划分的。VG 中有很多 PE 单元,可以指定将多少 PE 划分给一个 LV,也可以直接指定大小来划分。划分 LV 后就相当于划分了分区,只需要对 LV 进行格式化即可变成普通的文件系统。
  • LE(Logical extent)逻辑存储单元 LE 则是逻辑存储单元,即 LV 中的逻辑存储单元,和 PE 的大小一样。从 VG 中划分 LV,实际上是从 VG 中划分 VG 中的 PE,只不过划分 LV 后它不在称为 PE,而是 LE。

3. LVM原理

LVM 之所以能够伸缩容量,实现的方法就是讲 LV 里空闲的 PE 移出,或向 LV 中添加空闲的 PE。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4. 格式化为LVM盘

4.1. fdisk格式化2T以下磁盘

# 使用fdisk进行盘的格式化
fdisk /dev/vdb

# 以下是交互输出结果
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xadfbfcb4.

Command (m for help): n # 新建分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p  # 待定主分区
Partition number (1-4, default 1): 1 # 序号
First sector (2048-1048575999, default 2048): # 直接回车
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1048575999, default 1048575999): # 直接回车
Using default value 1048575999
Partition 1 of type Linux and of size 500 GiB is set

Command (m for help): p # 确认分区情况

Disk /dev/vdb: 536.9 GB, 536870912000 bytes, 1048576000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xadfbfcb4

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048  1048575999   524286976   83  Linux

Command (m for help): t # 选择系统id
Selected partition 1
Hex code (type L to list all codes): 8e # 8e指定的是使用LVM
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): w # 保存
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

4.2. parted格式化2T以上磁盘

# parted /dev/sdk
GNU Parted 3.1
使用 /dev/sdk
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mktable
新的磁盘标签类型? gpt
(parted) p
Model: ATA ST4000NM0035-1V4 (scsi)
Disk /dev/sdk: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start  End  Size  File system  Name  标志

(parted) mkpart
分区名称?  []?
文件系统类型?  [ext2]?
起始点? 0g
结束点? 4000G
(parted) p
Model: ATA ST4000NM0035-1V4 (scsi)
Disk /dev/sdk: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  标志
 1      1049kB  4000GB  4000GB

(parted) toggle 1 lvm
(parted) p
Model: ATA ST4000NM0035-1V4 (scsi)
Disk /dev/sdk: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  标志
 1      1049kB  4000GB  4000GB                     lvm

(parted) quit
信息: You may need to update /etc/fstab.

5. LVM操作

# pvcreate如果提示命令不存在,则需要安装lvm2
yum install lvm2 -y

5.1. 创建物理卷(PV)

# pvcreate /dev/nvme1n1p1 /dev/nvme2n1p1
  Physical volume "/dev/nvme1n1p1" successfully created.
  Physical volume "/dev/nvme2n1p1" successfully created.

# 使用pvs或者 pvdisplay 查看结果
# pvs
  PV             VG Fmt  Attr PSize   PFree
  /dev/nvme1n1p1    lvm2 ---  931.51g 931.51g
  /dev/nvme2n1p1    lvm2 ---  931.51g 931.51g

5.2. 创建卷组(VG)

# vgcreate vgdata /dev/nvme1n1p1 /dev/nvme2n1p1
  Volume group "vgdata" successfully created

# 使用vgs 查看vg, vgdisplay的信息

# lsblk查看
# lsblk
NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
nvme0n1                                       259:0    0 931.5G  0 disk  /pcdn_data/storage1_ssd
nvme2n1                                       259:2    0 931.5G  0 disk
└─nvme2n1p1                                   259:5    0 931.5G  0 part
  └─vgdata-data                               251:2    0   1.8T  0 lvm   /vgdata
nvme1n1                                       259:1    0 931.5G  0 disk
└─nvme1n1p1                                   259:4    0 931.5G  0 part
  └─vgdata-data                               251:2    0   1.8T  0 lvm   /vgdata

5.3. 创建逻辑卷(LV)

# lvcreate -L 后面是大小, -n 后面是逻辑卷名称, vgdata对应上面的卷组
# lvcreate -L 1.8T -n data vgdata
  Rounding up size to full physical extent 1.80 TiB
  Logical volume "data" created.

# 使用lvdisplay 查看结果

5.4. 格式化文件系统及挂载

# 查看磁盘信息
# fdisk -l
磁盘 /dev/mapper/vgdata-data:1979.1 GB, 1979124285440 字节,3865477120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

# 格式化成xfs, /dev/vgdata/data为上面 LV Path
mkfs.xfs /dev/vgdata/data

# mount
mkdir -p /data
mount /dev/vgdata/data /data

5.5. LVM扩容

LVM最大的优势就是其可伸缩性,伸缩性有更加偏重与扩容。扩容的实质是将 VG 中的空闲 PE 添加到 LV 中,所以只要 VG 中有空闲的 PE,就可以进行扩容。即使没有空闲 PE,也可以添加PV,将PV加入到VG中增加空闲PE。

扩容的两个关键步骤:

(1)使用 lvextend 或 lvresize 添加更多的 PE 或容量到 LV

(2)使用 resize2fs命令(xfs 使用 xfs_growfs)将 LV 增加后的容量添加到对应的文件系统中(此过程是修改文件系统而非LVM内容)

6. LVM相关命令

6.1. 管理 PV

功能命令
创建 PVpvcreate
扫描并列出所有 PVpvscan
列出 PV 属性pvdisplay {name|size}
移除 PVpvremove
移动 PV 中的数据pvmove

6.2. 管理 VG

功能命令
创建 VGvgcreate
扫描并列出所有 VGvgscan
列出 VG 属性信息vgdisplay
移除(删除)VGvgremove
从 VG 中移除 PVvgreduce
将 PV 添加到 VG 中vgextend
修改 VG 属性vgchange

6.3. 管理 LV

功能命令
创建 LVlvcreate
扫描并列出所有 LVlvscan
列出 LV 属性信息lvdisplay
移除 LVlvremove
缩小 LV 容量lvreduce/lvresize
增大 LV 容量lvextend/lvresize
调整 LV 容量lvresize

lvcreate命令

一般用法:lvcreate [-L size(M/G) | -l PEnum] -n lv_name vg_name

选项:

-L:根据大小创建 LV,即分配多少空间给此 LV

-l:根据 PE 的数量来创建 LV,即分配多少个 PE 给此 LV

-n:指定 LV 名称

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

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

相关文章

LeetCode Top 100 题目概览及部分题目解答【两数之和,接雨水,最长回文子串,三数之和】

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

【C++之unordered_set和unordered_map的介绍与应用】

C学习笔记---024 C之unordered_set和unordered_map的介绍与应用1、unordered_set和unordered_map的简单介绍1.1、unordered_set和unordered_map的基本概念1.2、unordered_set和unordered_map的基本特性 2、unordered_set的基本操作2.1、unordered_set的定义2.2、unordered_set的…

docker部署前端,配置域名和ssl

之前使用80端口部署前端项目后,可以使用IP端口号在公网访问到部署的项目。 进行ICP域名备案后,可以通过域名解析将IP套壳,访问域名直接访问到部署的项目~ 如果使用http协议可以很容易实现这个需求,对nginx.conf文件进行修改&#…

python中的包和模块

目录 一、包与模块 二、第三方包的安装 2.1 pip install 2.2使用 curl 管道 2.3其他安装方法 三、导入单元的构成 3.1pip的使用 四、模块的缓存 一、包与模块 Python 中除了函数库以外,还有非常多且优秀的第三方库、包、模块。 模块Module:以…

Python容器 之 字符串--定义

目录 1.字符串如何定义? 2.定义字符串时遇到特殊内容怎么处理? 1)字符串本身包含引号,如:定义字符串 Im 小明、他叫“小明”。 (1)如果字符串本身包含单引号,定义的时候不能使用 单引号。 &#xff08…

币界网讯,美国选择 Coinbase 进行数字货币托管

2024 年0 7 月 02 日。华盛顿特区美国法警局 (USMS) 宣布选择 Coinbase Prime 作为其“一级”数字资产的托管人和高级交易服务提供商,USMS这一具有里程碑意义的决定,反映了数字资产日益融入美国联邦司法程序的趋势。Coinbase 是世界排名前十的数字货币交…

解决微信能登陆,但打不开浏览器的WIFI连接问题

双击打开ipv4,改成自动获取 点击确定保存好 断网重新联网

头条系统-05-延迟队列精准发布文章-概述添加任务(db和redis实现延迟任务)、取消拉取任务定时刷新(redis管道、分布式锁setNx)...

文章目录 延迟任务精准发布文章 1)文章定时发布2)延迟任务概述 2.1)什么是延迟任务2.2)技术对比 2.2.1)DelayQueue2.2.2)RabbitMQ实现延迟任务2.2.3)redis实现 3)redis实现延迟任务4)延迟任务服务实现 4.1)搭建heima-leadnews-schedule模块4.2)数据库准备4.3)安装redis4.4)项目…

第十一章 路由器单臂路由配置

实验目标 掌握单臂路由器配置方法; 通过单臂路由器实现不同 VLAN 之间互相通信; 实验背景 某企业有两个主要部门, 技术部和销售部, 分处于不同的办公室, 为了安全和便于管理对两个部门的主机进行了 VLAN 的划分&#x…

ACM美国计算机协会简介及个人下载ACM文献途径

ACM美国计算机协会简介: ACM(Association for Computing Machinery) 创立于1947年, 是全球历史最悠久和最大的计算机教育、科研机构。ACM目前提供的服务遍及全球100多个国家,会员数超过9万名,涵盖工商业&a…

【力扣】赎金信

🔥博客主页: 我要成为C领域大神🎥系列专栏:【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ 给你两个字符串…

商家转账到零钱开通教程及辅助开通手段详解

商家转账到零钱申请可以通过商家自行申请或者辅助开通手段代申请两种方式,如果自行申请难以过审,辅助开通代申请则成为降低商家时间成本和商户号风险的必要手段,以下从自助申请和辅助开通两种方式说说商家转账到零钱高效开通办法。 自行申请方…

产品经理-对产品经理的认识(1)

今天跟大家聊一下产品经理这个岗位的,产品经理是互联网岗位当中比较火的一个岗位,也是最接近CEO的岗位 产品经理岗位,技术门槛低,薪水和前景都很不错,又处于团队的核心位置 产品经理岗位没有完全相关的专业设置和清晰的学习路径,绝…

【C语言】文件的顺序读写

©作者:末央& ©系列:C语言初阶(适合小白入门) ©说明:以凡人之笔墨,书写未来之大梦 目录 前言字符输入输出函数 - fgetc和fputc文本行输入输出函数 - fgets和fputs格式化输入输出函数 - fscanf和fprintf 前言 对文件数据的读写可以分为顺序…

10.优化算法之字符串

1.最长公共前缀 14. 最长公共前缀 - 力扣&#xff08;LeetCode&#xff09; class Solution {public static String longestCommonPrefix(String[] strs) {if(strsnull||strs.length0){return "";}int lengthstrs.length;for(int i0;i<strs[0].length();i){//第一…

FMEA培训如何助你成为工作领域的“稳中求胜”高手

在竞争激烈的职场环境中&#xff0c;每个人都渴望掌握一门能够让自己脱颖而出的技能。而FMEA&#xff08;失效模式与影响分析&#xff09;正是这样一门强大的工具&#xff0c;它不仅能够帮助我们识别并预防潜在的问题&#xff0c;还能提升工作效率&#xff0c;确保项目的顺利进…

从BeanFactory源码看Bean的生命周期

下图是我搜索“Spring Bean生命周期”找到的图片&#xff0c;来自文章——Spring Bean的生命周期 [](https://img2022.cnblogs.com/blog/1942408/202207/1942408-20220713150530777-1198523052.png) 下面&#xff0c;我们从AbstractAutowireCapableBeanFactory的源码中来分析…

无偏归一化自适应心电ECG信号降噪方法(MATLAB)

心电信号作为一种生物信号&#xff0c;含有大量的临床应用价值的信息&#xff0c;在现代生命医学研究中占有重要的地位。但心电信号低频、低幅值的特点&#xff0c;使其在采集和传输的过程中经常受到噪声的干扰&#xff0c;使心电波形严重失真&#xff0c;从而影响后续的病情分…

无人机企业需要什么资质?

无人机企业所需的资质主要可以分为几大类&#xff0c;以确保其合法、安全、高效地进行相关业务活动。以下是对这些资质的详细解释和归纳&#xff1a; 1. 基础企业资质&#xff1a; - 工商营业执照&#xff1a;这是企业合法经营的基本证书&#xff0c;所有企业都需要取得。无人…

查询 条件列值用notepad++批量添加单引号和逗号

参考&#xff1a;Notepad批量添加引号_notepad字符串统一加引号-CSDN博客 我需要批量修改数据表中某一列值指定的部分列&#xff0c;比如某个编号为CP0408242321001到CP0408242321101的条件。 我从数据表中把这个条件的所有编号复制出来了粘贴到了notepad里面。 如下图所示 从…