【Linux】LVM逻辑卷管理器

LVM逻辑卷管理

一、 逻辑卷管理器

LVM(Logical Volume Manager,逻辑卷管理器)是动态划分磁盘分区的工具,它可以让磁盘分区容量调整变得简单和高效。使用 LVM,可以动态增加/缩小 LVM 磁盘分区的容量,而不会破坏数据。

1. LVM的结构

PV(Physical Volume) 物理卷。物理卷可以是单独磁盘,也可以是硬盘分区
VG(Volume Group) 卷组。它是 PV 的组合, VG 可以看成单独的逻辑磁盘
LV(Logical Volume) 逻辑卷,即逻辑上的分区。相当于物理分区的/dev/sdaX( X=1,2…)

!注意/boot 分区不可以是逻辑卷,因为装载程序无法读取逻辑卷(必须划分成物理分区)

【Linux】LVM逻辑卷管理器_第1张图片

2. LVM的基本单元——LE(logical extent)

逻辑卷被划分为被称为LE的可被寻址的基本单位。
LE类似于物理卷中的PE(physical extent),具有唯一标号的PE是可以被LVM寻址的最小单元。在同一个卷组中,LE的大小和PE是相同的(PE的大小是可配置的,默认为4MB),并一一对应。

3. LV(Logical Volume)的分类

线性逻辑卷 (Linear Volumes):一个线性逻辑卷聚合多个物理卷成为一个逻辑卷。比如,如果你有两个60GB硬盘,你可以生成120GB的逻辑卷。特点:常用,默认使用,速度慢,容量可扩充。
条块化的逻辑卷(Striped Logical Volumes):当你写数据到此逻辑卷中时,文件系统可以将数据放置到多个物理卷中。对于大量连接读写操作,它能改善数据I/O效率。特点:大容量读写,所有硬盘同时读写,速度快,所有盘最好一样大,不常用。
镜像的逻辑卷(Mirrored Logical Volumes):镜像在不同的设备上保存一致的数据。数据同时被写入原设备及镜像设备,它提供设备之间的容错。特点:安全,类似于RAID1,很少用。
快照卷(Snapshot Volumes):快照卷提供在特定瞬间的一个设备虚拟映像,当快照开始时,它复制一份对当前数据区域的改变,由于它优先执行这些改变,所以它可以重构当前设备的状态。几乎不用。

二、 LVM的基本操作

1. 新建逻辑卷

Step1:磁盘分区
fdisk /dev/sdX
判断是否有可用分区,如无可用分区n新建一个分区
t修改分区类型:# 8e Linux LVM 类型
Step2:创建PV
pvcreate /dev/sdb1  /dev/sdb2(使sdb1和sdb2分区成为PV)
Step3:创建VG
vgcreate myVG /dev/sdb1 /dev/sdb2(将创建的两个PV划入同一个VG中,将此VG命名为myVG)
Step4:创建LV
lvcreate -L 400M -n vol01 myVG(在myVG中创建一个400M大小,名字为vol01的LV)
-L 容量大小 –l LEsize 块数量
即上述命令可改为 #lvcreate –l 100 –n vol0 myVG
Step5:创建Filesystem
由于LVM是一个软件工具,故上述行为只在该软件中生效,若要使整个系统生效,则需对逻辑卷格式化文件系统。
mkfs.ext3 /dev/myVG/vol01(在redhat6中,我们将逻辑卷格式化为ext3即

2. 查看逻辑卷

查看物理卷(PV):#pvs #pvdisplay
查看卷组(VG):#vgs #vgdisplay
查看逻辑卷(LV):#lvs #lvdisplay

3. 删除逻辑卷

Step1:卸载正在使用的逻辑卷
#umount <挂载点>
Step2:删除逻辑卷(注意数据的移动和备份)
#lvremove
Step3:删除卷组
#vgremove
Step4:删除物理卷
#pvremove

三、 LVM的扩充

Step1:将要添加到VG的硬盘格式化成PV 
#pvcreate /dev/sdd
Step2:将新的PV添加到指定的VG当中
#vgextend myVG /dev/sdd
Step3:扩充逻辑卷
#lvextend -L +1G /dev/myVG/vol01
-L后:
+1G,即扩容1G空间
1G,即扩容到1G空间
+100,即扩容100个块(默认扩容400M)
100,即扩容到100个块(默认扩容到400M)
Step4:更新文件系统
#resize2fs /dev/myVG/vol01

四、 LVM的缩容

注意:
1.逻辑卷的缩小操作必须离线执行,要先卸载掉逻辑卷
2.缩小的空间应小于空闲空间,否则会丢失数据

缩容LV:

Step1:卸载已经挂载的逻辑卷,通过 umount 命令(见“二、3.”)
Step2:缩小文件系统(会提示需要运行fsck来检查文件系统),通过 resize2fs 命令
#resize2fs /dev/myVG/vol0 10G(缩小vol0到10G)
Step3:缩小LV,通过 lvreduce 命令
#lvreduce -L -4G /dev/ myVG/vol0
由于LVM线性存储,缩小时注意顺序:
可用pvmove移动数据:#pvmove /dev/sdb8 /dev/sdb9
Step4:缩小完逻辑卷以后,我们再将逻辑卷挂载

缩容VG:

Step1:卸载逻辑卷,通过 umount 命令
Step2:将一个PV从指定卷组中移除掉,通过 vgreduce 命令
#vgreduce myVG /dev/sdd

缩容PV:

注意:使用中的PV不能缩容,必须空闲才能操作
将PV删除掉,通过 pvremove 命令(若不打算再用此分区做LVM,可以去fdisk中将此块分区类型改回原来的值)
#pvremove /dev/sdd
注意VG是由一块一块的PV构成的,PV的改变即添加/删除PV块。

你可能感兴趣的:(Linux)