linux中什么是lvm

linux中,LVM全称“Logical Volume Manager”,中文意思为“逻辑卷管理”,是Linux环境下对磁盘分区进行管理的一种机制;LVM是建立在硬盘和分区之上的一个逻辑层,可用来提高磁盘分区管理的灵活性。

linux中什么是lvm

本教程操作环境:linux5.9.8系统、Dell G3电脑。

什么是LVM

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

一般来说,物理磁盘或分区之间是分隔的,数据无法跨盘或分区,而各磁盘或分区的大小固定,重新调整比较麻烦。LVM可以将这些底层的物理磁盘或分区整合起来,抽象成容量资源池,以划分成逻辑卷的方式供上层使用,其最主要的功能即是可以在无需关机无需重新格式化(准确地说,原来的部分无需格式化,只格式化新增的部分)的情况下弹性调整逻辑卷的大小。

LVM的实现过程如下图:

1.png

LVM名词解释

PV(physical volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区。它只是在物理分区中划出了一个特殊的区域,用于记载与LVM相关的管理参数。

VG(volume group):卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立后可动态的添加卷到卷组中,一个逻辑卷管理系统工程中可有多个卷组。

LV(logical volume):逻辑卷建立在卷组基础上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后可以动态扩展和缩小空间。

PE(physical extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。

LE(logical extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。由于受内核限制的原因,一个逻辑卷(Logic Volume)最多只能包含65536个PE(Physical Extent),所以一个PE的大小就决定了逻辑卷的最大容量,4 MB(默认) 的PE决定了单个逻辑卷最大容量为 256 GB,若希望使用大于256G的逻辑卷,则创建卷组时需要指定更大的PE。在Red Hat Enterprise Linux AS 4中PE大小范围为8 KB 到 16GB,并且必须总是 2 的倍数。

LVM的写入模式

LVM有两种写入模式:线性模式和条带模式。

线性模式即写完一个设备后再写另一个设备

条带模式就有点类似于RAID0,即数据是被分散写入到LVM各成员设备上的。

因为条带模式的数据不具有安全性,且LVM并不强调读写性能,故LVM默认为线性模式,这样即使一个设备坏了,其它设备上的数据还在。

LVM的工作原理

LVM在每个物理卷头部都维护了一个metadata,每个metadata中都包含了整个VG(volume group:卷组)的信息,包括每个VG的布局配置,PV(physical volume:物理卷)的编号,LV(logical volume:逻辑卷)的编号,以及每个PE(physical extends:物理扩展单元)到LE(logical extends:物理扩展单元)的映射关系。同一个VG中的每个PV头部的信息都是相同的,这样有利于故障时进行数据恢复。

LVM对上层文件系统提供LV层,隐藏了操作细节。对文件系统而言,对LV的操作与原先对partition的操作没有差别。当对LV进行写入操作的时候,LVM定位相应的LE,通过PV头部的映射表将数据写入到相应的PE上。LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。我们如果新增加了硬盘,其也不会改变现有上层的逻辑卷。关键在于PE和LE之间建立映射关系,不同的映射规则决定了不同的LVM存储模型。LVM支持多个PV 的stripe和mirror。

LVM的优缺点

优点:

文件系统可以跨多个磁盘,因此文件系统大小不会受物理磁盘的限制。

可以在系统运行的状态下动态的扩展文件系统的大小。

可以增加新的磁盘到LVM的存储池中。

可以以镜像的方式冗余重要的数据到多个物理磁盘。

可以方便的导出整个卷组到另外一台机器。

缺点:

在从卷组中移除一个磁盘的时候必须使用reducevg命令(这个命令要求root权限,并且不允许在快照卷组中使用)。

当卷组中的一个磁盘损坏时,整个卷组都会受到影响。

因为加入了额外的操作,存贮性能受到影响。

创建PV/VG/LV的方法

1、将各物理磁盘或分区的系统类型设为Linux LVM,其system ID为8e,通过fdisk工具中的t命令设置

[root@localhost ~]# fdisk /dev/sdb ...Command (m for help): nPartition type:   p   primary (1 primary, 0 extended, 3 free)   e   extendedSelect (default p): pPartition number (2-4, default 2): 2First sector (20973568-62914559, default 20973568): Using default value 20973568Last sector, +sectors or +size{K,M,G} (20973568-62914559, default 62914559): +5G...Command (m for help): tPartition number (1,2, default 2): 2Hex code (type L to list all codes): 8e  # 指定system id为8eChanged type of partition 'Linux' to 'Linux LVM'...Command (m for help): p.../dev/sdb1            2048    20973567    10485760   8e  Linux LVM/dev/sdb2        20973568    31459327     5242880   8e  Linux LVMCommand (m for help): w...

2、将各物理磁盘或分区初始化为PV(physical volume,物理卷)

这一阶段可使用的命令为pvcreate、pvremove、pvscan、pvdisplay(pvs)

1)pvcreate:创建物理卷

用法:pvcreate [option] DEVICE

  选项:

      -f:强制创建逻辑卷,不需用户确认

      -u:指定设备的UUID

      -y:所有问题都回答yes

  例 pvcreate /dev/sdb1 /dev/sdb2

2)pvscan:扫描当前系统上的所有物理卷

用法:pvscan [option]

  选项:

      -e:仅显示属于输出卷组的物理卷

      -n:仅显示不属于任何卷组的物理卷

      -u:显示UUID

3)pvdisplay:显示物理卷的属性

 用法:pvdisplay [PV_DEVICE]

