linux之lvm管理

介绍

LVM(Logical Volume Manager)逻辑卷管理,是在硬盘分区和文件系统之间添加的一个逻辑层,为文件系统屏蔽下层硬盘分区布局,并提供一个抽象的盘卷,在盘卷上建立文件系统。管理员利用LVM可以在硬盘不用重新分区的情况下动态调整文件系统的大小,并且利用LVM管理的文件系统可以跨越物理硬盘。当服务器添加了新的硬盘后,管理员不必将原有的文件移动到新的硬盘上,而是通过LVM直接扩展文件系统来跨越物理硬盘。

  • PV:物理卷,可以是硬盘或分区。
  • VG:卷组,一个卷组VG由一个或多个物理卷PV组成。可以在卷组VG上建立逻辑卷LV。
  • LV:类似于非LVM系统中的硬盘分区,逻辑卷LV建立在卷组VG之上。
  • PE:物理块,物理卷PV中可以分配的最小存储单元,PE的大小可以指定,默认为4MB。
  • LE:逻辑块,逻辑卷LV中可以分配的最小存储单元,在同一卷组VG中LE的大小和PE是相同的,并且一一相对。

使用

创建pv

准备多个硬盘或分区,实验以硬盘为例(/dev/sdb、/dev/sdc)。

1
2
3
4
5
# 两块硬盘加入到pv
pvcreate /dev/sdb /dev/sdc

# 检查
pvs

创建vg

1
2
3
4
5
# 把/dev/sdb /dev/sdc的pv加入到vg命名的卷组中
vgcreate vg /dev/sdb /dev/sdc

# 查看
vgs

创建lv

1
2
3
4
5
6
7
8
# 创建三个LV,名称为lv1,大小64M,从vg中划分出来。
lvcreate -n lv1 -L 64M vg

# 将vg剩余的所有空间创建为一个lv2
lvcreate -l 100%FREE -n lv2 vg

# 查看
lvs

格式化与挂载lv

1
2
3
4
5
6
# 将lv1格式化成ext4
mkfs.ext4 /dev/vg/lv1

# 创建挂载目录
mkdir /opt/lv1
mount /dev/vg/lv1 /opt/lv1

lv扩容

1
2
3
4
5
6
7
8
9
10
11
# 增加1G并刷新文件系统
lvextend -L +1024M -r /dev/vg/lv1

# 增加到1G并刷新文件系统
lvextend -L 1024M -r /dev/vg/lv1

# 扩展lv使用vg剩余的所有空间
lvextend -l +100%FREE /dev/vg/lv1

# 查看
df -h

vg扩容

添加一块新硬盘

1
2
3
4
5
# 新硬盘添加到pv中
pvcreate /dev/sdd

# 新pv添加到vg中
vgextend vg /dev/sdd

lv缩容

1
2
3
# 缩容到100M
lvreduce -L 100M -r /dev/vg/lv1
df -h /opt/lv1

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!