• Linux_LVM管理


    一、Ivm的应用场景及其弊端

    1、应用场景:

    • 随着公司的发展,数据增长较快,最初规划的磁盘容量不够用了

    2、弊端:

    • 数据不是直接存放在硬盘上,而是在硬盘的.上面又虚拟出来--层逻辑卷存放数据,故而增加了磁盘数据恢复的难度

    二、物理卷、卷组、逻辑卷

    逻辑卷(LV)、卷组(VG)、物理卷(PV)、基本单元(PE)、逻辑:logic 、卷:volume 、物理:physical  

     1、物理卷(PV):

    • 物理卷(PV):把常规的块设备(硬盘, 分区等可以读写数据的设备)通过pvcreate命 令对其进行初始化,就成了物理卷

    2、卷组(VG):

    • 把多个物理卷的容量组成一个逻辑整体,可以从里面灵活分配容量

    3、逻辑卷(LV):

    • 从卷组中划分部分空间成为一个可以读写数据的逻辑单元。需要对其格式化然后挂载使用

    三、部署LVM

    1、创建LVM步骤:

    • 1、创建卷组,将物理卷加入卷组
    • 2、创建卷组,将物理卷加入卷组
    • 3、在卷组中划分逻辑卷
    • 4、格式化逻辑卷
    • 5、挂载使用

    2、与PV、VG、LV有关的命令

    • 与物理卷(PV)有关的命令:
    pvcreate            //初始化(创建)物理卷(PV)
    pvs                 //查看物理卷(PV)信息
    pvdisplay           //查看物理卷的详细信息
    pvremove            //删除物理卷
    pvmove              //迁移物理卷数据(随机迁移到其他的磁盘)
    pvresize            //改变物理卷的大小
    pvscan //查看活跃的物理卷
    • 与卷组(VG)有关命令:
    vgcreate            //创建卷组(VG)
    vgs                 //查看卷组(VG)信息
    vgdisplay           //查看卷组的详细信息
    vgextend            //扩增卷组的容量
    vgreduce            //缩减卷组的容量 
    vgremove            //删除卷组
    vgrename            //重命名卷组
    vgscan //查看活跃的卷组
    • 与逻辑卷(LV)有关的命令:
    lvcreate            //创建逻辑卷(LV)
    lvs                 //查看逻辑卷(LV)信息
    lvdisplay           //查看逻辑卷的详细信息   
    lvextend            //扩增逻辑卷的容量
    lvreduce            //缩减逻辑卷的容量
    lvremove            //删除逻辑卷
    lvrename            //重命名逻辑卷
    lvsan //查看活跃的逻辑卷

    3、实例:创建一个逻辑分区 —— lv1

    • 查看已经创建的主分区
    [root@localhost ~]# lsblk 
    NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sr0            11:0    1  7.3G  0 rom  /mnt
    nvme0n1       259:0    0  120G  0 disk 
    ├─nvme0n1p1   259:1    0    1G  0 part /boot
    └─nvme0n1p2   259:2    0  119G  0 part 
      ├─rhel-root 253:0    0   50G  0 lvm  /
      ├─rhel-swap 253:1    0    2G  0 lvm  [SWAP]
      └─rhel-home 253:2    0   67G  0 lvm  /home
    nvme0n2       259:3    0   50G  0 disk 
    └─nvme0n2p1   259:4    0   20G  0 part          //这是创建的主分区
    
    •  初始化物理卷
     //初始化物理卷
    [root@localhost ~]# pvcreate /dev/nvme0n2p1 
      Physical volume "/dev/nvme0n2p1" successfully created.
    
     //查看物理卷(也可以指定物理卷)
    [root@localhost ~]# pvs
      PV             VG   Fmt  Attr PSize    PFree 
      /dev/nvme0n1p2 rhel lvm2 a--  <119.00g     0 
      /dev/nvme0n2p1      lvm2 ---    20.00g 20.00g
    或:
    [root@localhost ~]# pvs /dev/nvme0n2p1 
      PV             VG Fmt  Attr PSize  PFree 
      /dev/nvme0n2p1    lvm2 ---  20.00g 20.00g
    
     //查看物理卷的详细信息
    [root@localhost ~]# pvdisplay /dev/nvme0n2p1 
      "/dev/nvme0n2p1" is a new physical volume of "20.00 GiB"
      --- NEW Physical volume ---
      PV Name               /dev/nvme0n2p1
      VG Name               
      PV Size               20.00 GiB
      Allocatable           NO
      PE Size               0   
      Total PE              0
      Free PE               0
      Allocated PE          0
      PV UUID               UVboOM-yr9q-cT7s-Cf7q-D52d-tZC8-Yw8eHr
    
    • 创建卷组vg1,将刚刚创建的物理卷加入到卷组vg1中
     //创建卷组vg1
    [root@localhost ~]# vgcreate vg1 /dev/nvme0n2p1 
      Volume group "vg1" successfully created
    
     //查看卷组
    [root@localhost ~]# vgs   (也可以是指定卷组)
      VG   #PV #LV #SN Attr   VSize    VFree  
      rhel   1   3   0 wz--n- <119.00g      0 
      vg1    1   0   0 wz--n-  <20.00g <20.00g
    或:
    [root@localhost ~]# vgs vg1
      VG  #PV #LV #SN Attr   VSize   VFree  
      vg1   1   0   0 wz--n- <20.00g <20.00g
    
     //查看卷组的详细信息
    [root@localhost ~]# vgdisplay vg1
      --- Volume group ---
      VG Name               vg1
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               <20.00 GiB
      PE Size               4.00 MiB
      Total PE              5119
      Alloc PE / Size       0 / 0   
      Free  PE / Size       5119 / <20.00 GiB
      VG UUID               nvvGgQ-zumO-zF40-fCAz-w12t-rnq1-QqZya7
    
    • 创建逻辑卷lv1
    语法:
        lvcreate -n 逻辑卷名 -L 逻辑卷大小(+10G)卷组名
    
     //创建逻辑卷
    [root@localhost ~]# lvcreate -n lv1 -L +10G vg1 
      Logical volume "lv1" created.
    
     //查看逻辑卷
    [root@localhost ~]# lvs        (也可以指定逻辑卷)
      LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      home rhel -wi-ao---- <66.95g                                                    
      root rhel -wi-ao----  50.00g                                                    
      swap rhel -wi-ao----  <2.05g                                                    
      lv1  vg1  -wi-a-----  10.00g
    
    [root@localhost ~]# lvs /dev/vg1/lv1 
      LV   VG  Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      lv1  vg1 -wi-a----- 10.00g
    
     //查看逻辑卷的详细信息
    [root@localhost ~]# lvdisplay /dev/vg1/lv1 
      --- Logical volume ---
      LV Path                /dev/vg1/lv1
      LV Name                lv1
      VG Name                vg1
      LV UUID                14Ja5a-j9bK-IxYQ-QENl-GbE2-2IzO-bCUzkm
      LV Write Access        read/write
      LV Creation host, time localhost.localdomain, 2020-08-20 19:32:17 +0800
      LV Status              available
      # open                 0
      LV Size                10.00 GiB
      Current LE             2560
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     8192
      Block device           253:3
    
    • 格式化逻辑卷lv1
     //查看已经创建好的逻辑卷lv1
    [root@localhost ~]# lsblk 
    NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sr0            11:0    1  7.3G  0 rom  /mnt
    nvme0n1       259:0    0  120G  0 disk 
    ├─nvme0n1p1   259:1    0    1G  0 part /boot
    └─nvme0n1p2   259:2    0  119G  0 part 
      ├─rhel-root 253:0    0   50G  0 lvm  /
      ├─rhel-swap 253:1    0    2G  0 lvm  [SWAP]
      └─rhel-home 253:2    0   67G  0 lvm  /home
    nvme0n2       259:3    0   50G  0 disk 
    └─nvme0n2p1   259:5    0    5G  0 part 
      └─vg1-lv1   253:3    0    2G  0 lvm  
    
     //格式化逻辑卷lv1
    [root@localhost ~]# mkfs.ext4 /dev/vg1/lv1 
    mke2fs 1.44.6 (5-Mar-2019)
    Creating filesystem with 524288 4k blocks and 131072 inodes
    Filesystem UUID: 54afac9f-0363-4fb7-9f8f-d9576c4960b9
    Superblock backups stored on blocks: 
    	32768, 98304, 163840, 229376, 294912
    
    Allocating group tables: done                            
    Writing inode tables: done                            
    Creating journal (16384 blocks): done
    Writing superblocks and filesystem accounting information: done 
    
     //查看格式化后逻辑卷的属性
    [root@localhost ~]# blkid /dev/vg1/lv1
    /dev/vg1/lv1: UUID="54afac9f-0363-4fb7-9f8f-d9576c4960b9" TYPE="ext4"
    
    • 设置永久挂载逻辑卷lv1
     //创建挂载目录
    [root@localhost ~]# mkdir /dir
    
     //在/etc/fstab文件写入永久挂载信息
    [root@localhost ~]# vim /etc/fstab 
    ...........
    UUID="54afac9f-0363-4fb7-9f8f-d9576c4960b9"     /dir    ext4    defaults 0 0
    
     //查看是否挂载成功
    [root@localhost ~]# mount -a
    [root@localhost ~]# df -h
    Filesystem             Size  Used Avail Use% Mounted on
    devtmpfs               887M     0  887M   0% /dev
    tmpfs                  904M     0  904M   0% /dev/shm
    tmpfs                  904M  8.7M  895M   1% /run
    tmpfs                  904M     0  904M   0% /sys/fs/cgroup
    /dev/mapper/rhel-root   50G  1.8G   49G   4% /
    /dev/sr0               7.4G  7.4G     0 100% /mnt
    /dev/nvme0n1p1        1014M  173M  842M  17% /boot
    /dev/mapper/rhel-home   67G  511M   67G   1% /home
    tmpfs                  181M     0  181M   0% /run/user/0
    /dev/mapper/vg1-lv1    2.0G  6.0M  1.8G   1% /dir
    

    四、卷组管理

    1、扩展卷组,将新磁盘加入卷组

    • 查看已经拥有的卷组
    [root@localhost ~]# vgs
      VG   #PV #LV #SN Attr   VSize    VFree 
      rhel   1   3   0 wz--n- <119.00g     0 
      vg1    1   1   0 wz--n-   <5.00g <3.00g         //假设空间不够用
    
    • 初始化一块20G大小的物理卷
     //查看已经分出来的20G的分区
    [root@localhost ~]# lsblk 
    NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sr0            11:0    1  7.3G  0 rom  
    nvme0n1       259:0    0  120G  0 disk 
    ├─nvme0n1p1   259:1    0    1G  0 part 
    └─nvme0n1p2   259:2    0  119G  0 part 
      ├─rhel-root 253:0    0   50G  0 lvm  /
      ├─rhel-swap 253:1    0    2G  0 lvm  [SWAP]
      └─rhel-home 253:2    0   67G  0 lvm  
    nvme0n2       259:3    0   50G  0 disk 
    ├─nvme0n2p1   259:5    0    5G  0 part 
    │ └─vg1-lv1   253:3    0    2G  0 lvm  
    └─nvme0n2p2   259:6    0   20G  0 part 
    nvme0n3       259:4    0   60G  0 disk 
    
     //初始化物理卷
    [root@localhost ~]# pvcreate /dev/nvme0n2p2
      Physical volume "/dev/nvme0n2p2" successfully created.
    
     //查看物理卷
    [root@localhost ~]# pvs
      PV             VG   Fmt  Attr PSize    PFree 
      /dev/nvme0n1p2 rhel lvm2 a--  <119.00g     0 
      /dev/nvme0n2p1 vg1  lvm2 a--    <5.00g <3.00g
      /dev/nvme0n2p2      lvm2 ---    20.00g 20.00g     //这是刚刚初始化的物理卷
    
    • 将物理卷加入到卷组vg1
     //查看卷组
    [root@localhost ~]# vgs
      VG   #PV #LV #SN Attr   VSize    VFree 
      rhel   1   3   0 wz--n- <119.00g     0 
      vg1    1   1   0 wz--n-   <5.00g <3.00g     //这是需要加入的卷组
    
     //将物理卷加入卷组vg1
    [root@localhost ~]# vgextend vg1 /dev/nvme0n2p2
      Volume group "vg1" successfully extended
    
     //查看物理机是否加入到卷组vg1
    [root@localhost ~]# pvs
      PV             VG   Fmt  Attr PSize    PFree  
      /dev/nvme0n1p2 rhel lvm2 a--  <119.00g      0 
      /dev/nvme0n2p1 vg1  lvm2 a--    <5.00g  <3.00g
      /dev/nvme0n2p2 vg1  lvm2 a--   <20.00g <20.00g
    
     //查看卷组vg1容量是否扩增
    [root@localhost ~]# vgs
      VG   #PV #LV #SN Attr   VSize    VFree 
      rhel   1   3   0 wz--n- <119.00g     0 
      vg1    2   1   0 wz--n-   24.99g 22.99g     //比原来扩大20G容量
    

    2、缩减卷组,将加入的物理卷从指定的卷组移除

    • 查看卷组vg1的容量
    [root@localhost ~]# vgs
      VG   #PV #LV #SN Attr   VSize    VFree 
      rhel   1   3   0 wz--n- <119.00g     0 
      vg1    2   1   0 wz--n-   24.99g 12.99g
    
    • 查看卷组vg1有哪些物理卷
    [root@localhost ~]# pvs
      PV             VG   Fmt  Attr PSize    PFree 
      /dev/nvme0n1p2 rhel lvm2 a--  <119.00g     0 
      /dev/nvme0n2p1 vg1  lvm2 a--    <5.00g     0 
      /dev/nvme0n2p2 vg1  lvm2 a--   <20.00g 12.99g
    
    • 将/dev/nvme0n2p2移除卷组vg1
    [root@localhost ~]# vgreduce vg1 /dev/nvme0n2p2
      Removed "/dev/nvme0n2p2" from volume group "vg1"
    
    • 查看卷组容量大小
    [root@localhost ~]# vgs
      VG   #PV #LV #SN Attr   VSize    VFree 
      rhel   1   3   0 wz--n- <119.00g     0 
      vg1    1   0   0 wz--n-   <5.00g <5.00g      //卷组容量减少10G

    五、逻辑卷管理

    1、扩展逻辑卷(逻辑卷扩展,逻辑卷的扩展取决于卷组中的容量,逻辑卷扩展的容量不能超过卷组的容量)

    • 查看已经创建的逻辑卷

    [root@localhost ~]# lvs
      LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      home rhel -wi-a----- <66.95g                                                    
      root rhel -wi-ao----  50.00g                                                    
      swap rhel -wi-ao----  <2.05g                                                    
      lv1  vg1  -wi-a-----   2.00g        //这是已经创建的逻辑卷,假设空间不够
    
    • 扩展逻辑卷,扩大10G
    [root@localhost ~]# lvextend -L +10G /dev/vg1/lv1 
      Size of logical volume vg1/lv1 changed from 2.00 GiB (512 extents) to 12.00 GiB (3072 extents).
      Logical volume vg1/lv1 successfully resized.
    
    • 查看逻辑卷容量是否扩大10G 
    [root@localhost ~]# lvs
      LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      home rhel -wi-a----- <66.95g                                                    
      root rhel -wi-ao----  50.00g                                                    
      swap rhel -wi-ao----  <2.05g                                                    
      lv1  vg1  -wi-a-----  12.00g         /比原来扩大10G  
    • 使用df -T查看已经挂载的逻辑卷容量是否也扩大10G
    [root@localhost ~]# df -h
    Filesystem             Size  Used Avail Use% Mounted on
    devtmpfs               887M     0  887M   0% /dev
    tmpfs                  904M  8.7M  895M   1% /run
    tmpfs                  904M     0  904M   0% /sys/fs/cgroup
    /dev/mapper/rhel-root   50G  1.8G   49G   4% /
    tmpfs                  181M     0  181M   0% /run/user/0
    /dev/mapper/vg1-lv1    2.0G  6.0M  1.8G   1% /dir          //可以看到逻辑卷的容量任然是2G,刚刚扩增的10暂时还不能用,所以需要我们手动去扩充逻辑卷容量
    
    • 使用resize2fs命令在线扩增ext类型的逻辑卷(ext类型的文件系统可以增加容量,也可以减少容量大小)
     //查看逻辑卷的文件系统类型
    [root@localhost ~]# df -T
    Filesystem            Type     1K-blocks    Used Available Use% Mounted on
    devtmpfs              devtmpfs    907316       0    907316   0% /dev
    tmpfs                 tmpfs       924764    8816    915948   1% /run
    tmpfs                 tmpfs       924764       0    924764   0% /sys/fs/cgroup
    /dev/mapper/rhel-root xfs       52403200 1799684  50603516   4% /
    tmpfs                 tmpfs       184952       0    184952   0% /run/user/0
    /dev/mapper/vg1-lv1   ext4       1998672    6144   1871288   1% /dir       //文件系统类型是ext4
    
     //使用resize2fs命令手动扩充逻辑卷容量
    [root@localhost ~]# resize2fs -f /dev/vg1/lv1          // -f:指定文件系统名
    resize2fs 1.44.6 (5-Mar-2019)
    Filesystem at /dev/vg1/lv1 is mounted on /dir; on-line resizing required
    old_desc_blocks = 1, new_desc_blocks = 2
    The filesystem on /dev/vg1/lv1 is now 3145728 (4k) blocks long.
    
    • 再次查看已经挂载的逻辑卷大小
    [root@localhost ~]# df -h
    Filesystem             Size  Used Avail Use% Mounted on
    devtmpfs               887M     0  887M   0% /dev
    tmpfs                  904M  8.7M  895M   1% /run
    tmpfs                  904M     0  904M   0% /sys/fs/cgroup
    /dev/mapper/rhel-root   50G  1.8G   49G   4% /
    tmpfs                  181M     0  181M   0% /run/user/0
    /dev/mapper/vg1-lv1     12G   10M   12G   1% /dir        //这次才是扩增后逻辑卷容量 

    2、假设我的逻辑卷的文件系统类型是xfs类型(xfs文件系统类型只能增容量,不能减容量)

    • 查看逻辑卷文件系统类型
    [root@localhost ~]# df -T
    Filesystem            Type     1K-blocks    Used Available Use% Mounted on
    devtmpfs              devtmpfs    907316       0    907316   0% /dev
    tmpfs                 tmpfs       924764    8816    915948   1% /run
    tmpfs                 tmpfs       924764       0    924764   0% /sys/fs/cgroup
    /dev/mapper/rhel-root xfs       52403200 1799724  50603476   4% /
    tmpfs                 tmpfs       184952       0    184952   0% /run/user/0
    /dev/mapper/vg1-vg1   xfs        2086912   47680   2039232   3% /dir       //逻辑卷文件系统类型是xfs类型
    
    • 查看逻辑卷初始容量
    [root@localhost ~]# lvs
      LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      home rhel -wi-a----- <66.95g                                                    
      root rhel -wi-ao----  50.00g                                                    
      swap rhel -wi-ao----  <2.05g                                                    
      vg1  vg1  -wi-ao----   2.00g         //初始容量大小是2G
    • 扩增逻辑卷容量大小(+10G)
    [root@localhost ~]# lvextend -L +10G /dev/vg1/vg1 
      Size of logical volume vg1/vg1 changed from 2.00 GiB (512 extents) to 12.00 GiB (3072 extents).
      Logical volume vg1/vg1 successfully resized.
    
    • 查看逻辑卷容量大小
    [root@localhost ~]# lvs
      LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      home rhel -wi-a----- <66.95g                                                    
      root rhel -wi-ao----  50.00g                                                    
      swap rhel -wi-ao----  <2.05g                                                    
      vg1  vg1  -wi-ao----  12.00g                      //逻辑卷容量已经括大10G
    
    • 查看已经挂载逻辑卷,查看逻辑卷容量是否也改变
    [root@localhost ~]# df -h
    Filesystem             Size  Used Avail Use% Mounted on
    devtmpfs               887M     0  887M   0% /dev
    tmpfs                  904M  8.7M  895M   1% /run
    tmpfs                  904M     0  904M   0% /sys/fs/cgroup
    /dev/mapper/rhel-root   50G  1.8G   49G   4% /
    tmpfs                  181M     0  181M   0% /run/user/0
    /dev/mapper/vg1-vg1    2.0G   47M  2.0G   3% /dir        //逻辑卷大小任然没有发生变化,还是初始的2G
    
    • 使用xfs_growfs命令手动在线扩增逻辑卷容量
     //首先尝试在线扩增(使用逻辑卷名)
    [root@localhost ~]# xfs_growfs /dev/vg1/lv1 
    xfs_growfs: /dev/vg1/lv1 is not a mounted XFS filesystem
     //发现会报错
    
     //我们需要更改扩增的对象为挂载点
    [root@localhost ~]# xfs_growfs /dir/
    meta-data=/dev/mapper/vg1-lv1    isize=512    agcount=4, agsize=131072 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=1, sparse=1, rmapbt=0
             =                       reflink=1
    data     =                       bsize=4096   blocks=524288, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
    log      =internal log           bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    data blocks changed from 524288 to 3145728
    
    • 查看在线扩增后逻辑卷容量是否扩增
    [root@localhost ~]# df -h
    Filesystem             Size  Used Avail Use% Mounted on
    devtmpfs               887M     0  887M   0% /dev
    tmpfs                  904M  8.7M  895M   1% /run
    tmpfs                  904M     0  904M   0% /sys/fs/cgroup
    /dev/mapper/rhel-root   50G  1.8G   49G   4% /
    tmpfs                  181M     0  181M   0% /run/user/0
    /dev/mapper/vg1-lv1     12G  120M   12G   1% /dir
    
    xfs_admin: 调整 xfs 文件系统的各种参数  
    xfs_copy   : 拷贝 xfs 文件系统的内容到一个或多个目标系统(并行方式)  
    xfs_db: 调试或检测 xfs 文件系统(查看文件系统碎片等)  
    xfs_check: 检测 xfs 文件系统的完整性  
    xfs_bmap: 查看一个文件的块映射  
    xfs_repair: 尝试修复受损的 xfs 文件系统  
    xfs_fsr: 碎片整理  
    xfs_quota: 管理 xfs 文件系统的磁盘配额  
    xfs_metadump: 将 xfs 文件系统的元数据 (metadata) 拷贝到一个文件中  
    xfs_mdrestore: 从一个文件中将元数据 (metadata) 恢复到 xfs 文件系统  
    xfs_growfs: 调整一个 xfs 文件系统大小(只能扩展)  
    xfs_freeze    暂停(-f)和恢复(-u)xfs 文件系统
    xfs_logprint: 打印xfs文件系统的日志  
    xfs_mkfile: 创建xfs文件系统  
    xfs_info: 查询文件系统详细信息  
    xfs_ncheck: generate pathnames from i-numbers for XFS  
    xfs_rtcp: XFS实时拷贝命令   
    xfs_io: 调试xfs I/O路径
    xfs相关常用命令

    3、数据迁移卷组,同一卷组的物理卷磁盘才可以进行在线迁移(卷组内部迁移)

    • 查看已经初始化的物理卷
    [root@localhost ~]# pvs
      PV             VG   Fmt  Attr PSize    PFree 
      /dev/nvme0n1p2 rhel lvm2 a--  <119.00g     0 
      /dev/nvme0n2p1 vg1  lvm2 a--    <5.00g     0 
      /dev/nvme0n2p2 vg1  lvm2 a--   <20.00g 12.99g
    
    • 在线迁移/dev/nvme0n2p1数据带其他的物理卷(迁移数据是随机的)
    [root@localhost ~]# pvmove /dev/nvme0n2p1
      /dev/nvme0n2p1: Moved: 1.72%
      /dev/nvme0n2p1: Moved: 100.00%
    
    • 查看物理卷容量改变
    [root@localhost ~]# pvs
      PV             VG   Fmt  Attr PSize    PFree 
      /dev/nvme0n1p2 rhel lvm2 a--  <119.00g     0 
      /dev/nvme0n2p1 vg1  lvm2 a--    <5.00g <5.00g
      /dev/nvme0n2p2 vg1  lvm2 a--   <20.00g <8.00g
    

    4、对ext4文件系统的逻辑卷裁剪容量(ext类型的文件系统可以缩减磁盘容量大小;xfs类型的文件系统类型只能扩增次磁盘容量大小)

    •  如果挂载了ext4文件系统,必须先卸载
    [root@localhost ~]# df -h
    Filesystem             Size  Used Avail Use% Mounted on
    devtmpfs               887M     0  887M   0% /dev
    tmpfs                  904M  8.7M  895M   1% /run
    tmpfs                  904M     0  904M   0% /sys/fs/cgroup
    /dev/mapper/rhel-root   50G  1.8G   49G   4% /
    tmpfs                  181M     0  181M   0% /run/user/0
    /dev/mapper/vg1-lv1     12G  120M   12G   1% /dir
    
    [root@localhost ~]# umount /dir
    [root@localhost ~]# df -h
    Filesystem             Size  Used Avail Use% Mounted on
    devtmpfs               887M     0  887M   0% /dev
    tmpfs                  904M  8.7M  895M   1% /run
    tmpfs                  904M     0  904M   0% /sys/fs/cgroup
    /dev/mapper/rhel-root   50G  1.8G   49G   4% /
    tmpfs                  181M     0  181M   0% /run/user/0
    
    • 剪裁容量前,必须检测文件系统类型
    [root@localhost ~]# e2fsck -f /dev/vg1/vg1 
    e2fsck 1.44.6 (5-Mar-2019)
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    /dev/vg1/vg1: 11/655360 files (0.0% non-contiguous), 66753/2621440 blocks
    • 对裁剪的预判大小
    [root@localhost ~]# resize2fs /dev/vg1/lv1 10M
    resize2fs 1.44.6 (5-Mar-2019)
    resize2fs: New size smaller than minimum (17177)
     //预判缩减成10M,提示新缩减的大小小于最小值(实际就是缩小后的大小不能存放原来逻辑卷文件,所以只能缩减到能存放原来文件大小)
    
    [root@localhost ~]# resize2fs /dev/vg1/vg1 1G
    resize2fs 1.44.6 (5-Mar-2019)
    Resizing the filesystem on /dev/vg1/vg1 to 262144 (4k) blocks.
    The filesystem on /dev/vg1/vg1 is now 262144 (4k) blocks long.
     //上面说明缩减至1G是可以的
    • 调整完毕后采取裁剪逻辑卷容量
     //查看起始逻辑卷大小
    [root@localhost ~]# lvs
      LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      home rhel -wi-a----- <66.95g                                                    
      root rhel -wi-ao----  50.00g                                                    
      swap rhel -wi-ao----  <2.05g                                                    
      lv1  vg1  -wi-a-----  12.00g                  
    
     //裁剪大小到1G
    [root@localhost ~]# lvreduce -L 1G /dev/vg1/lv1 
      WARNING: Reducing active logical volume to 1.00 GiB.
      THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce vg1/lv1? [y/n]: y        //按 y 同意
      Size of logical volume vg1/lv1 changed from 12.00 GiB (3072 extents) to 1.00 GiB (1280 extents).
      Logical volume vg1/lv1 successfully resized.
    • 查看裁剪后的逻辑卷容量大小
    [root@localhost ~]# lvs
      LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      home rhel -wi-a----- <66.95g                                                    
      root rhel -wi-ao----  50.00g                                                    
      swap rhel -wi-ao----  <2.05g                                                    
      lv1  vg1  -wi-a-----   1.00g             //已经缩减了到1G
    
    • 再次检测文件系统
    [root@localhost ~]# e2fsck -f /dev/vg1/vg1 
    e2fsck 1.44.6 (5-Mar-2019)
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    /dev/vg1/vg1: 11/65536 files (0.0% non-contiguous), 25632/262144 blocks
    
    • 最后尝试是否可以挂载
    [root@localhost ~]# mount /dev/vg1/vg1 /dir
    [root@localhost ~]# df -h
    Filesystem             Size  Used Avail Use% Mounted on
    devtmpfs               887M     0  887M   0% /dev
    tmpfs                  904M  8.7M  895M   1% /run
    tmpfs                  904M     0  904M   0% /sys/fs/cgroup
    /dev/mapper/rhel-root   50G  1.8G   49G   4% /
    tmpfs                  181M     0  181M   0% /run/user/0
    /dev/mapper/vg1-vg1    944M   21M  857M   3% /dir
    
  • 相关阅读:
    Python-枚举
    Python-函数
    Python-装饰器(语法糖)上下五千年和前世今生
    Python-全局函数(内置方法、内置函数)
    Python-时间模块-time
    Python-随机模块-random
    Python-维护排序好的序列模块-bisect
    需求推动技术的产生
    RBF神经网络
    聚类算法的衡量指标
  • 原文地址:https://www.cnblogs.com/itwangqiang/p/13531948.html
Copyright © 2020-2023  润新知