LVM核心概念

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 setCommand (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: 0xadfbfcb4Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048  1048575999   524286976   83  LinuxCommand (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/nvme2n1p1Physical volume "/dev/nvme1n1p1" successfully created.Physical volume "/dev/nvme2n1p1" successfully created.# 使用pvs或者 pvdisplay 查看结果
# pvsPV             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/nvme2n1p1Volume 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 vgdataRounding up size to full physical extent 1.80 TiBLogical 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.rhkb.cn/news/366417.html

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

相关文章

大数据学习之Clickhouse

Clickhouse-23.2.1.2537 学习 一、Clickhouse概述 clickhouse 官网网址:https://clickhouse.com/ ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。 OLTP(联机事务处理系统)例如mysql等关系型数据库,在对于存储小数据量的时候&#xff…

Langchain-Chatchat本地部署记录,三分钟学会!

1.前言: 最近AI爆发式的火,忆往昔尤记得16,17那会移动互联网是特别火热的,也造富了一批公司和个人,出来了很多精妙的app应用。现在轮到AI发力了,想想自己也应该参与到这场时代的浪潮之中,所以就找了开源的…

【TB作品】atmega16 计算器,ATMEGA16单片机,Proteus仿真

实验报告:基于ATmega16单片机的简易计算器设计 1. 实验背景 计算器是日常生活和工作中不可或缺的工具,通过按键输入即可实现基本的四则运算。通过本实验,我们将利用ATmega16单片机、矩阵键盘和LCD1602显示屏,设计并实现一个简易…

一招解决 | IP地址访问怎么实现https

没有域名的情况下,使用IP地址实现HTTPS访问是可以的,但相比使用域名会有些许限制,需要通过部署专用于IP地址的SSL/TLS证书来实现。 IP地址实现HTTPS访问的过程与使用域名类似,但有几个关键的区别。以下是使用IP地址实现HTTPS访问…

Win10 电脑屏幕保护怎么设置?学会了你也能轻松设置屏保

在 Windows 10 操作系统中,屏幕保护程序不仅能够为您的电脑增添个性化色彩,还能在长时间不操作电脑时保护屏幕免受烧屏影响。下面是一份详细指南,简鹿办公编辑教您如何通过 Windows 搜索框设置屏幕保护程序,并调整相关参数&#x…

uniapp——上传图片获取到file对象而非临时地址——基础积累

最近在看uniapp的代码,遇到一个需求,就是要实现上传图片的功能 uniapp 官网地址:https://uniapp.dcloud.net.cn/ 上传图片有对应的API: uni.chooseImage方法:https://uniapp.dcloud.net.cn/api/media/image.html#choo…

使用uniapp编写微信小程序

使用uniapp编写微信小程序 文章目录 使用uniapp编写微信小程序前言一、项目搭建1.1 创建项目方式1.1.1 HBuilderX工具创建1.1.2 命令行下载1.1.3 直接Gitee下载 1.2 项目文件解构1.2.1 安装依赖1.2.2 项目启动1.2.3 文件结构释义 1.2 引入uni-ui介绍 二、拓展2.1 uni-app使用uc…

“探索价值增长消费:让每一笔购物都成为增值之旅“

亲爱的顾客们,你们好!今天,我将带你们探索一种革命性的消费哲学——价值增长消费,让每一次购物都成为一次增值之旅! 在传统消费观念里,我们付出金钱换取商品或服务,随后这些便成为过去。但如今…

2024 年江西省研究生数学建模竞赛题目 B题投标中的竞争策略问题---完整文章分享(仅供学习)

问题: 招投标问题是企业运营过程中必须面对的基本问题之一。现有的招投标平台有国家级的,也有地方性的。在招投标过程中,企业需要全面了解招标公告中的相关信息,在遵守招投标各种规范和制度的基础上,选择有效的竞争策…

【AI绘画Stable Diffusion】教你制作 SD 光影文字,保姆级教程建议收藏!(附模型下载)

大家好,我是设计师阿威 最近光影文字又开始火起来了。今天讲讲怎么利用 Stable Diffusion 的 ControlNet 插件来制作光影图片。 1.下载光影模型组件 1.SD主模型:majicMIX realistic V6、xxmix9realistic_v26 2. ControlNet 的模型:Bright…

CV每日论文--2024.6.28

1、On Scaling Up 3D Gaussian Splatting Training 中文标题:扩展 3D 高斯泼溅训练 简介:3D高斯点描(3DGS)由于其卓越的视觉质量和渲染速度,越来越受欢迎用于3D重建。然而,3DGS的训练目前仅在单个GPU上进行,由于内存限制,它的处理高分辨率和大规模3D重建…

【海思Hi3403V100】多目拼接相机套板硬件规划方案

海思Hi3403V100 是专业超高清智能网络摄像头 SoC。该芯片最高支持四路 sensor 输入,支持最高 4K60fps 的 ISP 图像处理能力,支持 3F 、WDR、多级降噪、六轴防抖、硬件拼接、多光谱融合等多种传统图像增强和处理算法,支持通过AI 算法对输入图像…

【Qwen2部署实战】Qwen2初体验:用Transformers打造智能聊天机器人

系列篇章💥 No.文章1【Qwen部署实战】探索Qwen-7B-Chat:阿里云大型语言模型的对话实践2【Qwen2部署实战】Qwen2初体验:用Transformers打造智能聊天机器人3【Qwen2部署实战】探索Qwen2-7B:通过FastApi框架实现API的部署与调用4【Q…

windows USB 驱动开发-URB结构

通用串行总线 (USB) 客户端驱动程序无法直接与其设备通信。 相反,客户端驱动程序会创建请求并将其提交到 USB 驱动程序堆栈进行处理。 在每个请求中,客户端驱动程序提供一个可变长度的数据结构,称为 USB 请求块 (URB) ,URB 结构描…

从理论到实践的指南:企业如何建立有效的EHS管理体系?

企业如何建立有效的EHS管理体系?对于任何企业,没有安全就谈不上稳定生产和经济效益,因此建立EHS管理体系是解决企业长期追求的建立安全管理长效机制的最有效手段。良好的体系运转,可以最大限度地减少事故发生。 这篇借着开头这个…

年轻人「入侵」厂货电商:泼天的富贵or甜蜜的烦恼?

【潮汐商业评论/原创】 “明天我们带个黑色塑料袋,假装是批发拿货的,看看能不能淘到好货。这个批发‘黑话’你也学一下,别到时候露馅。” Paula正兴冲冲地跟Grace计划去服装批发市场“消费”。 只不过,与以往普通进店客人身份不…

ArcGIS中将测绘数据投影坐标(平面坐标)转地理坐标(球面经纬度坐标)

目录 前言1.测绘数据预览1.1 确定带号1.2 为什么是对Y轴分带,而不是对X轴分带? 2 测绘数据转shp2.1 添加数据2.2 显示XY数据2.3 添加经纬度字段2.4 计算经纬度 3.shp数据重投影4.总结 前言 最近在刚好在做一个小功能,将测绘数据转为经纬度坐标…

人脸特征68点识别 C++

1、加载一张图片 main函数&#xff1a; cv::Mat img cv::imread("5.jpg");vector<Point2f> points_vec dectectFace68(img);2、人脸68特征识别函数 在这里vector<Point2f> dectectFace68(Mat src) {vector<Point2f> points_vec;int* pResults …

TIA博途WinCC通过VB脚本从 Excel中读取数据的具体方法介绍

TIA博途WinCC通过VB脚本从 Excel中读取数据的具体方法介绍 添加 一个PLC,设置PLC的IP地址,如下图所示, 添加全局DB块,新建几个变量,如下图所示, 在数据块中添加了 tag1 …… tag6 ,共 6 个浮点数类型的变量,用来接收通过 WinCC 从 Excel 文件中读取的数据。 添加 HMI…