你的位置:首页 > 操作系统

[操作系统]LVM基本概念、管理


一、传统磁盘管理的问题

当分区大小不够用时无法扩展其大小,只能通过添加磁盘、创建新的分区来扩充空间,但是新添加进来的硬盘是作为独立文件系统存在的,原有的文件系统并未得到扩充,上层应用很多时候只能访问一个文件系统。只能让现有磁盘下线,换上新的磁盘之后,再将原始数据导入。

二、LVM逻辑卷的基本概念

LVM(Logical volume Manager)逻辑卷管理通过将底层物理硬盘抽象封装起来,以逻辑卷的形式表现给上层系统,逻辑卷的大小可以动态调整,而且不会丢失现有数据。新加入的硬盘也不会改变现有上层的逻辑卷。

作为一种动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

 

PE(physical extend)默认为4MB的基本块

PV(physical volume)硬盘或分区

VG(volume group)由一个或多个PV组成的整体

LV(logical volume)从VG中切割出的空间用于创建文件系统

三、LVM创建过程

  1. 物理磁盘被格式化为PV,空间被分为一个个PE
  2. 不通的PV加入同一个VG,不同PV的PE全部进入VG的PE池内
  3. LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同物理磁盘
  4. LV现在就直接可以格式化后挂载使用了
  5. LV的扩充缩减实际上就是增加或减少组成该LV的PE的数量。其过程不丢失原始数据

四、创建LVM

将物理磁盘设备初始化为物理卷

pvcreate /dev/sdb /dev/sdc

创建卷组,并将PV加入卷组中

vgcreate vg0 /dev/sdb /dev/sdc

基于卷组创建逻辑卷

lvcreate -n lv0 -L 5G vg0

为创建好的逻辑卷创建文件系统

mkfs.ext4 /dev/vg0/lv0

将格式化好的逻辑卷挂载使用

mount /dev/vg0/lv0 /mnt/

将挂载信息写入/etc/fstab中重启依然生效

echo "/dev/vg0/lv0 /mnt ext4 defaults 0 0 " >> /etc/fstab

五、查看LVM

查看物理卷信息:pvs、pvdisplay(详细)

查看卷组信息:vgs、vgdisplay(详细)

查看逻辑卷信息:lvs、lvdisplay(详细)

六、删除LVM

删除LV:lvremove /dev/vg0/lv0

删除VG:vgremove vg0

删除PV:pvremove /dev/sdb

七、拉伸一个逻辑卷

逻辑卷的拉伸操作可以在线执行,不需要卸载逻辑卷

保证VG中有足够的空闲空间

vgs、vgdisplay

扩充逻辑卷

lvextend -L +5G /dev/vg0/lv0

查看扩充后LV大小

lvs、lvdisplay

更新文件系统

resize2fs /dev/vg0/lv0

查看更新后的文件系统

df –h

八、拉伸一个卷组

将要添加到VG的硬盘格式化为PV

pvcreate /dev/sdd

将新的PV添加到指定卷组中

vgextend vg0 /dev/sdd

查看扩充后VG大小

vgs、vgdisplay

九、缩小一个逻辑卷

逻辑卷的缩小操作必须离线执行,要卸载逻辑卷

卸载已经挂载的逻辑卷

umount /dev/vg0/lv0

缩小文件系统(原lv0为10G)

e2fsck -f /dev/vg0/lv0

resize2fs /dev/vg0/lv0 3G

缩小LV

lvreduce -L -7G /dev/vg0/lv0

查看缩小后的LV

lvs、lvdisplay

挂载

mount /dev/vg0/lv0 /mnt

十、缩小卷组

将一个PV从指定组中移除

vgreduce vg0 /dev/sdd

查看缩小后的卷组大小

vgs、vgdisplay

移除PV

pvremove /dev/sdd