Linux学习笔记(九)-LVM

为什么要使用LVM

问题:

(1) Windows系统中常常出现的问题:

电脑使用久了,某个分区(特别是C盘)不够用了。

解决方案:使用特殊的工具软件,进行调整,或者再加一个硬盘,然后再创建一个大一点的分区,并把数据复制过去。总之,非常麻烦、耗时!

(2) Linux系统中也存在类似问题:

使用一段时间后,/home对应的分区不够用了,导致不能再在这个目录内添加数据,甚至不能创建用户。

解决方案:和Windows类似,创建1个更大的分区,然后进行复制。

分析:以上问题的根本原因,在于分区的大小不能改变!分区太小了不够用,太大了又浪费。

解决方案:

使用LVM(逻辑卷管理器)

LVM,可以弹性的调整文件系统的容量

LVM,可以调整“分区”(实际上是“逻辑卷”)的大小

LVM的概念

理解:逻辑卷,如果荆轲刺秦是使用的画卷,可以随意变长变短。

基础概念:

(1)物理卷(PV)

Physical Volume

LVM中最底层的就是物理卷PV

原来的物理分区,需要转换为物理卷PV(把分区的分区类型编码改为8e即可)

(2)卷组 / 卷用户组(VG)

多个PV组成一个VG

VG相当于标准分区中的“磁盘”

VG最多可包含65534个PE,但是PE大小可调整

(3)物理扩展块 / 物理区域(PE)

Physical Extend

是PV中可用于分配的最小存储单元

PE相当于标准分区中的“扇区”

PE的大小在创建VG时指定,默认为4MiB(可调整),一旦确定后不能修改。

同一VG中的所有PE大小必须一致,新的PV加入到vg后,PE的大小自动更改为VG中定义的PE大小。

(4)逻辑卷(LV)

1个VG可“切”成多个LV

LV的设备文件名一般取“/dev/VG的名称/LV的名称”

LV在功能上,相当于标准分区中的物理分区。

注意:LV中包含多个PE, 有的已经使用,有的还没有使用,但不存在“空闲”的PE, 其中的PE都属于该LV,PV中包含多个PE, 可分配给多个不同的LV, 还没有分配给LV的,就称为“空间“(free)的PE

(5)逻辑扩展块 / 逻辑区域(LE)

LE是LV中可用于分配的最小存储单元,

LE的大小取决于LV所在VG中的PE大小(大小相等)

原理图示

小结:LVM可实现,在不影响已有数据的情况下,动态方便地改变文件系统的容量。

LVM的使用

(1)准备物理设备

即使用fdisk或gdisk创建一个物理分区,并把分区的类型设置为8e(MBR分区)或8e00(GPT分区)

# fdisk  /dev/vda

(2)创建PV

把物理分区,“转换”为物理卷PV

# pvcreate     /dev/vda1    /dev/vda2

或:

# pvcreate   /dev/vda1  

pvcreate命令可同时对多个分区进行转换。

(3)创建VG(卷组 / 卷用户组)

一个VG可包含多个PV

可创建多个VG .

# vgcreate   vg-alpha   /dev/vda1    /dev/vda2

创建了一个卷组,名为vg-alpha, 该卷组中包含两个PV(/dev/sda1和/dev/sda2)

注意: 物理分区和物理卷,都使用相同的 设备文件名,比如 /dev/sda1

(4)创建LV

从卷组vg中可“切割“出多个LV

# lvcreate    -n  lv1   -L   100M   vg-alpha

从卷组vg-alpha中,创建一个LV, 名称为lv1, 大小为100MiB

lv1对应设备文件名为: /dev/vg-alpha/lv1

# lvcreate  -n  lv2   -l   10   vg-alpha

从卷组vg-alpha中,创建一个LV, 名称为lv2, 大小为10个PE

lv2对应设备文件名为: /dev/vg-alpha/lv2

逻辑卷的对应的设备名(又称path): /dev/卷组名/逻辑卷名

(5)格式化LV

和格式化物理分区的方式相同。

# mkfs  -t   xfs   /dev/vg-alpha/lv1

(6)挂载LV

和挂载物理分区的方式相同。

# mkdir   /mnt/data1 
# mount   /dev/vg-alpha/lv1    /mnt/data1

(7)永久挂载

在/etc/fstab中添加:

/dev/vg-alpha/lv1       /mnt/data1      xfs      defaults    1    3

# mount  -a

(8)删除LV

和删除物理分区的方式类似。

删除准备:

1)先把需要保留的数据移动到另一个文件系统。

2) 卸载该LV

# umount   /mnt/data1

删除LV:

