LVM 是 Linux 虚拟逻辑卷管理工具,也就是将多个物理磁盘(PV)进行合并变成一块新的大硬盘(VG),而后能够在这个大硬盘上再进行分区
挂载使用,新的磁盘分区(LV)就有了一个特性,那就是能够对其进行动态扩容。LVM 中有三个概念必定要清楚: PV 表示物理卷, VG 表示逻辑卷组,
LV 表示逻辑卷。数据库
LVM 主要有三类命令行工具服务器
pv
开头的命令用来操做 PV 物理卷vg
开头的命令用来操做 VG 逻辑卷组lv
开头的命令用来操做 LV 逻辑卷$ cfdisk /dev/sdb $ cfdisk /dev/sdc $ partprobe
将两块新的硬盘分别进行分区,而且将分区类型设置为 8E ,也就是 Linux LVM 分区类型,而后执行 partprobe 命令更新硬盘分区信息app
$ pvcreate /dev/sdb1 $ pvcreate /dev/sdc1
将 /dev/sdb1 和 /dev/sdc1 两块物理磁盘转换成 PV 物理卷工具
查看 PV 物理卷相关信息性能
$ pvdisplay $ pvs $ pvscan
$ vgcreate -s 64M vg0 /dev/sdb1 /dev/sdc1 $ vgdisplay
-s
参数表示 PE 块的大小,通常设置为 2 的倍数便可
新的 VG 卷组的名称为 vg0,由 /dev/sdb1 和 /dev/sdc1 两块物理卷组成测试
$ lvcreate -n lv0 -L 10G vg0 $ lvdisplay
从 vg0 卷组建立一个名称为 lv0 的逻辑卷,分配其大小为 10GBspa
$ mkfs.xfs /dev/vg0/lv0 $ mkdir /var/data $ mount /dev/vg0/lv0 /var/data $ df -h
$ emacs /etc/fstab /dev/mapper/vg0-lv0 /var/data xfs defaults 0 0
为新硬盘分区为,分区类型为 8E操作系统
$ cfdisk /dev/sdd $ partprobe
建立物理卷命令行
$ pvcreate /dev/sdd1 $ pvdisplay
将新的 PV 物理卷加入到 VG 卷组code
$ vgextend vg0 /dev/sdd1 $ vgdisplay
$ umount /dev/vg0/lv0 $ lvresize -L +2G -r /dev/vg0/lv0 $ lvdisplay $ mount /dev/vg0/lv0 /var/data $ df -h
lvresize 命令的 -L
参数表示在原来磁盘大小的基础上再增长 2G 的容量。
lvresize 命令的 -r
参数表示当完成扩容后自动更新文件系统相关信息。
若是 lvresize 命令没有使用 -r
参数,在操做系统里面看到的磁盘大小就会和扩容以后的大小不一致,可使用 xfs_growfs 命令让内核系统从新读取磁盘信息。
使用 xfs_growfs 命令更新磁盘分区信息
$ xfs_growfs /dev/vg0/lv0
$ fuser -m /var/data $ umount /var/data $ lvremove /dev/vg0/lv0
Notice:
在删除 LV 逻辑卷磁盘以前必定要备份其中的数据,而后 umount 卸载掉该逻辑卷
$ vgremove vg0
Notice:
在删除 VG 逻辑卷组以前必定要先卸载掉 LV 逻辑卷
$ pvremove /dev/sdb1
$ vgreduce vg0 /dev/sdb1
$ vgchange -an vg0
$ lvscan $ lvchange -ay /dev/vg0/lv0
虽然 LVM 有一些特性和优势,但也有一些坑,那就是当某一块物理磁盘损坏,会致使整个 LV 逻辑卷数据丢失,数据恢复比较困难,因此
通常建议在使用 LVM 逻辑卷以前,先在底层作 raid 磁盘镜像阵列。也有人测试过,一些数据库服务器软件在 LVM 磁盘上有性能降低的问题。
做者: 羊驼君
Created: 2017-03-04 周六 11:59