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.mzph.cn/web/37973.shtml

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

相关文章

2024年,精品课录制新方式,站在大屏前录出绿幕抠像的效果!感谢不坑盒子!

先做个小调查:你们那边请工作室录一节课,多少钱?留言区交流一下。 暑假了,老师们又有时间来录课了。 早在2021年秋天,精品课遴选的第一年,我就第一时间给大家分享了2种录精品课的方法:大屏前录…

python源码:opencv多视频源同屏拼接播放

一、前言 如标题所示,这个python代码的目的是利用opencv模块实现多视频源同屏拼接播放的,里面包含视频播放尺寸修改、视频播放加序号、视频流存活检测等方案,可做扩展开发使用。 二、代码 import cv2 import time from func_timeout import …

JAVA里的BigDecimal用法

public class BigDecimaldemo1 {public static void main(String[] args) {System.out.println(0.090.01);//为什么不是0.10呢?} }在使用float或者double类型的数据在进行数学运算的时候,很有可能会产生精度丢失问题。我们都知道计算机底层在进行运算的时候&#x…

科林Linux7_网络爬虫

一、爬虫 网络资源的下载工具,工作与万维网环境,持续获取网页网站中的网络信息。可持续的数据采集机器人 1、搜索引擎技术使用爬虫 2、数据分析、数据挖掘领域,需要爬虫进行数据准备 3、数据批处理、采集,大量获取某些网站中的…

LeetCode题练习与总结:二叉树的前序遍历--144

一、题目描述 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,2,3]示例 2: 输入:root [] 输出:[]示例 3: 输入:roo…

数据资产的创新应用与未来展望:探讨数据资产在人工智能、物联网等新兴领域的应用前景,提出前瞻性的数据资产解决方案,为企业探索新的增长点,推动行业创新发展

目录 一、引言 二、数据资产在人工智能领域的应用 1、机器学习与深度学习 2、自然语言处理 3、计算机视觉 三、数据资产在物联网领域的应用 1、智能家居 2、工业物联网 3、智慧城市 四、前瞻性的数据资产解决方案 1、构建统一的数据管理平台 2、加强数据安全和隐私…

基于路径长度的样条插补算法(自动驾驶和路径跟踪控制适用)

以前在做车辆跟踪控制的时候发现在针对有多个X和多个Y对应的路径插补时候,总是报错,因为MATLAB里面的interp1插补函数它要求x要唯一对应一个y,当路径以单独的x或者y来求插补时候的时候就报错。由于在使用Matlab的interp1函数进行插值时&#…

Linux-网络安全私房菜

文章目录 前言入门基本指令篇章字符集设置cdlsdatemkdirtouch-d-m 修改主机名rmshredrename重命名mv移动tar打包与压缩打包但是不压缩打包且压缩更新包文件解压对应的包 zip压缩文件命令cat查看显示行号交互写入(追加)显示空行 more和lesshead和tailhead…

期末复习---程序填空

注意&#xff1a; 1.数组后移 *p *(p-1) //把前一个数赋值到后一个数的位置上来覆盖后一个数 2.指针找最大字符 max *p while( *p){ if( max< *p) { max*p; qp;/ 用新的指针指向这个已经找到的最大位置&#xff1b;!!!!!!!!! } p; //因为开始没有next &#xff…

Web工程化

1、webpack 1.1 概念 一个前端打包器。 webpack 只识别javascript. 所以需要安装nodejs环境。 1.2 运行环境 Nodejs Nodejs 是运行JavaScript的环境。 因为nodejs发布了许多版本&#xff0c;在不同的技术栈下&#xff0c;需要使用不同的nodejs。 所以需要在电脑上安装n…

web应用技术-第十一次课后作业

验证过滤器进行权限验证的原理。 Filter过滤器&#xff1a;可以把对资源的请求拦截下来&#xff0c;从而实现一些特殊的功能。一般完成登录校验、统一编码处理、敏感字符处理等通用操作。 定义&#xff1a;实现Filter接口 配置&#xff1a;WebFilter(urlPatterns"/*&qu…

常见VPS主机术语有哪些?VPS术语解析

常见VPS主机术语有哪些&#xff1f;本期为大家解析一下我们常见到的听到的VPS专业术语&#xff0c;帮助大家更轻松的了解VPS主机相关知识。 常见VPS主机术语 Apache – 世界上最流行的 Web 服务器软件。 CentOS – 旨在提供基于 Red Hat Enterprise Linux 的企业级操作系统的…

基于springboot+vue+uniapp的超市售货管理平台

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

考研生活day2--王道课后习题2.3.1、2.3.2、2.3.3

2.3.1 题目描述&#xff1a; 这题和曾经做过的LeetCode203.移除元素一模一样&#xff0c;所以我们就使用LeetCode进行书写&#xff0c;题目链接203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; 解题思路 大家的第一反应肯定是根据书上所学的书写方法一样书写&…

【PB案例学习笔记】-26制作一个带浮动图标的工具栏

写在前面 这是PB案例学习笔记系列文章的第26篇&#xff0c;该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码&#xff0c;小凡都上传到了gite…

爬虫cookie是什么意思

“爬虫 cookie”指的是网络爬虫在访问网站时所使用的cookie&#xff0c;网络爬虫是一种自动化程序&#xff0c;用于在互联网上收集信息并进行索引&#xff0c;这些信息可以用于搜索引擎、数据分析或其他目的。 本教程操作系统&#xff1a;Windows10系统、Dell G3电脑。 “爬虫…

51-1 内网信息收集 - 内网资源探测

导语 在内网渗透过程中,通常需要利用各种技术来探测内网资源,为后续的横向渗透做准备。发现内网存活的主机及其详细信息可以帮助确定攻击方向和潜在的漏洞。 一、基于 ICMP 发现存活主机 ICMP(Internet Control Message Protocol,因特网控制消息协议)是 TCP/IP 协议簇的…

React+TS前台项目实战(二十二)-- 全局常用导出组件Export封装

文章目录 前言Export组件1. 功能分析2. 代码详细注释3. 使用方式4. 效果展示 总结 前言 今天我们来封装一个带导出图标的导出组件。 Export组件 1. 功能分析 通过传入链接地址&#xff0c;规定要跳转的导出页面&#xff0c;或是直接通过链接导出数据 2. 代码详细注释 // /c…

虚拟环境管理

虚拟环境 在使用 Python 时我们一般使用“pip install 第三方包名”来安装第三方包&#xff0c;但是由于pip的特性&#xff0c;系统只能安装每个包的一个版本。而在实际开发中&#xff0c;可能同时开发多个项目&#xff0c;如&#xff1a;上图有三个项目&#xff1b;每个项目需…

django学习入门系列之第三点《BootSrap初了解》

文章目录 初识BootStrap往期回顾 初识BootStrap BootSrap是什么&#xff1f; 是别人帮我们已写好的CSS样式&#xff0c;我们如果想要使用这个BootSrap&#xff1a; 下载BootStrap使用 在页面上引入BootStrap编写HTML时&#xff0c;按照BootStrap的规定来编写 自定制 官网&…