# lvremove  /dev/vg-alpha/lv1

注意:删除LV后,该LV中包含的PE,可分配给已有的LV或新的LV

(9)删除VG

# vgremove   vg-alpha

说明:删除VG后,该VG中包含的PV,并没有被删除,可分配给已有的VG或新的VG。

(10)删除PV

PV和对应的物理分区,使用相同的设备文件名。

删除PV, 是指删除它的PV属性,“还原”为原来的特性,比如为“物理分区”

删除 PV后, 该PV就不存在了,但是所来所对应的物理分区还存在!

# pvremove   /dev/vda1     /dev/vda2

(11)查看LVM的状态信息

1)查看物理卷的信息(pvdisplay)

# pvdisplay    /dev/vda2

查看指定物理卷/dev/vda2的状态信息。

# pvdisplay    

查看所有物理卷的状态信息。

2)查看卷组的信息(vgdisplay)

#  vgdisplay     vg-alpha

查看指定卷组的信息

#  vgdisplay

查看所有卷组的信息

3)查看逻辑卷的信息 (lvdisplay)

#  lvdisplay    /dev/vg-alpha/lv1

查看指定逻辑卷的信息。

# lvdisplay 

查看所有逻辑卷的信息

(12)扩展/缩减卷组VG

扩展VG

把额外的物理卷PV添加到VG, 使得该VG有更多的PE分配给逻辑卷LV

#fdisk  /dev/vdb

准备好一个PV, 可创建一个新的分区再转换为PV,或者使用已有的不使用的PV

# vgextend   vg-alpha    /dev/vdb2

把物理卷/dev/vdb2添加到卷组vg-alpha中。

# vgdisplay   vg-alpha

扩展后,检查VG是否增加可用的PE (free PE字段)

缩减VG

把物理卷PV从VG中删除

需要两个步骤:

步骤1)把该PV上的所有PE移动(实质是“复制”)到该VG中(或该VG中指定的)含有空闲PE的PV中

方式1:

# pvmove    /dev/vdb2

把物理卷/dev/vdb2中的所有PE移动(实质是“复制”)到该VG中含有空闲PE的PV中

方式2:

# pvmove    /dev/vdb2    /dev/vdb1

把物理卷/dev/vdb2中的所有PE移动(实质是“复制”)到该VG中的物理卷vdb1

步骤2)把PV从VG中删除

# vgreduce     vg-alpha   /dev/vdb2

把物理卷/dev/vdb2从卷组vg-alpha中删除,但是该物理卷本身并不删除。

3)补充

PV从VG中删除后,成为未使用的PV, 该PV可添加到其他的VG中,

也可以删除它的PV属性,“还原”为原来的特性,比如为“物理分区”。

# pvremove     /dev/vdb2

把物理卷/dev/vdb2的PV属性删除,成为原来的物理分区。

(13)扩展逻辑卷LV

扩展LV

扩展LV需要3个步骤:

1) 检查LV所在的VG中是否还有空闲的PE

#  vgdisplay   vg-alpha

检查 Free PE字段

如果还有足够的PE,才能扩展LV,

如果没有足够的PE, 那应该先扩展VG

2)扩展LV

# lvextend   -L   +300M   /dev/vg-alpha/lv1

把逻辑卷lv1增加 300MiB空间。

选项用法:

  -L   +300M    增加300MiB
  -L   300M      设置为300MB
  -l    +100      增加100个PE
  -l    100        设置为100个PE
  -l    +50%FREE    增加VG中可用空间的50%

3) 扩展文件系统

即,需要把扩展后的LV对应的文件系统(挂载点)进行“更新”一下。

否则LV扩展了,但是对应的文件系统并不会扩展。

有两种方式:

方式1:(适用于XFS文件系统)

#  xfs_growfs      /mnt/data1

xfs_growfs的参数为lv的挂载点。

方式2:(适用于ext4文件系统)

#  resize2fs    /dev/vg-alpha/lv1

resize2fs的参数为逻辑卷的完整设备文件名

补充:查看分区、逻辑卷的的文件系统格式

# df  -T 
|| 版权声明
作者:废权
链接:https://blog.yjscloud.com/archives/26
声明:如无特别声明本文即为原创文章仅代表个人观点,版权归《废权的博客》所有,欢迎转载,转载请保留原文链接。
THE END
分享
二维码
Linux学习笔记(九)-LVM
为什么要使用LVM 问题: (1) Windows系统中常常出现的问题: 电脑使用久了,某个分区(特别是C盘)不够用了。 解决方案:使用特殊的工具软件,进行调整,或者……
<<上一篇
下一篇>>
文章目录
关闭
目 录