zoukankan      html  css  js  c++  java
  • 青蛙学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,在线扩展成功。

  • 相关阅读:
    Docker集群实验环境布署--swarm【4 管理组件--manager】
    Docker集群实验环境布署--swarm【3 注册服务监控与自动发现组件--consul】
    Docker集群实验环境布署--swarm【2 搭建本地镜像仓库】
    Docker集群实验环境布署--swarm【1 架构说明】
    zabbix 布署实践【7 H3C网络设备监控模版制作思路】
    zabbix 布署实践【6 使用微信公众号-消息模版推送告警】
    zabbix 布署实践【5 使用邮箱SMTP SSL推送告警邮件】
    zabbix 布署实践【4 服务器自动探索发现,并且自动关联模版】
    openstack私有云布署实践【19 通过python客户端 创建实例VM指定IP地址】
    openstack私有云布署实践【18 修改实例DHCP服务的DNS IP】
  • 原文地址:https://www.cnblogs.com/yu2006070-01/p/9973799.html
Copyright © 2011-2022 走看看