Background Knowledge
Logical Volumn Management
逻辑卷管理是对底层磁盘的抽象管理,可以不再限制磁盘空间大小,对于磁盘的管理更为灵活。
它将底层物理硬盘抽象起来,以逻辑卷的形式表现给上层系统,逻辑卷的大小可以动态调整,调整过程中不会丢失现有数据。新加入的硬盘也不会改变现有上层的逻辑卷。 不同系统对磁盘抽象管理系统都有类似的实现。
How a disk are used?
Physical Disk -> Partition -> Format -> Install OS
实战操作
一、LVM的工作原理与概念
- PE(physical extend) 逻辑卷管理的基本单位,默认是4M大小。
- PV(physical volume) 包含多个PE
- VG(volume group) 包含多个PV
- LV(logical volume) 从VG中拿PE
操作的目的是创建一个逻辑卷,取代原来的硬盘分区
-
创建PV 首先把物理硬盘条带化(处理格式化)为物理卷,实际上是物理硬盘划分成了一个个的PE 假设把硬盘400M格式化,有包括100个PE
-
创建卷组,VG 空间池,把多个PV装入VG, 包含多个物理卷
-
创建LV,逻辑卷 我们最终使用的是逻辑卷
创建好后,/dev/vgname/lvname, 这是我们要格式化的对象
每一个逻辑卷的空间可能来自不同的物理硬盘。
二. LVM 的创建
卷组是逻辑卷的空间池
- 将物理磁盘设备初始化为物理卷
$ pvcreate /dev/sdb /dev/sdc
- 创建卷组,并将PV加入卷组中,将物理卷集合起来
$ vgcreate linuxcast /dev/sdb /dev/sdc
- 基于卷组创建逻辑卷
$ lvcreate -n mylv -L 2G linuxcast
-n 逻辑卷名字
-L 空间为2G
linuxcast 要从linuxcast中获取空间
- 为创建好的逻辑卷创建文件系统
$ mkfs.ext4 /dev/linuxcast/mylv
- 将格式化好的逻辑卷挂载使用
$ mkdir -p /mnt/mylv
$ mount /dev/linuxcast/mylv /mnt/mylv
查看LVM
- 查看物理卷信息
$ pvdisplay(详细)
$ pvs
- 查看卷组信息
$ vgdisplay(详细)
$ vgs
- 查看逻辑卷信息
$ lvdisplay(详细)
$ lvs
三、删除逻辑卷
- 删除LV
$ lvremove /dev/linuxcast/mylv
- 删除VG
$ vgremove linuxcast
- 删除物理卷
$ pvremove /dev/sdb
四、LVM的扩大与缩小
- 保证VG中有足够的空闲空间,如果不够用需要先拉升VG卷组,先到第五步,然后在回来操作第四步
$ vgdisplay
- 扩充逻辑卷
$ lvextend -L +1G /dev/linuxcast/mylv
- 查看扩充后LV的大小
$ lvdisplay
- 更新文件系统
$ resize2fs /dev/linuxcast/mylv
- 查看更新后的文件系统
$ df -h
当卷组不够用到时候,我们想卷组中增加PV(物理卷)
五、拉升一个卷组
- 将要添加到VG的硬盘格式化为PV
$ pvcreate /dev/sdd
- 将新的PV添加到指定卷组中
$ vgextend linuxcast /dev/sdd
- 查看扩充后的VG大小
$ vgdisplay
六、缩小一个逻辑卷(必须离线,容易出错,小心,实验失败,缩小小心)
假设当前的逻辑卷大小为500M
- 卸载已经挂载的逻辑卷
$ umount /dev/linuxcast/mylv
- 缩小文件系统(会提示需要运行fsck检查文件系统)
$ e2fsck -f /dev/linuxcast/mylv
目标,最后的大小为100M
$ resize2fs /dev/linuxcast/mylv 100M
- 缩小LV(这里需要需要缩小400M)
$ lvreduce -L -400M /dev/linuxcast/mylv
- 查看缩小后的LV
$ vgdisplay
- 挂载
$ mount /dev/linuxcast/mylv /mnt/mylv
七、缩小卷组(比如要从系统中抽走一块硬盘)
移除一个PV(物理卷,一块硬盘)
-
将一个PV从指定卷组中移除
$ vgreduce linuxcast /dev/sdd
-
查看缩小后的卷组大小
$ vgdisplay