4)pvremove:将物理卷信息删除,使其不再被视为一个物理卷

 用法:pvremove [option] PV_DEVICE

  选项:

      -f:强制删除

      -y:所有问题都回答yes

  例 pvremove /dev/sdb1

5)pv创建和删除例子

[root@localhost ~]# pvcreate /dev/sdb{1,2}  # 将两个分区初始化为物理卷  Physical volume "/dev/sdb1" successfully created.  Physical volume "/dev/sdb2" successfully created.[root@localhost ~]# pvscan   PV /dev/sdb2                      lvm2 [5.00 GiB]  PV /dev/sdb1                      lvm2 [10.00 GiB]  Total: 2 [15.00 GiB] / in use: 0 [0   ] / in no VG: 2 [15.00 GiB][root@localhost ~]# pvdisplay /dev/sdb1   # 显示物理卷sdb1的详细信息  "/dev/sdb1" is a new physical volume of "10.00 GiB"  --- NEW Physical volume ---  PV Name               /dev/sdb1  VG Name                 PV Size               10.00 GiB  Allocatable           NO  PE Size               0   # 由于PE是在VG阶段才划分的,所以此处看到的都是0  Total PE              0  Free PE               0  Allocated PE          0  PV UUID               GrP9Gi-ubau-UAcb-za3B-vSc3-er2Q-MVt9OO   [root@localhost ~]# pvremove /dev/sdb2   # 删除sdb2的物理卷信息  Labels on physical volume "/dev/sdb2" successfully wiped.[root@localhost ~]# pvscan     # 可以看到PV列表中已无sdb2  PV /dev/sdb1                      lvm2 [10.00 GiB]  Total: 1 [10.00 GiB] / in use: 0 [0   ] / in no VG: 1 [10.00 GiB][root@localhost ~]# pvcreate /dev/sdb2   Physical volume "/dev/sdb2" successfully created.

3、创建VG(volume group,卷组)。

卷组将多个物理卷整合起来(屏蔽了底层细节),并划分PE(physical extend)

PE是物理卷中的最小存储单元,有点类似于文件系统中的block,PE大小可指定,默认为4M。这一阶段用到的命令有vgcreate、vgscan、vgdisplay、vgextend、vgreduce

慧中标AI标书 慧中标AI标书

慧中标AI标书是一款AI智能辅助写标书工具。

慧中标AI标书 120 查看详情 慧中标AI标书

1)vgcreate:创建卷组

 用法:vgcreate [option] VG_NAME PV_DEVICE

  选项:

      -s:卷组中的物理卷的PE大小,默认为4M

      -l:卷组上允许创建的最大逻辑卷数

      -p:卷级中允许添加的最大物理卷数

  例 vgcreate -s 8M myvg /dev/sdb1 /dev/sdb2

2)vgscan:查找系统中存在的LVM卷组,并显示找到的卷组列表

3)vgdisplay:显示卷组属性

  用法:vgdisplay [option] [VG_NAME]

  选项:

      -A:仅显示活动卷组的信息

      -s:使用短格式输出信息

4)vgextend:动态扩展LVM卷组,它通过向卷组中添加物理卷来增加卷组的容量

 用法:vgextend VG_NAME PV_DEVICE

  例 vgextend myvg /dev/sdb3

5)vgreduce:通过删除LVM卷组中的物理卷来减少卷组容量,不能删除LVM卷组中剩余的最后一个物理卷

 用法:vgreduce VG_NAME PV_DEVICE

6)vgremove:删除卷组,其上的逻辑卷必须处于离线状态

  用法:vgremove [-f] VG_NAME

  -f:强制删除

7)vgchange:常用来设置卷组的活动状态

  用法:vgchange -a n/y VG_NAME

  -a n为休眠状态,休眠之前要先确保其上的逻辑卷都离线;

  -a y为活动状态

