LVM 磁盘逻辑卷管理
目录
- 1. LVM 介绍与基本概念
- 2. 基本 LVM 逻辑卷创建
- 2.1. 添加新硬盘并设置分区类型为 8E
- 2.2. 创建物理卷 (PV)
- 2.3. 创建 VG 卷组 (VG)
- 2.4. 创建 LV 逻辑卷 (LV)
- 2.5. 格式化和挂载新的 LV 逻辑卷磁盘
- 2.6. 在 /etc/fstab 配置文件中添加开机自动挂载项
- 3. 高级 LVM 逻辑卷管理
- 3.1. 将新硬盘加入 LVM 卷组
- 3.2. LV 逻辑卷动态扩容
- 3.3. 删除 LV 逻辑卷
- 3.4. 删除 VG 卷组
- 3.5. 删除 PV 物理卷
- 3.6. 从 VG 卷组中删除 PV 物理卷
- 3.7. 取消激活 VG 卷组
- 3.8. 激活一个 LV 逻辑卷
- 4. LVM 逻辑卷问题与总结
1 LVM 介绍与基本概念
LVM 是 Linux 虚拟逻辑卷管理工具,也就是将多个物理磁盘(PV)进行合并变成一块新的大硬盘(VG),然后可以在这个大硬盘上再进行分区
挂载使用,新的磁盘分区(LV)就有了一个特性,那就是可以对其进行动态扩容。LVM 中有三个概念一定要清楚: PV 表示物理卷, VG 表示逻辑卷组,
LV 表示逻辑卷。
LVM 主要有三类命令行工具
pv
开头的命令用来操作 PV 物理卷vg
开头的命令用来操作 VG 逻辑卷组lv
开头的命令用来操作 LV 逻辑卷
2 基本 LVM 逻辑卷创建
- 操作系统: CentOS 7.2
- 硬盘1: /dev/sdb
- 硬盘2: /dev/sdc
2.1 添加新硬盘并设置分区类型为 8E
$ cfdisk /dev/sdb $ cfdisk /dev/sdc $ partprobe
将两块新的硬盘分别进行分区,并且将分区类型设置为 8E ,也就是 Linux LVM 分区类型,然后执行 partprobe 命令更新硬盘分区信息
2.2 创建物理卷 (PV)
$ pvcreate /dev/sdb1 $ pvcreate /dev/sdc1
将 /dev/sdb1 和 /dev/sdc1 两块物理磁盘转换成 PV 物理卷
查看 PV 物理卷相关信息
$ pvdisplay $ pvs $ pvscan
2.3 创建 VG 卷组 (VG)
$ vgcreate -s 64M vg0 /dev/sdb1 /dev/sdc1 $ vgdisplay
-s
参数表示 PE 块的大小,一般设置为 2 的倍数即可
新的 VG 卷组的名称为 vg0,由 /dev/sdb1 和 /dev/sdc1 两块物理卷组成
2.4 创建 LV 逻辑卷 (LV)
$ lvcreate -n lv0 -L 10G vg0 $ lvdisplay
从 vg0 卷组创建一个名称为 lv0 的逻辑卷,分配其大小为 10GB
2.5 格式化和挂载新的 LV 逻辑卷磁盘
$ mkfs.xfs /dev/vg0/lv0 $ mkdir /var/data $ mount /dev/vg0/lv0 /var/data $ df -h
2.6 在 /etc/fstab 配置文件中添加开机自动挂载项
$ emacs /etc/fstab /dev/mapper/vg0-lv0 /var/data xfs defaults 0 0
3 高级 LVM 逻辑卷管理
3.1 将新硬盘加入 LVM 卷组
为新硬盘分区为,分区类型为 8E
$ cfdisk /dev/sdd $ partprobe
创建物理卷
$ pvcreate /dev/sdd1 $ pvdisplay
将新的 PV 物理卷加入到 VG 卷组
$ vgextend vg0 /dev/sdd1 $ vgdisplay
3.2 LV 逻辑卷动态扩容
$ 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
3.3 删除 LV 逻辑卷
$ fuser -m /var/data $ umount /var/data $ lvremove /dev/vg0/lv0
Notice:
在删除 LV 逻辑卷磁盘之前一定要备份其中的数据,然后 umount 卸载掉该逻辑卷
3.4 删除 VG 卷组
$ vgremove vg0
Notice:
在删除 VG 逻辑卷组之前一定要先卸载掉 LV 逻辑卷
3.5 删除 PV 物理卷
$ pvremove /dev/sdb1
3.6 从 VG 卷组中删除 PV 物理卷
$ vgreduce vg0 /dev/sdb1
3.7 取消激活 VG 卷组
$ vgchange -an vg0
3.8 激活一个 LV 逻辑卷
$ lvscan $ lvchange -ay /dev/vg0/lv0
4 LVM 逻辑卷问题与总结
虽然 LVM 有一些特性和优点,但也有一些坑,那就是当某一块物理磁盘损坏,会导致整个 LV 逻辑卷数据丢失,数据恢复比较困难,所以
一般建议在使用 LVM 逻辑卷之前,先在底层做 raid 磁盘镜像阵列。也有人测试过,一些数据库服务器软件在 LVM 磁盘上有性能下降的问题。
作者: 羊驼君
Created: 2017-03-04 周六 11:59