美文网首页我用 Linux阿里云我是程序员
【ECS最佳实践】基于多块云盘构建LVM逻辑卷

【ECS最佳实践】基于多块云盘构建LVM逻辑卷

作者: 阿里云云栖号 | 来源:发表于2019-06-10 15:46 被阅读18次

    一、LVM简介

    LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。

    LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。如果期望扩容云盘的IO能力,则可以通过将多块容量相同的云盘做RAID0。

    图1:LVM逻辑示意图(图片来自于互联网)

    二、创建LVM卷

    2.1步骤一 创建物理卷PV

    如下以5块云盘通过LVM创建弹性可扩展逻辑卷为例。

    root@lvs06:~# lsblk
    NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    vda    252:0    0  40G  0 disk
    └─vda1 252:1    0  40G  0 part /
    vdb    252:16   0   1T  0 disk
    vdc    252:32   0   1T  0 disk
    vdd    252:48   0   1T  0 disk
    vde    252:64   0   1T  0 disk
    vdf    252:80   0   1T  0 disk
    
    • step1: 以root账号登录云服务器
    • step2:执行以下命令,为云盘创建PV卷
    pvcreate <磁盘路径1> ... <磁盘路径N>
    

    说明:此处需要填写云盘的设备名称,如果需要添加多个云盘,则可以添加多云盘设备名称,中间以空格间隔。如下以/dev/vdb, /dev/vdc,/dev/vdd,/dev/vde,/dev/vdf为例,执行结果如下:

    root@lvs06:~# pvcreate  /dev/vdb /dev/vdc /dev/vdd /dev/vde /dev/vdf
      Physical volume "/dev/vdb" successfully created.
      Physical volume "/dev/vdc" successfully created.
      Physical volume "/dev/vdd" successfully created.
      Physical volume "/dev/vde" successfully created.
      Physical volume "/dev/vdf" successfully created.
    
    • step3:执行以下命令,查看该服务器上物理卷(PV)信息:
    lvmdiskscan | grep LVM
    

    执行结果如下:

    root@lvs06:~# lvmdiskscan | grep LVM
      /dev/vdb  [       1.00 TiB] LVM physical volume
      /dev/vdc  [       1.00 TiB] LVM physical volume
      /dev/vdd  [       1.00 TiB] LVM physical volume
      /dev/vde  [       1.00 TiB] LVM physical volume
      /dev/vdf  [       1.00 TiB] LVM physical volume
      5 LVM physical volume whole disks
      0 LVM physical volumes
    

    2.2步骤二 创建卷组(VG)

    • step1:执行以下命令,创建卷组(VG)
    vgcreate <卷组名> <物理卷路径1>……<物理卷路径N>
    

    执行结果如下:

    root@lvs06:~# vgcreate lvm_01  /dev/vdb  /dev/vdc /dev/vdd /dev/vde /dev/vdf
      Volume group "lvm_01" successfully created
    

    说明

    1.卷组名:该参数可自定义
    
    2.物理卷路径:此处填写云盘的物理卷名称,多个物理卷直接以空格间隔
    
    3.当提示 “Volume group XXX successfully created”标识卷组创建成功;
    
    • step2:执行以下命令,可以向卷组(VG)中添加物理卷(PV)
    vgextend 卷组名称  <物理卷路径1>……<物理卷路径N>
    

    如下,向卷组(VG)lvm_01中添加一块新的物理卷:

    root@lvs06:~# pvcreate /dev/vdg
      Physical volume "/dev/vdg" successfully created.
    root@lvs06:~# vgextend  lvm_01  /dev/vdg
      Volume group "lvm_01" successfully extended
    
    • step3:创建卷组(VG)成功后,可通过vgs,vgdisplay命令查看卷组信息
    root@lvs06:~# vgs
      VG     #PV #LV #SN Attr   VSize  VFree
      lvm_01   6   0   0 wz--n- <6.00t <6.00t
    
    

    2.3步骤三 创建逻辑卷(LV)

    • step1:执行以下命令创建逻辑卷(LV)
    lvcreate [-L <逻辑卷大小>][ -n <逻辑卷名称>] <卷组名称>
    

    参数说明

    1.逻辑卷大小:逻辑卷的大小应小于卷组(VG)剩余可用空间,单位可以选择MB、GB或者TB
    2.逻辑卷名称:可自定义
    3.卷组名称:此处填写逻辑卷所在的卷组名称
    

    本文以创建1个4TB的逻辑卷(LV)为例,执行结果如下:

    root@lvs06:~# lvcreate -L 5T -n lv01 lvm_01
      Logical volume "lv01" created.
    
    • step2:执行lvdisplay命令查看,逻辑卷详细信息:
    root@lvs06:~# lvdisplay
      --- Logical volume ---
      LV Path                /dev/lvm_01/lv01
      LV Name                lv01
      VG Name                lvm_01
      LV UUID                svB00x-l6Ke-ES6M-ctsE-9P6d-dVj2-o0h3Kz
      LV Write Access        read/write
      LV Creation host, time lvs06, 2019-06-06 15:27:19 +0800
      LV Status              available
      # open                 0
      LV Size                5.00 TiB
      Current LE             1310720
      Segments               6
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:0
    

    2.4步骤四 创建并挂载文件系统

    • step1:执行以下命令,在创建好的逻辑卷(LV)上创建文件系统
    mkfs.文件系统格式  逻辑卷路径
    

    针对上一步中的逻辑卷创建ext4文件系统,执行结果如下:

    root@lvs06:~# mkfs.ext4  /dev/lvm_01/lv01
    mke2fs 1.44.1 (24-Mar-2018)
    Creating filesystem with 1342177280 4k blocks and 167772160 inodes
    Filesystem UUID: 2529002f-9209-4b6a-9501-106c1145c77f
    Superblock backups stored on blocks:
            32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
            4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
            102400000, 214990848, 512000000, 550731776, 644972544
    
    Allocating group tables: done
    Writing inode tables: done
    Creating journal (262144 blocks): done
    Writing superblocks and filesystem accounting information:
    done
    
    • step2:执行以下命令挂载文件系统:
    mount  逻辑卷路径   挂载点
    

    执行结果如下:

    root@lvs06:~# mount  /dev/lvm_01/lv01  /media/lv01
    root@lvs06:~# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    udev                      12G     0   12G   0% /dev
    tmpfs                    2.4G  3.7M  2.4G   1% /run
    /dev/vda1                 40G  3.6G   34G  10% /
    tmpfs                     12G     0   12G   0% /dev/shm
    tmpfs                    5.0M     0  5.0M   0% /run/lock
    tmpfs                     12G     0   12G   0% /sys/fs/cgroup
    tmpfs                    2.4G     0  2.4G   0% /run/user/0
    /dev/mapper/lvm_01-lv01  5.0T   89M  4.8T   1% /media/lv01
    

    三、进阶场景

    3.1扩展逻辑卷以及系统容量

    • Step1:执行以下命令,可扩展逻辑卷的容量
    lvextend [-L +/- <增减容量>] <逻辑卷路径>
    

    参数说明

    1.增减容量:当卷组中可剩余容量时 ,可以执行扩容逻辑卷操作。扩容逻辑卷之后还需要扩容对应的文件系统才能生效;
    2.逻辑卷路径:此处填写带扩容的逻辑卷路径
    

    如下针对/dev/lvm_01/lv01 卷再扩容500GB物理空间,执行结果如下:

    root@lvs06:~# lvextend -L +500GB /dev/lvm_01/lv01
    Size of logical volume lvm_01/lv01 changed from 5.00 TiB (1310720 extents) to <5.49 TiB (1438720 extents).
    Logical volume lvm_01/lv01 successfully resized.
    
    • step2:执行pvs命令,查看物理卷(pv)使用情况:
    root@lvs06:~# pvs
      PV         VG     Fmt  Attr PSize     PFree
      /dev/vdb   lvm_01 lvm2 a--  <1024.00g       0
      /dev/vdc   lvm_01 lvm2 a--  <1024.00g       0
      /dev/vdd   lvm_01 lvm2 a--  <1024.00g       0
      /dev/vde   lvm_01 lvm2 a--  <1024.00g       0
      /dev/vdf   lvm_01 lvm2 a--  <1024.00g       0
      /dev/vdg   lvm_01 lvm2 a--  <1024.00g <523.98g
    
    • step3:执行以下resize2fs命令扩容文件系统:
    resize2fs  逻辑卷路径
    

    执行结果如下:

    root@lvs06:~# resize2fs  /dev/lvm_01/lv01
    resize2fs 1.44.1 (24-Mar-2018)
    Filesystem at /dev/lvm_01/lv01 is mounted on /media/lv01; on-line resizing required
    old_desc_blocks = 640, new_desc_blocks = 703
    The filesystem on /dev/lvm_01/lv01 is now 1473249280 (4k) blocks long.
    
    • step4:执行df-h名称,查看文件系统扩容情况
    root@lvs06:~# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    udev                      12G     0   12G   0% /dev
    tmpfs                    2.4G  3.7M  2.4G   1% /run
    /dev/vda1                 40G  3.6G   34G  10% /
    tmpfs                     12G     0   12G   0% /dev/shm
    tmpfs                    5.0M     0  5.0M   0% /run/lock
    tmpfs                     12G     0   12G   0% /sys/fs/cgroup
    tmpfs                    2.4G     0  2.4G   0% /run/user/0
    /dev/mapper/lvm_01-lv01  5.5T   83M  5.2T   1% /media/lv01
    


    本文作者:小盆友开飞机

    阅读原文

    本文为云栖社区原创内容,未经允许不得转载。

    相关文章

      网友评论

        本文标题:【ECS最佳实践】基于多块云盘构建LVM逻辑卷

        本文链接:https://www.haomeiwen.com/subject/exqzxctx.html