青蛙学Linux—LVM

LVM,Logical Volume Manage,逻辑卷管理,是Linux下对磁盘分区进行管理的一种机制。LVM是建立在磁盘分区和文件系统之间的一个逻辑层。管理员利用LVM可以在磁盘不用重新分区的情况下动态调整分区大小;如果主机新增了一块硬盘,通过LVM可以直接将新增的空间扩展到原来的磁盘分区上;LVM可以跨硬盘建立。

LVM的相关概念:

  • 物理存储设备:Physical Media,如硬盘
  • PV:Physical Volume,物理卷
  • VG:Volume Group,卷组
  • LV:Logical Volume,逻辑卷
  • PE:Physical Extent,PV中可以分配的最小存储单元
  • LE:Logical Extent,LV中可以分配的最小存储单元

它们之间的关系如下图所示:

1235951-20180715234526888-873904766

LVM依赖以下软件包:

lvm2
lvm2-libs
e2fsprogs
e2fsprogs-libs
xfsprogs

创建LVM:

  1. 对磁盘进行分区
  2. 创建物理卷
    pvcreate part    # 将指定分区创建成PV
    pvdisplay        # 查看PV信息
  3. 创建卷组
    vgcreate VG name PV    # 将指定的PV加入到VG
    vgdisplay              # 查看VG信息
  4. 激活卷组
    vgchange -a y VG
  5. 创建逻辑卷
    lvcreate -L size|-l PE number -n LV name VG    # 在指定VG上创建LV
    lvdisplay                                      # 查看LV信息
  6. 格式化逻辑卷
    mkfs.文件系统类型 /dev/VG/LV
  7. 挂载逻辑卷

扩展VG:

vgextend VG PV

扩展LV:

lvextend -L +size|-l +PE number /dev/VG/LV

删除LVM:

  1. 卸载逻辑卷对应的分区
  2. 删除LV
    lvremove /dev/VG/LV
  3. 删除VG
    vgremove VG
  4. 删除PV
    pvremove PV

额外的:在线扩展xfs和ext4

扩展xfs:

xfs_growfs 分区

扩展ext4:

resize2fs 分区

一个例子:跨硬盘创建一个LVM

为当前主机添加了一块15GB和一块20GB的硬盘,在系统中分别为/dev/sdb和/dev/sdc。/dev/sdb分割为10GB和5GB的两个分区,/dev/sdc分割为两个10GB的分区。/dev/sdb的10GB分区和/dev/sdc的一个10GB分区组成一个名为test01的VG,并上VG上创建一个名为test1的LV,占用所有的VG空间并格式化为xfs挂载到/data1目录下。

先用yum安装LVM所依赖的软件包:

[root@localhost ~]# yum install lvm2 lvm2-libs e2fsprogs e2fsprogs-libs xfsprogs

为主机添加了两块硬盘:

1

使用parted对这两块硬盘进行分区:

2

分区完成,这里要将/dev/sdb1和/dev/sdc1组成一个VG,所以先把/dev/sdb1和/dev/sdc1创建成PV:

3

使用pvdisplay查看两个PV是否创建成功:

4

通过返回的信息可以看到PV创建成功,接下来把两个PV组成一个VG,VG名为test01:

5

6

7

VG创建成功,接下来激活VG:

8

接下来将VG的全部空间创建一个LV,LV名为test1(这里使用PE数量创建):

9

10

将LV格式化为xfs并挂载到/data1目录下:

11

OK,LV成功挂载到/data1目录,现在就可以先里面写入数据了。

一个例子:为LV扩展空间

将剩余的/dev/sdb2和/dev/sdc2加入test01的VG中,并将这些空间扩展到test1的LV上。

创建PV并将PV扩展到VG上:

12

13

注意返回结果的Free PE字段,空间已经扩展,接下来把这些空间扩展到test1的LV上(同样使用PE进行操作):

14

15

16

通过上面的显示信息可以看到,名为test1的LV空间已经成功扩展,但是在线上挂载到的/data1的空间仍没有扩展,因为是xfs,所以可以通过xfs_growfs命令实现在线扩展xfs空间:

17

OK,在线扩展成功。

posted @ 2018-11-17 14:19  青蛙学Linux  阅读(275)  评论(0编辑  收藏  举报