返回顶部
首页 > 资讯 > 操作系统 >linux的lvm分区有什么优缺点
  • 647
分享到

linux的lvm分区有什么优缺点

linuxlvm 2023-03-24 17:03:18 647人浏览 独家记忆
摘要

这篇文章主要讲解了“linux的lvm分区有什么优缺点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux的lvm分区有什么优缺点”吧!

这篇文章主要讲解了“linux的lvm分区有什么优缺点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux的lvm分区有什么优缺点”吧!

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

一、什么是LVM

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

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

linux的lvm分区有什么优缺点

二、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): n
Partition type:
  p   primary (1 primary, 0 extended, 3 free)
  e   extended
Select (default p): p
Partition 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): t
Partition 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 LVM
Command (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

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: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
...
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount
mount       mountpoint  
[root@localhost ~]# mount /dev/myvg/mylv /data
[root@localhost ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/sda1               50G  1.5G   49G   3% /
devtmpfs               903M     0  903M   0% /dev
tmpfs                  912M     0  912M   0% /dev/shm
tmpfs                  912M  8.6M  904M   1% /run
tmpfs                  912M     0  912M   0% /sys/fs/cgroup
tmpfs                  183M     0  183M   0% /run/user/0
/dev/mapper/myvg-mylv  2.0G  6.0M  1.8G   1% /data

PS:更新

一、LV逻辑卷扩容后,必须对挂载目录在线扩容。

使用 resize2fs或xfs_growfs 对挂载目录在线扩容
resize2fs 针对文件系统ext2 ext3 ext4
xfs_growfs 针对文件系统xfs

xfs在线扩容

xfs_growfs /dev/mapper/vg--BHG-lv01
meta-data=/dev/mapper/vg--BHG-lv01 isize=512    agcount=4, agsize=32000 blks
        =                       sectsz=512   attr=2, projid32bit=1
        =                       crc=1        finobt=0 spinodes=0data     =                       bsize=4096   blocks=128000, imaxpct=25
        =                       sunit=0      swidth=0 blksnaming   =version 2              bsize=4096   ascii-ci=0 ftype=1log      =internal               bsize=4096   blocks=855, version=2
        =                       sectsz=512   sunit=0 blks, lazy-count=1realtime =none                   extsz=4096   blocks=0, rtextents=0data blocks changed from 128000 to 256000

ext4在线扩容

[root@localhost /]# resize2fs /dev/mapper/vg--BHG-lv02
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/vg--BHG-lv02 is mounted on /BHGPOS-data; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/mapper/vg--BHG-lv02 is now 5242880 blocks long.

感谢各位的阅读,以上就是“linux的lvm分区有什么优缺点”的内容了,经过本文的学习后,相信大家对linux的lvm分区有什么优缺点这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: linux的lvm分区有什么优缺点

本文链接: https://lsjlt.com/news/201221.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • linux的lvm分区有什么优缺点
    这篇文章主要讲解了“linux的lvm分区有什么优缺点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux的lvm分区有什么优缺点”吧! ...
    99+
    2023-03-24
    linux lvm
  • mysql表分区有什么优缺点
    本篇文章为大家展示了mysql表分区有什么优缺点,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、优点可以让单表存储更多的数据。分区表的数据更容易维护,可以通过整个隔断批量删除大量数据,也可以增加新...
    99+
    2023-06-15
  • Oracle表分区的优缺点是什么
    Oracle表分区的优缺点是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。(1.) 表空间及分区表的概念表空间:  是一个或多个数据文件的...
    99+
    2024-04-02
  • MySQL表分区的优缺点有哪些
    MySQL表分区的优点包括:1. 提高查询性能:通过将数据分散存储在多个分区中,可以实现更快的查询性能。当查询仅涉及到一个或几个分区...
    99+
    2023-10-12
    mysql
  • react有什么优缺点
    这篇文章给大家分享的是有关react有什么优缺点的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 优点为:1、创建动态Web应用程序变得更加容易;2、可...
    99+
    2024-04-02
  • bootstrap有什么优缺点
    这篇文章给大家分享的是有关bootstrap有什么优缺点的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 bootstrap是一个基于HTML、CSS、...
    99+
    2024-04-02
  • MySQL分区表的分区原理及优缺点
    这篇文章主要介绍“MySQL分区表的分区原理及优缺点”,在日常操作中,相信很多人在MySQL分区表的分区原理及优缺点问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL分...
    99+
    2024-04-02
  • Linux系统的优缺点是什么
    这篇文章主要为大家分析了Linux系统的优缺点是什么的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux系统的优缺点是什么”的知识吧。操作系统是计算机必...
    99+
    2023-06-28
  • linux中nacos的优缺点是什么
    Nacos是一个开源的服务发现、配置管理和服务管理平台,它具有以下优点和缺点: 优点: 高可用性和可靠性:Nacos具有高可用性和...
    99+
    2024-03-01
    linux nacos
  • CSS Sprites有什么优缺点
    这篇“CSS Sprites有什么优缺点”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“CS...
    99+
    2024-04-02
  • iOS中uitabbarcontroller的有什么优缺点
    UITabBarController是iOS中常用的控件之一,它的主要作用是管理多个视图控制器,并提供底部的标签栏进行快速切换。以下...
    99+
    2024-04-03
    iOS
  • linux中lvm有什么用
    这篇文章将为大家详细讲解有关linux中lvm有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、前言 每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各...
    99+
    2023-06-13
  • oracle分区表的优缺点及用法
    本篇内容介绍了“oracle分区表的优缺点及用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!I 分区表的...
    99+
    2024-04-02
  • Linux的优缺点以及和windows的区别
    这篇文章主要介绍“Linux的优缺点以及和windows的区别”,在日常操作中,相信很多人在Linux的优缺点以及和windows的区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux的优缺点以及和w...
    99+
    2023-06-04
  • 云主机有什么优缺点
    云主机的优缺点是:1、云主机的优点是能一键部署或自主安装操作系统,抗灾容错能力强,能保证长时间在线,弹性及可扩展性强;2、云主机的缺点是客户的数据全部由云服务公司控制,数据是否安全保密,取决于后者的职业道德和保护能力。具体内容如下:优点首先...
    99+
    2024-04-02
  • vue和react的区别及优缺点是什么
    这篇文章主要讲解了“vue和react的区别及优缺点是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue和react的区别及优缺点是什么”吧!vue和react的区别及优缺点共同点数据...
    99+
    2023-07-05
  • java分页的优缺点有哪些
    Java分页的优点有:1. 实现简单:Java提供了丰富的分页功能,并且有很多现成的分页框架可以使用,开发者只需简单调用即可实现分页...
    99+
    2023-09-16
    java
  • Brainstorm框架的优点和缺点分别是什么
    Brainstorm框架的优点: 创造性:Brainstorm框架能够激发团队成员的创造性思维,帮助他们产生更多新颖的想法和解决方...
    99+
    2024-03-08
    Brainstorm
  • 云主机的优缺点分别是什么
    本篇内容介绍了“云主机的优缺点分别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!云主机的优点:一、便宜。因为服务可以分散到多台服务器,...
    99+
    2023-06-07
  • javascript不写分号的优缺点是什么
    本文小编为大家详细介绍“javascript不写分号的优缺点是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“javascript不写分号的优缺点是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。优点编码速...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作