LVM的全称为Logical Volume Manager,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volume group),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logical volumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。它的结构如下图所示:
图1
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:
1.准备物理分区(Physical Partions)
首先,我们需要选择用于 LVM 的物理存储器。这些通常是标准分区,但也可以是已创建的 Linux Software RAID 卷。这里我利用fdisk命令,将sdb、sdc两块磁盘分了两个区sdb1、sdc1, 通过fdisk的t指令指定分区为8e类型(Linux LVM) 。如图2所示。
图2
2.创建物理卷PV(Physical Volumes)
[root@cfbdb5 oracle]#pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
[root@cfbdb5 oracle]# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created
3.创建卷组VG(Volume Groups),命名为vg_test
[root@cfbdb5 ~]#vgcreate vg_test /dev/sdb1
Volume group "vg_test" successfully created
使用卷组查看命令vgdisplay显示卷组情况:
[root@cfbdb5 oracle]# vgdisplay
--- Volume group ---
VG Name vg_test
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 19.99 GB
PE Size 4.00 MB
Total PE 5118
Alloc PE / Size 2560 / 10.00 GB
Free PE / Size 2558 / 9.99 GB
VG UUID YEYtOr-JpCK-P7MV-FFVo-BgEi-Ooef-IG3hlc
4.创建逻辑卷LV(Logical Volumes) ,命名为test_lv
Logical volume "lv_test" created
Rounding up size to full physical extent 19.99 GB
Logical volume "lv_test" created
--- Logical volume ---
LV Name /dev/vg_test/lv_test
VG Name vg_test
LV UUID kgUoMy-W1qG-7tAQ-dI5j-Z2KO-a8Td-mXAFbc
LV Write Access read/write
LV Status available
# open 0
LV Size 19.99 GB
Current LE 5118
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
5.创建文件系统,并挂载
[root@cfbdb5 oracle]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
16G 4.7G 11G 32% /
/dev/sda1 99M 27M 67M 29% /boot
tmpfs 872M 0 872M 0% /dev/shm
/dev/mapper/vg_test-lv_test
9.9G 151M 9.2G 2% /opt/oracle
管理LVM
LVM的最大好处就是可以动态地调整分区大小,而无须重新启动机器,下面让我们来体验一下吧!继续上面的实例,现假设逻辑卷/dev/vg_test/lv_test空间不足,需要增加其大小,我们分两种情况讨论:
1.卷组中有剩余的空间
通过vgdisplay命令可以检查当前卷组空间使用情况:
[root@cfbdb5 oracle]# vgdisplay
--- Volume group ---
VG Name vg_test
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 19.99 GB
PE Size 4.00 MB
Total PE 5118
Alloc PE / Size 2560 / 10.00 GB
Free PE / Size 2558 / 9.99 GB
VG UUID YEYtOr-JpCK-P7MV-FFVo-BgEi-Ooef-IG3hlc
确定当前卷组剩余空间9.99GB,剩余PE数量为2558个。在这里将所有的剩余空间全部增加给逻辑卷 /dev/vg_test/lv_test。
[root@cfbdb5 oracle]# lvextend -l +2558 /dev/vg_test/lv_test
Extending logical volume lv_test to 19.99 GB
Logical volume lv_test successfully resized
也可以通过-L直接指定大小,通过 +/- 来 增加/减小 空间。
修改逻辑卷大小后,通过resize2fs来修改文件系统的大小。
[root@cfbdb5 oracle]#resize2fs /dev/vg_test/lv_test
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/vg_test/lv_test is mounted on /opt/oracle; on-line resizing required
Performing an on-line resize of /dev/vg_test/lv_test to 5240832 (4k) blocks.
The filesystem on /dev/vg_test/lv_test is now 5240832 blocks long.
再次查看文件系统的大小:
[root@cfbdb5 oracle]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
16G 4.7G 11G 32% /
/dev/sda1 99M 27M 67M 29% /boot
tmpfs 872M 0 872M 0% /dev/shm
/dev/mapper/vg_test-lv_test
20G 156M 19G 1% /opt/oracle
2.卷组中空间不足
当卷组中没有足够的空间用于扩展逻辑卷的大小时,就需要增加卷组的容量,而增加卷组容量的惟一办法就是向卷组中添加新的物理卷。
首先需要对新增加的磁盘进行分区、创建物理卷等工作。),接下来是利用vgextend命令将新的物理卷加入到卷组中, 我们这里使用/dev/sdc1。
[root@cfbdb5 oracle]#vgextend vg_test /dev/sdc1
Volume group "vg_test" successfully extended
[root@cfbdb5 oracle]# vgdisplay
--- Volume group ---
VG Name vg_test
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 8
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 59.98 GB
PE Size 4.00 MB
Total PE 15356
Alloc PE / Size 5118 / 19.99 GB
Free PE / Size 10238 / 39.99 GB
VG UUID YEYtOr-JpCK-P7MV-FFVo-BgEi-Ooef-IG3hlc
完成卷组的扩容后,就可以按照第一种情况的方法完成逻辑卷的扩容,最终实现分区的动态调整。
相关推荐
Linux实现lvm扩容根分区.rtf
lvm虚拟机测试已通过linux根分区扩容,确实增加了根分区的容量
CentOS 7.0 LVM进行分区扩容,系统根目录空间不足时,可以通过LVM扩容来解决,这是超详细的资料可供参考
Linux7扩容根分区(LVM+非LVM).docx
系统提示我容量不足 就利用LVM的方式进行扩容吧。 系统是RHEL7(centos7差不多一样) 先查看磁盘信息及根目录 fdisk -l 注意:sda为硬盘,需要扩容的是系统的根目录,这里RHEL的系统根目录为/dev/mapper/rhel-root...
centos7 /分区扩容图文详解
实在看不下去了,特此分享我的一些利用LVM实现动态扩容的心得,希望对大家有帮助。 知识储备: LVM是逻辑盘卷管理(Logical VolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在...
这篇文章将向读者介绍如何在Linux中创建新的LVM分区和扩展现有的分区。LVM是逻辑卷管理器的缩写,它允许用户创建和管理逻辑卷和卷组。通过使用LVM,用户可以更加灵活地管理磁盘空间,而不需要担心分区大小的限制。...
拓展:卷组扩容;卷组扩容 添加一块新硬盘/dev/sdc 创建逻辑分区sdc5,大小为500M 修改/dev/sdc5分区类型为LVM 将/dev/sdc5创建为物理卷 pvcreate /dev/sdc5 对vgtest进行扩容 vgextend vgtest /dev/sdc5 ;拓展:逻辑...
本人在redhat linux 5上的学习笔记,动态增加硬盘、格式化、增加新分区到LVM下的Raid分区、分区故障模拟和替换、给分区扩容等 给同样的菜鸟和有需要的朋友,如有不正确的地方请大家指点
LVM是Linux环境下对磁盘分区进行管理的一种机制,该文档就是对LVM的在线扩容操作手册,可按照该文档进行操作。
linux磁盘管理,LVM逻辑卷新增、扩容、减小。 通过虚拟机实际操作演示,逻辑卷的创建、增加、和减少。
新时代的解决方案是:使用 LVM 动态扩容! LVM 的工作原理: LVM(Logical Volume Manager)逻辑卷管理,是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,...
LVM自动化使用python 使用python脚本自动化LVM概念
除了/boot分区外,其余都为LVM 模式的扩展逻辑分区 软件安装与信息查看 首先查看软件是否安装: [root@Candy ~]# rpm -qa | grep lvm lvm2-libs-2.02.118-2.el6.x86_64 lvm2-2.02.118-2.el6.x86_64
不同文件系统类型所对应的创建、检查、调整命令不同,下面就针对xfs和ext2/3/4文件系统的lvm分区空间的扩容和缩容的操作做一记录: —————————————————————————————— 特别注意的是:...
需求:现在需要扩容虚拟机根分区/ 具体操作: 一、使用XenCenter增大虚拟机磁盘容量,如下图所示 增大当前磁盘到50GB 注意:必须在虚拟机关机状态下进行 二、查看硬盘容量 df -h #可以看到此时根分区还是12G,没有...
CentOS生产服务器,添加新硬盘后LVM扩容全过程。
我们肯定要想办法给扩容呀,找一块磁盘分区,格式化,然后挂载,然后把数据拷贝到新加的磁盘上,然后把原有的磁盘卸载掉,通常我们是这样做的。这样一来虽然达到了扩容的目的,但是费时费力;如果第二次扩容,空间...