8)vg创建例子

[root@localhost ~]# vgcreate -s 8M myvg /dev/sdb{1,2}  Volume group "myvg" successfully created[root@localhost ~]# vgscan  Reading volume groups from cache.  Found volume group "myvg" using metadata type lvm2[root@localhost ~]# vgdisplay  --- Volume group ---  VG Name               myvg  System ID               Format                lvm2  Metadata Areas        2  Metadata Sequence No  1  VG Access             read/write  VG Status             resizable  MAX LV                0  Cur LV                0  Open LV               0  Max PV                0  Cur PV                2  Act PV                2  VG Size               14.98 GiB  PE Size               8.00 MiB  Total PE              1918  Alloc PE / Size       0 / 0     Free  PE / Size       1918 / 14.98 GiB  VG UUID               aM3RND-aUbQ-7RjC-dCci-JiS4-Oj2Z-wv9poA

4、在卷组上创建LV(logical volume,逻辑卷)

为了便于管理,逻辑卷对应的设备文件保存在卷组目录下,为/dev/VG_NAME/LV_NAME。LV中可以分配的最小存储单元称为LE(logical extend),在同一个卷组中,LE的大小和PE是一样的,且一一对应。这一阶段用到的命令有lvcreate、lvscan、lvdisplay、lvextend、lvreduce、lvresize

1)lvcreate:创建逻辑卷或快照

  用法:lvcreate [选项] [参数]

  选项:

      -L:指定大小

      -l:指定大小(LE数)

      -n:指定名称

      -s:创建快照

      -p r:设置为只读(该选项一般用于创建快照中)

  注:使用该命令创建逻辑卷时当然必须指明卷组,创建快照时必须指明针对哪个逻辑卷         

  例 lvcreate -L 500M -n mylv myvg

2)lvscan:扫描当前系统中的所有逻辑卷,及其对应的设备文件

3)lvdisplay:显示逻辑卷属性

  用法:lvdisplay [/dev/VG_NAME/LV_NAME]

4)lvextend:可在线扩展逻辑卷空间

  用法:lvextend -L/-l 扩展的大小 /dev/VG_NAME/LV_NAME  

  选项:

      -L:指定扩展(后)的大小。例如,-L +800M表示扩大800M,而-L 800M表示扩大至800M

      -l:指定扩展(后)的大小(LE数)

  例 lvextend -L 200M /dev/myvg/mylv

5)lvreduce:缩减逻辑卷空间,一般离线使用

 用法:lvexreduce -L/-l 缩减的大小 /dev/VG_NAME/LV_NAME  

  选项:

      -L:指定缩减(后)的大小

      -l:指定缩减(后)的大小(LE数)

  例 lvreduce -L 200M /dev/myvg/mylv

6)lvremove:删除逻辑卷,需要处于离线(卸载)状态

  用法:lvremove [-f] /dev/VG_NAME/LV_NAME

  -f:强制删除

7)lv创建例子

[root@localhost ~]# lvcreate -L 2G -n mylv myvg    Logical volume "mylv" created.[root@localhost ~]# lvscan   ACTIVE            '/dev/myvg/mylv' [2.00 GiB] inherit[root@localhost ~]# lvdisplay   --- Logical volume ---  LV Path                /dev/myvg/mylv  LV Name                mylv  VG Name                myvg  LV UUID                2lfCLR-UEhm-HMiT-ZJil-3EJm-n2H3-ONLaz1  LV Write Access        read/write  LV Creation host, time localhost.localdomain, 2019-07-05 13:42:44 +0800  LV Status              available  # open                 0  LV Size                2.00 GiB  Current LE             256  Segments               1  Allocation             inherit  Read ahead sectors     auto  - currently set to     256  Block device           253:0

5、格式化逻辑卷并挂载

[root@localhost ~]# mke2fs -t ext4 /dev/myvg/mylv...Writing inode tables: doneCreating journal (16384 blocks): doneWriting superblocks and filesystem accounting information: done...[root@localhost ~]# mkdir /data[root@localhost ~]# mountmount mountpoint[root@localhost ~]# mount /dev/myvg/mylv /data[root@localhost ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/sda1 50G 1.5G 49G 3% /devtmpfs 903M 0 903M 0% /devtmpfs 912M 0 912M 0% /dev/shmtmpfs 912M 8.6M 904M 1% /runtmpfs 912M 0 912M 0% /sys/fs/cgrouptmpfs 183M 0 183M 0% /run/user/0/dev/mapper/myvg-mylv 2.0G 6.0M 1.8G 1% /data

相关推荐:《Linux视频教程》

以上就是linux中什么是lvm的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/263252.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月4日 09:41:16
下一篇 2025年11月4日 09:46:24

相关推荐

  • OKX平台网页版登录地址 OKX网页版最新入口

    想要安全便捷地进入 okx 平台进行数字资产交易?okx 网页版为你提供了一个稳定可靠的选择。通过网页版,你无需下载任何客户端,即可在浏览器中直接访问 okx 的各项功能,包括交易、充提币、查看行情、参与活动等等。无论你使用 windows、macos 还是 linux 系统,只要拥有一个现代浏览器…

    2025年12月8日
    000
  • btc看盘软件官网地址 btc看盘软件官方网页版入口

    BTC看盘软件应运而生,它不仅仅是一款简单的行情查看工具,更是您在数字货币交易世界中的得力助手。该软件集成了实时行情数据、专业的图表分析、个性化的预警设置等功能,旨在帮助用户更高效、更理性地进行交易。无论您是经验丰富的资深交易员,还是初入币圈的新手,这款软件都能满足您不同的需求,让您在波澜壮阔的数字…

    2025年12月8日
    000
  • 七大值得关注的链上新秀RWA项目:KTA/RWA/COLLAT/BUILDon/PVS/Linux/CVGT

    现在有哪些值得关注的新项目?随着传统金融巨头纷纷“带资进组”,叠加政策监管日趋清晰,rwa赛道正加速驶入主流视野。曾经属于小圈子探索的资产上链,如今正成为合规创新的桥头堡。而近期链上也悄然掀起一场“合规+想象力”的新浪潮,多个打着rwa标签的项目引发市场关注。 本文PANews盘点了最近7个活跃于R…

    2025年12月8日 好文分享
    000
  • 欧易官方入口正确地址 欧易下载教程

    欧易官方入口正确地址是:www.okx.com。该地址是欧易的全球官方网站,提供多语言支持和移动应用下载,确保用户数据安全和便捷交易体验。 进入欧易官方入口的正确地址是:。这个地址是欧易的全球官方网站,适用于大多数国家和地区的用户。访问该网站时,用户可以选择多种语言进行操作,极大地提升了用户体验。此…

    2025年12月8日
    000
  • 欧亿ouyi交易平台v6.120.0官方最新安装版入口

    欧亿ouyi交易平台作为全球领先的数字资产交易平台,其最新版本v6.120.0已经发布。该版本在用户体验、安全性和功能性上都进行了显著的提升,旨在为用户提供更流畅、更安全的交易体验。无论你是新手还是资深交易者,欧亿ouyi交易平台都能满足你的需求。本文将详细介绍如何下载和安装欧亿ouyi交易平台v6…

    2025年12月8日
    000
  • 安币交易所怎么安全下载 安币交易所安全入口

    安币交易所安全下载和访问的步骤包括:1.访问官方网站下载客户端;2.验证文件完整性;3.书签官方网站并使用HTTPS访问;4.启用双重认证并使用强密码进行安全交易。 安币交易所安全下载指南 安币交易所是许多加密货币投资者选择的平台之一。为了确保在使用该交易所时能够安全地进行下载和访问,我们将详细介绍…

    2025年12月8日
    000
  • 2025年最好的比特币,Litecoin和Dogecoin云挖掘平台

    在2025年,比特币、莱特币和狗狗币依然在加密矿业领域占据主导地位。 在2025年,得益于强劲的市值、稳定的市场需求以及可靠的网络性能,比特币、莱特币和狗狗币依然是最受欢迎的加密货币。这三种货币通常被认为是投资者的理想选择,而其他替代币则因交易速度、社区活跃程度及通货膨胀机制等因素而有所不同。 对于…

    2025年12月8日
    000
  • Linux中如何安装Nginx服务_Linux安装Nginx服务的完整指南

    首先更新系统软件包,然后通过对应包管理器安装Nginx,启动并启用服务,开放防火墙端口,最后验证欢迎页显示以确认安装成功。 在Linux系统中安装Nginx服务是搭建Web服务器的第一步。Nginx以高性能、低资源消耗和良好的并发处理能力著称,广泛用于静态内容服务、反向代理和负载均衡。以下是在主流L…

    2025年12月6日 运维
    000
  • Linux journalctl与systemctl status结合分析

    先看 systemctl status 确认服务状态,再用 journalctl 查看详细日志。例如 nginx 启动失败时,systemctl status 显示 Active: failed,journalctl -u nginx 发现端口 80 被占用,结合两者可快速定位问题根源。 在 Lin…

    2025年12月6日 运维
    100
  • Linux如何防止缓冲区溢出_Linux防止缓冲区溢出的安全措施

    缓冲区溢出可通过栈保护、ASLR、NX bit、安全编译选项和良好编码实践来防范。1. 使用-fstack-protector-strong插入canary检测栈破坏;2. 启用ASLR(kernel.randomize_va_space=2)随机化内存布局;3. 利用NX bit标记不可执行内存页…

    2025年12月6日 运维
    000
  • Linux如何优化系统性能_Linux系统性能优化的实用方法

    优化Linux性能需先监控资源使用,通过top、vmstat等命令分析负载,再调整内核参数如TCP优化与内存交换,结合关闭无用服务、选用合适文件系统与I/O调度器,持续按需调优以提升系统效率。 Linux系统性能优化的核心在于合理配置资源、监控系统状态并及时调整瓶颈环节。通过一系列实用手段,可以显著…

    2025年12月6日 运维
    000
  • Pboot插件数据库连接的配置教程_Pboot插件数据库备份的自动化脚本

    首先配置PbootCMS数据库连接参数,确保插件正常访问;接着创建auto_backup.php脚本实现备份功能;然后通过Windows任务计划程序或Linux Cron定时执行该脚本,完成自动化备份流程。 如果您正在开发或维护一个基于PbootCMS的网站,并希望实现插件对数据库的连接配置以及自动…

    2025年12月6日 软件教程
    000
  • Linux命令行中wc命令的实用技巧

    wc命令可统计文件的行数、单词数、字符数和字节数,常用-l统计行数,如wc -l /etc/passwd查看用户数量;结合grep可分析日志,如grep “error” logfile.txt | wc -l统计错误行数;-w统计单词数,-m统计字符数(含空格换行),-c统计…

    2025年12月6日 运维
    000
  • Linux命令行中fc命令的使用方法

    fc 是 Linux 中用于管理命令历史的工具,可查看、编辑并重新执行历史命令。输入 fc 直接编辑最近一条命令,默认调用 $EDITOR 打开编辑器修改后自动执行;通过 fc 100 110 或 fc -5 -1 可批量编辑指定范围的历史命令,保存后按序重跑;使用 fc -l 列出命令历史,支持起…

    2025年12月6日 运维
    000
  • VSCode终端美化:功率线字体配置

    首先需安装Powerline字体如Nerd Fonts,再在VSCode设置中将terminal.integrated.fontFamily设为’FiraCode Nerd Font’等支持字体,最后配合oh-my-zsh的powerlevel10k等Shell主题启用完整美…

    2025年12月6日 开发工具
    000
  • Linux命令行中locate命令的快速查找方法

    locate命令通过查询数据库快速查找文件,使用-i可忽略大小写,-n限制结果数量,-c统计匹配项,-r支持正则表达式精确匹配,刚创建的文件需运行sudo updatedb更新数据库才能查到。 在Linux命令行中,locate 命令是快速查找文件和目录路径的高效工具。它不直接扫描整个文件系统,而是…

    2025年12月6日 运维
    000
  • Linux文件系统rsync命令详解

    rsync通过增量同步高效复制文件,支持本地及远程同步,常用选项包括-a、-v、-z和–delete,结合SSH可安全传输数据,配合cron可实现定时备份。 rsync 是 Linux 系统中一个非常强大且常用的文件同步工具,能够高效地在本地或远程系统之间复制和同步文件与目录。它以“增量…

    2025年12月6日 运维
    000
  • Linux systemctl list-dependencies命令详解

    systemctl list-dependencies 用于查看 systemd 单元的依赖关系,帮助排查启动问题和优化启动流程。1. 基本语法为 systemctl list-dependencies [选项] [单元名称],默认显示 default.target 的依赖。2. 常见单元类型包括 …

    2025年12月6日 运维
    100
  • 如何在mysql中安装mysql插件扩展

    安装MySQL插件需先确认插件文件位于plugin_dir目录,使用INSTALL PLUGIN命令加载,如INSTALL PLUGIN keyring_file SONAME ‘keyring_file.so’,并确保用户有SUPER权限,最后通过SHOW PLUGINS验…

    2025年12月6日 数据库
    000
  • 如何在mysql中定期清理过期备份文件

    通过Shell脚本结合cron定时任务实现MySQL过期备份文件自动清理,首先统一备份命名格式(如backup_20250405.sql)并存放在指定目录(/data/backup/mysql),然后编写脚本使用find命令删除7天前的.sql文件,配置每日凌晨2点执行的cron任务,并加入日志记录…

    2025年12月6日 数据库
    000

发表回复

登录后才能评论
关注微信